SlideShare a Scribd company logo
1 of 80
Download to read offline
【GWゼミ #2】コンピュータビジョン+機械学習+AWS 勉強会 2/3
© 2017 Global Walkers,Inc.
2017/08/23
1
2© 2017 Global Walkers,Inc.
グローバルウォーカーズ株式会社について
Technology
Contents
Global
Development
Create Innovative Contents
• 知育教育
Intellectual Training
• 会話系コミュニケーション
Border-less Communication
• AI(人工知能)
• Deep Learning(深層学習)
• コンピュータビジョン Computer-Vision
• VR(仮想現実), AR(拡張現実), MR(複合現実)
コンテンツ開発
テクノロジー
海外事業開発
海外展開を視野に入れた、
・技術提携企業開拓
・オフショアパートナー開拓
・販売パートナー開拓
を行います。
社内に最先端のIT要素技術を保持。
コンテンツにさらなる付加価値を持たせ、他者と
は違うコンテンツの提供を目指します。
マーケットニーズを模索しつつ、継続的に
コンテンツをリリースする。
その中からキラーコンテンツの開発を行います。
機械学習
コンピュータビジョン
知育:Birdrillシリーズ
会話:Talkbullシリーズ
コンテンツ開発事業:教育コンテンツApp開発
1−1.知育教育アプリ開発
Birdrillシリーズ
(iOS and android)
ホーム画面
問題画面例
スタンプ帳
3© 2017 Global Walkers,Inc.
コンテンツ開発事業:教育コンテンツApp開発
1−1.知育教育アプリ開発
Birdrillシリーズ 2017年4月より「おりがみずけい」「まほうのトンネル」を
2017年6月より「おもさくらべ」を配信開始
4© 2017 Global Walkers,Inc.
コンテンツ開発事業:教育コンテンツApp 今後の開発
リッチ&安価なコンテンツ 機械学習
自社保有先端技術
多種多様な
学習コンテンツ
Global Walkers 知育コンテンツサービス
IQ
EQ
音楽
絵画
舞踊
運動
6つのカテゴリごとに、子供に最適な保有コンテンツとのマッチングを行い、コンテンツを提供
単に知育コンテンツを購入するのではなく、教育・成長の目的、才能に応じたコンテンツを選択
Deep
Learning
Computer
Vision
Support
Vector
Machine
コンピュータビジョン・AR・VR
自社保有先端技術
5© 2017 Global Walkers,Inc.
6© 2017 Global Walkers,Inc.
自己紹介
樋口未来(ひぐち・みらい)
プロフィール
日立製作所 日立研究所に入社後、自動車向けステレオカメラ、監視カメラの研究開発に従事。
2011年から1年間、米国カーネギーメロン大学にて客員研究員としてカメラキャリブレーション
技術の研究に携わり、フリーランスを経て2016年7月にグローバルウォーカーズ株式会社に参画。
また、東京大学大学院博士課程に在籍(休学中)。
一人称視点映像(First-person vision, Egocentric vision)の解析に関する研究を行っています。
コンピュータビジョン・機械学習をテーマに、マイナビニュースに寄稿連載中。
「機械の目が見たセカイ -コンピュータビジョンがつくるミライ」
http://news.mynavi.jp/series/cv_future/menu.html
専門: コンピュータビジョン、機械学習
プログラミング言語: C, C++, C#, Java, Swift, Python, Matlabなど
趣味: バイク、自転車、スノーボード、料理、フットサル(いまはやってない)など広く浅く
twitter: @at_mirai
7© 2017 Global Walkers,Inc.
・コンピュータビジョンの基礎
内部パラメータ、外部パラメータ
・画像幾何学変換
アフィン変換とHomography変換、 画像の縮小、拡大
・ステレオカメラとカメラキャリブレーション
・画像の加工
閾値処理、ガンマ補正、色彩補正
・空間フィルタ
エッジ検出、平滑化
・Hough変換
・背景差分、フレーム間差分
・機械学習による物体検出
Adaboost + Haar-like
・オプティカルフロー、トラッキング
本日の内容
8© 2017 Global Walkers,Inc.
ハードウェアの基礎
レンズ
カラーフィルタ、IRカットフィルタ
撮像素子
フィルタ(偏光フィルタ等)
I/F
メモリ CPU
出力I/F
モニター等
入射光
専用プロセッシング
ユニット
コンピュータ
カメラ
マイクロレンズ
GPGPU, ASIC, FPGA
9© 2017 Global Walkers,Inc.
画像
モノクロ画像 = 8bitデータの2次元配列(原則)
img[y座標][x座標]
y
x
0
0
10© 2017 Global Walkers,Inc.
画像
カラー画像 = 8bitデータの3次元配列(原則)
img[y座標][x座標][R or G or B]
11© 2017 Global Walkers,Inc.
ピンホールモデル
撮像素子
レンズ
焦点
焦点距離 f
入射光
入射光
Y
y
Z
𝑧"
𝑢
𝑣
1
= 𝐾 𝑅	𝑇
𝑋,
𝑌,
𝑍,
1
12© 2017 Global Walkers,Inc.
内部パラメータと外部パラメータ
外部パラメータ
内部パラメータ
K =
𝛼1 𝛾 𝑢3
0 𝛼5 𝑣3
0 0 1
主点 𝑢3, 𝑣3
𝑂
焦点距離[pix] スキュー
0で良い
𝑧"
𝑢
𝑣
1
= 𝐾 𝑅	𝑇
𝑋,
𝑌,
𝑍,
1
13© 2017 Global Walkers,Inc.
内部パラメータと外部パラメータ
外部パラメータ
内部パラメータ
𝑅 =
𝑐𝑜𝑠𝜓 −𝑠𝑖𝑛𝜓 0
𝑠𝑖𝑛𝜓 𝑐𝑜𝑠𝜓 0
0 0 1
𝑐𝑜𝑠𝜙 0 𝑠𝑖𝑛𝜙
0 1 0
−𝑠𝑖𝑛𝜙 0 𝑐𝑜𝑠𝜙
1 0 0
0 𝑐𝑜𝑠𝜃 𝑠𝑖𝑛𝜃
0 −𝑠𝑖𝑛𝜃 𝑐𝑜𝑠𝜃
=
𝑐𝑜𝑠𝜓𝑐𝑜𝑠𝜙 −𝑐𝑜𝑠𝜓𝑠𝑖𝑛𝜙𝑠𝑖𝑛𝜃 − 𝑠𝑖𝑛𝜓𝑐𝑜𝑠𝜃 𝑐𝑜𝑠𝜓𝑠𝑖𝑛𝜙𝑐𝑜𝑠𝜃 − 𝑠𝑖𝑛𝜓𝑠𝑖𝑛𝜃
𝑠𝑖𝑛𝜓𝑐𝑜𝑠𝜙 −𝑠𝑖𝑛𝜓𝑠𝑖𝑛𝜙𝑠𝑖𝑛𝜃 + 𝑐𝑜𝑠𝜓𝑐𝑜𝑠𝜃 𝑠𝑖𝑛𝜓𝑠𝑖𝑛𝜙𝑐𝑜𝑠𝜃 + 𝑐𝑜𝑠𝜓𝑠𝑖𝑛𝜃
−𝑠𝑖𝑛𝜙 −𝑐𝑜𝑠𝜙𝑠𝑖𝑛𝜃 𝑐𝑜𝑠𝜙𝑐𝑜𝑠𝜃
T =
𝑡1
𝑡5
𝑡D
K =
𝛼1 𝛾 𝑢3
0 𝛼5 𝑣3
0 0 1
14© 2017 Global Walkers,Inc.
・コンピュータビジョンの基礎
内部パラメータ、外部パラメータ
・画像幾何学変換
アフィン変換とHomography変換、 画像の縮小、拡大
・ステレオカメラとカメラキャリブレーション
・画像の加工
閾値処理、ガンマ補正、色彩補正
・空間フィルタ
エッジ検出、平滑化
・Hough変換
・背景差分、フレーム間差分
・機械学習による物体検出
Adaboost + Haar-like
・オプティカルフロー、トラッキング
本日の内容
15© 2017 Global Walkers,Inc.
・基本的な画像処理
幾何変換
アフィン変換
拡大縮小 回転 平行移動 せん断(Skew)
𝑥′
𝑦′
=
𝑎 𝑏
𝑐 𝑑
𝑥
𝑦 +
𝑡1
𝑡5
𝑥′
𝑦′
1
=
𝑎 𝑏 𝑡1
𝑐 𝑑 𝑡5
0 0 1
𝑥
𝑦
1
16© 2017 Global Walkers,Inc.
・基本的な画像処理
幾何変換
アフィン変換
拡大縮小 回転 平行移動 せん断(Skew)
a = 0.7
d = 0.7
tx = 0.0
ty = 0.0
b = 0.0
c = 0.0
𝑥′
𝑦′
1
=
𝑎 𝑏 𝑡1
𝑐 𝑑 𝑡5
0 0 1
𝑥
𝑦
1
17© 2017 Global Walkers,Inc.
・基本的な画像処理
幾何変換
アフィン変換
拡大縮小 回転 平行移動 せん断(Skew)
a = cosθ
d = cosθ
tx = 0.0
ty = 0.0
b = -sinθ
c = sinθ
𝑥′
𝑦′
1
=
𝑎 𝑏 𝑡1
𝑐 𝑑 𝑡5
0 0 1
𝑥
𝑦
1
18© 2017 Global Walkers,Inc.
・基本的な画像処理
幾何変換
アフィン変換
拡大縮小 回転 平行移動 せん断(Skew)
a = 0.0
d = 0.0
tx = 10.0
ty = 20.0
b = 0.0
c = 0.0
𝑥′
𝑦′
1
=
𝑎 𝑏 𝑡1
𝑐 𝑑 𝑡5
0 0 1
𝑥
𝑦
1
19© 2017 Global Walkers,Inc.
・基本的な画像処理
幾何変換
アフィン変換
拡大縮小 回転 平行移動 せん断(Skew)
a = 1.0
d = 1.0
tx = 0.0
ty = 0.0
b = tanθ
c = 0.0
a = 1.0
d = 1.0
tx = 0.0
ty = 0.0
b = 0.0
c = tanθor
𝑥′
𝑦′
1
=
𝑎 𝑏 𝑡1
𝑐 𝑑 𝑡5
0 0 1
𝑥
𝑦
1
20© 2017 Global Walkers,Inc.
アフィン変換と射影変換
Perspective
transformation
Affine
transformation
21© 2017 Global Walkers,Inc.
アフィン変換と射影変換
Perspective
transformation
Affine
transformation
src_pts = np.float32([[211, 321], [539, 133], [634, 479]])
dst_pts = np.float32([[155, 170], [875, 170], [875, 650]])
affine_mat = cv2.getAffineTransform(src_pts, dst_pts)
size = tuple(np.array([img.shape[1], img.shape[0]]))
img_afn = cv2.warpAffine(img, warp_mat, size)
src_pts = np.float32([[211, 321], [539, 133], [634, 479],
[255, 590]])
dst_pts = np.float32([[155, 170], [875, 170], [875, 650],
[155, 650]])
homo = cv2. getPerspectiveTransform(src_pts,dst_pts)
size = tuple(np.array([img.shape[1], img.shape[0]]))
img_afn = cv2. warpPerspective(img, homo, size)
22© 2017 Global Walkers,Inc.
射影変換
𝑠
𝑥′
𝑦′
1
=
𝑎 𝑏 𝑐
𝑑 𝑒 𝑓
𝑔 ℎ 1
𝑥
𝑦
1
𝑅 =
𝑐𝑜𝑠𝜓𝑐𝑜𝑠𝜙 −𝑐𝑜𝑠𝜓𝑠𝑖𝑛𝜙𝑠𝑖𝑛𝜃 − 𝑠𝑖𝑛𝜓𝑐𝑜𝑠𝜃 𝑐𝑜𝑠𝜓𝑠𝑖𝑛𝜙𝑐𝑜𝑠𝜃 − 𝑠𝑖𝑛𝜓𝑠𝑖𝑛𝜃
𝑠𝑖𝑛𝜓𝑐𝑜𝑠𝜙 −𝑠𝑖𝑛𝜓𝑠𝑖𝑛𝜙𝑠𝑖𝑛𝜃 + 𝑐𝑜𝑠𝜓𝑐𝑜𝑠𝜃 𝑠𝑖𝑛𝜓𝑠𝑖𝑛𝜙𝑐𝑜𝑠𝜃 + 𝑐𝑜𝑠𝜓𝑠𝑖𝑛𝜃
−𝑠𝑖𝑛𝜙 −𝑐𝑜𝑠𝜙𝑠𝑖𝑛𝜃 𝑐𝑜𝑠𝜙𝑐𝑜𝑠𝜃
T =
𝑡1
𝑡5
𝑡D
Perspective
transformation
注意点:カメラの平行移動、回転では起こり得ない変換も可能
(射影変換行列8自由度 > 回転・平行移動 6自由度)
外部パラメータから射影変換行列を計算
Perspective
transformation
𝜓 = 0.0
𝜙 = 0.5
𝜃 = 0.5
23© 2017 Global Walkers,Inc.
画像の縮小、拡大
平均画素法
INTER_AREA
線形補間
INTER_LINEAR
(デフォルト)
resize
※ 拡大にはINTER_LINEARか、INTER_QUBIC
24© 2017 Global Walkers,Inc.
・コンピュータビジョンの基礎
内部パラメータ、外部パラメータ
・画像幾何学変換
アフィン変換とHomography変換、 画像の縮小、拡大
・ステレオカメラとカメラキャリブレーション
・画像の加工
閾値処理、ガンマ補正、色彩補正
・空間フィルタ
エッジ検出、平滑化
・Hough変換
・背景差分、フレーム間差分
・機械学習による物体検出
Adaboost + Haar-like
・オプティカルフロー、トラッキング
本日の内容
ステレオカメラによる3次元計測結果例
© 2017 Global Walkers, Inc.
近く
遠く
出典:
http://eetimes.jp/ee/articles/1401/23/news016_2.html
レンズ歪
© 2017 Global Walkers, Inc.
26
放射状歪(Radial Distortion) 接線状歪(Tangential Distortion)
𝑥"QRRS"TSU = 𝑥(1 + 𝑘X 𝑟Z + 𝑘Z 𝑟[ + 𝑘 𝑟]) + (2𝑝X 𝑥𝑦 + 𝑝Z(𝑟Z + 2𝑥Z)
𝑦"QRRS"TSU = 𝑦(1 + 𝑘X 𝑟Z + 𝑘Z 𝑟[ + 𝑘 𝑟]) + (2𝑝X 𝑥𝑦 + 𝑝Z(𝑟Z + 2𝑦Z)
カメラキャリブレーションの処理フロー
© 2017 Global Walkers, Inc.
CameraRCameraL
27
特徴点の検出 パラメータ初期値算出
・平面パターン/カメラ間の
Homography行列を求める
・内部パラメータ、
外部パラメータの初期値を求める
精度が低いため、設計値が既知
の場合は、設計値を用いた方が良い
バンドルアジャストメント
【非線形最適化】
Levenberg-Marquardt法により
再投影誤差を最小化する
レンズ歪パラメータも含む
全パラメータ
カメラと平面パターン間の外部パラメータ
平面パターンの左上を基準
ステレオカメラの要素技術 カメラキャリブレーション
© 2017 Global Walkers, Inc.
28
Circle Gridの方が、ばらつき、誤差ともに小さい
ステレオカメラの処理フロー
© 2017 Global Walkers, Inc.
CameraRCameraL
カメラキャリブレーション
レクティフィ
ケーション
ステレオ
マッチング
CameraL CameraR CameraL CameraR Disparity Map
29
内部パラメータ
レンズ歪パラメータ
カメラ間の外部パラメータ
30© 2017 Global Walkers,Inc.
ステレオカメラ パッシブ方式の原理
P3次元点
画像平面 画像平面
カメラA カメラB
撮像された点
BP撮像された点
AP
31© 2017 Global Walkers,Inc.
ステレオカメラ パッシブ方式の原理
2P
1P
3P
4P
5P
Lp Rp
Re
LCamera
Le
RCamera
エピポーラ線
32© 2017 Global Walkers,Inc.
ステレオカメラ パッシブ方式の原理
1P
Lp Rp
LCamera
RCamera
エピポーラ線
33© 2017 Global Walkers,Inc.
・コンピュータビジョンの基礎
内部パラメータ、外部パラメータ
・画像幾何学変換
アフィン変換とHomography変換、 画像の縮小、拡大
・ステレオカメラとカメラキャリブレーション
・画像の加工
閾値処理、ガンマ補正、色彩補正
・空間フィルタ
エッジ検出、平滑化
・Hough変換
・背景差分、フレーム間差分
・機械学習による物体検出
Adaboost + Haar-like
・オプティカルフロー、トラッキング
本日の内容
34© 2017 Global Walkers,Inc.
2値化 THRESH_BINARY
35© 2017 Global Walkers,Inc.
2値化 THRESH_TOZERO
36© 2017 Global Walkers,Inc.
2値化 THRESH_TRUNC
37© 2017 Global Walkers,Inc.
ガンマ補正
gamma = 1.8
lut = np.zeros((256, 1), dtype = 'uint8')
for i in range(256):
lut[i][0] = 255 * pow(float(i) / 255, 1.0 / gamma)
img_gamma = cv2.LUT(img, lut)
38© 2017 Global Walkers,Inc.
彩度の補正
https://ja.wikipedia.org/wiki/HSV色空間https://ja.wikipedia.org/wiki/RGB
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
cvtColor
Sの値を補正すれば良い!
39© 2017 Global Walkers,Inc.
彩度の補正
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
img_hsv[:,:,1]= np.clip(img_hsv[:,:,1]*1.4, 0, 255)
img_rgb=cv2.cvtColor(img_hsv, cv2.COLOR_HSV2BGR)
彩度を上げる
彩度を下げる
40© 2017 Global Walkers,Inc.
明度の補正
https://ja.wikipedia.org/wiki/HSV色空間https://ja.wikipedia.org/wiki/RGB
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
cvtColor
Vの値を補正すれば良い!
41© 2017 Global Walkers,Inc.
明度の補正
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
img_hsv[:,:,2]= np.clip(img_hsv[:,:,2]*1.4, 0, 255)
img_rgb=cv2.cvtColor(img_hsv, cv2.COLOR_HSV2BGR)
明度を上げる
明度を下げる
42© 2017 Global Walkers,Inc.
色相の補正
https://ja.wikipedia.org/wiki/HSV色空間https://ja.wikipedia.org/wiki/RGB
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
cvtColor
Hの値を補正すれば良い!
43© 2017 Global Walkers,Inc.
色相の補正
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
img_hsv[:,:,0]= img_hsv[:,:,0]-20
img_rgb=cv2.cvtColor(img_hsv, cv2.COLOR_HSV2BGR)
色相をずらす
(プラス)
色相をずらす
(マイナス)
44© 2017 Global Walkers,Inc.
・コンピュータビジョンの基礎
内部パラメータ、外部パラメータ
・画像幾何学変換
アフィン変換とHomography変換、 画像の縮小、拡大
・ステレオカメラとカメラキャリブレーション
・画像の加工
閾値処理、ガンマ補正、色彩補正
・空間フィルタ
エッジ検出、平滑化
・Hough変換
・背景差分、フレーム間差分
・機械学習による物体検出
Adaboost + Haar-like
・オプティカルフロー、トラッキング
本日の内容
45© 2017 Global Walkers,Inc.
エッジ検出 Sobel Filter
1 0 -1
2 0 -2
1 0 -1
1 2 1
0 0 0
-1 -2 -1
Sobel Filter
46© 2017 Global Walkers,Inc.
エッジ検出 Sobel Filter
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
dx = cv2.Sobel(img_gray, cv2.CV_64F, 1, 0, ksize=3)
dy = cv2.Sobel(img_gray, cv2.CV_64F, 0, 1, ksize=3)
grad = np.sqrt(dx ** 2 + dy ** 2)
grad = grad/np.max(grad)*255
grad8 = grad.astype(np.uint8)
47© 2017 Global Walkers,Inc.
エッジ検出 Canny
Hysteresis Thresholding
High ThresholdとLow Thresholdを用いる。
High Threshold以上: Edge
Low Threshold以下: 非Edge
High Threshold と Low Thresholdの間: Edgeと判定された画素に繋がっていればEdge
勾配方向
エッジ方向Non-maximum Suppression
勾配方向の最大値だけ残して残りを消去 → 細線化されます。
処理としては勾配方向に3画素みて中心が最大値だったら残す
48© 2017 Global Walkers,Inc.
エッジ検出 Canny
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
grad = cv2.Canny(img_gray, 100, 200)
49© 2017 Global Walkers,Inc.
平滑化 移動平均
1/9 1/9 1/9
1/9 1/9 1/9
1/9 1/9 1/9
移動平均フィルタ
50© 2017 Global Walkers,Inc.
平滑化 ガウシアン
1/16 2/16 1/16
2/16 4/16 2/16
1/16 2/16 1/16
ガウシアンフィルタ
𝑓 𝑥, 𝑦 =
1
2𝜋𝜎Z
𝑒𝑥𝑝 −
𝑥Z
+ 𝑦Z
2𝜎Z
51© 2017 Global Walkers,Inc.
平滑化
移動平均
※ 任意のフィルタの畳み込み演算cv2.filter2Dでも可
ガウシアン
img_blur = cv2.blur(img,(5,5)) img_gblur = cv2.GaussianBlur(img,(5,5), 0)
※ ごま塩ノイズ等には、cv2.medianBlur()が効果的
※ エッジをを保存したい場合は、cv2.bilateralFilter()
52© 2017 Global Walkers,Inc.
・コンピュータビジョンの基礎
内部パラメータ、外部パラメータ
・画像幾何学変換
アフィン変換とHomography変換、 画像の縮小、拡大
・ステレオカメラとカメラキャリブレーション
・画像の加工
閾値処理、ガンマ補正、色彩補正
・空間フィルタ
エッジ検出、平滑化
・Hough変換
・背景差分、フレーム間差分
・機械学習による物体検出
Adaboost + Haar-like
・オプティカルフロー、トラッキング
本日の内容
53© 2017 Global Walkers,Inc.
Hough変換 直線
𝜃
𝜌
𝜌 = 𝑥	𝑐𝑜𝑠𝜃 + 𝑦	𝑠𝑖𝑛𝜃
𝑦 = 𝑎𝑥 + 𝑏
直線の方程式
各点を通る直線のρ、θを2次元空間に投票
ρ、θ空間への投票結果
同一直線上の点は、同じグリッドに
投票される
極大値を直線として検出
54© 2017 Global Walkers,Inc.
Hough変換 直線
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
dx = cv2.Sobel(img_gray, cv2.CV_64F, 1, 0, ksize=3)
dy = cv2.Sobel(img_gray, cv2.CV_64F, 0, 1, ksize=3)
grad = np.sqrt(dx ** 2 + dy ** 2)
grad = grad/np.max(grad)*255
grad8 = grad.astype(np.uint8)
thresh = 100
max_pixel = 255
ret, grad2 = cv2.threshold(grad8,thresh,max_pixel,cv2.THRESH_BINARY)
lines = cv2.HoughLines(grad2,1,np.pi/180,200)
for line in lines:
rho, theta = line[0]
a = np.cos(theta)
b = np.sin(theta)
x0 = a*rho
y0 = b*rho
x1 = int(x0 + 1000*(-b))
y1 = int(y0 + 1000*(a))
x2 = int(x0 - 1000*(-b))
y2 = int(y0 - 1000*(a))
cv2.line(img,(x1,y1),(x2,y2),(0,0,255),2) ※ cv2.HoughCircles()もあります
55© 2017 Global Walkers,Inc.
・コンピュータビジョンの基礎
内部パラメータ、外部パラメータ
・画像幾何学変換
アフィン変換とHomography変換、 画像の縮小、拡大
・ステレオカメラとカメラキャリブレーション
・画像の加工
閾値処理、ガンマ補正、色彩補正
・空間フィルタ
エッジ検出、平滑化
・Hough変換
・背景差分、フレーム間差分
・機械学習による物体検出
Adaboost + Haar-like
・オプティカルフロー、トラッキング
本日の内容
56© 2017 Global Walkers,Inc.
フレーム間差分
論理積
差分 差分
57© 2017 Global Walkers,Inc.
・コンピュータビジョンの基礎
内部パラメータ、外部パラメータ
・画像幾何学変換
アフィン変換とHomography変換、 画像の縮小、拡大
・ステレオカメラとカメラキャリブレーション
・画像の加工
閾値処理、ガンマ補正、色彩補正
・空間フィルタ
エッジ検出、平滑化
・Hough変換
・背景差分、フレーム間差分
・機械学習による物体検出
Adaboost + Haar-like
・オプティカルフロー、トラッキング
本日の内容
58© 2017 Global Walkers,Inc.
顔検出、人検出
Sachin Sudhakar Farfade, Mohammad Saberian, Li-Jia Li, ” Multi-view Face Detection Using Deep Convolutional Neural Networks”, ICMR2015
59© 2017 Global Walkers,Inc.
機械学習による2クラス分類
ix
jx
マージン
Label = 1
Label = -1
Label = 1 ⇨ 顔
Label = 2 ⇨ 顔以外
g( 𝒙) = 0
識別境界を学習で求める
60© 2017 Global Walkers,Inc.
特徴量抽出と機械学習
特徴量抽出
学習
学習フェーズ 識別フェーズ
学習結果
学習画像
顔 顔以外
リサイズ
特徴量抽出
識別
リサイズ
識別結果(顔 or 顔以外)
61© 2017 Global Walkers,Inc.
Haar-like特徴量
顔の検出などに適している
62© 2017 Global Walkers,Inc.
Adaboost
x
)(1 xh
)(2 xh
)(3 xh
)(xNh
+ y
1a
2a
3a
Na
63© 2017 Global Walkers,Inc.
HoG (Histograms of Oriented Gradients) 特徴量
人の輪郭は多種多様
64© 2017 Global Walkers,Inc.
HoG (Histograms of Oriented Gradients) 特徴量
人の検出などに適している
65© 2017 Global Walkers,Inc.
HOG (Histograms of Oriented Gradients) 特徴量
平均輝度勾配 SVMで人と
判定するため
に有用な
ブロック
SVMで人以外と
判定するため
に有用な
ブロック
HOG特徴量 SVMで人と
判定するため
に有用な
ブロックの
HOG特徴超
SVMで人以外と
判定する
ために有用な
ブロックの
HOG特徴超
66© 2017 Global Walkers,Inc.
・コンピュータビジョンの基礎
内部パラメータ、外部パラメータ
・画像幾何学変換
アフィン変換とHomography変換、 画像の縮小、拡大
・ステレオカメラとカメラキャリブレーション
・画像の加工
閾値処理、ガンマ補正、色彩補正
・空間フィルタ
エッジ検出、平滑化
・Hough変換
・背景差分、フレーム間差分
・機械学習による物体検出
Adaboost + Haar-like
・オプティカルフロー、トラッキング
本日の内容
67© 2017 Global Walkers,Inc.
疎なフロー: Lucas-Kanade法
密なフロー: Horn-Schunck法、Gunnar Farneback法
オプティカルフロー Lucas-Kanade法
𝐼 𝑥 + 𝑢, 𝑦 + 𝑣 = 𝑇(𝑥, 𝑦)
𝐼 𝑥 + 𝑢, 𝑦 + 𝑣 ≈ 𝐼 𝑥, 𝑦 +
𝜕𝐼
𝜕𝑥
𝑢 +
𝜕𝐼
𝜕𝑦
𝑣
テイラー展開
h 𝐼1 𝐼1 h 𝐼1 𝐼5
h 𝐼1 𝐼5 h 𝐼5 𝐼5
𝑢
𝑣
= −
h 𝐼1 𝐼T
h 𝐼1 𝐼T 𝐼1 =
𝜕𝐼
𝜕𝑥
𝐼5 =
𝜕𝐼
𝜕𝑦
𝐼T = 𝑇 𝑥, 𝑦 − 𝐼(𝑥 + 𝑢, 𝑦 + 𝑣)
ピラミッド画像の解像度の低い画像から
順番に計算
68© 2017 Global Walkers,Inc.
Lucas-Kanade法
𝑊(𝑥; 𝑝) 𝑥l
= 𝑥 + ∆𝑥 𝑦l
= 𝑦 + ∆𝑦
一気に解けないので、微小変化を考える
テイラー展開により線形化
⊿pについて偏微分
上式=0とし、⊿pについて解くと
69© 2017 Global Walkers,Inc.
・基本的な画像処理
オプティカルフロー
オプティカルフロー Lucas-Kanade法
https://www.youtube.com/watch?v=yoRHPOsBws8
70© 2017 Global Walkers,Inc.
トラッキング Median Flow
71© 2017 Global Walkers,Inc.
トラッキング Boosting
72© 2017 Global Walkers,Inc.
トラッキング TLD
73© 2017 Global Walkers,Inc.
トラッキング Kernelized Correlation Filter
w: 重みベクトル、x: 特徴量ベクトル、bバイアス
を最小化
74© 2017 Global Walkers,Inc.
トラッキング Kernelized Correlation Filter
1ピクセルずつシフトした画像群を生成し、それらを上式に示すcirculant matrixes(巡回行列)として扱う
巡回行列とベクトルの積は、上式の通りフーリエ空間のみで計算することができる
この巡回行列の特性を用いることで、繰り返し処理が不要な高速処理を実現
75© 2017 Global Walkers,Inc.
トラッキング結果
1) Trackerインスタンスの生成: cv::Tracker::create("アルゴリズム名")
2) 初期化: cv::Tracker::init(トラッキングを開始する画像, 対象物の外接矩形)
3) 更新: cv::Tracker::update(最新の画像, 対象物の外接矩形)
https://youtu.be/61QjSz-oLr8?t=61
76© 2017 Global Walkers,Inc.
コンピュータビジョン・機械学習のライブラリ
・OpenCV
・dlib
・VLFeat
・Point Cloud Library
など
77© 2017 Global Walkers,Inc.
OpenCVに実装されている処理の一例
基本的な機能
・imread ( ) 、imwrite ( )、imshow ( )、waitKey ( )、VideoCapture( )
・line( )、rectangle( )、putText( )
・hconcat( )、vconcat( )
基本的な画像処理
・エッジ検出:Sobel( )、2値化:threshold( )、
・背景差分: createBackgroundSubtractorMOG( )、 pyrMeanShiftFiltering.apply( )
・フレーム感差分:absdiff( ), bitwise_and( )
・領域分割:pyrMeanShiftFiltering( )、
幾何変換
・warpAffine( )、getRotationMatrix2D、getAffineTransform()
・warpPerspective( )、getPerspectiveTransform( )
オプティカルフロー
・goodFeaturesToTrack ( )、calcOpticalFlowPyrLK ( )
機械学習
・ CascadeClassifier ( )、CascadeClassifier.detectMultiScale( )
78© 2017 Global Walkers,Inc.
最後に
GWゼミ #3: 9月6日(水)
機械学習の基礎の続き
機械学習を用いた画像認識処理をAWS上で実行するために
GWゼミのグループにもご参加ください。
https://gwz.connpass.com
今後も勉強会を開催していきます
全てではないですが、発表資料を公開した際にグループ宛にメッセージを送信予定
79© 2017 Global Walkers,Inc.
最後に
コンテンツ × テクノロジーに共感し、
一緒に作り上げていく仲間募集中!!!
(正社員、契約社員、請負い、インターンなど相談可)
20170823【GWゼミ #2】コンピュータビジョンの基礎

