ロボットは、どのように世界を見ているのでしょうか。
視覚を司るセンサーデバイスといえば、「カメラ」です。また、最近ではLIDAR(ライダー)を使った周囲認識の記事をよく目にします。
車だとSUBARUのアイサイトXでは、複眼カメラ+他センサーを使った認識を行っています。
近接ではLIDARのほうが物体をより正確に(緻密に)捉えることができますが、遠距離だと複眼カメラを使った認識のほうがカバー率は高いのが現状ではないでしょうか。
今回のKARAKURI製作シリーズでは、ロボットの視覚(コンピュータビジョン)をどのように実装するのが最適かを調査するための仕組みとして「KARAKURI -TENGUN- 」という作品を作ります。
「TENGUN」となずけたのは、カメラやLIDARなどによる画像内の物体(オブジェクト)で使用される、3次元のポイントクラウド(点群クラウド)を使ってみようと考えているからです。(点群=TENGUNと名付けました)
この製作を通して、コンピュータビジョンの技術の実装方法と仕組みを理解し、ロボットへ適用するための知識を得ていきます。
昨今、いろいろなメディアでコンピュータビジョンが取り上げられていますが、その仕組みを一緒に体験していきましょう!
1.製作イメージ
まず、コンピュータビジョンを考えるにあたり、3つの要素が必要となります。
- 撮影台(Shooting Table)
- 撮影/計測機能(Sensor)
- 認識機能(Compute)
「撮影台」は、皆さんもご存じのとおりコンピュータで認識させたいものを置く「台」です。撮影時に回転できるようにします。「撮影/計測機能」は、カメラやLIDARセンサーなどです。最後の「認識機能」は取得した画像やデータからポイントクラウドを生成し、コンピュータにて認識する機能です。この認識機能として、旧来のコンピュータビジョンの仕組みと、DeepLearningを用いた仕組みの2つを使って、どのように認識されるかを確認したいと思います。
「-TENGUN-」の概要イメージは次のとおりにします。
各要素で目指す機能は次の通りです。
(※今後、検討を経て変更していきますね。)
【 撮影台 】
①サイズは、200(縦)×200(横)×200(高さ)まで
②対象物を切り抜きしやすいようクロマキー撮影(*1)に対応
③対象物を一定角度で回転させ、360度撮影ができる
④撮影/計測機能との距離を調節できる
【 撮影/計測機能 】
(撮影)
①カメラは2台を一定間隔離しておいた状態のステレオカメラ構成
②解像度は、検討中
(計測)
①LIDARセンサーを使用する(余裕があれば)
②測定距離は1㎡以下
③被写体との距離を計測するための距離センサーを別に準備する。
【 認識機能 】
①ステレオカメラ構成で取得したデータから点群データ(Point Cloud Data)を生成する。
②被写体の回転、撮影/計測、データ蓄積、認識の制御はネットワーク経由で行う。(ブラウザから指示)
③DeepLearningなどのモデルで利用可能なものが公開されている場合は、積極的に取り込む
以上の目標を目指して、今後具体化していきます!
2.作業過程の記事
作成過程は、今後、以下のイメージで数回に分けて公開していきます。ご期待ください。
※作ってみないとわからない部分がありますので、多少記事の構成は変わる可能性があります!
【Step1】撮影/計測
・第1回 カメラをキャリブレーションする
・第2回 ステレオカメラによる撮影
・第3回 撮影データをつかった画像深度の計算
・第4回 ポイントクラウド(点群クラウド)の計算
・第5回 3Dデータ出力に必要なポイントクラウドの計算方法
・第6回 被写体制御とデータ連携処理の実装
【Step2】撮影台
・第7回 被写体を載せる回転台の設計
・第8回 回転台をCADで作る
・第9回 回転台の素材準備
・第10回 回転台の製作
【Step3】認識
・第11回 360度撮影を行う
・第12回 360度撮影データのポイントクラウド変換
・第13回 ポイントクラウドデータを3Dデータ出力
・第14回 画像からの物体識別
【Step4】改良・改善
・LIDARを使った計測
・LIDAR計測データを使ったポイントクラウドの生成
・複眼カメラとLIDARとの精度比較
・ロボットへの実装時に使う機材の選定 など(未定)
3.使用した技術
これから製作で使用した技術については、こちらに詳しい記事を載せていく予定です。
複眼カメラによる撮影関係
※掲載予定
作成していく過程でいろんなことがあると思いますが、鋭意努力していきますので、応援してくださいね!