【RGBDカメラ】ORBBEC Femto Bolt/Femto Mega 3Dカメラを使ってみよう!【Azure Kinect】
みなさん、はじめましてアルバイトの田中です。
今回は、弊社で取り扱い予定のORBBEC Femto BoltとORBBEC Femto Megaを紹介していこうと思います。Femto Bolt/Megaとは中国深圳のORRBEC社が開発した、高画質のRGBカメラとToF形式で高精度のデプスカメラが統合されたデバイスです。似た要素を持つ他社製のRGBDカメラブランドとしてRealSenseやAzure Kinectがあります。しかし、RealSenseは一部製品の開発が終了していたり、Azure Kinectは生産終了となっていたりします...。そんな廃版が続くRGBDカメラ界ですが、中国で大きなシェアを得ているのOrbbec社製RGBDカメラはどのような商品なのでしょうか。
目次
- ORBBEC Femto Boltとは?
- ORBBEC Femto Megaとは?
- どんなことができる?
- 開封
- 環境構築
・Azure Kinect Sensor SDKでの使用
・Orbbec SDKでの使用 - サンプルを活用して少し遊んでみた
- 最後に
まずは、スペックの紹介をしていきます。
ORBBEC Femto Boltとは?
今回ご紹介するOrbbec Femto Boltとはコンパクトで高性能なRGB-Depthカメラです。 Femto Boltは、Microsoft社のToF技術を引き継いだことでAzure Kinectと同等の操作性とパフォーマンスがあり、Microsoft Azure Kinect DKの推奨代替品となっています。
なぜ、Microsoft Azure Kinect DKの推奨代替品なのかといいますと、実は2023年に、Microsoft社はRGBDカメラ事業を撤退したのち、Orbbec社と正式に連携をししたのです。Microsoft社との連携に関するOrbbec社の公式ページはこちらから。
以下の動画は、ORRBEC公式が紹介するAzure Kinect DKとFemto Boltの比較動画です。
Femto Boltの主な特徴として
- コンパクトかつ1 MPと高解像度のRGB-Dカメラを搭載
- 4K RGB HDR撮影に対応
- 6DoF IMU機能付き
- 120°FOVと広範囲な視野角
- Type-C 3.2に対応し、給電とデータ転送はケーブル一本で可能
- 高精度同期トリガー制御
- APIによりセットアップが簡単
といったことが挙げられます。
以下に詳細スペックを掲載します。
項目 | 詳細 |
動作環境 | 屋内/半屋外 |
深度測定方法 | ToF(Time of Flight) |
深度測定範囲 | 0.25~5.46 m |
IMU | あり |
SDK | Orbbec SDK K4A Wrapper Orbbec SDK |
測定精度 | <11 mm+0.1% |
深度視野角 |
WFoV:120° x 120° NFoV:75° x 65° |
デプスカメラ解像度とフレームレート | 最大1024 x 1024@15FPS |
シャッター方式 | グローバルシャッター |
RGB視野角 | 80°×51° |
RGBカメラ解像度とフレームレート | 最大3840 x 2160@30FPS |
シャッター方式 | ローリングシャッター |
電源 |
DC:12V / 2A USB:5V / 3A |
コネクタ | USB 3.0 Type-C |
防塵防滴 | なし |
マルチデバイス同期ポート | 8ピン |
動作温度 | 10℃~25℃ |
重量 | 335 g |
寸法(幅×高さ×奥行き) | 115 mm x 40 mm x 65 mm |
取付方法 | 1 x 1/4-20 UNC 4 x M2.5 |
ORBBEC Femto Megaとは?
Femto Megaは、Femto BoltのJetson Nanoが搭載された高性能バージョンです。Femto Megaの主な特徴として、データ転送前のデプス画像の前処理とLAN対応、PoE対応が挙げられます。
USBは長距離伝送が不得意なので、カメラと処理PCが離れた場所にある時は、電源供給も通信も長距離可能なFemto Megaが役に立ちそうです。搭載しているカメラのスペックはFemto Boltと変わりません。以下にFemto Boltと異なる点を示します。
電源 |
DC:12 V 2A USB:5 V 3 A PoE:802.3at(24 W) |
電源供給とデータ通信 | DC電源/USB Type-C/PoE |
コネクタ |
USB 3.0 Type-C micro USB ギガビットイーサネット |
重量 | 560 g |
寸法 | 115 mm x 40 mm x 145 mm |
どんなことができる?
高画質のRGBカメラと視野角の大きい深度カメラを搭載しているので、ロボットへの組み込みで物体の認識を行うことはもちろん、AR/XR分野で利用できる深度情報を含んだ4Kビデオを撮影したり、Azure Kinectの体骨格アルゴリズムを利用してフィットネス分野へ応用したりできます。
以下は、ORRBEC公式がFemto Boltの活用方法を紹介する動画です。動画内では、体の動きを駆使したアーケード機への組み込み例を紹介しています。
開封
Femto Boltの開封
開封すると早速本体が見えてきました。
中身は写真の通りですが、本体に加えて、電源供給/通信用のUSB Type A to Cケーブルと、USBから電源が取れない場合用のACアダプタ(12 V/2 A)が同梱しています。
しかし残念ながらACアダプタは電気用品安全法の規制の関係上取り除いて販売しなければなりません……別途用意が必要ですが、12 V / 2 Aは比較的用意が簡単です。例えばこちらのACアダプタがご利用いただけます。
Femto Megaの開封
こちらも開封してすぐに本体が見えました。
中身は写真の通りです。Femto Boltと違い、USB Type-C to CケーブルとACアダプタ(12 V/2 A)が付属していましたが、こちらもACアダプタは取り除いてしまうため、別途ご用意ください。
環境構築
Femto Boltを開封してPCにType C経由で接続したので、ここからは簡単に使用方法を紹介していきます。環境構築手順はJetson Nanoを搭載し、単体で動作するFemto Megaも変わりません。環境構築はORBBEC社提供のドキュメントを参考に進めていきます。使用方法は大きく2つあり
- Azure Kinect Sensor SDKを使用する方法
- ORRBEC SDKを使用する方法
があります。まず紹介する使用方法は、前者のMicrosoft社提供のAzure Kinect Sensor SDKをFemto Boltに対応させて使用する方法です。
Azure Kinect Sensor SDKでの使用
使用した環境
- Windows11
- Azure Kinect Sensor SDK(1.4.2)
- OrbbecSDK K4A Wrapper(1.10.3)
構築手順
- https://github.com/orbbec/OrbbecSDK-K4A-Wrapper/releasesからOrbbecSDK K4A Wrapperをダウンロード
- https://github.com/microsoft/Azure-Kinect-Sensor-SDK/blob/develop/docs/usage.mdからAzure Kinect Sensor SDKをダウンロードし、インストール
-
ダウンロードしたOrbbecSDK K4A WrapperからAzure Kinect Sensor SDKへファイルのコピー。コピーの手順は以下に示すとおりです
OrbbecSDK_K4A_Wrapper/includeからC:/Program Files/Azure Kinect SDK v1.4.2/sdk/includeへ「k4a」と「k4arecord」フォルダをコピー -
OrbbecSDK_K4A_Wrapper/libからC:/Program Files/Azure Kinect SDK v1.4.2/sdk/windows-desktop/and64/release/libへ「k4a.lib」と「k4arecord.lib」ファイルをコピー
OrbbecSDK_K4A_Wrapper/binからC:/Program Files/Azure Kinect SDK v1.4.2/sdk/windows-desktop/and64/release/binへ「k4arecord.dll」、「k4a.dll」、「OrbbecSDK.dll」、「depthengine_2_0.dll」ファイルをコピー
OrbbecSDK_K4A_Wrapper/binからC:/Program Files/Azure Kinect SDK v1.4.2/toolsへ「k4arecord.dll」、「k4a.dll」、「OrbbecSDK.dll」、「depthengine_2_0.dll」、「live555.dll」、「ob_usb.dll」ファイルをコピー
- Femto BoltをPCとUSB Type-Cで接続してAzure Kinect Viewerを起動すると以下の画像のようなソフトが立ち上がります。
Orbbec Femto Bolt/Megaでは以上の環境構築を行うことで、Microsoft Azure Kinect DKからの置き換えが簡単に行えます。Viewer以外にもAzure Kinect専用のBodyTracking SDKもOrbbecSDK K4A Wrapperを導入することで、Microsoft Azure Kinect DK同様の操作が可能となります。
Orbbec SDKでの使用
こちらの方法はOrbbec製のFemto Boltのソースコードをコンパイルして起動する方法です。Orbbec SDKはOSはWindowsに限らず、Linux OSやMacOSにも対応しています。そのため、組み込みシステムを構築する際にはこちらのOrbbec SDKの導入で柔軟な開発が行えます。今回は以下の通りWindows11環境で進めます。
使用した環境
- Windows11
- Orbbec SDK(1.10.12)
- OpenCV(4.10.0)
- Microsoft Visual Studio 2022
- Cmake(3.26.4)
チュートリアルではOpenCV(4.3.0)、Visual Studio 2019、Cmake(3.10)を使用していますが、今回ツール群は最新の環境に合わせて使用していきます。
構築手順
- https://github.com/orbbec/OrbbecSDK/releasesから64bitのWindows向けOrbbecSDKをダウンロード
- ダウンロードしたzipファイルを任意のツールで解凍
- OrbbecSDK_v1.10.12/Doc/tutorial/English/Environment_Configuration.mdを参考にチュートリアルを進める。ここでは簡単にチュートリアルの内容と最新のOpenCVバージョンに対応させてビルドする方法を書き下します。
https://opencv.org/releases/からWindows向けのOpenCV ver4.10.0をダウンロード。ファイルの解凍先はCドライブ直下等のアクセスしやすい場所にします。
システム環境変数の設定からOpenCV_DIRを追加し、パスをOpenCVのbuildファイルの場所に指定します。
Cmake GUIを起動し、ソースコード欄にOrbbecSDK_v1.10.12/Example、バイナリーのビルド先にOrbbecSDK_v1.10.12/Example/buildを指定しConfigureをクリック。正常に設定が完了したらGenerateをプロジェクトを生成します。こちらも正常に生成が終わったらOpen ProjectしVisual Studio 2022が開きます。
Visual Studioの右側タブから任意のサンプルプログラムを選択し、右クリックから「スタートアッププログラムに設定」をクリック。ビルドを行います。
ビルド後、エラーが発生するのでエラー表示の不足ファイルの一覧に従い、OrbbecSDK_v1.10.12/Example/bin内の「〇〇.dll」、「OrbbecSDKConfig_v1.0.xml」、「MultiDeviceSyncConfig.json」をOrbbecSDK_v1.10.12/Example/bin/Debugにコピーします。また、サンプルプログラムはOpneCV 4.3.0を使用する想定なので、4.10.0に対応できるようにC:/opencv/build/x64/vc16/binから「opencv_world4100.dll」をOrbbecSDK_v1.10.12/Example/bin/Debugにコピーします。
再度ビルドし実行すると無事にサンプルプログラムを起動できます。以下の画像は、サンプルプログラム「MultiStream」を起動し、RGBカメラ、デプスカメラ、赤外線カメラの画像情報とIMUからの取得値を表示している様子です。
以上の設定を行うことで、Windows環境でコード作成から実行までが可能となります。なお、プロジェクト作成をせず、Viewerで出力を試してみたい方は、Orbbec Viewerをダウンロードしてソフトを起動するだけで出力結果を見ることができます。
サンプルを活用して少し遊んでみた
Microsoft Azure Kinect DKの代替品なので、Azure Kinect専用アプリケーションのBodyTracking SDKも動きます。下の写真は、Femto Boltに50 cm程度離れた位置から骨格推定をしてもらった写真です。
画角が広いので広範囲で認識ができています。BodyTracking SDKはFemto Boltでも特に不具合なく動きました。実際の動作は動画の通りです。
足元は全く映っていませんが、足の位置を正確に判断してくれていますね。BodyTracking SDKはUnityとの連携も可能なので、全身アバターを動かして映像を作ってみたり、Vtuberになってみたりと楽しめそうですね~。
最後に
Femto BoltとFemto Megaを動かしてみましたが、どちらもデプスカメラで細部まで距測できていて驚きです。私は今までステレオカメラタイプのデプスカメラを触っていたので、ToF形式でのマッピング精度は素晴らしく感じられました。
高画質なカメラデータと高精度なデプスカメラデータが欲しい方は、ぜひ購入を検討してみてはいかがでしょうか。
Azure Kinect Sensor SDKへの対応については、チュートリアルの通り操作すれば簡単に行えるので、Kinectの後継機がなくてお困りの方も機種変更を検討してみてはいかがでしょうか。
ORBBEC社はToF式のデプスカメラ以外にも、ストラクチャードライト式やステレオビジョン式のRGBDカメラも発売しています。弊社でも以下のラインナップを取り扱っています。
ストラクチャードライト式デプスカメラ
ステレオビジョン式デプスカメラ
Gemini 335についてもブログを公開していますので、ぜひご覧ください。
最後まで読んでいただきありがとうございました。