【3D検出シリーズ-PointRCNN】PointRCNNコードを再現
(4) 変更された LiDAR ファイルの追加の点群ラベル/マーカーを 5 次元として含む LiDAR を表示します
まず環境設定をアタッチします。
Ubuntu 18.04
Python3.6
pytorch 1.8.0 トーチビジョン 0.9.0 cuda 11.1
(これらを急いでインストールしないでください。後でチュートリアルがあります) Mayavi 4.7.1 vkt 8.2.0 traits 6.2.0 traitsi 7.2.1 PyQt5 5.15.2
1. コードをダウンロードする
https://github.com/sshaoshuai/PointRCNN
Pytorch バージョンのコードは github から直接ダウンロードできるため、この手順についてはあまり説明する必要はありません。
ダウンロード方法がわからない場合は、ターミナルを直接開いてコードを入力できます。
git clone https://github.com/sshaoshuai/PointRCNN
!!!!知らせ!!!!
!!!ダウンロード後のコードが不完全です。!!
それ以外の場合、次のエラーが報告されます: No module names 'iou3d_cuda'
pointnet2_lib を開くと空になっていますが、このとき github でこのフォルダーを別途開いて中身をダウンロードし、ローカルの code フォルダーに置く必要があります。次に、次のコードを実行していくつかのツールをインストールする必要もあります。
sh build_and_install.sh
エラー 1:
エラー: コマンド 'gcc' が終了ステータス 1 で失敗しました
解決策: ディレクトリを入力します: ~/pointnet2_lib/pointnet2/src/ -----> ファイル内のすべての cpp ファイルの THCState_getCurrensStream(state) を c10::cuda::getCurrentCUDAStream() に変更します。
エラー 2:
解決策: 次のディレクトリを入力します: ~/lib/utils/roipool3d/src/roipool3d.cpp ----->ファイル内の AT_CHECK を TORCH_CHECK に変更します。
2. データセットを準備する
(1) 公式サイトが提供するデータセット形式を使用する
まずKITTIのデータセットをダウンロードする必要がありますが、公式サイトに行くと全然ダウンロードできないので試す必要はありません。Baidu クラウド ディスクに直接アップロードしている偉い人がいて、そこからダウンロードできます。KITTI データセットのダウンロード (Baidu Cloud) (作者は簡単ではありません。他の人に「いいね!」やサポートを与えることができます!!)
公式Webサイトのデータセット構造は次のようになります。
よく理解していない初心者もいるかもしれません(できるだけわかりやすく説明するように努めていますが、ご容赦ください。読み飛ばしても構いません)。次のように私のものを参照してください。
(2) ソフト接続を使用する
PointRCNN を実行する前に、最初に PointPIllars を実行したため、新しいコピーの作成を避けるために、ソフト接続を直接使用できます。PointPillars のデータセットをここに直接接続します。
PointRCNN の data/KITTI フォルダー内:
ln -s (PointPillars数据集的路径) object
object は作成されたフォルダーの名前を表します。この名前を使用するのが最善です。そうしないと、コードを変更する必要があります。データセットのパスは、トレーニングとテストを含むルート ディレクトリです。するとオブジェクトファイルが生成されるのでOKです。
3.試験結果
作成者の事前トレーニング済みモデルを直接検出に使用し、そのモデルをツールの下に置くことができますが、このモデルを外部ネットワークからダウンロードすることはできません。CSDN にアップロードしました:---- PointRCNN 事前トレーニング重み-----
次に、テストを開始します。
python eval_rcnn.py --cfg_file cfgs/default.yaml --ckpt PointRCNN.pth --batch_size 4 --eval_mode rcnn --set RPN.LOC_XZ_FINE false
エラー 1:
TypeError:load() に必要な位置引数が 1 つありません:「Loader」
解決:
pip install pyyaml==5.1
さぁ行こう!!!!今すぐ待ち始めましょう!!
約 10 分間待った後、次のようになります。
検出結果は次のパスに配置されます。
PointRCNN/output/rcnn/default/eval/epoch_no_number/val/final_result/
4. 結果の視覚化
クローン視覚化ツール:
git clone https://github.com/kuixu/kitti_object_vis.git
クローン作成後、上記2.(2)と同様にデータファイルにソフトリンクを設定する必要があります。彼のオブジェクトを削除して、再度作成することができます。次に、いくつかの依存関係が必要になります: (ミラーを使用することを忘れないでください。そうしないと、非常に遅くなります!!!)
pip install opencv-python pillow scipy matplotlib pyside2
次に、mayavi をインストールするには conda を使用する必要があります。pip は使用できません。理由はわかりません...しかし、ここで pip を使用すると、基本的に機能しません...理由はわかりません。
conda install mayavi
次に、kitti_object_vis ファイルでターミナルを開きます。
(1)LiDARのみ表示
python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis
現時点では、次のエラーが発生する可能性があります。
エラー 1: ModuleNotFoundError: 「vtkIOParallelPython」という名前のモジュールがありません
解決:
conda install jsoncpp=1.8.3
pip install pyface==7.3.0
コードを続行すると、次のインターフェイスが表示されます: (完了!!) ターミナルで Enter を 1 回押して、次の画像を表示します。
他にも以下のような表示方法がいくつかあります(詳しくは github kitti_object_visのソースコードをご覧ください )
(2) LiDARと画像の表示
python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes
(3) LiDARと画像を特定のインデックスで表示
python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes --ind 1
(4)modified LiDAR file
追加の点群ラベル/マーカーを 5 次元として含む LiDARを表示
python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --pc_label
自分で書いたので少し複雑ですが、少なくともこれで完了です。最適化がある場合は、コメント欄で議論してください。!