市販 Stereo Cameraについて調査中

  • 21
    いいね
  • 3
    コメント

(元記事はJetson TK1の記事のはずだったのに、ステレオマッチングの市販品の記事になってしまったため、あたらため市販のステレオカメラ技術の記事として書き直す。)

最近の画像認識の流れとしては、組み込み分野でも画像認識技術の広がりを高めようとする流れがある。
マルチコアで性能を高めようとするアプローチもあるし、GPUで性能を高めようとするアプローチもある。
RaspberryPi Zeroの記事を調べていくと、
ドローンなどの機器で画像認識の利用が高まっていることを感じている。

ロボットの分野では、実空間を認識する必要があり、それらが共通の問題として存在している。

ステレオカメラはそのような問題に対するアプローチの1つである。

ZED with Jetson TK1

ZED

Stereolabs ZED Depth Camera on Nvidia Jetson TK1 - Quick Observations on Performance
https://www.youtube.com/watch?v=n8YsrmxJgBQ

NVIDIA Jetson Partner Story: Stereolabs
この動画の中でドローンを飛ばして3D計測している住宅はつたが絡まりテクスチャーの多い住宅になっており、ステレオ計測がうまくいきやすい被写体となってる。
 ガラス張りが多いビルなどの場合には、ステレオ計測の結果がどうなるのかが気になるところです。

Stereolabs / バーチャルリアリティ
ドローンで、Stereolabs の ZED ステレオカメラと Jetson TX1 スーパーコンピュータと組み合わせることで、最新のバーチャルリアリティ・アプリケーションにもたらす能力をご覧下さい。
http://www.nvidia.co.jp/object/embedded-systems-jp.html

Stereolabs Brings Advanced Computer Vision Capabilities to 3D Mapping
https://developer.nvidia.com/embedded-computing

Jetson TX1でZEDを使う
http://qiita.com/furushchev/items/ef6b0c1b471cef6228c0

ZEDを開封している動画
https://www.youtube.com/watch?v=tf5mgdF43Xc

これらの例を見ると、ドローンを使って建物の3Dの形状を測定するということが、一昔前よりも、容易に実現可能になってきていることがわかります。
 ステレオカメラは、目的にそった構成のカメラがあれば、それを使うべきであって、自作することは勉強目的ですることと考えるべきでしょう。イメージセンサ・レンズの選択とイメージセンサ基板の固定方法、イメージセンサの同期の確保、イメージセンサでのゲインや色バランスの問題などがあるからです。
 ロボットのプロトタイプでは、Kinectをそのまま使ってある例を見たことが多くあります。

capture 110° wide-angle video and depth
175 x 30 x 33 mm (6.89 x 1.18 x 1.3’’)
159 g (0.35 lb)
であるというZEDの視野角の広さや寸法など驚きを感じています。
計算の部分は、PCやJetsonにゆだねる設計になっています。
USB3をインタフェースとして使用しています。

これらの記事で紹介されているZEDは次の場所でより詳しく知ることができます。

StereoLabs ZED 2K Stereo Camera
https://www.stereolabs.com/

Stereolabs
https://github.com/stereolabs

Youtube でStereoLabs ZED を検索

Jetson TX1でZEDを使う

ZED camera offers positional tracking for mobile VR

‘ZED’ Clip-On SLAM Camera Brings Positional Tracking To Gear VR


ZEDという特定のステレオカメラを使うのではなく
自力でステレオを行いたい方には次のslideShareが役立つはずです。

Jetson TK1でSemi-Global Matching

http://www.slideshare.net/RyoSakamoto/jetson-tk1semiglobal-matching

Jetson/Cameras
http://elinux.org/Jetson/Cameras

 NVidiaの Jetson TK1で使えるカメラについての情報がまとまって書かれています。

Jetson TK1 +
PlayStation Camera
ROS package
http://pt.slideshare.net/ssuser4d25e1/20160126-jetson-ps4eye01

JETSON TK1のセットアップ(JETPACK, GRINCH, ROS JADEのインストール)
https://daichiahl.wordpress.com/2016/07/18/jetson-tk1%E3%81%AE%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97/

2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
http://www.slideshare.net/ssuserf87701/2015gpgpu14?qid=fb380186-b963-463b-8a51-52731d350225&v=&b=&from_search=1

車載組み込み用ディープラーニング・エンジン NVIDIA DRIVE PX
http://www.slideshare.net/NVIDIAJapan/nvidia-drive-px-64192446?qid=f8521865-2f65-4a68-9772-8a2e9270bf13&v=&b=&from_search=8

NVIDIA、「Maker Faire Tokyo 2016」でディープラーニングをDIYで行なう方法を解説
「AIを使う電子機器が簡単に設計できる」とNVIDIA 矢戸氏
http://car.watch.impress.co.jp/docs/news/1014414.html

トヨタの自動運転研究も紹介された「NVIDIA Deep Learning Day 2016 Spring」
http://car.watch.impress.co.jp/docs/news/755996.html