More Related Content

What's hot

機械学習向けCGデータの量産手法の検討
機械学習向けCGデータの量産手法の検討機械学習向けCGデータの量産手法の検討
機械学習向けCGデータの量産手法の検討Silicon Studio Corporation
 
リアルタイムレイトレーシング時代を生き抜くためのデノイザー開発入門
リアルタイムレイトレーシング時代を生き抜くためのデノイザー開発入門リアルタイムレイトレーシング時代を生き抜くためのデノイザー開発入門
リアルタイムレイトレーシング時代を生き抜くためのデノイザー開発入門Silicon Studio Corporation
 
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例Recruit Technologies
 
A3RT -The details and actual use cases of“Analytics & Artificial intelligence...
A3RT -The details and actual use cases of“Analytics & Artificial intelligence...A3RT -The details and actual use cases of“Analytics & Artificial intelligence...
A3RT -The details and actual use cases of“Analytics & Artificial intelligence...Recruit Technologies
 
VIEW2013 Binarycode-based Object Recognition
VIEW2013 Binarycode-based Object RecognitionVIEW2013 Binarycode-based Object Recognition
VIEW2013 Binarycode-based Object RecognitionHironobu Fujiyoshi
 
CEDEC 2012 コンピュータ・グラフィクス関連の最新論文紹介~Modular Radiance Transfer法の解説~
CEDEC 2012 コンピュータ・グラフィクス関連の最新論文紹介~Modular Radiance Transfer法の解説~CEDEC 2012 コンピュータ・グラフィクス関連の最新論文紹介~Modular Radiance Transfer法の解説~
CEDEC 2012 コンピュータ・グラフィクス関連の最新論文紹介~Modular Radiance Transfer法の解説~Silicon Studio Corporation
 
