物体の三次元姿勢推定 Gen6D を試してみる デモ編【Windows11, Python】

AI
スポンサーリンク

スポンサーリンク

はじめに

前回は COLMAP, FFmpeg, CloudCompare のインストール方法と、データセットの準備方法について説明しました。

今回は、CloudCompare の使い方と、Gen6D による姿勢推定方法について説明します。

前提条件

前提条件は、以下の通りです。

  • Windows11 or Windows10
  • CloudCompare がインストールされている
  • COLMAP で推定したい物体の pointcloud を作成済み

CloudCompare で物体の PointCloud を切り出し

CloudCompare で物体を切り出していきます。

前回作成した pointcloud.ply を CloudCompare で開いてください。

遠くて何も分かりませんが、マウスホイールでズームしてみましょう。

マウスの裏側が見えました。ドラッグ等を使用して以下のように表示してください。

ここから、緑の床部分のみを切り出します。

右上に以下の画像のようなポップアップが出ます。

Rectangular selection を選択して 緑の線のように囲ったら赤丸の部分をクリックして切り出してください。

別の方向からも切り出してください。

ここまできたら、次はマウスのみを切り出してください。

できるだけ様々な角度から切り出してください。今後の推論に影響します。

今作成したマウスの pointcloud のみを選択し、左上のフロッピーマークから
object_point_cloud.ply として BINARY 形式で保存してください。

保存したら、data/custom/mouse_test/ に保存してください。

CloudCompare は開いたままにしてください。

meta_info.txt の編集

今度は pointcloud の情報を data/custom/mouse_test/meta_info.txt に入力していきます。新規作成する必要があります。

必要なのは、物体の前方向と床の垂直方向です。

まずは、マウスを切り出した後の残った床部分の点群を選択してください。
その後、以下の画像の赤丸をクリックしてください。

そして、平面部(緑の床のところ)をクリックしてください。

すると下のコンソールに Normal: () と表示されているのでこれを meta_info.txt の二行目に記載します。

この時、+ と – は反転させてください。
今回は -0.976437, 0.131275, 0.171283 となります。

次に、物体の前方向を測定します。

ポップアップの赤枠の部分をクリックしてから、1 → 2 とクリックしてください。

2.699349, -0.810141, 0.605499 を meta_info.txt に記載します。

最終的に、data/custom/mouse_test/meta_info.txt は以下のようになります。

2.699349 -0.810141 0.605499
-0.976437 0.131275 0.171283

カンマは不要です。半角スペースを使用してください。

Gen6D の推論の実行

準備ができたら、推論を実行します。

コマンドは以下のようにしてください。

python3 predict.py --cfg configs/gen6d_pretrain.yaml --database custom/mouse_test --video data/custom/video/mouse-test.mp4 --resolution 960 --transpose --output data/custom/mouse_test/test --ffmpeg ../ffmpeg-master-latest-win64-gpl/bin/ffmpeg.exe

推論が完了すると、data/custom/mouse_test/test に video.mp4 が作成されます。

以下のような出力になっています。

正面の向きがずれていますね。
CloudCompare で正確に指定しないと、この辺はずれてしまいます。

おわりに

今回は Gen6D でデモデータの姿勢推定を実行しました。

CloudCompare 上で丁寧に切り出し、meta_info.txt の正確な指定をすることによってさらに精度は上がると思います。

次回は、カスタムデータで Gen6D の推論を実行していきます。

コメント

タイトルとURLをコピーしました