复现物体検出用の指向性 R-CNN(orientedRcnn)

1. 環境構築

1. Python 3.7環境を作成する

conda create -n obbdetection python=3.7 -y #虚拟环境命令
mkvirtualenv –p python3.7 name #virtualenv创建命令

2. torch1.6.0 cuda を 10.2 としてインストールします。
3. BboxToolkit をインストールします。

cd BboxToolkit
pip install -v -e .  # or "python setup.py develop"
cd ..

 4. mmcv=1.4.0をインストールします。

 pip install mmcv-full==1.4.0 -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.6.0/index.html --no-cache-dir

5. OBB 検出をインストールする

pip install -r requirements/build.txt
pip install mmpycocotools
pip install -v -e .  # or "python setup.py develop"

6. timm 0.6.5 をインストールします。

pip install timm==0.6.5

次に、変更する必要があるパラメータ

1. 呼び出された構成ファイルの下の事前トレーニングされたパスを、ダウンロードした事前トレーニングされた重みのパスに変更します。
2. 構成ファイルの下にある hrsc.py ファイルを変更します。① data_root のパスは、HRSC2016 データセットのパスです。②テスト用の imgset、ann_file、および img_prefix のトレーニングとパス
3. configs ファイルの下で呼び出されるschedule.py ファイルを変更し、必要に応じていくつかのパラメータを変更します。
4. configs ファイルの下で呼び出されるdefault_runtime.py ファイルを変更し、ニーズに応じたいくつかのパラメータ

3. 訓練された重量テストの視覚化 

1.huge_image_demo.py

python demo/huge_image_demo.py demo/dota_demo.jpg configs/obb/oriented_rcnn/faster_rcnn_orpn_r101_fpn_1x_ms_rr_dota10.py	 ckpt/faster_rcnn_orpn_r101_fpn_1x_mssplit_rr_dota10_epoch12.pth BboxToolkit/tools/split_configs/dota1_0/ss_test.json

2.image_demo.py

python demo/image_demo.py demo/dota_demo.jpg configs/obb/oriented_rcnn/faster_rcnn_orpn_r101_fpn_1x_ms_rr_dota10.py	 ckpt/faster_rcnn_orpn_r101_fpn_1x_mssplit_rr_dota10_epoch12.pth

2 つのコマンドの違いは、py ファイルの違いです。2 では 1 よりも BboxToolkit が少なく、1 では BboxToolkit を使用して視覚化をバッチでテストします。

設定ファイルの違い
1.ms はマルチスケール画像セグメンテーションを意味し、rr はランダム回転を意味します。
rr: dict(type='RandomOBBRotate'、rotate_after_flip=True、
         angle=(0, 90)、vert_rate=0.5、vert_cls=['roundabout', 'storage-tank'])、ミリ秒は分割データセット
に直接反映される必要がありますの上

4. トレーニングコマンド

1. トレーニング HRSC2016 データセット コマンド

python tools/train.py --work-dir work_dirs (作業ログと重みを保存するパス) に対応する hrsc データセットの構成ファイル
例:

python tools/train.py configs/obb/oriented_rcnn/faster_rcnn_orpn_r50_fpn_3x_hrsc.py --work-dir work_dirs

使用できるパラメータの説明の一部: ①--gpus 使用する GPU の数 ②--gpu-ids 使用する GPU の ID。

2. トレーニング DOTA データセット コマンド

DOTA データセットは、BboxToolkit ツールキットを使用してデータセットを分割し、アノテーション ファイルの形式を変換する必要があります。HRSC2016 データセットとは異なり、直接トレーニングするのが簡単であるため、DOTA のトレーニング方法について追加の章が書かれていますデータセット。

5. テスト精度

1. HRSC2016 データセット VOC 07 および 12 の精度をテストする

テストコマンドは次のとおりです。

python tools/test.py configs/obb/oriented_rcnn/faster_rcnn_orpn_r50_fpn_3x_hrsc.py work_dirs/HRSC2016_1/epoch_31.pth --eval mAP

考えられるパラメーターの説明: ①--pickle 形式の出力ファイル ②--データセットに依存する評価評価メトリック (例: bbox、segm、coco のプロポーザル、マップ、pascal voc のリコール) ③-show-dir描いた画像を保存するディレクトリ

2. DOTA データセットをテストする

DOTA データセットは、BboxToolkit ツールキットを使用してデータセットを分割し、アノテーション ファイルの形式を変換する必要があります。HRSC2016 データセットとは異なり、直接テストするのが簡単であるため、DOTA のテスト方法について追加の章が書かれていますデータセット。

6. 検証

python demo/image_demo.py demo/100001132.bmp configs/obb/oriented_rcnn/faster_rcnn_orpn_r101_fpn_3x_hrsc.py  work_dirs/epoch_36.pth  

 

 トレーニング後の効果写真

遭遇した問題

1. pip install mmpycocotools mmpycocotools のインストール エラー: エラー: コマンド 'x86_64-linux-gnu-gcc' が終了ステータス 1 で失敗しました
解決策: Python のバージョンを確認し、独自のバージョンの Python devel をダウンロードします (例: python3.7.7)。 sudo apt-get インストール python3.7-dev

おすすめ

転載: blog.csdn.net/weixin_42715977/article/details/130924006