Edited at

距離センサ入門(ステレオカメラ、プロジェクション、LiDAR)


目標

通常のカメラは物体の明るさ、色を抽出するのに対し、距離センサは物体までの距離をセンシングします。そのため3DカメラやDepth Sensorなどと呼ばれたりします。

距離を知ることは多様なアプリケーションにおいて重要であり、例えば自動運転では前方車両までの正確な距離を知ることは必須です。またゲームなどのアプリケーションでは人の動作などを距離センサで抽出するKinectが遊びの幅を広げました。またDaVinciといった手術ロボットでも患部の正確な距離を知るためにも距離センサは重要です。

image.png

この記事では世の中に大きくどのような距離カメラがあるのか、それらの概要や特徴、使用されている製品をリストします。

研究プロジェクトに使用する距離センサが選べるようにするのが目標です。

自分はLiDARの専門家なのでカメラベースの手法にはあまり詳しくないのですが、使われることの多い距離センサなため、ステレオカメラやプロジェクションカメラについても記述しました。

実際に各センサから得られる"絵"がどういう感じが見せられれば良かったですね。。


ステレオカメラ


概要

スバルアイサイトなどに搭載されている市場に多く出回る距離センサです。


https://www.subaru.jp/eyesightowner/about/


アイサイトのしくみ

原理は人間がものを立体的にみるのと同じ原理です。

目を左右交互につむり、モニタを見ると左右にずれるのがわかりますか?

脳はこのずれが大きい物体ほど近くにあり、ずれが小さいほど遠くにあると認識してくれます。これがステレオカメラの原理であり、人間が使っている距離センサもステレオカメラがベースになっているといえます

ステレオカメラではピクセルがどれくらいずれた事から、物体までの距離を測ることができます。この際カメラ同士が離れれば離れているほど物体に対してピクセルずれは大きくなるため、正確な距離が図りやすいです。一方でカメラ同士が近いとほとんどピクセルズレが起こらないため、距離を測るのは難しくなります。

またステレオカメラ最大のチャレンジは、2つのカメラが同一の物体を見ているかどうかを判定することです。これには高度な画像処理テクニックが必要で、遠くの物体が本当に同一かどうかを当てるのはとても難しくなります。


https://www.zmp.co.jp/knowledge/adas_dev/adas_sensor/adas_camera/adas_stereo

png.png



特徴

他の距離センサは専用部品(レーザなど)が必要な一方で、ステレオカメラは普通の市販カメラを2つ使うだけで実現できるため、コストが安いのが最大のメリットです。

ただ距離を測るために左右のカメラで同一の物体の同じ場所を見る(認識する)必要があり、遠くのものの距離を測るのは難しい。数式などは省略するが、アイサイトのようにカメラを離れて設置しないと遠くのものでは視差が生まれないため、遠くまで見たい場合は筐体が大型化してしまうのが欠点です。


使用製品

また市販製品ではIntelのRealSenseがソフトウェア(SDK)もついてきて試しやすいです。3万円くらいで買えます。

近距離(1-3m)ならば高い精度は得られ、CPUでもリアルタイム(30FPS)で動作するので近距離のアプリケーションならば安く、使いやすいです。


https://www.intelrealsense.com/depth-camera-d435/

image.png



パターンプロジェクションカメラ


概要

工業用の高性能3DカメラやiPhoneのFaceIDで使われているのがパターンプロジェクションカメラです。

物体に既知のパターンを投影し(パターンプロジェクション)、その歪み方からカメラと物体までの距離を信号処理によって導出します。

説明を聞いてもよくわからないが、下記の図を見るとわかりやすいかと思います。ヘルメットのような物体があるところにしましまのパターンを投影すると、物体の高さによってしましまが歪むことがわかります。このような歪みを読み取り解析することで、ヘルメットの三次元形状を知ることができます。

pattern.png

また下記の動画はiPhoneのFaceIDの仕組みについて解説してます。赤外線で顔中にパターンを放射し、顔の正確な形状を読み取ることができる。凹凸をみているのでFaceIDを騙すのは難しく、セキュリティを強固なものにしていますね。