運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~
運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~
運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~Recruit Technologies
 
シリコンスタジオの最新テクノロジーデモ技術解説
シリコンスタジオの最新テクノロジーデモ技術解説シリコンスタジオの最新テクノロジーデモ技術解説
シリコンスタジオの最新テクノロジーデモ技術解説Silicon Studio Corporation
 
物理ベース時代のライトマップベイク奮闘記
物理ベース時代のライトマップベイク奮闘記物理ベース時代のライトマップベイク奮闘記
物理ベース時代のライトマップベイク奮闘記Silicon Studio Corporation
 
CEDEC 2009 Imagire Day 続・レンダリスト養成講座
CEDEC 2009 Imagire Day 続・レンダリスト養成講座CEDEC 2009 Imagire Day 続・レンダリスト養成講座
CEDEC 2009 Imagire Day 続・レンダリスト養成講座Silicon Studio Corporation
 
CEDEC 2007 ゲーム開発者向け最新技術論文の解説・実装講座
CEDEC 2007 ゲーム開発者向け最新技術論文の解説・実装講座CEDEC 2007 ゲーム開発者向け最新技術論文の解説・実装講座
CEDEC 2007 ゲーム開発者向け最新技術論文の解説・実装講座Silicon Studio Corporation
 
CEDEC 2011 コンピュータ・グラフィクス関連の最新論文紹介 ~Shape Matching法とその周辺技術~
CEDEC 2011 コンピュータ・グラフィクス関連の最新論文紹介 ~Shape Matching法とその周辺技術~CEDEC 2011 コンピュータ・グラフィクス関連の最新論文紹介 ~Shape Matching法とその周辺技術~
CEDEC 2011 コンピュータ・グラフィクス関連の最新論文紹介 ~Shape Matching法とその周辺技術~Silicon Studio Corporation
 
