はじめに
最近、大学の研究でmmdetection3dを触ることがあり、チュートリアルを行ったのですが、すんなりいかなかったのでmmdetection3dのシステム構成などを備忘録として記録しておきます。
mmdetection3dとは
mmdetection3dとは、LiDARなどの点群データに対して物体検出やセグメンテーションのタスクの学習、推論を行うための機械学習ライブラリである。すでに学習済みモデルが存在しているので、論文ではよくベースラインとして使用されたりしています。また、Tier4社のAutowareではmmdetection3dのcenterpointを使用して作成したモデルが使用されています。
点群データに関する機械学習ライブラリとしては中心的なライブラリです。
mmdetection3dで推論
mmdetecttion3dで既に用意されてるモデルによる推論を試すには以下のような手順を行います
- mmdetection3dのgithubをクローンする
- 環境構築を行う
- モデルをダウンロードする
- モデルに合ったデータを構築するためのメタデータが入ったpythonファイルをダウンロードする
- 実行する
一つずつ手順を説明します
1. mmdetection3dのgithubをクローンする
mmdetection3dのgithubから任意の場所にクローンします
2. 環境構築を行う
環境構築を行う際に私の思いつく限り2つの手段があります。
1つ目がDockerで環境を構築する方法です。すぐに試したいという方はこの方法をオススメします。mmdetection3dの公式からDockerファイルが公開されているのでこれを実行するだけです。
2つ目が仮想環境で実環境を用意する方法です。こちらは少し手間がかかります。インストール方法はmmdetection3dの公式ドキュメントに書いてあるのでなぞるだけです。ただmmcvのダウンロード部分で躓いてしまうので頑張ってみてください
3. モデルをダウンロードする
mmdeteciton3dのcenterpoint configページからmmdetection3dディレクトリの下にhv_pointpillars_secfpn_6x8_160e_kitti-3d-car_20220331_134606-d42d15ed.pth
をダウンロードします
これが学習済みモデルです。
4. モデルに合ったデータを構築するためのメタデータが入ったpythonファイルをダウンロードする
mmdeteciton3dのcenterpoint configページからmmdetection3dディレクトリの下にpointpillars_hv_secfpn_8xb6-160e_kitti-3d-car.py
をダウンロードします。これが先ほどダウンロードしたモデルの入力にフィットするデータセットに整形するためのメタデータが保存されたpythonファイルです。
5. 実行する
1 | python demo/pcd_demo.py demo/data/kitti/000008.bin pointpillars_hv_secfpn_8xb6-160e_kitti-3d-car.py hv_pointpillars_secfpn_6x8_160e_kitti-3d-car_20220331_134606-d42d15ed.pth --show |
上のコードを実行すると推論が開始されます。コードを見るとわかりますが、先ほどダウンロードしたモデルとpythonファイルを指定して推論を行います。
すると以下のようなopen3dの推論結果が出力されると思います。(データは違うのでこれとは違う点群が表示されます)
任意の点群を入れるには
僕が以前書いたこちらを参考にしてみてください
https://kich12345.hatenablog.com/entry/2023/12/22/003835