2017-07-20 - 2018-06-19 (update) |
|
|
ここでは,3Dセンサーの方式別の特徴を比較します.
{{small:3Dセンサ,デプスセンサ,測距センサ,距離カメラ,など呼び方は様々あります.}}
市販の3Dセンサーのスペックは,下記のWebサイトで分かりやすくまとめられていて参考になります.
{{small:デプスセンサのまとめ(2016-2017) fukushima氏 [link:http://qiita.com/fukushima1981/items/77930d3775117d66e5e8]}}
*3Dセンサーの種類
市販の3Dセンサーは大まかに次の4つの方式で分類できます.同じ方式でも機種によって性能差はあるのですが,強引に平均化して比較すると表1のような特徴になりそうです.
{|
装置構成 && 無地の物体 && 近距離 && 遠距離 && 暗室 && 屋外 && 複数台撮影 ||
2camera && △ && 〇 && △ && × && 〇 && 〇 ||
1camera + 1projector && 〇 && 〇 && △ && 〇 && △ && △ ||
2camera + 1projector && 〇 && 〇 && △ && 〇 && 〇 && 〇 ||
TOF (Time of Flight) && 〇 && △ && 〇 && 〇 && 〇 && △
|}
{{small:表1 各方式の比較}}
{{small:なお,上記構成のうちプロジェクタを利用する3Dセンサーは,別途カラー画像撮影用のカメラを持つ場合が多いです.}}
*2camera
[img:v1jd]
2台のカメラの画像間でマッチングを行うことで距離を計測する方式です.カメラだけを使う方式はパッシブステレオと呼ばれます.パッシブステレオについては半世紀以上前から研究されていますが,現在でも様々なアルゴリズムが提案されています.middlebury大学が管理している下記のWebサイトでは,最新のアルゴリズムが一覧できます.
{{small:Middlebury Stereo Evaluation}} {{small:[link:http://vision.middlebury.edu/stereo/eval3/] }}
**無地の物体
パッシブステレオでは,物体の模様を手掛かりにマッチングを行う都合から,模様の少ない無地の物体の距離の計測を苦手としています.ただし,計算時間が掛かりますが,全体最適化やマッチング結果を統合するアルゴリズムを駆使することである程度は対応できるようです.
**距離と誤差の関係
画像間のマッチングに基づいて推定した視差{$d$}は,次の式を使って距離{$Z$}に変換します.
{$Z = \frac{f B}{d}$}
ここで,{$f$}はカメラの焦点距離,{$B$}はカメラ間の間隔です.この式から,推定した視差{$d$}に含まれる誤差{$\Delta d$}と,そこから変換した距離{$Z$}の誤差{$\Delta Z$}の関係は次の式で表現できます.
{$\Delta Z = - \frac{Z^2}{f B}{\Delta d}$}
この関係から,ステレオを利用する距離計測の誤差は,物体の距離の2乗に比例して増加し,焦点距離(解像度と考えてもよい)とカメラの間隔に反比例して減少することが分かります.1台のデプスセンサとしては解像度とカメラの間隔は設定できる限界があり,どうしても距離の影響がネックになるので,遠距離の物体の計測は難しくなります.
**関連する製品
{|
製品名 && メーカー && 計測範囲 && 解像度 && 補足 ||
ZED && STEREOLABS && 0.5-20m &&
4416x1242 (15fps) \\ 3840x1080 (30fps) \\ 2560x720 (60fps) \\ 1344x376 (100fps) && ベースライン 120mm ||
DUO && DUO3D && ??m &&
752x480 (45fps) \\ 640x480 (49fps) \\ 640x240 (98fps) \\ 640x120 (192fps) \\ 320x480 (86fps) \\ 320x240 (168fps) \\ 320x120 (320fps) && ベースライン 30mm
|}
{{small:ZED [link:https://www.stereolabs.com/zed/specs/], [link:https://www.youtube.com/watch?v=P-QEnnMHYt0] }}
{{small:DUO [link:https://duo3d.com/product/duo-minilx-lv1], [link:https://www.youtube.com/watch?v=1nySpQR9Ejw] }}
*1camera + 1projector
[img:cbq1]
プロジェクタから投影するパターンの画像と,カメラの画像との間でマッチングを行うことで距離を計測する方式です.プロジェクタを利用した方式はアクティブステレオと呼ばれています.パッシブステレオとは逆に,無地の物体や環境が暗い条件ではパターンを観察しやすいためロバストに距離を計測できます.
投影するパターンは人や身近なものを計測する一般的な用途では不可視の赤外光を利用することが多く,産業用途では可視光を利用することが多いようです.赤外光を投影する方法の場合,カメラは赤外光を観察できるものを用意します.その場合,可視光を観察するためのカメラも追加で備えている製品が多いです.
パターンの模様は,[1]の文献で紹介されているように様々な種類が提案されています.
{{small:[1]J.Salvi, J.Pages, J.Batlle, "Pattern codification strategies in structured light systems", Pattern Recognition, 2004}}
{{small:[link:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.9.5774&rep=rep1&type=pdf] リンク切れ}}
{{small:[link:http://www.academia.edu/17609685/Pattern_codification_strategies_in_structured_light_systems] }}
**マルチラインパターン
線や曲線を組み合わせて構築したパターンを投影する方法です.線はカメラの画像上から検出しやすいので,距離を高精度に計測したい場合に優れます.この種類のパターンは,九州大学の川崎先生の研究室で詳しく研究されています.
{{small:九州大学 川崎研究室のWebサイト [link:http://www.ibe.kagoshima-u.ac.jp/~cgv/ja/research/HScamera.html] }}
**ランダムパターン
ドットなどの模様をランダムに配置したパターンを投影する方法で,Kinectに利用されています.ワンショットで1枚の画像からマッチングを行うため,動きのある物体もその瞬間瞬間の距離を推定できます.また,マルチラインパターンに比べ,距離を密に得やすい特徴があります.
投影装置は,レーザー光源とDOE (Diffractive Optical Element,回折光学素子)を組み合わせて,小型で安価な構成で実現できます.
**複数パターン (時系列パターン)
時系列的に模様を変えたパターンを投影する方法で,縞模様を投影するgray codeが有名です.複数枚の撮影が必要ですがロバストにパターンを認識できるため,高品質な距離画像を得ることができます.複数枚の撮影の間,物体が止まっている仮定を用います.動きのある物体の計測は苦手としますが,高速に撮影を行うことである程度の対応は可能です.
**パターンの干渉
複数のセンサを同時に起動すると,物体には複数のパターンが重なった状態で投影されることになります.そうなると,カメラでパターンの認識が難しくなり,結果として距離を計測しづらくなります.
**屋外での利用
屋外のように環境光の強い条件ではその中でパターンの光を観察しづらく,その影響から距離の計測が難しくなります.しかし最近では、環境光の影響をうまく取り除く方法も提案されているようです[2].
{{small:[2]R.Sagawa, Y.Satoh, "Illuminant-Camera Communication to Observe Moving Objects Under Strong External Light by Spread Spectrum Modulation", he IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017}}
{{small:[link:http://openaccess.thecvf.com/content_cvpr_2017/papers/Sagawa_Illuminant-Camera_Communication_to_CVPR_2017_paper.pdf] }}
{{small:[link:http://www.aist.go.jp/aist_j/press_release/pr2017/pr20170714/pr20170714.html] }}
**関連する製品
{|
製品名 && メーカー && 計測範囲 && 解像度 && 補足 ||
Kinect && Microsoft && 0.8-4.0m \\ (Near Mode 0.4-3.0m) \\ (Extended Depth -10.0m) && 640x480 (30fps) && ランダムパターン \\ ベースライン 75mm ||
RealSense SR300 && Intel && 0.3-2.0m \\ (0.15-m? ※) && 640x480 (60fps) \\ 640x240 (110fps) && 複数パターン \\ ベースライン 50mm? ||
Orbbec Persee && Orbbec 3D && 0.8-8m && 640x480 (30fps) && ランダムパターン
|}
{{small:RealSense SR300 [link:https://software.intel.com/en-us/realsense/sr300camera]}}
{{small:Orbbec [link:https://orbbec3d.com/product-persee/] }}
{{small:※私が実験した距離 少なくとも0.3mよりは近くの物が計測できました.}}
*2camera + 1projector
[img:vfsk]
プロジェクタからパターンを投影した条件で,2台のカメラの画像間でマッチングを行うことで距離を計測する方式です.パッシブステレオの条件とは異なり,無地の物体でもパターンによって模様がつくので,計測できる物体の範囲を広げることができます.
また,投影されるパターンの模様は別のものが混ざっていても,2台のカメラ間でマッチングを行う上では特に問題はないので,複数のデプスセンサを同時に利用したいときには有用です.
**マッチングの方法
単純にパッシブステレオと同じアルゴリズムを利用して,2台のカメラ間でマッチングを行うこともできますが,性能を上げたい場合に注意するポイントもあります.パッシブステレオのアルゴリズムの多くは,画像上の物体の物理的な境界に合わせてマッチングウィンドウの形状を調整する方法を採用しています※.ここでは,”画像上のエッジは物体の境界である可能性が高い”という仮定を置いているのです.しかし,パターンを投影する条件下ではほとんどの箇所がエッジになるため,その仮説が成り立たない条件が増えます.利用するアルゴリズムによってはうまく距離を推定できなくなる場合もあるので,注意しておく必要があります.
{{small:※adaptive window}}
**関連する製品
{|
製品名 && メーカー && 計測範囲 && 解像度 && 補足 ||
RealSense R200 && Intel&& 0.5-4.0m && 628x468 (30fps) && ランダムパターン ||
Ensenso N35 && Ensenso && ??m && 1280x1024 && ランダムパターン \\ 複数パターン
|}
{{small:RealSense R200 [link:https://software.intel.com/en-us/realsense/r200camera]}}
{{small:Ensenso [link:https://www.ensenso.com/portfolio-item/n3x/]}}
{{small:技術資料 [link:http://spectronet.de/story_docs/vortraege_2014/141104_vision/141106_03_01_voigt_ensenso.pdf] }}
*TOF (Time of Flight)
[img:1nmx]
光源から光を照射し,物体で反射して戻るまでの時間差を調べることで距離を計測する方式です.物体までの距離が遠い条件でも、精度の劣化が少ないため,上記ステレオ計測と比較すると原理的には遠距離の物体の計測に優れます.
**関連する製品
{|
製品名 && メーカー && 計測範囲 && 解像度 && 補足 ||
Kinect v2 && Microsoft && 0.5-8.0m && 512x424 (30fps) && ||
Xtion 2 && ASUS && 0.8-3.5m && 640 x 480 (30fps) \\ 320x240 (30fps) &&
|}
{{small:Xtion 2 [link:https://www.asus.com/3D-Sensor/Xtion-2/specifications/] }}
>> ご意見・ご質問など お気軽にご連絡ください.info