Using An Infrared Camera To Show How Face ID Works

https://www.youtube.com/watch?v=g4m6StzUcOw

maxresdefault.jpg



  • LiDARに比べると部品がシンプルなため、価格が抑えられるのが特徴。


  • 室内使用であれば非常に高い精度が得られる(mm~um精度)。


  • 一方で外乱の多い屋外使用は厳しい。



使用製品


iPhone

Image result for iphone face id

iPhoneの顔認証(FaceID)はアクティブプロジェクションカメラで実現されています。

FaceIDが使われるたびに、iPhoneは赤外線のパターンを放射してます。

実は元の技術はMicrosoft KinectV1を開発していた企業(PrimeSense)をAppleが買収し、発展したものです。

関係者の間ではMiniKinectなどと言われています。。笑


ゾゾスーツ


https://zozo.jp/zozosuit/

1570948182773.png


ゾゾスーツもスーツのドットをカメラで撮影し、距離を測っているという意味で技術的には似ている。ただゾゾスーツはドットを投光していないのでパッシブプロジェクションと言えるかもしれない。人の大体のサイズ感が測れれば良いためか、FaceIDのカメラに比べると点数は少なめ。


工業製品

数マイクロメートル精度が得られるためキーエンスのセンサなど工業用の製品に多く使われており、ロボット製品にも使われることが多い。一方でプロジェクションを正確に読み取れるのは数メートル範囲内のみであり野外の使用などは厳しい。


https://www.keyence.co.jp/landing/req/vision/xg-x_1049_01.jsp



Time of Flight LiDAR


Time of Flightの原理

カメラベースの距離センサ(ステレオカメラ、プロジェクション)とLiDARは原理が根本的に異なる。

一方でLiDARはTime of Flight(光の飛行時間)をベースにして距離を測ります。

原理としては単純で、下記の図のようにレーザ光を筐体から放ち、そのレーザが物体に反射して返ってくるまでの時間を計測する。もしレーザ光が10秒後に返ってきて光速を単純のため1m/sとすると、物体までの距離は

(10秒 * 1m/秒)/2 = 5m

と5m先に物体があることがわかります。このように飛行時間をベースにして距離を導出する手法をTime of Flightと呼びます。

実際の光速は10^8m/sと非常に早いため、光が返ってくるまでの時間は数ピコ秒、ナノ秒のオーダーなので時間を計測する回路には高い精度が求められます。

このようなレーザパルスの帰還時間を直接測定するタイプのLiDARはdirect Time of Flight sensorとも呼ばれます。


https://tech.nikkeibp.co.jp/atcl/nxt/column/18/00001/02023/?ST=nnm

image2.png



特徴

