3D デプスカメラ 2021/02/25 .. 28 ~ 3/06

・2021/03/06 サポートの「反射、黒色を表示する方法」のリンクを追加
・2021/02/28 点群データのイメージを追加
・2021/02/28 点群データのイメージを追加
・2021/02/27 デプスレンジを追加
・2021/02/26 点群データをDXF ファイルに変換するツールを追加


現状は、サンプルアプリケーションを動かすことしか出来ていません。
自アプリへの組み込みの目途はたっていません。
興味がある方は f.izawa@dream.com (@は小文字に)までメールを下さい。
1か月ほど無料でカメラ (メーカー提供の SDK, サンプルコード一式)を貸し出しますので、
SDK の仕組み、使い方のヒントでも教えて頂ければ有難いです。


小型・軽量3Dデプスカメラ Occipital 社 SCS-Color を試してみました。リンクはこちらです。
WEB カメラのように簡単に使えるものではありません。
付属 SDK は ROS/ROS2、Windows、Linux、Android、MacOS に対応。
ビルド済のサンプルアプリケーション (.exe) は、..\Samples\PreBuilt\Windows\x86_64 フォルダにありました。
サンプルコードの CMAKE は、アルゴ社提供の日本語説明書で何とかなりました。

サンプルアプリケーション CorePlayground.exe を使って、試してみました。
デプスレンジモードは検出範囲が一番短い Very short に設定。それ以外はデフォルトのままです。
Very short は、40cm~90cm 程度の検出範囲になります。
範囲外は黒色で表示されます。

■デプスレンジ
 ・VeryShort : 0.35m to 0.92m
 ・Short : 0.41m to 1.36m
 ・Medium : 0.52m to 5.23m
 ・Long : 0.58m to 8.0m
 ・VeryLong : 0.58m to 10.0m
 ・Hybrid : 0.35m to 10.0m

■カラー画像


■デプス画像
 検出範囲を Very-short に設定しているので、範囲外は黒色になっています。
 予想以上にゴミがあります。取り付けでカメラケースが歪んでいる場合もゴミが発生します。
 簡易キャリブレーションを行うと良くなるようです。
 どういう訳か作成されるグレースケールのデプス画像は黒一色でした。
 画像による深度判断ではなく、点群データで深度を判断したほうが良いようです。
 IR カメラの特性なのか、黒い対象物、自分への反射、外光には弱いようです。
 これについては、サポートに記事がありましたが、期待通りに動きませんでした。


■CorePlayground.exe から点群データを作成できます。
 拡張子 .ply のテキストファイルで、小数点以下 3 桁の X, Y, Z 値のデータが取得座標分続きます。
 (PLY ファイルは 3D スキャナのデータ形式で、MeshLab、CloudCompare 等で見ることが出来ました。)
 下記データの場合、19,000 程の座標データでした。
 全面に座標データがある場合は、300,000 程のデータになりそうです。
 
 画像座標なので、Y 軸の方向は CAD 座標と反対になっています。

■点群データを CAD で上から見る
 マグカップの径はほぼ正確でした。


■斜め左から見る
 CAD 上でグリグリ回すとそれらしく見えるのですが、↓のスクリーンショットでは分かりにくいかも知れません。
 カメラからの距離、マグカップの高さもほぼ正確でした。


 
■距離精度
 デプスレンジモードが Very short の場合、検出 455.5mm に対して実測 454mm。メッシュサイズは、0.8mm 程度。
 撮影距離 450mm の時、IR カメラの FOV と解像度から計算すると、1 ピクセル = 0.4mm 程度になるのですが、
 作成されるデプス画像と同じ 640×480 相当なのかも知れません。

■点群データを DXF ファイルに変換するツール
 点群データの確認用に作ってみました。
 作成される PLY ファイル専用で、汎用性はありません。ダウンロードはこちらです。
 

メッシュが追加されるので、点群データを確認しやすくなります。


■サンプルアプリスクリーンショット


■上のスクリーンショットの点群データ
 対象物がありそうなところを手動でマークしています。
 赤色:オセロのチップの白色側。黒色側は検出不可。直径19mm 厚さ 5mm
 黄色:10円硬貨(直径2.35mm 厚さ 1.5mm) 2枚のうち1枚は微妙。50円硬貨は反射により検出不可。
 緑色: M6-16mm キャップボルト3本。反射により検出は微妙。
     一番高いところで 10mm は飛び出ているはずが、微妙です。数値上は周囲より数ミリ高くなっています。
 橙色: M3-25mm キャップボルト3本。微妙です。
     一番高いところで 5.5mm は飛び出ているはずですが、M6 同様、面積が小さいので埋もれています。
 (黄色い楕円の上にあるのは、ビニルテープです。)


オセロのチップ(直径19mm 厚さ 5mm)は盛り上がっているのが分かります。
上のスクリーンショットのカラーデプス画像でも、オレンジ色が円形に少し濃くなっています。



■別の画像ですが、中央付近に M6 キャップボルト 3 本が検出されています。
 M3 キャップボルト2本は分かりにくいですが、数値で確認すると、周囲より数ミリ盛り上がっていることが分かります。
 左上にビニルテープ、左下にペットボトルのキャップ、右側にニッパーがあります。 



■サンプルアプリケーション CorePlayground を使った場合、計測データは ドキュメント>OCC>作成時刻フォルダ に作成されます。
 DXF ファイルは、自前のツールで 点群データ PLY を DXF に変換しています。

■電卓
 

 電卓の点群データのみを CAD 上で表示。Very Short で厚み 3mm のキーが取得出来ています。
 
 
 分かりにくいので、キー部分の高さを赤く表示してみました。
 電卓を水平に置いたので、反射するで欠ける部分が増えています。

 
 
 ■反射の影響
  IR カメラの右側の画像:ホッチキスの金属部分の反射で何もないところに影響が出ています。
  外光は遮れば良いのですが、これは非常にまずいですね・・・。