15 の nomo ( @nomotech )です。
この記事はrogy Advent Calender 2020 21日目の記事です。
RGB-Depthセンサを自作しよう【1-基礎知識編】の続きです。
今回は同期撮像についてです。
早速深度センサを自作していきます。
ハードウェア
材料
今回使用するのは以下の部品
部品 | 値段 | 備考 | |
---|---|---|---|
カメラ | Basler acA1440-220uc | 40,000 円 | RGB カメラ Global Shutter 1440×1080px 227 fps |
レンズ | SV-04514V | 18,000 円 | Cマウントレンズ 焦点距離 4.5 mm |
プロジェクタ | CAIWEI ミニプロジェクタ | 29,345 円 | DLPプロジェクタ 3300ルーメン 1280×720px 60 ~ 120 fps |
カメラケーブル | USB 3.0ケーブル | 2,899 円 | HR10A-7P-6S コネクタ トリガーケーブル |
トリガーケーブル | トリガーケーブル | 2,899 円 | HR10A-7P-6S コネクタ |
特にカメラとレンズは値が張りましたが、小さい上に高性能で、様々な用途に使えるので持っていて損はないと思います。
プロジェクタから同期信号を取り出す
前回説明したように、投影に合わせてカメラに同期信号を出すために、プロジェクタを魔改造して基板から同期信号を取り出します。
プロジェクタを開けてみると以下のような基板が出てきます。
このうち、LEDへの信号を出しているところが投影と同期している信号です。ここから出てる4つの信号をオシロで確認してみると、120 fps できれいに動いている波形があります(図の黄色の波形)。
今回の 1盤式 DMDプロジェクタの場合一枚のカラーの絵を投影するときにLEDを切り替えながら投影します。この波形はLEDの色の切り替えをしていると思われます。
ここからはんだ付けして信号を外に取り出します。
取り出した信号はトリガーケーブルを通してカメラに入力します。
(トリガーケーブル地味に電流が必要なのでLEDへの電流も考えると本当はオペアンプを挟んだほうがいい)
ステレオシステムを組む
今回は時間が無かったのでこんな感じで適当にカメラとプロジェクタを固定しました
本来ならばちゃんとベースラインとか意識したほうがいいけど、それは対象距離に合わせるものなので、使用用途を決めるときにまた変えればいいです。
同期撮像テスト
同期撮像
トリガーを使ってプロジェクタの投影と同期して撮像できるかをテストします。
プロジェクタをPCにHDMIで接続し、以下のような赤緑青を含むテスト画像を投影しました。このテスト画像の上の数字はPCからの出力に合わせてインクリメントします。
HDMIからのリフレッシュレートは 60 Hz となっていたのに対して、トリガーは 120 Hz で出ていたため、露光時間 8000 us (≒1/120 s)で撮像してみました。下の gif はテスト画像をトリガーによる同期によって撮像した結果です。
暗くてわかりにくいですがテスト画像の上の数字が 2 回に 1 回しか変化しないので、同じ画像を 2 回ずつ投影していることがわかります。
つまりHDMI からのリフレッシュレートは 60 Hz であるのに対し、プロジェクタの投影自体は 120 Hz で行われていることがわかりました。
(PCからHDMI経由だと 60 Hz までしか指定できなかったけど、どうにかして 120 Hz で画像を切り替えらる方法があれば、120 fps で深度計測ができる)
投影の内訳
次にプロジェクタの投影の内訳を調べるために露光時間を 100 us にして露光開始時間をずらしながら撮像した結果が下の gif です。
1 / 120 s までずらしていくと、B G B G R の順番に投影されていることがわかりました。
(赤だけ、青だけしか投影しないはずの場所にたまに緑が投影されてるのは謎です)
基板からの波形と照らし合わせると、トリガーは赤の投影に相当する信号だということがわかりました。
(なぜ青と緑が2回ずつ投影されているのかは謎。)
(緑だけ投影時間が長い理由もわからない。LEDが緑だけ弱いのかそれとも人間の感度に合わせるために緑多めなのか?)
これでプロジェクタの投影に同期して撮像できる装置が完成しました。
次回は、3 次元計測をする前にキャリブレーションについてまとめます。
続きはこちら
RGB-Depthセンサを自作しよう【1-基礎知識編】
RGB-Depthセンサを自作しよう【2-同期撮像編】
RGB-Depthセンサを自作しよう【3-キャリブレーション編】
RGB-Depthセンサを自作しよう【4-構造化光法編】
RGB-Depthセンサを自作しよう【5-深度計算編】