エンド・トゥ・エンドAI描画に至る道 - 高度構造化入力のためのニューラルネットワーク構成やインフラの検討 -
エンド・トゥ・エンドAI描画に至る道 - 高度構造化入力のためのニューラルネットワーク構成やインフラの検討 -エンド・トゥ・エンドAI描画に至る道 - 高度構造化入力のためのニューラルネットワーク構成やインフラの検討 -
エンド・トゥ・エンドAI描画に至る道 - 高度構造化入力のためのニューラルネットワーク構成やインフラの検討 -Silicon Studio Corporation
 
シリコンスタジオによる HDR出力対応の理論と実践
シリコンスタジオによるHDR出力対応の理論と実践シリコンスタジオによるHDR出力対応の理論と実践
シリコンスタジオによる HDR出力対応の理論と実践Silicon Studio Corporation
 
CEDEC 2008 Imagire Day 最新世代機に関わる技術トラック
CEDEC 2008 Imagire Day 最新世代機に関わる技術トラックCEDEC 2008 Imagire Day 最新世代機に関わる技術トラック
CEDEC 2008 Imagire Day 最新世代機に関わる技術トラックSilicon Studio Corporation
 
ソーシャルデザインパターン -評判と情報収集-
ソーシャルデザインパターン -評判と情報収集-ソーシャルデザインパターン -評判と情報収集-
ソーシャルデザインパターン -評判と情報収集-Koichi Hamada
 
CEDEC 2008 Imagire Day レンダリスト養成講座 2.0
CEDEC 2008 Imagire Day レンダリスト養成講座 2.0CEDEC 2008 Imagire Day レンダリスト養成講座 2.0
CEDEC 2008 Imagire Day レンダリスト養成講座 2.0Silicon Studio Corporation
 
GANsの最新動向: 応用領域でのGANs (CVPR 2018 完全読破チャレンジ報告会)
GANsの最新動向: 応用領域でのGANs (CVPR 2018 完全読破チャレンジ報告会) GANsの最新動向: 応用領域でのGANs (CVPR 2018 完全読破チャレンジ報告会)
GANsの最新動向: 応用領域でのGANs (CVPR 2018 完全読破チャレンジ報告会) cvpaper. challenge
 
『モバゲーの大規模データマイニング基盤におけるHadoop活用』-Hadoop Conference Japan 2011- #hcj2011
『モバゲーの大規模データマイニング基盤におけるHadoop活用』-Hadoop Conference Japan 2011- #hcj2011 『モバゲーの大規模データマイニング基盤におけるHadoop活用』-Hadoop Conference Japan 2011- #hcj2011
『モバゲーの大規模データマイニング基盤におけるHadoop活用』-Hadoop Conference Japan 2011- #hcj2011 Koichi Hamada
 
CHAIN公開セミナー20200817吉田発表資料
CHAIN公開セミナー20200817吉田発表資料CHAIN公開セミナー20200817吉田発表資料
CHAIN公開セミナー20200817吉田発表資料Masatoshi Yoshida
 

What's hot (20)

機械学習向けCGデータの量産手法の検討
機械学習向けCGデータの量産手法の検討機械学習向けCGデータの量産手法の検討
機械学習向けCGデータの量産手法の検討
 
リアルタイムレイトレーシング時代を生き抜くためのデノイザー開発入門
リアルタイムレイトレーシング時代を生き抜くためのデノイザー開発入門リアルタイムレイトレーシング時代を生き抜くためのデノイザー開発入門
リアルタイムレイトレーシング時代を生き抜くためのデノイザー開発入門
 
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
 
A3RT -The details and actual use cases of“Analytics & Artificial intelligence...
A3RT -The details and actual use cases of“Analytics & Artificial intelligence...A3RT -The details and actual use cases of“Analytics & Artificial intelligence...
A3RT -The details and actual use cases of“Analytics & Artificial intelligence...
 
VIEW2013 Binarycode-based Object Recognition
VIEW2013 Binarycode-based Object RecognitionVIEW2013 Binarycode-based Object Recognition
VIEW2013 Binarycode-based Object Recognition
 
CEDEC 2012 コンピュータ・グラフィクス関連の最新論文紹介~Modular Radiance Transfer法の解説~
CEDEC 2012 コンピュータ・グラフィクス関連の最新論文紹介~Modular Radiance Transfer法の解説~CEDEC 2012 コンピュータ・グラフィクス関連の最新論文紹介~Modular Radiance Transfer法の解説~
CEDEC 2012 コンピュータ・グラフィクス関連の最新論文紹介~Modular Radiance Transfer法の解説~
 
運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~
運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~
運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~
 
シリコンスタジオの最新テクノロジーデモ技術解説
シリコンスタジオの最新テクノロジーデモ技術解説シリコンスタジオの最新テクノロジーデモ技術解説
シリコンスタジオの最新テクノロジーデモ技術解説
 
物理ベース時代のライトマップベイク奮闘記
物理ベース時代のライトマップベイク奮闘記物理ベース時代のライトマップベイク奮闘記
物理ベース時代のライトマップベイク奮闘記
 
CEDEC 2009 Imagire Day 続・レンダリスト養成講座
CEDEC 2009 Imagire Day 続・レンダリスト養成講座CEDEC 2009 Imagire Day 続・レンダリスト養成講座
CEDEC 2009 Imagire Day 続・レンダリスト養成講座
 
CEDEC 2007 ゲーム開発者向け最新技術論文の解説・実装講座
CEDEC 2007 ゲーム開発者向け最新技術論文の解説・実装講座CEDEC 2007 ゲーム開発者向け最新技術論文の解説・実装講座
CEDEC 2007 ゲーム開発者向け最新技術論文の解説・実装講座
 
CEDEC 2011 コンピュータ・グラフィクス関連の最新論文紹介 ~Shape Matching法とその周辺技術~
CEDEC 2011 コンピュータ・グラフィクス関連の最新論文紹介 ~Shape Matching法とその周辺技術~CEDEC 2011 コンピュータ・グラフィクス関連の最新論文紹介 ~Shape Matching法とその周辺技術~
CEDEC 2011 コンピュータ・グラフィクス関連の最新論文紹介 ~Shape Matching法とその周辺技術~
 
エンド・トゥ・エンドAI描画に至る道 - 高度構造化入力のためのニューラルネットワーク構成やインフラの検討 -
エンド・トゥ・エンドAI描画に至る道 - 高度構造化入力のためのニューラルネットワーク構成やインフラの検討 -エンド・トゥ・エンドAI描画に至る道 - 高度構造化入力のためのニューラルネットワーク構成やインフラの検討 -
エンド・トゥ・エンドAI描画に至る道 - 高度構造化入力のためのニューラルネットワーク構成やインフラの検討 -
 
シリコンスタジオによる HDR出力対応の理論と実践
シリコンスタジオによるHDR出力対応の理論と実践シリコンスタジオによるHDR出力対応の理論と実践
シリコンスタジオによる HDR出力対応の理論と実践
 
CEDEC 2008 Imagire Day 最新世代機に関わる技術トラック
CEDEC 2008 Imagire Day 最新世代機に関わる技術トラックCEDEC 2008 Imagire Day 最新世代機に関わる技術トラック
CEDEC 2008 Imagire Day 最新世代機に関わる技術トラック
 
ソーシャルデザインパターン -評判と情報収集-
ソーシャルデザインパターン -評判と情報収集-ソーシャルデザインパターン -評判と情報収集-
ソーシャルデザインパターン -評判と情報収集-
 
CEDEC 2008 Imagire Day レンダリスト養成講座 2.0
CEDEC 2008 Imagire Day レンダリスト養成講座 2.0CEDEC 2008 Imagire Day レンダリスト養成講座 2.0
CEDEC 2008 Imagire Day レンダリスト養成講座 2.0
 