Hardware Acceleration of OpenCV
http://elinux.org/Jetson/Computer_Vision_Performance

Jetson TK1 の開発環境構築 Step by Step
https://yseosoft.wordpress.com/2016/01/11/jetpack_install_step/

比較:

kinect

 kinectの視野角は
Kinect v1とKinect v2の仕様比較
http://www.buildinsider.net/small/kinectv2cpp/01
を見ると
       Kinect v1 Kinect v2
水平(Horizontal) 57度 70度
にとどまり、capture 110° wide-angle video and depthというZEDの視野角の広がりは
着目に値します。

気になる中身は…?海外サイトでKinectがバラバラに分解される

kinectの分解写真

量産対応可能 インテリジェント3D TOFカメラ開発キット

[TB-7Z-TCDK-GC2/TB-7Z-TCDK-GC3]
3D TOFカメラ開発キット
Field of view 67.1 deg(D) x 54.6 deg(H) x 41.4 deg(V)

これと比較しても、視野角の広がりがだいぶ違います。

Stereo Vision IP Suite

視野角約 42°
以下のメーカーのサイトには
評価キットの認識距離範囲・距離精度理論値が記されています。
ステレオマッチングでの視差の計算式を元に評価した値と
比べてみると理解が進むことでしょう。

http://www.fsi-embedded.jp/_emb/sv/evaluationkit.html
ステレオビジョン評価キット

RoboVision 2

水平画角 45度
超高感度ステレオカメラモジュール RoboVision 2

画像とグラフ

Bumblebee

Bumblebee®2 ステレオビジョンカメラ

https://www.ptgrey.com/Content/Images/uploaded/MarketingImages/bb2-models-family.jpg

外部トリガーとストロボ機能のための GPIO コネクターも搭載しています

次のステレオカメラはおそらく産業用のステレオカメラです。
どの距離範囲をどれだけの視野範囲で撮影するのかによって、どの製品を選べばよいのかを示しています。

ENSENSOカメラ選択ツール

https://jp.ids-imaging.com/ensenso_calc.html
ENSENSOカメラ


ステレオ位相シフト方式(ステレオ相関方式にも対応)FA用3次元画像計測カメラ【国産】

http://www.forks.co.jp/products.html

https://premium.ipros.jp/forks/product/detail/2000231229/#catalogDownloadArea


Leopard Imaging Inc 3D Stereo Camera

ステレオカメラ基板の画像

カメラ間距離:50 mm

TX1 Camera Kit
LI-TX1-KIT-IMX185M12-D TX1 Camera Kit
TX1 Adapter Board can support up to 3 4-lane MIPI
を使って、Dual Camera Streamingができるようだ。

この会社の製品では、USB-3.0もある。カメラのインタフェースのが複数書いてあり、それぞれで、どれくらいの画像サイズ、fpsが実現できているのかを調べてみるといいでしょうう。
 問題は、対象とする開発でのCPUボード側のインタフェースです。その組み合わせで実現できるデータのやり取りが決まります。


Tara - USB 3.0 Stereo Vision Camera

https://www.e-consystems.com/3D-USB-stereo-camera.asp

Baseline distance of 60mm
Depth ranges from 50cm to 300cm

最初からOpenCVを使ったサンプルアプリケーションを提供しています。

TARA SDK(OpenCV)アプリケーションに含まれるもの
顔検出
高さ推定


DUO MLX

https://duo3d.com/product/duo-minilx-lv1

カメラ間距離: 30 mm
Baseline: 30.0mm
Field of View
170° Wide Angle Lens
Low Distortion < 3%

DUO MLX

利用できるソフトウェアの説明 DUO Dashboard

「Configurable Parameters:」の説明を読むとOpenCVのSGBMを使っているのではないかと推測される。
また、次の動画の中でキャリブレーションをしている様子をみると、画像中のテクスチャを使ってキャリブレーションができるようになっているようだ。

Youtube上のduo3d によるページ duo3d


Intel RealSense

Intel® RealSense™ Developer Kit (SR300)
Intel RealSense まとめ

Amazon Picking Challenge で使われた例があります。
SlideShare Amazon Picking Challenge 結果報告
この記事の中でも、棚の座標とカメラからみた座標とを校正(キャリブレーション)することを述べています。

ステレオカメラや他の距離画像が得られるセンサにしても、カメラ座標系と対象物の世界の座標系の相互関係を得ることが極めて重要です。生物の場合であっても、それはされています。特に重力の方向を考えて動きを作ることが重要です。視野の下方向を、常に空間の下とは関係しないことを、重力の方向を感知する器官を持っています。

 ステレオカメラ類を開発しようとする人は、何をするために作成しようとするのか、自分の実現したい目的を十分に明確にすることです。
structure from motion の拡張の1つとしてステレオカメラがある場合もあるでしょう。


いくつかの距離画像の得られるカメラの比較:

