記事には広告が含まれています
なかぴょんです。
OpenCVを機械学習に活用しようと思い、オライリー本の「詳解OpenCV 3―コンピュータビジョンライブラリを使った画像処理・認識」を軽く読んでみました。
「詳解OpenCV 3―コンピュータビジョンライブラリを使った画像処理・認識」って実物を見たらわかるかと思うのですが、ものすごい分厚い書籍です。
見た目だけ見ると、辞書にしか見えず、読むのを敬遠している方も多いかと思います。
ですが、実際に中身を覗いてみると、サンプルコードを交えた詳しい解説がされていますので、思った以上にスラスラ読めるかと思います。
「詳解OpenCV 3―コンピュータビジョンライブラリを使った画像処理・認識」の購入を検討している方は、参考にしてみてください。
オライリー本「詳解OpenCV 3」で学べること
- OpenCVを使った画像処理・認識の知識が学べる
- C++を使ったOpenCVの実装ができるようになる
- OpenCVによる機械学習の基本が学べる
オライリー本「詳解OpenCV 3」はこんな人におすすめ
図や式などを用いて、OpenCVの解説や画像処理の基本が説明されているため、見た目以上に読みやすい書籍だと思います。
技術書を読むことに抵抗があまりない人なら、問題なく読み進めていけます。
OpenCVを使った画像処理の大まかな流れと処理は、情報が整理された状態で一通り掲載されていますので、ネットでOpenCVについてあちこち調べるのが面倒くさい方はこの本を購入するのをおすすめします。
ただ、プログラミング初心者でOpenCVを初めて勉強する人には少しハードルが高いかもしれません。
OpenCVに関する知識がほとんどなく、開発経験もあまりない方は、以前紹介した動画講座で学習するのが良いです。
紹介した講座では、OpenCVを使うメリット・デメリットなどがわかりやすくまとめられているので、大まか全体像の把握には最適です。
オライリー本「詳解OpenCV 3」を読む上での事前準備
プログラムコードがC++で書かれているため、C++の基礎的な文法を理解している必要があります。
数学的な内容が書かれた章があり、簡単な代数と基本的な行列代数が使用されています。
そのため、関数の微分について基礎的な知識があると、書籍の内容が頭に入りやすいかと思います。
書籍内のプログラム例はすべて、「OpenCV 3.x」に基づいて記載されています。
サンプルコードは、LinuxやWindowsで動きますし、macOSでも動くかと思います。
オンラインのリファレンスを参考にすれば、「OpenCV 3.x」をAndroidやiOSで実行させることも可能です。
オライリー本「詳解OpenCV 3」に書かれている内容
「詳解OpenCV 3―コンピュータビジョンライブラリを使った画像処理・認識」に書かれている内容を紹介しています。
(と言っても本の目次を並べただけですが、、)
記事内では省いていますが、各章ごとにまとめと練習問題が掲載されています。
1章 概要
1.1 OpenCVとは何か?
1.2 OpenCVを使うのはだれか?
1.3 コンピュータビジョンとは何か?
1.4 OpenCVの起源
1.5 OpenCVをダウンロード、インストールする
1.6 Gitから最新のOpenCVを入手する
1.7 その他のOpenCVドキュメント
1.8 OpenCVの寄贈リポジトリ
1.9 移植性
2章 OpenCV入門
2.1 インクルードファイル
2.2 初めてのプログラム――写真を表示する
2.3 2つ目のプログラム――動画
2.4 動き回る
2.5 簡単な変換
2.6 少し複雑な変換
2.7 カメラからの入力
2.8 AVIファイルへ書き込む
3章 OpenCVのデータ型
3.1 基本
3.2 OpenCVのデータ型
4章 画像と大型配列型
4.1 動的可変長ストレージ
5章 配列の演算
5.1 配列でできる多様な処理
6章 描画方法とテキスト表示方法
6.1 図形を描画する
7章 OpenCVのファンクタ
7.1 「何かをする」オブジェクト
8章 画像、動画、データファイル
8.1 HighGUI:ポータブルなグラフィックスツールキット
8.2 画像ファイルを扱う
8.3 動画を扱う
8.4 データの保存
9章 クラスプラットフォームとネイティブウィンドウ
9.1 ウィンドウで作業する
10章 フィルタとコンボリューション
10.1 概要
10.2 始める前に
10.3 閾値処理
10.4 平滑化
10.5 微分と勾配
10.6 画像のモルフォロジー
10.7 任意の線形フィルタによるコンボリューション
11章 画像変換
11.1 概要
11.2 拡大、縮小、ワープ(歪曲)、回転
11.3 汎用的な写像
11.4 画像修復
11.5 ヒストグラムの平坦化
12章 画像解析
12.1 概要
12.2 離散フーリエ変換
12.3 積分画像
12.4 Cannyエッジ検出器
12.5 Hough変換
12.6 距離変換
12.7 領域分割
13章 ヒストグラムとテンプレートマッチング
13.1 OpenCVでのヒストグラムの表現
13.2 ヒストグラムの基本操作
13.3 もう少し洗練されたヒストグラムの手法
13.4 テンプレートマッチング
14章 輪郭
14.1 輪郭を見つける
14.2 輪郭に対してさらに何かを行う
14.3 輪郭と画像をマッチングする
15章 背景除去
15.1 背景除去の概要
15.2 背景除去の弱点
15.3 シーンのモデル化
15.4 平均背景法
15.5 より高度な背景除去手法
15.6 前景除去のための連結成分
15.7 背景手法を比較する
15.8 OpenCVの背景除去のカプセル化
16章 キーポイントと記述子
16.1 キーポイントとトラッキングの基礎
16.2 一般化されたキーポイントと記述子
17章 トラッキング
17.1 トラッキングの概念
17.2 密なオプティカルフロー
17.3 平均値シフトとCamshiftトラッキング
17.4 モーションテンプレート
17.5 推定器
18章 カメラモデルとキャリブレーション
18.1 カメラモデル
18.2 キャリブレーション
18.3 歪み補正
18.4 キャリブレーションを全部まとめる
19章 射影変換と3次元ビジョン
19.1 射影
19.2 アフィン変換と透視変換
19.3 3次元姿勢推定
19.4 ステレオ画像処理
19.5 動画像からの3次元復元
19.6 2次元と3次元の線のフィッティング処理
20章 OpenCVによる機械学習の基本
20.1 機械学習とは?
20.2 MLライブラリの古い関数群
21章 StatModelクラス:OpenCVの学習標準モデル
21.1 MLライブラリの共通ルーチン
21.2 cv::ml::StatModelを用いた機械学習アルゴリズム
22章 物体検出
23章 OpenCVの今後
オライリー本「詳解OpenCV 3」まとめ
今回は、「詳解OpenCV 3―コンピュータビジョンライブラリを使った画像処理・認識」を紹介しました。
OpenCVを機械学習に活用する際の基礎知識が学べるだけでなく、画像処理の大まかな流れと処理を理解するための技術書としても使えます。
何かわからないことが出てきた時の辞書代わりに使うこともできる書籍なので、一冊持っておくと心強いです。
記事内でも説明しましたが、プログラミング初心者でOpenCVを初めて勉強する人には少しハードルが高い書籍です。
ページ数が900を超える書籍です。。。
OpenCVに関する知識がほとんどなく、開発経験もあまりない方は以前紹介した動画講座で学習するのが良いです。
OpenCVを活用して画像処理や認識をやってみたい方は、ぜひ、試してみてください!