Download - OpenCV 百聞は一見にしかず
![Page 1: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/1.jpg)
OpenCV
百聞は一見にしかず2015/03/18
中村侯太
(株)マップクエスト
![Page 2: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/2.jpg)
きっかけ
• 以前から画像処理に興味
• 友人がOpenCVを使った話も聞いていた
• OpenCVの勉強会がある
• ARやヘッドマウントディスプレイとも絡めた話がある
• これは行くしかない!2
![Page 3: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/3.jpg)
OpenCVとは
• Open Computer Vision Library
• 最初はインテルが開発、現在はWillow Garage(米企業)が開発
• 1999年: プロジェクト開始
• 2006年: Ver1.0 リリース
• 2009年: Ver2.0 リリース
• 2015年: Ver3.0 リリース予定 (現在ベータ版リリース中)
3
![Page 4: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/4.jpg)
メリット
• 行列等を使った複雑な画像処理が1行で書ける!
• プログラミング時間の大幅な削減が可能
• 無料で利用できる!
• 商用利用もソース公開等なしに可能
4
![Page 5: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/5.jpg)
百聞は一見にしかず
• デモをまじえながら進めていきます
• 今日紹介するデモ
• 射影変換
• 色変換
• 特徴量抽出
• カメラキャリブレーション
5
![Page 6: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/6.jpg)
射影変換
• 平面を別の平面に投影する
6
![Page 7: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/7.jpg)
射影変換
• アフィン変換だけでは実現できない
• アフィン変換では、変換前に平行だった線は、変換後も平行
• 射影変換は、奥行きが加わるため平行ではなくなる
7
![Page 8: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/8.jpg)
射影変換
• 変換前後の点の座標を4点求める→ それを解ける行列を計算する
8
![Page 9: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/9.jpg)
実用例
• 地図の重ね合わせ
• 航空写真や古地図を地図上に写像
9
![Page 10: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/10.jpg)
色変換
• 画像の画素値そのものを変換する
• グレースケール、白黒(2値化)など
• 文字認識やエッジ抽出の前処理に使われる
10
![Page 11: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/11.jpg)
特徴量抽出
• 画像にフィルタを掛けて特徴を抽出する
• 境界線(エッジ)の抽出、直線の抽出など
11
![Page 12: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/12.jpg)
エッジの抽出のしくみ
• 周辺の画素から重み付けを求める→ エッジであれば値が大きくなる
12
![Page 13: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/13.jpg)
直線の抽出のしくみ
• ハフ変換: x-y平面の直線をパラメータ化し、θ-ρ平面へ写像する
13
![Page 14: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/14.jpg)
直線の抽出のしくみ
• x-y平面の点は、θ-ρ平面では曲線になる
14
![Page 15: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/15.jpg)
直線の抽出のしくみ
• θ-ρ平面で曲線の集まった座標→ x-y平面では直線がある!
15
![Page 16: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/16.jpg)
カメラキャリブレーション
• カメラ座標と実座標を変換
• ARの表示に必要
16
出典: マイナビ, "OpenCVプログラミングブック第2版" (2009)
![Page 17: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/17.jpg)
カメラキャリブレーション
• アフィン変換(拡大縮小・せん断・回転(3軸)・平行移動)
• 射影変換
• カメラのレンズによる歪みの補正
17
出典: マイナビ, "OpenCVプログラミングブック第2版" (2009)
![Page 18: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/18.jpg)
カメラキャリブレーション
• 変換前後の点の座標を6点以上求める→ それを解ける行列を計算する
• Zhangのキャリブレーション手法
• 平面チェックパターンを3枚以上撮影しパラメータを求める
18
![Page 19: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/19.jpg)
実用例1
• 事件の捜査協力
• 防犯カメラに被疑者と思われる映像が写っていた
• 弁護側「被疑者にしては身長が小さいのではないか?」
• 「これが被疑者ではないことを証明してほしい!」
19
![Page 20: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/20.jpg)
実用例1
• 実際の防犯カメラでパターンを撮影しパラメータを求めた
• この形状のものは、このカメラではこう映るということが分かる
• 映像中の身長と被疑者の身長が合わない
• 「映像に映っているのは被疑者ではない!」
• 無罪を勝ち取った!
20
![Page 21: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/21.jpg)
実用例2
• 医療現場
• 内視鏡の映像に手術の支援情報(摘出箇所など)を表示
• カメラを見ながらだと、向き等が直観的に分からない
• ヘッドマウントディスプレイで直観的に手術ができる
• 採血シミュレータに血管などの位置を投影
• 解剖学の知識と実際の訓練をリンクさせる 21
![Page 22: OpenCV 百聞は一見にしかず](https://reader031.vdocuments.pub/reader031/viewer/2022031810/55abaf231a28ab263c8b4657/html5/thumbnails/22.jpg)
まとめ
• 画像処理は難しいというイメージがあった
• それがこんなに簡単にできることに感動
• 結果が画像ですぐに見られるので分かりやすい
• みなさんもぜひこの感動を味わってください!
22