CenterFusion 環境の構築を記録する

まず、環境をセットアップする際の主な問題について説明します。

  1. これはフォルダー内で行う必要があります。後で CF_ROOT が定義されることがわかります。構成プロセス中、パスは非常に複雑になります。パスの変更に注意してください。
  2. 問題は DCNv2 の構成にあります
  3. コードを変更するには
  4. 構成して実行する前に、仮想環境をアクティブ化する必要があることに注意してください。

1. 環境整備

1.1 サーバー

  • MistGPU を使用してサーバーをレンタルするhttps://mistgpu.com
    環境仕様
  • サーバーを作成したら、ログインします。ここではコマンドラインを使用してログインします。
    ここに画像の説明を挿入します

1.2 仮想環境の作成

  • Python バージョン 3.7 で「centerfusion」という名前の仮想環境を作成します。
    conda create -n centerfusion python=3.7
  • 作成が成功したら、仮想環境に切り替えます
    conda activate centerfusion

1.3 必要なフレームワークをインストールする

  • 参考https://github.com/mrnabati/CenterFusionhttps://blog.csdn.net/ssj925319/article/details/124294911
  • pytorchをインストールします。サーバーのバージョンに応じてここを選択してください
    pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
  • COCOAPIをインストールする
    pip install cython; pip install -U 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'

1.4 コードのクローンを作成する

  • 最初にパスを設定する必要があります。そうしないと一連の問題が発生します。作者が設定したサーバーは次のように設定されています

  • Mist GPU サーバーのデフォルトのディレクトリは /home/mist の下にあります。ここでは、CF_ROOT=/path/to/CenterFusion の公式設定を使用せず、CF_ROOT=work/CenterFusion を自分で指定しました。このコマンドを使用する場合、パスは次のようになります。 /home/ の霧の下で、具体的な手順は次のとおりです。
    CF_ROOT=work/CenterFusion
    git clone --recursive https://github.com/mrnabati/CenterFusion.git $CF_ROOT

  • ここでのクローン作成コマンドは、mistgpu の git がデフォルトでアクセラレーション エージェントを追加するため、次の理由が発生する傾向があります。このエラーが発生した場合は、手動で CF_ROOT パスにアップロードできます。
    ここに画像の説明を挿入します
    アップロード後に手動で解凍する

  • 次に、CF_ROOT パス (/work/CenterFusion) を入力し、次のコマンドを実行し (仮想環境がアクティブ化されていることを確認してください)、必要なパッケージをインストールします。
    pip install -r requirements.txt

    ここに画像の説明を挿入します

  • 以下の DCNv2 を設定します。ウェアハウスに DCNv2 がある可能性がありますが、実際のテストでは実行できません。次のバージョンを使用します https://pan.baidu.com/s/1ua7gyzFn1nmTGuFYP1SHVg?pwd=1csg抽出コード: 1csg、$CF_ROOT にアップロードします/src/lib/model/networks/DCNv2 を解凍し、解凍後に DCNv2-pytorch_1.7 と入力し、次のコマンドを実行します
    ./make.sh
    ここに画像の説明を挿入します

  • ビルドが成功すると、次のプロンプトが表示されます。
    ここに画像の説明を挿入します

2. データの準備

2.1 データセットの準備

  • nuscenes データ セットをダウンロードし、CenterFusion/data/nuscenes フォルダーに解凍します。ここでは、データ セットのミニ部分 ( https://www.nuscenes.org/nuscenes#download ) のみを使用しました。
    ここに画像の説明を挿入します
  • v1.0-mini.tgz という名前のファイルをダウンロードします。解凍は CenterFusion/data/nuscenes ディレクトリで行う必要があることに注意してください。データ フォルダには nuscenes ディレクトリがありません。新しいフォルダを自分で作成してください。解凍コマンドがすでに存在する場合は
    tar -zxvf v1.0-mini.tgz -C 路径
    、 CenterFusion/data/nuscenes ディレクトリにある場合は、直接解凍してください。
    tar -zxvf v1.0-mini.tgz
    ここに画像の説明を挿入します

2.2 トレーニング前のモデルの準備

3. コードを変更する

  • @Coke はちょっとおいしい記事https://blog.csdn.net/ssj925319/article/details/124294911を参照して、次のコードを変更します。
  • 現時点ではテスト作業のみなので、トレーニングに必要な改造コードは上記記事を参照してください。
  • CenterFusion/experiments/test.sh を変更します。 –debug 4 は視覚化を表しますここに画像の説明を挿入します
  • CenterFusion/src/tools/convert_nuScenes.py を変更し、56 行目を 3 行に変更します。
    ここに画像の説明を挿入します
  • CenterFusion/src/lib/utils/debugger.py を変更します。つまり、int 型への変換を強制します。http: //t.csdn.cn/smn4Fを参照してください。
    ここに画像の説明を挿入します

4. 操作

4.1 データセットの変換

  • CenterFusion/src/tools/convert_nuScenes.py を実行してデータセットを COCO 形式に変換します
  • 実行する前に、作成した仮想環境に環境を切り替えることを忘れないでください。
conda activate centerfusion
#进入到CenterFusion/src/tools/
python convert_nuScenes.py
  • 変換が完了すると、CenterFusion/data/nuscenes に annotations_3weaks ディレクトリが生成され、COCO 形式のデータ セットが保存されます。

4.2 操作

  • CenterFusion ルート ディレクトリに戻り、次のコードを実行します。
    bash experiments/test.sh
  • ビジュアル出力は CenterFusion/exp/ddd/centerfusion/debug ディレクトリにあります。
    ここに画像の説明を挿入します
    ここに画像の説明を挿入します

5. 参考資料

[1] CenterFusion プロジェクトの超詳細な環境構築手順と視覚的な操作 @コーラはちょっとおいしい
[2] CenterFusion コード再現 @砂糖なし半熟卵
[3] CenterFusion アルゴリズムの環境構築とデモ操作 CenterFusion: Center-based Radar と3D オブジェクト検出のためのカメラ フュージョン @HIT_Vanni

おすすめ

転載: blog.csdn.net/u014295602/article/details/126677196