Kinect v1とKinect v2の仕様比較
http://www.buildinsider.net/small/kinectv2cpp/01
を見ると
       Kinect v1 Kinect v2
水平(Horizontal) 57度 70度
にとどまり、capture 110° wide-angle video and depthというZEDの視野角の広がりは
着目に値します。

Stereo Camera Field of View maker 参考 URL 参考
ZED 110 ZED 2K Stereo Camera  : Jetson TK1との併用
kinect 57 Microsoft Kinect v1とKinect v2の徹底比較  
kinect2 70 Microsoft 同上
TB-7Z-TCDK-GC2 54.6 Tokyo Electron Devices 量産対応可能 インテリジェント3D TOFカメラ開発キット time of flight 方式
Stereo Vision IP Suite 42 Fujisoft Stereo Vision Evaluation Kit Altera® Cyclone® V SoC の評価ボード、FPGAを利用するシステム
RoboVision 2 45 ZMP 超高感度ステレオカメラモジュール RoboVision 2
Bumblebee PointGrey Bumblebee2 1394a 外部トリガーとストロボ機能のための GPIO コネクターも搭載しています

付記:
 もっと詳しいまとめは、次のリンク先にあります。
 デプスセンサのまとめ(2016)

ステレオカメラの選択のポイント

  • 視野角はどれくらいなのか
  • 奥行きの範囲はどこからどこまでか
  • 奥行きが遠いときには、それに応じて画素数が必要になる
  • フレームレートはどれくらい必要なのか
  • 提供されるものにソフトウェアは含まれるのか

付記:
ステレオカメラへの関心が高まってきていることは、雑誌「interface」の裏表紙の広告にステレオカメラの広告が載っていたことにも現れているように思います。実空間で動作するロボットの場合、何らかの空間認識が必要になります。

デンソー、小型のステレオ画像センサーを開発
製品サイズ:幅125mm(カメラ幅:80mm)×高さ35mm×奥行き85mm 「高精度なレンズ歪み補正とステレオマッチング技術の組み合わせ」 画素数は? 画角は?
denso_image

私の推測:
 カメラ間距離がEyeSight(初代)に比べて小さくできている理由は、image sensor の画素数の増大と、増大した画素数でもステレオマッチングが可能になっていることが効いているのではないかと推測している。
 また、OpenCVのstereo_SGBMなどのようにsubpixel での視差を求めることができるようになっていること、Circular gridのように、subpixel精度でのカメラ校正(=ステレオ並行化のためのパラメータの決定)ができるようになっていることも効いているのではないかと思う。
 カメラ間距離が小さくなれば、2つのカメラ向きが変わってしまうような湾曲は減る。
 M12マウントのレンズと、それにマッチするimage sensor の組み合わせだろうか。
 取り付けている筐体に四角い角が多いのは、筐体の変形を抑えるためではないかと推測される。

軽自動車の「ルームミラーの裏側に搭載が可能となり」、低価格が期待される軽自動車で、予防安全が普及していくことが、交通事故の削減につながっていくのではないかと期待している。

振動と熱が襲うクルマで、カメラ精度を10年間保つ難しさ

 ステレオカメラの本体ユニットは、角型アルミフレームの両端に左右のCCDカメラを固定した形状だが、長期間使えばどうしてもズレが出てくる。この問題を解決したのが、「システムの自動学習機能で精度を保証する」(松浦氏)というアイデア。カメラの機械的な変形を、信号を処理する制御回路で補正して、10年間使えるシステムを実現した。

ステレオカメラの本体ユニット
左右両端のCCDカメラ

高精度なステレオビジョンを手軽に導入、「Stereo Vision IP Suite」を聞く 富士ソフトの石井友盛氏、日本アルテラの生嶋氏、小山氏、それと實吉准教授

、最近ではキャリブレーションの重要性が認識されるようになり、需要が増えてきました。実際、0.1pixel程度の誤差範囲を狙うと従来手法では補正・校正が不十分なので、私は格子を利用した方法でこれを行っています。この方法が、今回の日本アルテラのIPに搭載されています。

「Stereo Vision IP Suite」の評価キット
「Stereo Vision IP Suite」の評価キット

「Stereo Vision IP Suite」の評価キット

差分ステレオとは
差分ステレオの処理の流れ
図 差分ステレオの処理の流れ

参考URL
デプスセンサのまとめ(2016)


USBの帯域
USB Hi-Speed (USB2.0) 480 Mbit/s 60 MB/s
USB SuperSpeed (USB3.0) 5 Gbit/s 625 MB/s
USB SuperSpeed+ (USB3.1) 10 Gbit/s 1250 MB/s

https://ja.wikipedia.org/wiki/%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E5%B8%AF%E5%9F%9F%E5%B9%85%E3%81%AE%E4%B8%80%E8%A6%A7#.E5.91.A8.E8.BE.BA.E6.A9.9F.E5.99.A8.E6.8E.A5.E7.B6.9A.E8.A6.8F.E6.A0.BC