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

More Related Content

PDF
続Open cv4android
PDF
OpenCV4Androidで画像処理アプリのススメ
PDF
Halide, Darkroom - 並列化のためのソフトウェア・研究
PDF
Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2
PPTX
Andoird版OpenCVのJavaサンプルを動かす
PDF
OpenCVをAndroidで動かしてみた
PDF
Windows8でOpenCVを使ったAndroid(MOVERIO)開発体験したい
KEY
SurfaceTextureとシェーダを使って遊んでみる
続Open cv4android
OpenCV4Androidで画像処理アプリのススメ
Halide, Darkroom - 並列化のためのソフトウェア・研究
Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2
Andoird版OpenCVのJavaサンプルを動かす
OpenCVをAndroidで動かしてみた
Windows8でOpenCVを使ったAndroid(MOVERIO)開発体験したい
SurfaceTextureとシェーダを使って遊んでみる

What's hot (20)

PPTX
JetsonでOpenCV
PDF
【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat
PDF
これからの「async/await」の話をしよう
PDF
async/awaitダークサイド is 何
PDF
いまさら恥ずかしくてAsyncをawaitした
PDF
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
PDF
【第27回コンピュータビジョン勉強会@関東】OpenCV 便利Tips紹介
PDF
vImageのススメ(改訂版)
PDF
async/await不要論
PDF
Pythonで始めるWebアプリケーション開発
PDF
SignalRブートキャンプ
PDF
Async DeepDive basics
PPTX
組込みAndroid入門実習
KEY
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
KEY
Cq tse-fm3セミナー資料
PDF
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
KEY
最強のPHP統合開発環境 PHPStorm
PPTX
ゼロから始める自作 CPU 入門
PDF
軽量Ruby『mruby』について
PDF
.NET Coreから概観する.NETのOSSへの取り組み
JetsonでOpenCV
【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat
これからの「async/await」の話をしよう
async/awaitダークサイド is 何
いまさら恥ずかしくてAsyncをawaitした
【第33回コンピュータビジョン勉強会@関東】OpenVX、 NVIDIA VisionWorks使ってみた
【第27回コンピュータビジョン勉強会@関東】OpenCV 便利Tips紹介
vImageのススメ(改訂版)
async/await不要論
Pythonで始めるWebアプリケーション開発
SignalRブートキャンプ
Async DeepDive basics
組込みAndroid入門実習
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
Cq tse-fm3セミナー資料
SDSoC勉強会_170128_スライド「SDx 2016.3のプラグマによるハードウェアと性能」
最強のPHP統合開発環境 PHPStorm
ゼロから始める自作 CPU 入門
軽量Ruby『mruby』について
.NET Coreから概観する.NETのOSSへの取り組み
Ad

Viewers also liked (13)

PPTX
OpenCVを用いた画像処理入門
PDF
実践コンピュータビジョン 3章 画像間の写像
PPTX
Google earthに画像を貼り付ける方法
PPTX
Pinhole
PDF
静岡Developers勉強会コンピュータビジョンvol4発表用資料
PDF
人工知能のための哲学塾 東洋哲学篇 第零夜 資料
PPTX
PRML第6章「カーネル法」
PPTX
関東コンピュータビジョン勉強会
PDF
非技術者でもわかる(?)コンピュータビジョン紹介資料
PPTX
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
PDF
人工知能のための哲学塾 東洋哲学篇 第一夜 「荘子と人工知能の解体」
PDF
GoogleのSHA-1のはなし
PPTX
HoloLens x Graphics 入門
OpenCVを用いた画像処理入門
実践コンピュータビジョン 3章 画像間の写像
Google earthに画像を貼り付ける方法
Pinhole
静岡Developers勉強会コンピュータビジョンvol4発表用資料
人工知能のための哲学塾 東洋哲学篇 第零夜 資料
PRML第6章「カーネル法」
関東コンピュータビジョン勉強会
非技術者でもわかる(?)コンピュータビジョン紹介資料
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
人工知能のための哲学塾 東洋哲学篇 第一夜 「荘子と人工知能の解体」
GoogleのSHA-1のはなし
HoloLens x Graphics 入門
Ad

Similar to OpenCV 百聞は一見にしかず (20)

PPTX
20150926 uwpストア攻略
PPTX
ソフトウェア開発が好きだ
PDF
OpenCV 3.0 on iOS
PDF
20110819 関西 kinect勉強会 初級編
PDF
デジタルハリウッド大学藤本ゼミプレゼンテーション(20071115)
PDF
Opera Mobile for AndroidのカメラサポートをつかってWebコンテンツにカメラ機能をつけてみたお話
PDF
Qt5のセンサーAPIを使ってみたい
KEY
Twitter クライアント開発のすすめ #twtr_hack
PDF
"Continuous Publication" with Python: Another Approach
PPTX
WinUI 3.0 Preview 1を触ってみた(.NETラボ2020年6月登壇資料)
PPTX
ステレオカメラ作成の道
PDF
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
PDF
デザイナー・コーダーのための黒い画面入門
PDF
Silverlight+COMにチャレンジ
PDF
㉜知育アプリを作ろう! Kwikで作るデジタル絵本
KEY
塹壕よりLivetとMVVM
PDF
クロスプラットフォーム開発雑感 #pronamaclrhsapporocpp
PDF
JavaScriptで出来る、あんなことこんなこと
PDF
今のWeb開発者に伝えたいWebブラウザの病みの歴史
PPTX
EC-CUBE 4 入門
20150926 uwpストア攻略
ソフトウェア開発が好きだ
OpenCV 3.0 on iOS
20110819 関西 kinect勉強会 初級編
デジタルハリウッド大学藤本ゼミプレゼンテーション(20071115)
Opera Mobile for AndroidのカメラサポートをつかってWebコンテンツにカメラ機能をつけてみたお話
Qt5のセンサーAPIを使ってみたい
Twitter クライアント開発のすすめ #twtr_hack
"Continuous Publication" with Python: Another Approach
WinUI 3.0 Preview 1を触ってみた(.NETラボ2020年6月登壇資料)
ステレオカメラ作成の道
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
デザイナー・コーダーのための黒い画面入門
Silverlight+COMにチャレンジ
㉜知育アプリを作ろう! Kwikで作るデジタル絵本
塹壕よりLivetとMVVM
クロスプラットフォーム開発雑感 #pronamaclrhsapporocpp
JavaScriptで出来る、あんなことこんなこと
今のWeb開発者に伝えたいWebブラウザの病みの歴史
EC-CUBE 4 入門

OpenCV 百聞は一見にしかず