OpenCV ではじめよう ディープラーニングによる画像認識(オープンシーブイデハジメヨウディープラーニングニヨルガゾウニンシキ)
プログラミング- 著者:
- 吉村 康弘/五木田 和也/杉浦 司(ヨシムラ ヤスヒロ/ゴキタ カズヤ/スギウラ ツカサ)
- 出版社:
- 技術評論社
- 出版日:
- 2022年04月30日頃
- ISBN:
- 9784297127756
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
OpenCV はコンピュータビジョン分野でもっとも利用されているオープンソースフレームワークです。近年の人工知能ブームに呼応する形で機械学習やディープラーニング API が強化され、物体の名称と位置を認識するオブジェクト検出 (Object Detection) といったタスクも容易に扱えるようになりました。
とはいえ、画像認識タスクがすべてディープラーニングによる手法に置き換わるわけではありません。これまでに培った手法を選択した方が堅実な場面もあるため、本書では現時点で重要とされる画像処理手法を整理します。 OpenCV の基礎的な解説からはじめ、 dnn モジュールを用いたディープラーニングによる画像認識についても解説していきます。
1 章 OpenCV とは
2 章 OpenCV インストール
3 章 core モジュール
4 章 imgproc モジュール
5 章 imgcodecs 、 videoio モジュール
6 章 ディープラーニング
7 章 dnn モジュール基礎
8 章 dnn モジュール応用
サンプルコードには Python を利用し、 OpenCV 4.5.X に対応しています。
技書の森解説
『 OpenCV ではじめよう ディープラーニングによる画像認識』 (吉村康弘・杉浦司・五木田和也著、技術評論社、 2022 年 4 月刊、 B5 変形判 312 ページ) は、コンピュータビジョン分野の定番 オープンソース ライブラリ OpenCV に組み込まれた dnn モジュールを使い、学習済み ディープラーニング モデルの推論を Python で動かす方法を解説した実践書です。サンプルコードは OpenCV 4.5.X に対応。モデルを自分で学習させるのではなく、公開されている学習済みモデルを読み込んで顔検出・物体検出・クラス分類・セグメンテーションといったタスクを実装する、という切り口が最大の特徴です。
推論専用という dnn モジュールの位置づけ
dnn モジュールの位置づけを押さえると、この本の価値が分かりやすくなります。 PyTorch や TensorFlow は学習から推論までを担う汎用フレームワークですが、推論だけを既存アプリケーションへ組み込みたい場面では依存関係が重く、環境構築の負担も小さくありません。 OpenCV の dnn モジュールは学習機能を持たない推論専用の実装で、 ONNX や Caffe など複数フォーマットの学習済みモデルを読み込み、画像の入力・前処理・推論・結果描画までを OpenCV の API 体系だけで完結させられます。カメラ映像の取得や輪郭抽出のような従来型画像処理と深層学習の推論を同じコードベースで書けるため、既存の画像処理パイプラインへ認識機能を足す用途と特に相性が良い設計です。版元の紹介文も、すべてをディープラーニングに置き換えるのではなく従来手法と使い分けるという本書の方針を明記しています。
全 8 章の構成とタスク別のモデル比較
構成は全 8 章です。前半 (第 1 章〜第 5 章) は OpenCV そのものの基礎で、ライセンスや開発史から、 pip ・ Miniconda ・ Docker ・ソースビルドによるインストール、 core ・ imgproc ・ imgcodecs ・ videoio といった主要モジュールの使い方までを整理します。第 6 章でディープラーニングの考え方と CNN 、精度評価の基礎を押さえ、第 7 章が本丸の dnn モジュール基礎です。顔検出、 YOLOv4 と YOLOv4-tiny による物体検出、 EfficientNet と MobileNet v3 によるクラス分類、 DeepLab v3 によるセグメンテーション、テキスト検出・認識、 Lightweight OpenPose によるキーポイント検出まで、タスクごとに精度重視と速度重視のモデルを並べ、パフォーマンス比較と API 仕様を添えて実装していきます。第 8 章は応用編で、カスタムレイヤの実装、 CUDA や Intel の推論エンジンといったバックエンドの切り替え、 OpenCV Zoo など学習済みモデルの入手先まで踏み込みます。
OpenCV コミュニティに近い著者陣
著者陣は OpenCV コミュニティに近い実務者です。吉村康弘氏はフィックスターズでコンピュータビジョンのアルゴリズム開発・高速化に従事し、 OpenCV などの OSS への貢献歴を持ちます。杉浦司氏はホロラボ所属で Point Cloud Library のコミッターを務め、版元の著者紹介によれば本書の執筆にあたり OpenCV 本体のバグを報告・修正しています。五木田和也氏は画像認識や自然言語処理を扱うエンジニアです。ライブラリを外から眺めて書かれた本ではなく、開発に関わる側の視点で書かれている点が、 API 仕様やバージョン差異の記述の信頼性につながっています。
向いている読者と範囲外の注意
向き不向きははっきりしています。モデルの設計や学習理論、独自データでの学習まで踏み込みたい人には本書は範囲外で、 PyTorch などの学習フレームワークを扱う教科書が別に必要です。掲載モデルは 2022 年時点の代表格で、物体検出モデルの系譜は刊行後も後継が登場していますが、学習済みモデルを読み込んで推論するという dnn モジュールの枠組み自体は据え置きで、前処理から結果の解釈までの実装の型はそのまま通用します。すでに OpenCV で画像を扱った経験があり、そこへ物体検出や分類を足したい人、深層学習フレームワークを導入せずにカメラ映像へ推論を組み込みたい人にとって、 dnn モジュールを主題に 1 冊を割いた日本語の解説書は貴重です。読了後には、どのタスクにどのモデルを選び、どう組み込むかを自分で判断して動くプロトタイプを作れるようになります。
言及 Qiita 記事 (12 件)
ディープラーニングで動画の顔画像の入れ替え実施編&そこから学ぶ機械学習の基礎の基礎 (Mac OSX)
♡ 253OpenCV, TensorFlow, Deepfakes, Faceswap, DeepfaceLivebook + Evision基本編 Evision(OpenCV)でお手軽画像処理
♡ 17OpenCV, Elixir, fukuoka.ex, Livebook, evisionEvisionのCascadeClassifierで顔認識をやってみた
♡ 17OpenCV, Elixir, fukuoka.ex, Livebook, evisionYOLOv4の結果を切り取ってEfficientnetで更に分類するシステムをEvisionで書く
♡ 14OpenCV, Elixir, Livebook, AdventCalendar2022, evisionEvisionのDNN.SegmentationModelを使ってセグメンテーション
♡ 14OpenCV, Elixir, Livebook, AdventCalendar2022, evisioncv::Formatter、cv::printを使いこなす
♡ 14OpenCVEvisionのDNN.TextDetectionModelDBでテキスト検出
♡ 13OpenCV, Elixir, Livebook, AdventCalendar2022, evisionEvisionのDNN.ClassificationModelを使ってクラス分類をする
♡ 13OpenCV, Elixir, fukuoka.ex, Livebook, evisionEvisionのDNN.DetectionModelでYOLOv4を使って物体検知
♡ 12OpenCV, Elixir, Livebook, AdventCalendar2022, evision「OpenCVではじめよう ディープラーニングによる画像認識」のサンプルコードをC++に移植する
♡ 9C++, OpenCV, DeepLearning
この本に興味がある方におすすめ
この本に関連
関連記事
ディープラーニング本の選び方 - 原理 / 理論 / 実装 / 数学の 4 系統で整理 (2026 年 8 月時点)
ディープラーニング本の選び方を 4 系統 (原理を手で理解する本 / 理論を体系的に学ぶ本 / フレームワーク実装本 / 数学を補う本) に整理。2026 年 8 月時点の定番書を目的別 / レベル別に紹介し、賞味期限の見極め方も解説します。
機械学習 / ディープラーニング本ガイド - エンジニアが読むべき AI 技術書の選び方
機械学習の基礎から実践まで学べる技術書の選び方を紹介。「Python ではじめる機械学習」などのハンズオン本を軸に、数学が苦手な人向けの学習ルート、ディープラーニング本への進み方、ML 本の賞味期限の見極め方を解説します。
ゼロから作る Deep Learning シリーズの読む順番 - 全 6 巻の内容と選び方を整理
ゼロから作る Deep Learning シリーズ全 6 巻 (基礎 / 自然言語処理 / フレームワーク / 強化学習 / 生成モデル / LLM) の読む順番を解説。各巻の内容 / 発売年 / 前提知識を一覧表で整理し、目的別にどの巻から読むべきかを案内します。
関連用語
DeepLearning
多層のニューラルネットワークで複雑なパターンを学習する機械学習の一手法
OpenCV
画像 / 動画を処理するためのオープンソースライブラリ。コンピュータビジョンの定番
LCP
ビューポート内の最大コンテンツ要素が表示されるまでの時間を測定する Core Web Vitals の指標
Base64
バイナリデータを ASCII テキストに変換するエンコーディング方式で、メールや JSON でのバイナリ転送に使われる
画像最適化
Web ページの画像サイズを削減し、表示速度と Core Web Vitals を向上させる技術群
バンドラー
複数の JavaScript モジュールを 1 つまたは複数のファイルにまとめるビルドツール