Help us understand the problem. What is going on with this article?

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

目標

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

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

image.png

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

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

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

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

ステレオカメラ

概要

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

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

アイサイトのしくみ

またこちらのWhitePaperも参考になります。
Obtaining Depth Information from Stereo Images

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

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

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

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

ステレオカメラではピクセルがどれくらいずれた事から、物体までの距離を測ることができます。この際カメラ同士が離れれば離れているほど物体に対してピクセルずれは大きくなるため、正確な距離が図りやすいです。一方でカメラ同士が近いとほとんどピクセルズレが起こらないため、距離を測るのは難しくなります。画素数を向上させれば原理的には測距距離は長くなりますが、信号処理量が指数関数的に増加してしまうのが欠点です。

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

image.png
Reference: Obtaining Depth Information from Stereo Images

またステレオビジョンを適応するには左右の画像間で高低差があってはいけません。
そのため前処理でカメラ歪除去と高低差除去のキャリブレーション(rectify)が必要です。

特徴

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

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

使用製品

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

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

RealsenseD430系にはパターンプロジェクションも付いていますが、距離推定に用いているのはほぼステレオカメラです(プロジェクションを切ってもほぼ絵が変わらないためあくまで補助機能)

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精度)。

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

またパターンプロジェクションとステレオビジョンを両方使うアプローチは多いです。
EnsensoやRealsenseでは両方の機能をもたせており、ステレオビジョンが苦手なマッチングが取りにくい物体の

使用製品

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 LiDAR

こちらのブログに詳細を書きました。

arutema47
Ph.D hardware researcher、Kaggle Master https://aru47.hatenablog.com/ ほぼQiitaに書くことはないのでブログ見て下さい~;)
https://aru47.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away