54
OpenCV を用いた ロボコンにおける画像処理 舞鶴高専 創造技術研究会 5 年 吉元裕真

OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

Embed Size (px)

Citation preview

Page 1: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

OpenCVを用いた ロボコンにおける画像処理

舞鶴高専 創造技術研究会5年 吉元裕真

Page 2: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

OpenCVを用いた ロボコンにおける画像処理

舞鶴高専 創造技術研究会5年 吉元裕真画像処理

on ロボコン

入門編

Page 3: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

• パパ (こと、吉元裕真)

• 舞鶴高専のロボコン部(S-ken)に所属

• 2012年度の部長

• 専門プログラム

あんた誰やねん

@ani_papa01 01YumaYoshimoto

Page 4: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

何してきたん?• 2009 鶴恋慕の装飾

• 2010 鶴車の装飾、ホームページ管理

• 2011 投鶴のプログラム、副部長

• 2012 鶴側努のプログラム、副部長

• 2013 卒研、差し入れ担当 ←new!!

半分装飾やないけー!?

Page 5: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

2012の舞鶴のケースを参考に、 画像処理の使い方・考え方

何話すん?

に、ついてです

Page 6: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

みんな画像処理やろうぜ

Page 7: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

パソコンで画像処理を使うにあたり、

基礎的なことのみお話しします。

より具体的なことは、「511号室」まで

Page 8: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

ロボコン 2012 ベスト・ペット

Page 9: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)
Page 10: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

目標ペット、人間についてきて欲しいよね

画像処理やるか!

パソコン載せるか!!!

Page 11: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

やりたいこと

伴走者の方向を検知したい

伴走者までの距離を知りたい

ゴール前のマーカー読みたい

Page 12: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

マーカー読みたいやん!

Page 13: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

構成図

FT232

パソコン 制御回路

Webカメラ

ロボット本体

Page 14: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

パソコン

Page 15: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

構成図(1) 撮影

(2) 画像処理(3) 指示を出す

(4) 信号受信(5) 各種動力へ

Page 16: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

構成図(1) 撮影

(2) 画像処理(3) 指示を出す

(4) 信号受信(5) 各種動力へ

Page 17: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

パソコンと回路との接続

Page 18: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

RS-232C規格

Dサブ9ピン

Dサブ25ピン

昔は…?

Dサブ端子があった。

RS-232C規格で、パソコンと

 UARTで直接通信できた。

しかし、今はない。

Page 19: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

んじゃ、今は?

Page 20: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

FT232

http://akizukidenshi.com/catalog/g/gK-01977/

Page 21: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

FT232

USBを仮想的にRS-232Cとして使う  モジュール

秋月電子で800円

http://akizukidenshi.com/catalog/g/gK-01977/

Page 22: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

試したライブラリ2012年度のロボコンでやった画像処理について

OpenCV ARToolKit Kinect

Page 23: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

ちょっと前に大流行

Kinect

Page 24: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

Kinect

Microsoft社が販売

Xbox360のコントローラー

ナチュナルユーザーインターフェイス

2011年の大学ロボコンで東大が センサとしてKinectを採用

http://www.tekwind.co.jp/products/entry_9391.php

Page 25: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

Kinectライブラリ

• OpenNI

• Kinect for Windows

Page 26: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

第一案 Kinect

http://www.tekwind.co.jp/products/entry_9391.php

RGBカメラ

3D深度センサ

マルチアレイマイク

Page 27: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

Kinectできること カメラで画像取得

指定座標までの距離測定 人認識 人の骨格認識 音声取得 音源の方向推定 カメラの角度調整 あれ それ 遅延はんぱねぇ

Page 28: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

便利だし、誰かしら使ってる?

ARToolKit

Page 29: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

ARとは?

• 拡張現実感(Augmented Reality)

• スマートフォンの「ARアプリ」という形で最近流行り

• 実は40年以上の歴史あり

http://kougaku-navi.net/ARToolKit/

Page 30: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

ARToolKitできること マーカーを認識できる

マーカーの座標 マーカーの種類を判別できる 取得画像にさらにCGを合成できる あれ それ

http://kougaku-navi.net/ARToolKit/

画像にCG重ねて なんかやろうぜ

Page 31: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

画像処理の古参

OpenCV

Page 32: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

ゴール前マーカーは OpenCV使うつもりだった

Page 33: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)
Page 34: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

作ったマーカーが こちらになります

Page 35: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)
Page 36: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

Page 37: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

マーカーを探す アルゴリズム

1. 2値化する

2. マーカーを探す

3. マーカーの座標を確認し、ロボットの行動を決定

Page 38: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

一般的な2値化

元画像 グレースケール 2値化

普通2値化とは、明度を基準にモノクロ化すること

Page 39: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

2値化する

元画像

Page 40: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

Hue (色相) Saturation (彩度) Value (明度)

Red (赤) Green (緑) Blue (青)

Page 41: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

HSV色空間とは

http://ja.wikipedia.org/wiki/HSV色空間

Page 42: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

HSV色空間とは

Hue (色相) Saturation (彩度) Value (明度)

Page 43: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

0 < R && R < 255 && 0 < G && G < 255 && 0 < B && B < 255 && 100 < H && H < 255 && 100 < S && S < 255 && 50 < V && V < 255

それ以外

Page 44: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

マーカーを探す アルゴリズム

1. 2値化する

2. マーカーを探す

3. マーカーの座標を確認し、ロボットの行動を決定

Page 45: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

マーカーを探す

Page 46: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

画像上のあるドットに対し、

Page 47: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

複数のドットの白黒を判定する

Page 48: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

マーカーを探す

Page 49: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

マーカーを探す

Page 50: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

マーカーを探す アルゴリズム

1. 2値化する

2. マーカーを探す

3. マーカーの座標を確認し、ロボットの行動を決定

Page 51: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

ロボットの行動

前進左旋回 右旋回

Page 52: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

画像処理って簡単!

Page 53: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

みんなも Let’s 画像処理!

Page 54: OpenCVを用いたロボコンにおける画像処理(2013年ロボコン交流会)

Thank you for your attention.