GANsの最新動向: 応用領域でのGANs (CVPR 2018 完全読破チャレンジ報告会)
GANsの最新動向: 応用領域でのGANs (CVPR 2018 完全読破チャレンジ報告会) GANsの最新動向: 応用領域でのGANs (CVPR 2018 完全読破チャレンジ報告会)
GANsの最新動向: 応用領域でのGANs (CVPR 2018 完全読破チャレンジ報告会)
 
『モバゲーの大規模データマイニング基盤におけるHadoop活用』-Hadoop Conference Japan 2011- #hcj2011
『モバゲーの大規模データマイニング基盤におけるHadoop活用』-Hadoop Conference Japan 2011- #hcj2011 『モバゲーの大規模データマイニング基盤におけるHadoop活用』-Hadoop Conference Japan 2011- #hcj2011
『モバゲーの大規模データマイニング基盤におけるHadoop活用』-Hadoop Conference Japan 2011- #hcj2011
 
CHAIN公開セミナー20200817吉田発表資料
CHAIN公開セミナー20200817吉田発表資料CHAIN公開セミナー20200817吉田発表資料
CHAIN公開セミナー20200817吉田発表資料
 

Similar to 20170823【GWゼミ #2】コンピュータビジョンの基礎

これからのコンピュータビジョン技術 - cvpaper.challenge in PRMU Grand Challenge 2016 (PRMU研究会 2...
これからのコンピュータビジョン技術 - cvpaper.challenge in PRMU Grand Challenge 2016 (PRMU研究会 2...これからのコンピュータビジョン技術 - cvpaper.challenge in PRMU Grand Challenge 2016 (PRMU研究会 2...
これからのコンピュータビジョン技術 - cvpaper.challenge in PRMU Grand Challenge 2016 (PRMU研究会 2...cvpaper. challenge
 
B3スタートアップ コンピュータビジョンの現在と未来にやるべきこと(東京電機大学講演)
B3スタートアップ コンピュータビジョンの現在と未来にやるべきこと(東京電機大学講演)B3スタートアップ コンピュータビジョンの現在と未来にやるべきこと(東京電機大学講演)
B3スタートアップ コンピュータビジョンの現在と未来にやるべきこと(東京電機大学講演)cvpaper. challenge
 
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-Recruit Technologies
 
ソフトウエアジャパン2017 IT Forum AITC(2)
ソフトウエアジャパン2017 IT Forum AITC(2)ソフトウエアジャパン2017 IT Forum AITC(2)
ソフトウエアジャパン2017 IT Forum AITC(2)aitc_jp
 
大規模サイトのSEOとGoogleアナリティクス(辻正浩)-_gaTrackerでの発表資料
大規模サイトのSEOとGoogleアナリティクス(辻正浩)-_gaTrackerでの発表資料大規模サイトのSEOとGoogleアナリティクス(辻正浩)-_gaTrackerでの発表資料
大規模サイトのSEOとGoogleアナリティクス(辻正浩)-_gaTrackerでの発表資料tsuj
 
大規模画像認識とその周辺
大規模画像認識とその周辺大規模画像認識とその周辺
大規模画像認識とその周辺n_hidekey
 
GP4エンジニアリング・ソリューションのご紹介
GP4エンジニアリング・ソリューションのご紹介GP4エンジニアリング・ソリューションのご紹介
GP4エンジニアリング・ソリューションのご紹介中村昌弘 中村昌弘
 
リクルート式ビッグデータ活用術
リクルート式ビッグデータ活用術リクルート式ビッグデータ活用術
リクルート式ビッグデータ活用術Recruit Technologies
 
Internetトラフィックエンジニアリングの現実
Internetトラフィックエンジニアリングの現実Internetトラフィックエンジニアリングの現実
Internetトラフィックエンジニアリングの現実J-Stream Inc.
 
androidのgpsアプリってどうよ|株式会社コンテンツワン
androidのgpsアプリってどうよ|株式会社コンテンツワンandroidのgpsアプリってどうよ|株式会社コンテンツワン
androidのgpsアプリってどうよ|株式会社コンテンツワンKatsuaki Sato
 
RTTJapan 会社概要 140120
RTTJapan 会社概要 140120RTTJapan 会社概要 140120
RTTJapan 会社概要 140120RTT Japan K.K
 
Hybrid Sourcing Service [evelink] by CSK Serviceware
Hybrid Sourcing Service [evelink] by CSK ServicewareHybrid Sourcing Service [evelink] by CSK Serviceware
Hybrid Sourcing Service [evelink] by CSK ServicewareIntelligence, Ltd.
 
ハイブリッドソーシング 「evelink」 ご紹介資料
ハイブリッドソーシング 「evelink」 ご紹介資料ハイブリッドソーシング 「evelink」 ご紹介資料
ハイブリッドソーシング 「evelink」 ご紹介資料CSK Serviceware
 
Dyna traceによるuxマネジメント
Dyna traceによるuxマネジメントDyna traceによるuxマネジメント
Dyna traceによるuxマネジメント伸夫 森本
 
kintoneとカラーユニバーサルデザイン
kintoneとカラーユニバーサルデザインkintoneとカラーユニバーサルデザイン
kintoneとカラーユニバーサルデザインKobayashi Daisuke
 
CIが分からない PE(SETエンジニア)1年生が VRT(ビジュアルリグレッションテスト)をハードル低くCIを運用した
CIが分からないPE(SETエンジニア)1年生がVRT(ビジュアルリグレッションテスト)をハードル低くCIを運用したCIが分からないPE(SETエンジニア)1年生がVRT(ビジュアルリグレッションテスト)をハードル低くCIを運用した
CIが分からない PE(SETエンジニア)1年生が VRT(ビジュアルリグレッションテスト)をハードル低くCIを運用したssuser0be501
 
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介ADVENTURE Project
 
E-commerce企業におけるビッグデータへの挑戦と課題‐機械学習への期待について‐
E-commerce企業におけるビッグデータへの挑戦と課題‐機械学習への期待について‐E-commerce企業におけるビッグデータへの挑戦と課題‐機械学習への期待について‐
E-commerce企業におけるビッグデータへの挑戦と課題‐機械学習への期待について‐Rakuten Group, Inc.
 
Si2017 チームイエスマン 発表スライド
Si2017 チームイエスマン 発表スライドSi2017 チームイエスマン 発表スライド
Si2017 チームイエスマン 発表スライドRobotics Engineer
 

Similar to 20170823【GWゼミ #2】コンピュータビジョンの基礎 (20)

これからのコンピュータビジョン技術 - cvpaper.challenge in PRMU Grand Challenge 2016 (PRMU研究会 2...
これからのコンピュータビジョン技術 - cvpaper.challenge in PRMU Grand Challenge 2016 (PRMU研究会 2...これからのコンピュータビジョン技術 - cvpaper.challenge in PRMU Grand Challenge 2016 (PRMU研究会 2...
これからのコンピュータビジョン技術 - cvpaper.challenge in PRMU Grand Challenge 2016 (PRMU研究会 2...
 
B3スタートアップ コンピュータビジョンの現在と未来にやるべきこと(東京電機大学講演)
B3スタートアップ コンピュータビジョンの現在と未来にやるべきこと(東京電機大学講演)B3スタートアップ コンピュータビジョンの現在と未来にやるべきこと(東京電機大学講演)
B3スタートアップ コンピュータビジョンの現在と未来にやるべきこと(東京電機大学講演)
 
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
 
ソフトウエアジャパン2017 IT Forum AITC(2)
ソフトウエアジャパン2017 IT Forum AITC(2)ソフトウエアジャパン2017 IT Forum AITC(2)
ソフトウエアジャパン2017 IT Forum AITC(2)
 
大規模サイトのSEOとGoogleアナリティクス(辻正浩)-_gaTrackerでの発表資料
大規模サイトのSEOとGoogleアナリティクス(辻正浩)-_gaTrackerでの発表資料大規模サイトのSEOとGoogleアナリティクス(辻正浩)-_gaTrackerでの発表資料
大規模サイトのSEOとGoogleアナリティクス(辻正浩)-_gaTrackerでの発表資料
 
大規模画像認識とその周辺
大規模画像認識とその周辺大規模画像認識とその周辺
大規模画像認識とその周辺
 
GP4エンジニアリング・ソリューションのご紹介
GP4エンジニアリング・ソリューションのご紹介GP4エンジニアリング・ソリューションのご紹介
GP4エンジニアリング・ソリューションのご紹介
 
リクルート式ビッグデータ活用術
リクルート式ビッグデータ活用術リクルート式ビッグデータ活用術
リクルート式ビッグデータ活用術
 
中国市場提言(大津山)
中国市場提言(大津山)中国市場提言(大津山)
中国市場提言(大津山)
 
Internetトラフィックエンジニアリングの現実
Internetトラフィックエンジニアリングの現実Internetトラフィックエンジニアリングの現実
Internetトラフィックエンジニアリングの現実
 
androidのgpsアプリってどうよ|株式会社コンテンツワン
androidのgpsアプリってどうよ|株式会社コンテンツワンandroidのgpsアプリってどうよ|株式会社コンテンツワン
androidのgpsアプリってどうよ|株式会社コンテンツワン
 
RTTJapan 会社概要 140120
RTTJapan 会社概要 140120RTTJapan 会社概要 140120
RTTJapan 会社概要 140120
 
Hybrid Sourcing Service [evelink] by CSK Serviceware
Hybrid Sourcing Service [evelink] by CSK ServicewareHybrid Sourcing Service [evelink] by CSK Serviceware
Hybrid Sourcing Service [evelink] by CSK Serviceware
 
ハイブリッドソーシング 「evelink」 ご紹介資料
ハイブリッドソーシング 「evelink」 ご紹介資料ハイブリッドソーシング 「evelink」 ご紹介資料
ハイブリッドソーシング 「evelink」 ご紹介資料
 
Dyna traceによるuxマネジメント
Dyna traceによるuxマネジメントDyna traceによるuxマネジメント
Dyna traceによるuxマネジメント
 
kintoneとカラーユニバーサルデザイン
kintoneとカラーユニバーサルデザインkintoneとカラーユニバーサルデザイン
kintoneとカラーユニバーサルデザイン
 
CIが分からない PE(SETエンジニア)1年生が VRT(ビジュアルリグレッションテスト)をハードル低くCIを運用した
CIが分からないPE(SETエンジニア)1年生がVRT(ビジュアルリグレッションテスト)をハードル低くCIを運用したCIが分からないPE(SETエンジニア)1年生がVRT(ビジュアルリグレッションテスト)をハードル低くCIを運用した
CIが分からない PE(SETエンジニア)1年生が VRT(ビジュアルリグレッションテスト)をハードル低くCIを運用した
 
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介
 
E-commerce企業におけるビッグデータへの挑戦と課題‐機械学習への期待について‐
E-commerce企業におけるビッグデータへの挑戦と課題‐機械学習への期待について‐E-commerce企業におけるビッグデータへの挑戦と課題‐機械学習への期待について‐
E-commerce企業におけるビッグデータへの挑戦と課題‐機械学習への期待について‐
 
Si2017 チームイエスマン 発表スライド
Si2017 チームイエスマン 発表スライドSi2017 チームイエスマン 発表スライド
Si2017 チームイエスマン 発表スライド
 

20170823【GWゼミ #2】コンピュータビジョンの基礎

  • 2. 2© 2017 Global Walkers,Inc. グローバルウォーカーズ株式会社について Technology Contents Global Development Create Innovative Contents • 知育教育 Intellectual Training • 会話系コミュニケーション Border-less Communication • AI(人工知能) • Deep Learning(深層学習) • コンピュータビジョン Computer-Vision • VR(仮想現実), AR(拡張現実), MR(複合現実) コンテンツ開発 テクノロジー 海外事業開発 海外展開を視野に入れた、 ・技術提携企業開拓 ・オフショアパートナー開拓 ・販売パートナー開拓 を行います。 社内に最先端のIT要素技術を保持。 コンテンツにさらなる付加価値を持たせ、他者と は違うコンテンツの提供を目指します。 マーケットニーズを模索しつつ、継続的に コンテンツをリリースする。 その中からキラーコンテンツの開発を行います。 機械学習 コンピュータビジョン 知育:Birdrillシリーズ 会話:Talkbullシリーズ
  • 5. コンテンツ開発事業:教育コンテンツApp 今後の開発 リッチ&安価なコンテンツ 機械学習 自社保有先端技術 多種多様な 学習コンテンツ Global Walkers 知育コンテンツサービス IQ EQ 音楽 絵画 舞踊 運動 6つのカテゴリごとに、子供に最適な保有コンテンツとのマッチングを行い、コンテンツを提供 単に知育コンテンツを購入するのではなく、教育・成長の目的、才能に応じたコンテンツを選択 Deep Learning Computer Vision Support Vector Machine コンピュータビジョン・AR・VR 自社保有先端技術 5© 2017 Global Walkers,Inc.
  • 6. 6© 2017 Global Walkers,Inc. 自己紹介 樋口未来(ひぐち・みらい) プロフィール 日立製作所 日立研究所に入社後、自動車向けステレオカメラ、監視カメラの研究開発に従事。 2011年から1年間、米国カーネギーメロン大学にて客員研究員としてカメラキャリブレーション 技術の研究に携わり、フリーランスを経て2016年7月にグローバルウォーカーズ株式会社に参画。 また、東京大学大学院博士課程に在籍(休学中)。 一人称視点映像(First-person vision, Egocentric vision)の解析に関する研究を行っています。 コンピュータビジョン・機械学習をテーマに、マイナビニュースに寄稿連載中。 「機械の目が見たセカイ -コンピュータビジョンがつくるミライ」 http://news.mynavi.jp/series/cv_future/menu.html 専門: コンピュータビジョン、機械学習 プログラミング言語: C, C++, C#, Java, Swift, Python, Matlabなど 趣味: バイク、自転車、スノーボード、料理、フットサル(いまはやってない)など広く浅く twitter: @at_mirai
  • 7. 7© 2017 Global Walkers,Inc. ・コンピュータビジョンの基礎 内部パラメータ、外部パラメータ ・画像幾何学変換 アフィン変換とHomography変換、 画像の縮小、拡大 ・ステレオカメラとカメラキャリブレーション ・画像の加工 閾値処理、ガンマ補正、色彩補正 ・空間フィルタ エッジ検出、平滑化 ・Hough変換 ・背景差分、フレーム間差分 ・機械学習による物体検出 Adaboost + Haar-like ・オプティカルフロー、トラッキング 本日の内容
  • 8. 8© 2017 Global Walkers,Inc. ハードウェアの基礎 レンズ カラーフィルタ、IRカットフィルタ 撮像素子 フィルタ(偏光フィルタ等) I/F メモリ CPU 出力I/F モニター等 入射光 専用プロセッシング ユニット コンピュータ カメラ マイクロレンズ GPGPU, ASIC, FPGA
  • 9. 9© 2017 Global Walkers,Inc. 画像 モノクロ画像 = 8bitデータの2次元配列(原則) img[y座標][x座標] y x 0 0
  • 10. 10© 2017 Global Walkers,Inc. 画像 カラー画像 = 8bitデータの3次元配列(原則) img[y座標][x座標][R or G or B]
  • 11. 11© 2017 Global Walkers,Inc. ピンホールモデル 撮像素子 レンズ 焦点 焦点距離 f 入射光 入射光 Y y Z
  • 12. 𝑧" 𝑢 𝑣 1 = 𝐾 𝑅 𝑇 𝑋, 𝑌, 𝑍, 1 12© 2017 Global Walkers,Inc. 内部パラメータと外部パラメータ 外部パラメータ 内部パラメータ K = 𝛼1 𝛾 𝑢3 0 𝛼5 𝑣3 0 0 1 主点 𝑢3, 𝑣3 𝑂 焦点距離[pix] スキュー 0で良い
  • 13. 𝑧" 𝑢 𝑣 1 = 𝐾 𝑅 𝑇 𝑋, 𝑌, 𝑍, 1 13© 2017 Global Walkers,Inc. 内部パラメータと外部パラメータ 外部パラメータ 内部パラメータ 𝑅 = 𝑐𝑜𝑠𝜓 −𝑠𝑖𝑛𝜓 0 𝑠𝑖𝑛𝜓 𝑐𝑜𝑠𝜓 0 0 0 1 𝑐𝑜𝑠𝜙 0 𝑠𝑖𝑛𝜙 0 1 0 −𝑠𝑖𝑛𝜙 0 𝑐𝑜𝑠𝜙 1 0 0 0 𝑐𝑜𝑠𝜃 𝑠𝑖𝑛𝜃 0 −𝑠𝑖𝑛𝜃 𝑐𝑜𝑠𝜃 = 𝑐𝑜𝑠𝜓𝑐𝑜𝑠𝜙 −𝑐𝑜𝑠𝜓𝑠𝑖𝑛𝜙𝑠𝑖𝑛𝜃 − 𝑠𝑖𝑛𝜓𝑐𝑜𝑠𝜃 𝑐𝑜𝑠𝜓𝑠𝑖𝑛𝜙𝑐𝑜𝑠𝜃 − 𝑠𝑖𝑛𝜓𝑠𝑖𝑛𝜃 𝑠𝑖𝑛𝜓𝑐𝑜𝑠𝜙 −𝑠𝑖𝑛𝜓𝑠𝑖𝑛𝜙𝑠𝑖𝑛𝜃 + 𝑐𝑜𝑠𝜓𝑐𝑜𝑠𝜃 𝑠𝑖𝑛𝜓𝑠𝑖𝑛𝜙𝑐𝑜𝑠𝜃 + 𝑐𝑜𝑠𝜓𝑠𝑖𝑛𝜃 −𝑠𝑖𝑛𝜙 −𝑐𝑜𝑠𝜙𝑠𝑖𝑛𝜃 𝑐𝑜𝑠𝜙𝑐𝑜𝑠𝜃 T = 𝑡1 𝑡5 𝑡D K = 𝛼1 𝛾 𝑢3 0 𝛼5 𝑣3 0 0 1
  • 14. 14© 2017 Global Walkers,Inc. ・コンピュータビジョンの基礎 内部パラメータ、外部パラメータ ・画像幾何学変換 アフィン変換とHomography変換、 画像の縮小、拡大 ・ステレオカメラとカメラキャリブレーション ・画像の加工 閾値処理、ガンマ補正、色彩補正 ・空間フィルタ エッジ検出、平滑化 ・Hough変換 ・背景差分、フレーム間差分 ・機械学習による物体検出 Adaboost + Haar-like ・オプティカルフロー、トラッキング 本日の内容
  • 15. 15© 2017 Global Walkers,Inc. ・基本的な画像処理 幾何変換 アフィン変換 拡大縮小 回転 平行移動 せん断(Skew) 𝑥′ 𝑦′ = 𝑎 𝑏 𝑐 𝑑 𝑥 𝑦 + 𝑡1 𝑡5 𝑥′ 𝑦′ 1 = 𝑎 𝑏 𝑡1 𝑐 𝑑 𝑡5 0 0 1 𝑥 𝑦 1
  • 16. 16© 2017 Global Walkers,Inc. ・基本的な画像処理 幾何変換 アフィン変換 拡大縮小 回転 平行移動 せん断(Skew) a = 0.7 d = 0.7 tx = 0.0 ty = 0.0 b = 0.0 c = 0.0 𝑥′ 𝑦′ 1 = 𝑎 𝑏 𝑡1 𝑐 𝑑 𝑡5 0 0 1 𝑥 𝑦 1
  • 17. 17© 2017 Global Walkers,Inc. ・基本的な画像処理 幾何変換 アフィン変換 拡大縮小 回転 平行移動 せん断(Skew) a = cosθ d = cosθ tx = 0.0 ty = 0.0 b = -sinθ c = sinθ 𝑥′ 𝑦′ 1 = 𝑎 𝑏 𝑡1 𝑐 𝑑 𝑡5 0 0 1 𝑥 𝑦 1
  • 18. 18© 2017 Global Walkers,Inc. ・基本的な画像処理 幾何変換 アフィン変換 拡大縮小 回転 平行移動 せん断(Skew) a = 0.0 d = 0.0 tx = 10.0 ty = 20.0 b = 0.0 c = 0.0 𝑥′ 𝑦′ 1 = 𝑎 𝑏 𝑡1 𝑐 𝑑 𝑡5 0 0 1 𝑥 𝑦 1
  • 19. 19© 2017 Global Walkers,Inc. ・基本的な画像処理 幾何変換 アフィン変換 拡大縮小 回転 平行移動 せん断(Skew) a = 1.0 d = 1.0 tx = 0.0 ty = 0.0 b = tanθ c = 0.0 a = 1.0 d = 1.0 tx = 0.0 ty = 0.0 b = 0.0 c = tanθor 𝑥′ 𝑦′ 1 = 𝑎 𝑏 𝑡1 𝑐 𝑑 𝑡5 0 0 1 𝑥 𝑦 1
  • 20. 20© 2017 Global Walkers,Inc. アフィン変換と射影変換 Perspective transformation Affine transformation
  • 21. 21© 2017 Global Walkers,Inc. アフィン変換と射影変換 Perspective transformation Affine transformation src_pts = np.float32([[211, 321], [539, 133], [634, 479]]) dst_pts = np.float32([[155, 170], [875, 170], [875, 650]]) affine_mat = cv2.getAffineTransform(src_pts, dst_pts) size = tuple(np.array([img.shape[1], img.shape[0]])) img_afn = cv2.warpAffine(img, warp_mat, size) src_pts = np.float32([[211, 321], [539, 133], [634, 479], [255, 590]]) dst_pts = np.float32([[155, 170], [875, 170], [875, 650], [155, 650]]) homo = cv2. getPerspectiveTransform(src_pts,dst_pts) size = tuple(np.array([img.shape[1], img.shape[0]])) img_afn = cv2. warpPerspective(img, homo, size)
  • 22. 22© 2017 Global Walkers,Inc. 射影変換 𝑠 𝑥′ 𝑦′ 1 = 𝑎 𝑏 𝑐 𝑑 𝑒 𝑓 𝑔 ℎ 1 𝑥 𝑦 1 𝑅 = 𝑐𝑜𝑠𝜓𝑐𝑜𝑠𝜙 −𝑐𝑜𝑠𝜓𝑠𝑖𝑛𝜙𝑠𝑖𝑛𝜃 − 𝑠𝑖𝑛𝜓𝑐𝑜𝑠𝜃 𝑐𝑜𝑠𝜓𝑠𝑖𝑛𝜙𝑐𝑜𝑠𝜃 − 𝑠𝑖𝑛𝜓𝑠𝑖𝑛𝜃 𝑠𝑖𝑛𝜓𝑐𝑜𝑠𝜙 −𝑠𝑖𝑛𝜓𝑠𝑖𝑛𝜙𝑠𝑖𝑛𝜃 + 𝑐𝑜𝑠𝜓𝑐𝑜𝑠𝜃 𝑠𝑖𝑛𝜓𝑠𝑖𝑛𝜙𝑐𝑜𝑠𝜃 + 𝑐𝑜𝑠𝜓𝑠𝑖𝑛𝜃 −𝑠𝑖𝑛𝜙 −𝑐𝑜𝑠𝜙𝑠𝑖𝑛𝜃 𝑐𝑜𝑠𝜙𝑐𝑜𝑠𝜃 T = 𝑡1 𝑡5 𝑡D Perspective transformation 注意点:カメラの平行移動、回転では起こり得ない変換も可能 (射影変換行列8自由度 > 回転・平行移動 6自由度) 外部パラメータから射影変換行列を計算 Perspective transformation 𝜓 = 0.0 𝜙 = 0.5 𝜃 = 0.5
  • 23. 23© 2017 Global Walkers,Inc. 画像の縮小、拡大 平均画素法 INTER_AREA 線形補間 INTER_LINEAR (デフォルト) resize ※ 拡大にはINTER_LINEARか、INTER_QUBIC
  • 24. 24© 2017 Global Walkers,Inc. ・コンピュータビジョンの基礎 内部パラメータ、外部パラメータ ・画像幾何学変換 アフィン変換とHomography変換、 画像の縮小、拡大 ・ステレオカメラとカメラキャリブレーション ・画像の加工 閾値処理、ガンマ補正、色彩補正 ・空間フィルタ エッジ検出、平滑化 ・Hough変換 ・背景差分、フレーム間差分 ・機械学習による物体検出 Adaboost + Haar-like ・オプティカルフロー、トラッキング 本日の内容
  • 25. ステレオカメラによる3次元計測結果例 © 2017 Global Walkers, Inc. 近く 遠く 出典: http://eetimes.jp/ee/articles/1401/23/news016_2.html
  • 26. レンズ歪 © 2017 Global Walkers, Inc. 26 放射状歪(Radial Distortion) 接線状歪(Tangential Distortion) 𝑥"QRRS"TSU = 𝑥(1 + 𝑘X 𝑟Z + 𝑘Z 𝑟[ + 𝑘 𝑟]) + (2𝑝X 𝑥𝑦 + 𝑝Z(𝑟Z + 2𝑥Z) 𝑦"QRRS"TSU = 𝑦(1 + 𝑘X 𝑟Z + 𝑘Z 𝑟[ + 𝑘 𝑟]) + (2𝑝X 𝑥𝑦 + 𝑝Z(𝑟Z + 2𝑦Z)
  • 27. カメラキャリブレーションの処理フロー © 2017 Global Walkers, Inc. CameraRCameraL 27 特徴点の検出 パラメータ初期値算出 ・平面パターン/カメラ間の Homography行列を求める ・内部パラメータ、 外部パラメータの初期値を求める 精度が低いため、設計値が既知 の場合は、設計値を用いた方が良い バンドルアジャストメント 【非線形最適化】 Levenberg-Marquardt法により 再投影誤差を最小化する レンズ歪パラメータも含む 全パラメータ カメラと平面パターン間の外部パラメータ 平面パターンの左上を基準
  • 28. ステレオカメラの要素技術 カメラキャリブレーション © 2017 Global Walkers, Inc. 28 Circle Gridの方が、ばらつき、誤差ともに小さい
  • 29. ステレオカメラの処理フロー © 2017 Global Walkers, Inc. CameraRCameraL カメラキャリブレーション レクティフィ ケーション ステレオ マッチング CameraL CameraR CameraL CameraR Disparity Map 29 内部パラメータ レンズ歪パラメータ カメラ間の外部パラメータ
  • 30. 30© 2017 Global Walkers,Inc. ステレオカメラ パッシブ方式の原理 P3次元点 画像平面 画像平面 カメラA カメラB 撮像された点 BP撮像された点 AP
  • 31. 31© 2017 Global Walkers,Inc. ステレオカメラ パッシブ方式の原理 2P 1P 3P 4P 5P Lp Rp Re LCamera Le RCamera エピポーラ線
  • 32. 32© 2017 Global Walkers,Inc. ステレオカメラ パッシブ方式の原理 1P Lp Rp LCamera RCamera エピポーラ線
  • 33. 33© 2017 Global Walkers,Inc. ・コンピュータビジョンの基礎 内部パラメータ、外部パラメータ ・画像幾何学変換 アフィン変換とHomography変換、 画像の縮小、拡大 ・ステレオカメラとカメラキャリブレーション ・画像の加工 閾値処理、ガンマ補正、色彩補正 ・空間フィルタ エッジ検出、平滑化 ・Hough変換 ・背景差分、フレーム間差分 ・機械学習による物体検出 Adaboost + Haar-like ・オプティカルフロー、トラッキング 本日の内容
  • 34. 34© 2017 Global Walkers,Inc. 2値化 THRESH_BINARY
  • 35. 35© 2017 Global Walkers,Inc. 2値化 THRESH_TOZERO
  • 36. 36© 2017 Global Walkers,Inc. 2値化 THRESH_TRUNC
  • 37. 37© 2017 Global Walkers,Inc. ガンマ補正 gamma = 1.8 lut = np.zeros((256, 1), dtype = 'uint8') for i in range(256): lut[i][0] = 255 * pow(float(i) / 255, 1.0 / gamma) img_gamma = cv2.LUT(img, lut)
  • 38. 38© 2017 Global Walkers,Inc. 彩度の補正 https://ja.wikipedia.org/wiki/HSV色空間https://ja.wikipedia.org/wiki/RGB img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) cvtColor Sの値を補正すれば良い!
  • 39. 39© 2017 Global Walkers,Inc. 彩度の補正 img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) img_hsv[:,:,1]= np.clip(img_hsv[:,:,1]*1.4, 0, 255) img_rgb=cv2.cvtColor(img_hsv, cv2.COLOR_HSV2BGR) 彩度を上げる 彩度を下げる
  • 40. 40© 2017 Global Walkers,Inc. 明度の補正 https://ja.wikipedia.org/wiki/HSV色空間https://ja.wikipedia.org/wiki/RGB img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) cvtColor Vの値を補正すれば良い!
  • 41. 41© 2017 Global Walkers,Inc. 明度の補正 img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) img_hsv[:,:,2]= np.clip(img_hsv[:,:,2]*1.4, 0, 255) img_rgb=cv2.cvtColor(img_hsv, cv2.COLOR_HSV2BGR) 明度を上げる 明度を下げる
  • 42. 42© 2017 Global Walkers,Inc. 色相の補正 https://ja.wikipedia.org/wiki/HSV色空間https://ja.wikipedia.org/wiki/RGB img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) cvtColor Hの値を補正すれば良い!
  • 43. 43© 2017 Global Walkers,Inc. 色相の補正 img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) img_hsv[:,:,0]= img_hsv[:,:,0]-20 img_rgb=cv2.cvtColor(img_hsv, cv2.COLOR_HSV2BGR) 色相をずらす (プラス) 色相をずらす (マイナス)
  • 44. 44© 2017 Global Walkers,Inc. ・コンピュータビジョンの基礎 内部パラメータ、外部パラメータ ・画像幾何学変換 アフィン変換とHomography変換、 画像の縮小、拡大 ・ステレオカメラとカメラキャリブレーション ・画像の加工 閾値処理、ガンマ補正、色彩補正 ・空間フィルタ エッジ検出、平滑化 ・Hough変換 ・背景差分、フレーム間差分 ・機械学習による物体検出 Adaboost + Haar-like ・オプティカルフロー、トラッキング 本日の内容
  • 45. 45© 2017 Global Walkers,Inc. エッジ検出 Sobel Filter 1 0 -1 2 0 -2 1 0 -1 1 2 1 0 0 0 -1 -2 -1 Sobel Filter
  • 46. 46© 2017 Global Walkers,Inc. エッジ検出 Sobel Filter img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) dx = cv2.Sobel(img_gray, cv2.CV_64F, 1, 0, ksize=3) dy = cv2.Sobel(img_gray, cv2.CV_64F, 0, 1, ksize=3) grad = np.sqrt(dx ** 2 + dy ** 2) grad = grad/np.max(grad)*255 grad8 = grad.astype(np.uint8)
  • 47. 47© 2017 Global Walkers,Inc. エッジ検出 Canny Hysteresis Thresholding High ThresholdとLow Thresholdを用いる。 High Threshold以上: Edge Low Threshold以下: 非Edge High Threshold と Low Thresholdの間: Edgeと判定された画素に繋がっていればEdge 勾配方向 エッジ方向Non-maximum Suppression 勾配方向の最大値だけ残して残りを消去 → 細線化されます。 処理としては勾配方向に3画素みて中心が最大値だったら残す
  • 48. 48© 2017 Global Walkers,Inc. エッジ検出 Canny img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) grad = cv2.Canny(img_gray, 100, 200)
  • 49. 49© 2017 Global Walkers,Inc. 平滑化 移動平均 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 移動平均フィルタ
  • 50. 50© 2017 Global Walkers,Inc. 平滑化 ガウシアン 1/16 2/16 1/16 2/16 4/16 2/16 1/16 2/16 1/16 ガウシアンフィルタ 𝑓 𝑥, 𝑦 = 1 2𝜋𝜎Z 𝑒𝑥𝑝 − 𝑥Z + 𝑦Z 2𝜎Z
  • 51. 51© 2017 Global Walkers,Inc. 平滑化 移動平均 ※ 任意のフィルタの畳み込み演算cv2.filter2Dでも可 ガウシアン img_blur = cv2.blur(img,(5,5)) img_gblur = cv2.GaussianBlur(img,(5,5), 0) ※ ごま塩ノイズ等には、cv2.medianBlur()が効果的 ※ エッジをを保存したい場合は、cv2.bilateralFilter()
  • 52. 52© 2017 Global Walkers,Inc. ・コンピュータビジョンの基礎 内部パラメータ、外部パラメータ ・画像幾何学変換 アフィン変換とHomography変換、 画像の縮小、拡大 ・ステレオカメラとカメラキャリブレーション ・画像の加工 閾値処理、ガンマ補正、色彩補正 ・空間フィルタ エッジ検出、平滑化 ・Hough変換 ・背景差分、フレーム間差分 ・機械学習による物体検出 Adaboost + Haar-like ・オプティカルフロー、トラッキング 本日の内容
  • 53. 53© 2017 Global Walkers,Inc. Hough変換 直線 𝜃 𝜌 𝜌 = 𝑥 𝑐𝑜𝑠𝜃 + 𝑦 𝑠𝑖𝑛𝜃 𝑦 = 𝑎𝑥 + 𝑏 直線の方程式 各点を通る直線のρ、θを2次元空間に投票 ρ、θ空間への投票結果 同一直線上の点は、同じグリッドに 投票される 極大値を直線として検出
  • 54. 54© 2017 Global Walkers,Inc. Hough変換 直線 img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) dx = cv2.Sobel(img_gray, cv2.CV_64F, 1, 0, ksize=3) dy = cv2.Sobel(img_gray, cv2.CV_64F, 0, 1, ksize=3) grad = np.sqrt(dx ** 2 + dy ** 2) grad = grad/np.max(grad)*255 grad8 = grad.astype(np.uint8) thresh = 100 max_pixel = 255 ret, grad2 = cv2.threshold(grad8,thresh,max_pixel,cv2.THRESH_BINARY) lines = cv2.HoughLines(grad2,1,np.pi/180,200) for line in lines: rho, theta = line[0] a = np.cos(theta) b = np.sin(theta) x0 = a*rho y0 = b*rho x1 = int(x0 + 1000*(-b)) y1 = int(y0 + 1000*(a)) x2 = int(x0 - 1000*(-b)) y2 = int(y0 - 1000*(a)) cv2.line(img,(x1,y1),(x2,y2),(0,0,255),2) ※ cv2.HoughCircles()もあります
  • 55. 55© 2017 Global Walkers,Inc. ・コンピュータビジョンの基礎 内部パラメータ、外部パラメータ ・画像幾何学変換 アフィン変換とHomography変換、 画像の縮小、拡大 ・ステレオカメラとカメラキャリブレーション ・画像の加工 閾値処理、ガンマ補正、色彩補正 ・空間フィルタ エッジ検出、平滑化 ・Hough変換 ・背景差分、フレーム間差分 ・機械学習による物体検出 Adaboost + Haar-like ・オプティカルフロー、トラッキング 本日の内容
  • 56. 56© 2017 Global Walkers,Inc. フレーム間差分 論理積 差分 差分
  • 57. 57© 2017 Global Walkers,Inc. ・コンピュータビジョンの基礎 内部パラメータ、外部パラメータ ・画像幾何学変換 アフィン変換とHomography変換、 画像の縮小、拡大 ・ステレオカメラとカメラキャリブレーション ・画像の加工 閾値処理、ガンマ補正、色彩補正 ・空間フィルタ エッジ検出、平滑化 ・Hough変換 ・背景差分、フレーム間差分 ・機械学習による物体検出 Adaboost + Haar-like ・オプティカルフロー、トラッキング 本日の内容
  • 58. 58© 2017 Global Walkers,Inc. 顔検出、人検出 Sachin Sudhakar Farfade, Mohammad Saberian, Li-Jia Li, ” Multi-view Face Detection Using Deep Convolutional Neural Networks”, ICMR2015
  • 59. 59© 2017 Global Walkers,Inc. 機械学習による2クラス分類 ix jx マージン Label = 1 Label = -1 Label = 1 ⇨ 顔 Label = 2 ⇨ 顔以外 g( 𝒙) = 0 識別境界を学習で求める
  • 60. 60© 2017 Global Walkers,Inc. 特徴量抽出と機械学習 特徴量抽出 学習 学習フェーズ 識別フェーズ 学習結果 学習画像 顔 顔以外 リサイズ 特徴量抽出 識別 リサイズ 識別結果(顔 or 顔以外)
  • 61. 61© 2017 Global Walkers,Inc. Haar-like特徴量 顔の検出などに適している
  • 62. 62© 2017 Global Walkers,Inc. Adaboost x )(1 xh )(2 xh )(3 xh )(xNh + y 1a 2a 3a Na
  • 63. 63© 2017 Global Walkers,Inc. HoG (Histograms of Oriented Gradients) 特徴量 人の輪郭は多種多様
  • 64. 64© 2017 Global Walkers,Inc. HoG (Histograms of Oriented Gradients) 特徴量 人の検出などに適している
  • 65. 65© 2017 Global Walkers,Inc. HOG (Histograms of Oriented Gradients) 特徴量 平均輝度勾配 SVMで人と 判定するため に有用な ブロック SVMで人以外と 判定するため に有用な ブロック HOG特徴量 SVMで人と 判定するため に有用な ブロックの HOG特徴超 SVMで人以外と 判定する ために有用な ブロックの HOG特徴超
  • 66. 66© 2017 Global Walkers,Inc. ・コンピュータビジョンの基礎 内部パラメータ、外部パラメータ ・画像幾何学変換 アフィン変換とHomography変換、 画像の縮小、拡大 ・ステレオカメラとカメラキャリブレーション ・画像の加工 閾値処理、ガンマ補正、色彩補正 ・空間フィルタ エッジ検出、平滑化 ・Hough変換 ・背景差分、フレーム間差分 ・機械学習による物体検出 Adaboost + Haar-like ・オプティカルフロー、トラッキング 本日の内容
  • 67. 67© 2017 Global Walkers,Inc. 疎なフロー: Lucas-Kanade法 密なフロー: Horn-Schunck法、Gunnar Farneback法 オプティカルフロー Lucas-Kanade法 𝐼 𝑥 + 𝑢, 𝑦 + 𝑣 = 𝑇(𝑥, 𝑦) 𝐼 𝑥 + 𝑢, 𝑦 + 𝑣 ≈ 𝐼 𝑥, 𝑦 + 𝜕𝐼 𝜕𝑥 𝑢 + 𝜕𝐼 𝜕𝑦 𝑣 テイラー展開 h 𝐼1 𝐼1 h 𝐼1 𝐼5 h 𝐼1 𝐼5 h 𝐼5 𝐼5 𝑢 𝑣 = − h 𝐼1 𝐼T h 𝐼1 𝐼T 𝐼1 = 𝜕𝐼 𝜕𝑥 𝐼5 = 𝜕𝐼 𝜕𝑦 𝐼T = 𝑇 𝑥, 𝑦 − 𝐼(𝑥 + 𝑢, 𝑦 + 𝑣) ピラミッド画像の解像度の低い画像から 順番に計算
  • 68. 68© 2017 Global Walkers,Inc. Lucas-Kanade法 𝑊(𝑥; 𝑝) 𝑥l = 𝑥 + ∆𝑥 𝑦l = 𝑦 + ∆𝑦 一気に解けないので、微小変化を考える テイラー展開により線形化 ⊿pについて偏微分 上式=0とし、⊿pについて解くと
  • 69. 69© 2017 Global Walkers,Inc. ・基本的な画像処理 オプティカルフロー オプティカルフロー Lucas-Kanade法 https://www.youtube.com/watch?v=yoRHPOsBws8
  • 70. 70© 2017 Global Walkers,Inc. トラッキング Median Flow
  • 71. 71© 2017 Global Walkers,Inc. トラッキング Boosting
  • 72. 72© 2017 Global Walkers,Inc. トラッキング TLD
  • 73. 73© 2017 Global Walkers,Inc. トラッキング Kernelized Correlation Filter w: 重みベクトル、x: 特徴量ベクトル、bバイアス を最小化
  • 74. 74© 2017 Global Walkers,Inc. トラッキング Kernelized Correlation Filter 1ピクセルずつシフトした画像群を生成し、それらを上式に示すcirculant matrixes(巡回行列)として扱う 巡回行列とベクトルの積は、上式の通りフーリエ空間のみで計算することができる この巡回行列の特性を用いることで、繰り返し処理が不要な高速処理を実現
  • 75. 75© 2017 Global Walkers,Inc. トラッキング結果 1) Trackerインスタンスの生成: cv::Tracker::create("アルゴリズム名") 2) 初期化: cv::Tracker::init(トラッキングを開始する画像, 対象物の外接矩形) 3) 更新: cv::Tracker::update(最新の画像, 対象物の外接矩形) https://youtu.be/61QjSz-oLr8?t=61
  • 76. 76© 2017 Global Walkers,Inc. コンピュータビジョン・機械学習のライブラリ ・OpenCV ・dlib ・VLFeat ・Point Cloud Library など
  • 77. 77© 2017 Global Walkers,Inc. OpenCVに実装されている処理の一例 基本的な機能 ・imread ( ) 、imwrite ( )、imshow ( )、waitKey ( )、VideoCapture( ) ・line( )、rectangle( )、putText( ) ・hconcat( )、vconcat( ) 基本的な画像処理 ・エッジ検出:Sobel( )、2値化:threshold( )、 ・背景差分: createBackgroundSubtractorMOG( )、 pyrMeanShiftFiltering.apply( ) ・フレーム感差分:absdiff( ), bitwise_and( ) ・領域分割:pyrMeanShiftFiltering( )、 幾何変換 ・warpAffine( )、getRotationMatrix2D、getAffineTransform() ・warpPerspective( )、getPerspectiveTransform( ) オプティカルフロー ・goodFeaturesToTrack ( )、calcOpticalFlowPyrLK ( ) 機械学習 ・ CascadeClassifier ( )、CascadeClassifier.detectMultiScale( )
  • 78. 78© 2017 Global Walkers,Inc. 最後に GWゼミ #3: 9月6日(水) 機械学習の基礎の続き 機械学習を用いた画像認識処理をAWS上で実行するために GWゼミのグループにもご参加ください。 https://gwz.connpass.com 今後も勉強会を開催していきます 全てではないですが、発表資料を公開した際にグループ宛にメッセージを送信予定
  • 79. 79© 2017 Global Walkers,Inc. 最後に コンテンツ × テクノロジーに共感し、 一緒に作り上げていく仲間募集中!!! (正社員、契約社員、請負い、インターンなど相談可)