ZED2iで人体検出を行う
StereoLabのZED2iを触る機会があったので、その備忘録。
機材
・ZED2i
・サンワダイレクト USB延長ケーブル 10m USB 3.2/3.1 Gen1 アクティブ ACアダプタ付 500-USB068
ZED2iのスペック
・ニューラルデプスセンシング
・空間オブジェクト検出
・次世代IMU、ジャイロスコープ、気圧計、磁力計内蔵
・120°の広角FOV
・サーマルコントロール付きオールアルミニウムフレーム
・反射除去用内蔵ポラライザー(オプション
・IP66の防水・防塵性能
・安全なUSB Type-C接続(1.5mのロックケーブル付属)
※公式サイト参照
完全にKinectの上位互換な上、Unity用のプラグインが用意されています。
すごい。
開発環境
・Windows11
・Unity 2022.3.18f1
ZED2iを選定した理由
案件でふわふわ遊具にいる人(複数人)をセンシングする必要がありました。
最初は側域センサを使用する想定でいましたが設置条件が合わず断念。
たまたまZEDを知ったため、試しに使ってみたところ精度もよく距離や画角も丁度良かったのでこちらのセンサを使用することにしました。
人体検出を行う
基本的にはこちらのUnity用プラグインのreadmeにそって必要な手順を踏めばOKです。
ZED を使用して Unity でアプリケーションを開発するには、次のものが必要です。
・ZED SDKをダウンロードしてインストールする。
・Unity 用の ZED プラグインのUnitypackageをgithubからダウンロードし、UnityProjectにインストールする。
プラグインをUnityにインストールする
まずUnityにプラグインをインストールしてみると以下のエラーがでる。
Assets\ZED\SDK\Helpers\Scripts\Utilities\ZEDSupportFunctions.cs(5,22): error CS0234: The type or namespace name 'Management' does not exist in the namespace 'UnityEngine.XR' (are you missing an assembly reference?)
Shader error in 'Custom/Green Screen/Green Screen URP': Couldn't open include file 'Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl'. at line 49
とりあえずXRpluginManagementとURPをインストールすると無事エラー解消し、ZEDのポップアップが表示されるのでAccseptAllをクリック。
これでセッティング完了。
サンプルを触ってみる
3DObjectDetectionシーンを開いてみる。
動いた。
まとめ
キネクトの上位互換どころかボディトラッキングの精度によっては測域センサの代わりにもなりそうです。
また、ZED2iが自己位置を出してくれる(床からの高さや回転など)ためキャリブレーションが非常にやりやすく現場で調整もやる身としてはありがたいです。
引き続き他のサンプルも検証していきたいです。
Discussion