目次
(1) コードが依存するライブラリファイルをインストールする
(2)、setup.pyを通じていくつかのライブラリファイルをインストールします。
(1) yolox/data/datasets/voc_classes.py内のラベル情報を変更します。
(4) exps/example/yolox_voc/yolox_voc_s.py の get_eval_loader 関数を変更します。
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 およびその他のインジケーターが出力されます。