LiDARの最大の特徴は


  • 高精度

  • 遠距離

  • 外乱に強い

  • 値段が高い(笑

と4つ挙げられます。強いパルスレーザ光を照射し、その帰還時間から直接距離を導出するため誤差が混入しづらく信頼性が高いのが特徴です。これらの特徴はカメラベースで実現するのは難しいため、過酷な条件でも動作が義務付けられる自動運転ではLiDARが主に遠方の物体検出で使われることが期待されています。

一方でスキャン機構、レーザ出射機、レーザ受光部と多くの専門素子が必要になるためカメラ型に対してコストは数倍~数十倍高くなってしまうのはデメリットです。


https://www.zdnet.com/article/am-vs-fm-the-battle-brewing-in-lidar-technology/

image.png

この図のような精微な点群(Point Cloud)によって環境をスキャンできるのはLiDARの最大のメリットです。



スキャン型LiDAR


https://www.gizmocrazed.com/2019/03/gates-backed-lumotive-upends-lidar-conventions-using-metamaterials/

image.png


LiDARのの上記のTime of flightの原理で1画素あたりの距離を取得することはできます。それでは絵として距離情報を得るためにはどうしたら良いのでしょう?そのための工夫としてLiDARにはスキャンという概念があります。

一つのアプローチはミラーを使い、出射するレーザ光を走査(スキャン)する方法です。


https://commons.wikimedia.org/wiki/File:LIDAR-scanned-SICK-LMS-animation.gif

image.png


上記のアニメーションはミラーを使ったLiDARのスキャンをわかりやすく表しています。ミラーを回転させることでレーザ光を360度走査し、周辺環境の全ての情報を得ることができます。

このとき1画素ずつ情報を得ながら二次元的にスキャンするのが2Dラスタースキャンという方式で、縦画素を一気に取得しながら横方向にスキャンする方式を1Dスキャンと呼びます。両者とも距離は出ますが、1Dスキャン法が距離画像を得るために必要な時間が短いため、高いFPSを達成しやすいです。

一方でミラーを使うと(一眼レフカメラのように)LiDARの筐体は大きくなってしまいます。そのためミラーを使わずにMEMSミラーを使ったり、光学的にスキャンするOptical Phased Array LiDARなども開発が活発に進められており、将来的にLiDARの小型化や低コスト化は進むと見られています。


フラッシュ型LiDAR

またスキャンをせずにカメラのイメージセンサのように二次元画素情報を一度に取得するようなLiDARも開発されています。イメージセンサ全体を覆うようなレーザ光を出射し、それを受光するだけなので構造的には非常に単純です。そのためスキャン型に比べ低コストで実現可能です。

一方で課題はいくつかあり、

- 1画素あたりのレーザパワーが少ないため距離が短い

- 外乱に弱い

- 干渉などに弱く、ノイズが発生しやすい

というのが欠点のため自動運転には適さないが、室内のロボットなどには活かせるかもという感じです。


製品


Velodyne Series

最も有名なToF LiDARはVelodyneの製品でないでしょうか。LiDAR製品を初めて世に出したメーカーで現在も帝王として君臨しています。

彼らの製品は数十万~数百万と非常に高額ですがそのクオリティは一級品。Velodyneを使っていない自動運転車はTeslaとWaymoくらいだと思います(Waymoは独自LiDARを使用)。ロボットの研究開発の現場でも画素数や精度が高いため、Veloが使われることが多いイメージです。


https://www.argocorp.com/cam/special/Velodyne/Velodyne.html?gclid=Cj0KCQjw84XtBRDWARIsAAU1aM1Ju25gUAikE0JxHX9biCap3SXNOdzucZPvuuKWewTlC3470-_v_jMaAlPTEALw_wcB

VLP-16_2.jpg


またVelodyne以外にもLiDARを開発している企業は多いです(特に車載サプライヤー)。

今後数年で一気に低価格化が進み、LiDARは身近なものになっていくのではないでしょうか。

ちなみにアマゾンで検索すると縦方向が1画素のみの1Dライダーを安く買うことはできます笑 前方監視用途にはいいかもしれません。

1570950203160.png


iPhone

image.png

iPhoneのフロントには実は結構昔からToF LiDAR(1画素)が搭載されています。

スキャンなどはしないので低コストなのでしょう。

画像で言うProximity Sensorがそうです。

通話する時、iPhoneの画面を顔に近づけると画面は自動的に切れます。これは顔とiphoneとの距離をセンシングしているからだと思います。


iToFやFMCW LiDAR

LiDARはパルス反射時間を測るものだけではなく、レーザ位相のずれを測るタイプ(indirect time-of-flight)やレーザ光を変調しミリ波レーダのように距離を測るFMCW(Frequency modulated continuous wave) LiDARといったタイプもあります。

iToF LiDARはKinectV2, V3を実現する技術で非常に高い精度を達成しますが遠距離は取れません。

またFMCW LiDARはBlackmoreなどユニークな米国のベンチャーが開発しており、ドップラー効果により物体の相対速度まで取れることが特徴ですがコスト面に課題が多いです。

いずれ時間のある時に加筆したいですね。。