MMDetectionターゲット検出の例
MMDetectionは、coocデータセット、ターゲット認識トレーニングのFaster-rcnnメソッドに基づいています
記事のディレクトリ
- MMDetectionターゲット検出の例
- 序文
- 1つは、MMDetectionのインストールです
- 2.データセットの概要
- 2.関連するpyファイルを作成および変更します
-
-
- 1.coco.pyの下のCLASSES =( 'hu'、 'shu')を変更します。JSON形式(上の図を参照)は 'hu'、 'shu'の順序であるため、順序を逆にしないでください。
- 2. configs / faster-rcnn / faster_rcnn_r50_fpn_1x_coco.pyを変更して、依存する4つのpyファイルを見つけます。
- 3. mmdet / Evaluation / class_names.pyのcoco_classes()を変更します。
- 4.mmdetection-masterディレクトリにchangefasterrcnnという名前のpyファイルを作成します。
-
- 3、コンパイルトレーニング
- 第四に、デモインスタンスを実行します
- 総括する
序文
ディープラーニングターゲット検出ツールボックスMMDetectionと1週間近く連絡を取りました。学習プロセスは非常に困難です。環境のインストールと構成に3日しかかかりませんでしたが、苦しみをゆっくりと克服する様子は本当に美しいです。
このツールボックスは、SenseTime(2018 COCO Target Detection Challenge Champion)と2018年の香港中文大学が共同でオープンソース化しているため、比較的新しく、学習するための詳細なチュートリアルがありません。そのため、これらのツールボックスに感謝します。プラットフォームでの経験を共有してください。
以下は私があなたと共有したい小さな例です(MMDetectionツールキットの環境を使用:Ubuntu + Pycharm)、MMDetectionを使用してディープラーニングターゲット検出のユニークな魅力を感じることもできれば幸いです。
1つは、MMDetectionのインストールです
インストールの面では、私の経験では、単純です:
1.ハードウェア構成(GPU)
2. Linuxがしやすくなり、Windowsがよりインストール
を参照してください。3.上の指示Githubに、そしていくつかの依存ライブラリのバージョンが対応している必要があります
以下は、私の推奨ビデオやブログで
のmmdetectionコレクション
深い学習目標検出ツールボックスmmdetection、独自のデータを訓練します
2.データセットの概要
このビデオに基づいてこの例を作成しましたが、同じではない手順が多数あります。ツールボックスの更新が速すぎる可能性があります。pyファイルが表示されたり、静かに表示されたりする場合がありますが、一般的なプロセスは問題ありません。
ネットワークディスクにデータセットがあります。jku4に直接ダウンロードできます。ターゲット検出は「ポット」と「指示」で構成されています。それを感じるための写真を紹介します。
データセットは3つのフォルダーで開きます。
注釈フォルダーには2つのJSONファイルがあります。
Instances_train2017では、タイプは「hu」と「shu」です(potとbookの意味である必要があります)。
2.関連するpyファイルを作成および変更します
ここで使用したmmdetection-masterはGithubにダウンロードされていることに注意してください。このツールボックスは非常に迅速に更新され、対応するpyファイルも更新される可能性がありますが、一般的なプロセスはほぼ同じです。
1.coco.pyの下のCLASSES =( 'hu'、 'shu')を変更します。JSON形式(上の図を参照)は 'hu'、 'shu'の順序であるため、順序を逆にしないでください。
class CocoDataset(CustomDataset):
CLASSES=('hu','shu')
2. configs / faster-rcnn / faster_rcnn_r50_fpn_1x_coco.pyを変更して、依存する4つのpyファイルを見つけます。
2.1 configs / base / models / faster_rcnn_r50_fpn.pyを変更します。
ステップ1:num_classes = 3を見つけます。pyファイルにはnum_classesが1つしかありません(実際、2か3か疑問に思っていましたが、元々は81でした。カテゴリの数を80と数えたので、背景はただし、初めてnum_classes = 2を設定しようとするときもトレーニングできます。更新:新しいデータセット、2つのカテゴリを試しましたが、num_classes = 3のときにエラーが報告されました。両方の方法を試すことができます) ステップ2:事前トレーニング済み=なし(上部)ですが、なぜそうなるのかわかりません。そのビデオを見ることができます。
2.2 configs / base /datasets/coco_detection.pyを
変更して、ファイルの相対パスdata_rootおよびimage_scale()を変更します。
2.3schedule_1x.pyとdefault_runtime.pyを変更します
ステップ1:まず、torch.cuda.device_count()を使用してGPUの数を確認します。GPUの数が8の場合、lr = 0.02、GPUの数が4の場合、lr = 0.01、必要なGPUは1つだけなので、lr = 0.0025に設定します。ここで、total_epochs(反復の総数)を変更することもできます。
ステップ2:ここでの間隔= 11は、Val2017に合計11枚の写真があるためです。[更新:つまり、下の図に示すように、各セグメント間のギャップは、valに合計4000枚の写真がありますが12に設定すると、トレーニングプロセスこれを下の図に示します]
load_from = 'faster_rcnn_r50_fpn_1x_3.pth'(以下に対応)
3. mmdet / Evaluation / class_names.pyのcoco_classes()を変更します。
4.mmdetection-masterディレクトリにchangefasterrcnnという名前のpyファイルを作成します。
ここでは、このディレクトリにチェックポイントを作成し、対応するpthをダウンロードする必要があります。これは公式にトレーニングされたウェイトファイルです。ダウンロードするリンクは、faster-rcnnフォルダーにあるように、対応するメソッドフォルダーのreadmeにあります。ここのreadmeからダウンロードするのは、私が提供したリンク抽出コードです:9iq1(公式アップデートのために利用できない可能性があり、「pthはチェックポイントではありません」などのエラーが発生します)。
3、コンパイルトレーニング
Xshell(ターミナル)入力:
python changefasterrcnn.py
実行後、faster_rcnn_r50_fpn_1x_3.pthがmmdetection-masterディレクトリに生成されます。これは、2.3のステップ2で説明したp番目のファイル(load_from = 'faster_rcnn_r50_fpn_1x_3.pth')に対応します。
これはトレーニングプロセスです。プロセスは約5分です(ここでは、事前にwork_dirsフォルダーを作成する必要があります。ここでは、トレーニングプロセスにログインするもの、各反復のjsonファイルとpthファイル、ここではlatest.pthに注意してください。これはリンクであり、pthファイルではありません。epoch_10.pthを使用して最後にテストできます):
python tools/train.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py
10回目の反復トレーニングの適合率と再現率:
第四に、デモインスタンスを実行します
1.image_demo.pyを変更します
私が使用しているXshellはインターフェース表示に適していないため(Pycharmコミュニティバージョンはpyplotにアレルギーがあるようです)、つまり、最後のshow_result_pyplotメソッドは使用できません。可能であれば、変更しないでください。
show_result_pyplot()の特定のコンテンツは次の場所にあります。
plt.show()をplt.savefig( 'myfigure')に変更し、画像を保存して開いて表示し、飛び出さないようにします。
2.端末操作
最初に写真(00000.bmp)をデモフォルダーに入れ、前のトレーニングで取得したepoch_10.pthをチェックポイントフォルダーに入れます。
python demo/image_demo.py demo/00000.bmp configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py checkpoints/epoch_10.pth
最後に、clang clang clangを実行すると、この苦労して獲得したmyfigureを取得できますが、検出効果は依然として良好です。
総括する
このMMDetectionツールキットは非常に便利ですが、環境のインストール構成や後続のpyファイルの内容の変更に関係なく、忍耐と注意が十分にテストされています。誰もがそれから能力を発揮できることを願っています。バグが発生した場合は、以下にメッセージを残すこともできます。同じバグが発生した場合は、交換して話し合います。ターゲットの検出に興味がある場合は、Kaggle、Tianchi、および特別なココデータコンテストに参加することもできます。