見出し画像

書記の読書記録#643『実践 コンピュータビジョン』

Jan Erik Solem(訳:相川 愛三)『実践 コンピュータビジョン』のレビュー


レビュー

画像処理に関する簡潔なコード本であり,一般論を知る分には本書でも十分だろう。変化の早い分野で内容が古くなってしまっているのは致し方ない。

Python 3.xでの解説がGitHubに転がっているので,参考になるかもしれない。


もくじ

1章 基本的な画像処理
1.1 PIL
1.1.1 画像のファイル形式変換
1.1.2 サムネイルの作成
1.1.3 領域のコピーと貼りつけ
1.1.4 拡大縮小と回転
1.2 Matplotlib
1.2.1 画像と点と線を描画する
1.2.2 画像の等高線とヒストグラム
1.2.3 インタラクティブな注釈
1.3 NumPy
1.3.1 配列による画像表現
1.3.2 グレーレベルの変換
1.3.3 画像のサイズ変更
1.3.4 ヒストグラム平坦化
1.3.5 平均画像
1.3.6 画像の主成分分析
1.3.7 pickleモジュール
1.4 SciPy
1.4.1 画像をぼかす
1.4.2 画像の微分
1.4.3 モルフォロジー ―― 物体を数える
1.4.4 便利な SciPyモジュール
1.5 高度な例:画像のノイズ除去
1.6 演習問題

2章 画像の局所記述子
2.1 Harrisコーナー検出器
2.1.1 画像間の対応点を見つける
2.2 SIFT
2.2.1 特徴点
2.2.2 記述子
2.2.3 特徴点を検出する
2.2.4 記述子を対応づける
2.3 ジオタグ付きの画像を対応づける
2.3.1 Panoramioからジオタグ付きの画像をダウンロードする
2.3.2 局所記述子を使って対応づける
2.3.3 関連画像を可視化する
2.4 演習問題

3章 画像間の写像
3.1 ホモグラフィー
3.1.1 DLTアルゴリズム
3.1.2 アフィン変換
3.2 画像の変形
3.2.1 画像の中の画像
3.2.2 分割アフィンワーピング
3.2.3 画像の位置合わせ
3.3 パノラマの作成
3.3.1 RANSAC
3.3.2 ロバストなホモグラフィー推定
3.3.3 画像をつなぎ合わせる
3.4 演習問題

4章 カメラモデルと拡張現実感
4.1 ピンホールカメラモデル
4.1.1 カメラ行列
4.1.2 3Dの点の射影
4.1.3 カメラ行列の分解
4.1.4 カメラ中心の計算
4.2 カメラキャリブレーション
4.2.1 単純なキャリブレーション方法
4.3 平面とマーカーを使った姿勢推定
4.4 拡張現実感
4.4.1 PyGameとPyOpenGL
4.4.2 カメラ行列から OpenGL形式へ
4.4.3 仮想物体を画像に配置する
4.4.4 まとめ
4.4.5 モデルを読み込む
4.5 演習問題

5章 多視点幾何
5.1 エピポーラ幾何
5.1.1 サンプルデータセット
5.1.2 Matplotlibによる 3Dデータの描画
5.1.3 F行列の計算 ―― 8点法
5.1.4 エピ極とエピポーラ線
5.2 カメラと 3D構造を使った計算
5.2.1 三角測量
5.2.2 3Dの点群からカメラ行列を計算する
5.2.3 基礎行列からカメラ行列を計算する
5.3 多視点による復元
5.3.1 ロバストな基礎行列推定
5.3.2 3Dの復元の例
5.3.3 多視点への拡張
5.4 ステレオ画像
5.4.1 視差マップを計算する
5.5 演習問題

6章 画像のクラスタリング
6.1 k平均クラスタリング法
6.1.1 SciPyのクラスタリングパッケージ
6.1.2 画像のクラスタリング
6.1.3 画像の可視化
6.1.4 ピクセルのクラスタリング
6.2 階層クラスタリング
6.2.1 画像のクラスタリング
6.3 スペクトラルクラスタリング
6.4 演習問題

7章 画像検索
7.1 内容に基づく画像検索
7.1.1 テキストマイニングのヒント ―― ベクトル空間モデル
7.2 ビジュアルワード
7.2.1 ボキャブラリの作成
7.3 画像にインデクスを付ける
7.3.1 データベースを設定する
7.3.2 画像を追加する
7.4 データベースの画像を検索する
7.4.1 インデクスを用いて候補を取得する
7.4.2 画像を用いて問い合わせる
7.4.3 ベンチマークを測定し結果を描画する
7.5 配置を用いて結果をランキングする
7.6 デモ用 Webアプリを作る
7.6.1 CherryPyを使った Webアプリを作る
7.6.2 画像検索デモ
7.7 演習問題

8章 画像認識
8.1 k近傍法
8.1.1 簡単な 2Dの例
8.1.2 画像特徴量としての密な SIFT
8.1.3 画像の分類 ―― 手話認識
8.2 ベイズ分類器
8.2.1 PCAで次元削減する
8.3 サポートベクターマシン
8.3.1 LibSVMを使う
8.3.2 SVMによる手話認識
8.4 光学文字認識
8.4.1 分類器を訓練する
8.4.2 特徴量を選ぶ
8.4.3 多クラス SVM
8.4.4 マスの抽出と文字認識
8.4.5 画像の位置合わせ
8.5 演習問題

9章 画像の領域分割
9.1 グラフカット
9.1.1 画像からグラフを構成する
9.1.2 ユーザー入力を用いた領域分割
9.2 クラスタリングを用いた領域分割
9.3 変分法
9.4 演習問題

10章  OpenCV
10.1 OpenCV Pythonインタフェース
10.2 OpenCVの基本
10.2.1 画像の読み書き
10.2.2 色空間
10.2.3 画像と結果を表示する
10.3 動画の処理
10.3.1 動画入力
10.3.2 NumPy配列に動画を読み込む
10.4 追跡
10.4.1 オプティカルフロー
10.4.2 Lucas-Kanade法
10.5 他のサンプル
10.5.1 インペインティング(画像復元)
10.5.2 ウォーターシェッド変換による領域分割
10.5.3 Hough変換による直線検出
10.6 演習問題

付録A パッケージのインストール方法
A.1 NumPyとSciPy
A.2 Matplotlib
A.3 PIL
A.4 LibSVM
A.5 OpenCV
A.6 VLFeat
A.7 PyGame
A.8 PyOpenGL
A.9 Pydot
A.10 python-graph
A.11 simplejson
A.12 PySQLite
A.13 CherryPy

付録B 画像のデータセット
B.1 Flickr
B.2 Panoramio
B.3 オックスフォード大学の視覚幾何学グループ
B.4 ケンタッキー大学の認識ベンチマーク画像
B.5 その他

付録C 画像の出典
C.1 Flickrからの画像
C.2 その他の画像
C.3 イラスト


本記事のもくじはこちら:


学習に必要な本を買います。一覧→ https://www.amazon.co.jp/hz/wishlist/ls/1XI8RCAQIKR94?ref_=wl_share