実践 OpenCV4 for Python

ジッセン オープンシーヴイ フォー フォー パイソン

画像映像情報処理と機械学習

実践 OpenCV4 for Python の表紙
プログラミング
著者:
永田雅人 / 豊沢聡(ナガタ, マサヒト / トヨサワ, サトシ)
出版社:
カットシステム
出版日:
2021年01月
ISBN:
9784877834609
在庫:
在庫あり
0
Python

なぜ注目されているか

総合571位 ↑ 9 ランクアップ 言及 2 件
言及数
799位

技書の森解説

Python から OpenCV を使い、画像と映像の処理を短いサンプルプログラムで一つずつ動かしながら身につけるための実践書が『実践 OpenCV4 for Python』 (永田 雅人、豊沢 聡 著、カットシステム、2021 年 1 月 20 日発行) です。副題は画像映像情報処理と機械学習で、版元の紹介文は、C++ インタフェースもある OpenCV のうち本書のターゲットは Python であり、Python 版 OpenCV をサンプルプログラムに沿って学ぶ本だと説明しています。静止画だけでなくカメラやビデオファイルの映像も題材にし、終盤はディープラーニングによる物体認識まで進むので、画像処理を自分のアプリケーションに組み込みたい Python ユーザーに向いた一冊です。

全 8 章の構成、画像と映像の入出力からディープラーニングによる物体認識まで

本文は全 8 章と付録 A から F で構成されています。第 1 章で OpenCV の概要と画像や映像の構造を確かめたあと、第 2 章では画像ファイルの表示と保存、NumPy 配列の作成、ビデオファイルやカメラ映像の読み込みと加工を扱います。第 3 章はグラフィックス描画とキーボード、トラックバー、マウスの操作で、ペイントアプリやミニチュア風映像、射影変換といった題材を通じて対話的なプログラムの組み立て方を学ぶ章です。第 4 章のチャンネルとマスクの処理ではクロマキーによる映像合成まで進み、第 5 章の画像の演算ではピクセル操作や浮動小数点数型画像、移動物体の抽出、畳み込み演算を扱います。第 6 章はヒストグラム、DFT による周波数フィルタリング、DCT による情報圧縮、オプティカルフローと画像から情報を取り出す手法、第 7 章はテンプレートマッチングや特徴点抽出と特徴量のマッチングによる物体認識です。第 8 章ではディープラーニングによる画像のクラス分類、顔の領域推定、一般物体のクラス分類と領域推定を扱い、付録には Windows と Mac での環境構築、Visual Studio Code のインストール、モデルファイル、ディープラーニングモデル作成プログラム、参考文献が収められています。

画像を配列として扱う OpenCV と、古典的な手法と学習済みモデルの使い分け

OpenCV の Python 版では、読み込んだ画像は NumPy の多次元配列として返されます。高さと幅と色のチャンネルを軸に持つ配列なので、切り出しや足し算、条件による選び出しを NumPy の書き方のまま行え、OpenCV の関数と自作の配列演算を自由に組み合わせられます。その一方で、色の並びが青、緑、赤の順であることや、画素の値がふつう 8 ビットの符号なし整数で表され、NumPy のまま足し算をすると範囲を超えた値が折り返されることなど、配列として扱うがゆえの落とし穴もあり、浮動小数点数への変換を意識的に挟む場面が出てきます。もう一つの要点は、エッジ検出やヒストグラム、特徴点のマッチングのような古典的な手法と、ニューラルネットワーク の学習済みモデルによる認識とを、目的に応じて使い分ける判断です。照明や撮影条件がそろった場面では古典的な手法のほうが軽く説明もしやすく、対象の見た目のばらつきが大きい場面では学習済みモデルが力を発揮します。本書は前半の章で前者を積み上げ、最終章でディープラーニングによる認識に進む並びなので、両者の得意不得意を同じ道具の上で見比べられます。

Python の文法が前提、2021 年刊の環境を前提に読む注意

版元の紹介文によれば、コードはいずれも全行を掲載しており、どんなに長くても 100 行もないとされています。紹介文では、各節は冒頭で設定した課題の達成を目指すサンプルを中心に構成されているとも説明され、サンプルファイルは版元のダウンロードサービスで提供されています。読み進めるには Python の文法と、リストや関数、モジュールの読み込みといった基礎が身についていることが前提です。文法そのものに不安があるなら、Python の入門書 を先に一冊通しておくと、サンプルの改良に集中できます。本書は 2021 年 1 月の発行で、付録の環境構築の手順もその時点のものです。OpenCV や Python の版が進んだ環境では、インストールの手順や一部の関数の扱いが異なる場合があるので、手順どおりに動かない時は OpenCV の公式ドキュメントで手元の版の説明を確かめる前提で読むのが安全です。

一方で、ディープラーニングのモデルの設計や学習の理論を体系的に学びたい人には、本書は目的が合いません。本書の主題は OpenCV による画像映像処理の実装で、ディープラーニングは最終章の題材の一つという位置づけだからです。その方面を深めたい場合は、ディープラーニング本の選び方 を眺めて理論や実装の専門書を選ぶほうが近道になります。裏返せば、カメラ映像を加工する小さなアプリケーションを作りたい人や、研究や業務で画像の前処理を素早く試したい人にとって、動くサンプルを起点に OpenCV の関数とアルゴリズムの使い方を広く手に入れられる本書は、手元に置く価値のある一冊です。

言及した記事 (2 件)

この本に興味がある方におすすめ

関連する本

関連記事

関連用語

共有: