[Japanese/English]
YOLOXをGoogle Colaboratory上で訓練しONNX、TensorFlow-Lite形式のファイルをエクスポートするサンプルです。
以下の内容を含みます。
- データセット ※アノテーション未実施
- データセット ※アノテーション済み
- Colaboratory用スクリプト(環境設定、モデル訓練)
- ONNX推論サンプル
- Pytorch 1.9.0 or later
- apex 0.1 or later
- pycocotools 2.0 or later
- OpenCV 3.4.2 or later ※推論サンプルを実施する場合のみ
- onnxruntime 1.5.2 or later ※推論サンプルを実施する場合のみ
VoTTを使用してアノテーションを行い、
Pascal VOC形式で出力したアノテーションデータを前提としています。
ただし、ノートブック内で更にMS COCO形式変換しています。
ノートブックのサンプルでは、以下のようなディレクトリ構成を想定しています。
ただし、本サンプルでは「pascal_label_map.pbtxt」は利用しないため、
格納しなくても問題ありません。
02.annotation_data
│ 000001.jpg
│ 000001.xml
│ 000002.jpg
│ 000002.xml
│ :
│ 000049.jpg
│ 000049.xml
│ 000050.xml
└─ pascal_label_map.pbtxt
トレーニングはGoogle Colaboratory上で実施します。
[Open In Colab]リンクからノートブックを開き、以下の順に実行してください。
- YOLOX 依存パッケージインストール(YOLOX Dependent Package Install)
- NVIDIA APEXインストール(NVIDIA APEX Install)
- PyCocoToolsインストール(PyCocoTools Install)
- データセットダウンロード(Download Dataset)
自前のデータセットを使用したい方は「use_sample_image = True」をFalseに設定し、
「dataset_directory」に自前のデータセットのパスを指定してください - Pascal VOC形式 を MS COCO形式へ変換(Convert Pascal VOC format to MS COCO format)
- モデル訓練(Training Model)
「!python train.py」を実施する前に「YOLOX」ディレクトリに「nano.py」を格納してください。
自前のデータセットを使用する場合「nano.py」の以下の項目を変更してください。- クラス数
self.num_classes - 画像格納パス
self.data_dir - 学習データ アノテーションファイル
self.train_ann - 検証データ アノテーションファイル
self.val_ann - エポック数
self.max_epoch
- クラス数
- 推論テスト(Inference test)
- ONNX変換(Convert to ONNX)
※「nano.py」のオリジナルファイルは「Megvii-BaseDetection/YOLOX/exps/default」に格納されています
高橋かずひと(https://twitter.com/KzhtTkhs)
YOLOX-Colaboratory-Training-Sample is under Apache-2.0 License.