YOLOX は独自のデータセットをトレーニングします (非常に詳細)

目次

 

1.YOLOXのインストール

1. GitHub でコードをダウンロードします。 

2. yolov5のインストールに必要な依存環境

        (1) コードが依存するライブラリファイルをインストールする

        (2)、setup.pyを通じていくつかのライブラリファイルをインストールします。

        (3)、apexファイルをインストールします

2. YOLOX は独自のデータセットをトレーニングします

1. データセットの前処理

2. コードを変更する

(1) yolox/data/datasets/voc_classes.py内のラベル情報を変更します。

(2) カテゴリ数を変更する

(3) トレーニングセット情報の変更

(4) exps/example/yolox_voc/yolox_voc_s.py の get_eval_loader 関数を変更します。

(5)、さまざまなネットワーク構造を変更します

 (6) その他の関連パラメータを変更する

3. YOLOXトレーニング

1. ターミナルトレーニング

2. Pycharm トレーニング

4. YOLOX トレーニングとよくある質問

1.demo.pyを使用してテストします

2. eval.py を使用してテストする


YOLOX は Megvii によって提案され、研究者らはヘッダーの分離、データ強化、アンカーポイントなし、ラベル分類などのターゲット検出分野の優れた進歩を YOLO. AP と巧みに統合して組み合わせ、非常に競争力のある推論速度を実現しました。 

1.YOLOXのインストール

1. GitHub でコードをダウンロードします。 

        git clone https://github.com/Megvii-BaseDetection/YOLOX

2. yolov5のインストールに必要な依存環境

        (1) コードが依存するライブラリファイルをインストールする

        cd /home/xxx/xxx/xxxr/YOLOX-main

        pip3 install -U pip && pip3 install -rrequirements.txt

        (2)、setup.pyを通じていくつかのライブラリファイルをインストールします。

        setup.py を通じていくつかのライブラリ ファイルをインストールします

        コマンドを入力します: python3 setup.py Development

        (3)、apexファイルをインストールします

        コマンドを入力します: git clone https://github.com/NVIDIA/apex

        sudo pip3 install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./  

2. YOLOX は独自のデータセットをトレーニングします

1. データセットの前処理

        ここでは、YOLOX をトレーニングするために VOC 形式を使用することを選択します。処理された画像には主に 3 つのフォルダーが含まれており、その中に Annotations には XML タグ データが保存され、JPEGImages には画像データが保存され、ImageSets にはトレーニング、検証、およびテスト txt ファイルが保存されます。

2.コードを変更します

(1) yolox/data/datasets/voc_classes.py内のラベル情報を変更します。

注: カテゴリの後にカンマを追加する必要があります。たとえば、「car」の後にカンマ「,」を追加します。

(2) カテゴリ数を変更する

  • exps/example/yolox_voc/yolox_voc_s.py の self.num_classes を変更します。

  • yolox/exp/yolox_base.py の self.num_classes を変更します。

(3)トレーニングセット情報の変更

  • exps/example/yolox_voc/yolox_voc_s.py の VOCDection を変更します。

        data_dirは前の product_ak の絶対パスです。

        image_sets がtrainval に変更されました

        max_labels は、ピクチャの最大目標数を示し、50 に設定されます。

  • yolox/data/datasets/voc.py の VOCDection 関数で読み取った txt ファイルを変更します。

(4) exps/example/yolox_voc/yolox_voc_s.py の get_eval_loader 関数を変更します。

         data_dirは前の product_ak の絶対パスです。

テスト用に変更された         images_sets

(5)、さまざまなネットワーク構造を変更します

YOLOX_lネットワークを例に        挙げます。たとえば、exps/default/yolox_s.py、self. Depth=1.0、self.width=1.0 です。これは、Yolov5 のさまざまなネットワーク呼び出しと同じです。

        異なるネットワーク構造を統合するには、exps/example/yolox_voc/yolox_voc_s.py の self. Depth と self.width を引き続き変更します。

        次に、yolox/exp/yolox_base.py の self. Depth と self.width を変更します。

 (6)その他の関連パラメータを変更する

  • 検証エポック数を変更する

        現在のコードは 10 エポック反復でトレーニングし、その後検証セットで検証を実行することになっていますが、Dabai は 1 エポック反復ごとに検証を実行し、その効果を時間内に確認したいと考えています。

  • 検証を変更する場合の関連情報

        主に検証情報の読み取りに関連するコードを調整します。コードは、yolox/data/datasets/voc.py の _do_python_eval 関数内にあります。

  • 独自のデータセットには年の情報がないため、その中のルートパスと名前を変更します。
  • 年の情報がないため、cachedirを変更し、use_07_metricの情報を変更します。

3. YOLOXトレーニング

1. ターミナルトレーニング

        ダウンロードした yolox_s.pth.tar を YOLOX フォルダーに置き、ターミナルを開き、ターミナルに次のように入力します。

        python3 tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 0 -b 64 -c yolox_s.pth.tar

2. Pycharm トレーニング

        コードの実行時には、デバッグと実行に Debug メソッドが必要になることがよくあります。したがって、train.py のいくつかの構成パラメータを変更して、デバッグ モードまたは実行モードで実行できます。主に次のパラメータを変更する必要があります。

  • バッチサイズ

        自分のマシンの構成に応じて、バッチサイズのパラメータを設定します。たとえば、64 に設定します。

  •  デバイスパラメータ

        GPU サーバーにカードが 1 枚しかない場合は、デバイスのデフォルトを 0 に変更します。

  • exp_file パラメータ

        exp_file のデフォルトを yolox_voc_s.py のパスに変更します (コードのバージョンが更新された場合、パスはリセットできます)。

  • ckpt パラメータ

        事前トレーニングされた重みを使用する場合は、ckpt のデフォルトをモデルの重みのパスに変更します。

        その後、pycharm でトレーニングできます。

4. YOLOX トレーニングとよくある質問

        トレーニングが完了したら、トレーニングされた YOLOX アルゴリズム モデルをテストできます。テスト ファイルは tools/ フォルダーに保存されます。テストでは、demo.py と eval.py の 2 つのファイルを実行できます。

1.demo.pyを使用してテストします

  • 1 つ目は、テスト モードが画像かビデオかを選択し、テストする画像/ビデオのパスを入力することです。

  •  トレーニング中の設定ファイルと一致するようにyoloxの設定ファイルを変更します。

  •  トレーニング済みモデルのストレージ アドレスと、加速に GPU を使用するかどうかを変更します。

  •  この時点で、以下に示すように、demo.py を実行してデモ テストを実行し、テスト後にテスト結果を出力できます。

2. eval.py を使用してテストする

  •  eval.py ファイル内のbatch_sizeサイズを変更します。これは、個人用グラフィックスカードのサイズに応じて変更できます。

  •  トレーニング中の設定ファイルと一致するようにyoloxの設定ファイルを変更します。

  •  テストで使用されるモデル、スコアしきい値、NMS しきい値、その他のパラメーターを変更します。

  •  上記のパラメーターを変更した後、検証を実行でき、テスト セット内のモデルの mAP およびその他のインジケーターが出力されます。

おすすめ

転載: blog.csdn.net/qq_40716944/article/details/120409457