[Japanese/English]
Warning
このリポジトリはNanoDet-Plusには対応していません。
NanoDetをGoogle Colaboratory上で訓練しONNX形式のファイルをエクスポートするサンプルです。
以下の内容を含みます。
- データセット ※アノテーション未実施
- データセット ※アノテーション済み
- Colaboratory用スクリプト(環境設定、モデル訓練)
- Pytorch 1.7 or later
- pytorch-lightning 1.4.7 or later
- OpenCV 3.4.2 or later ※推論サンプルを実施する場合のみ
- onnxruntime 1.5.2 or later ※推論サンプルを実施する場合のみ
VoTTを使用してアノテーションを行い、
Pascal VOC形式で出力したアノテーションデータを前提としています。
ただし、ノートブック内で更にMS COCO形式変換しています。
ノートブックのサンプルでは、以下のようなディレクトリ構成を想定しています。
ただし、本サンプルでは「pascal_label_map.pbtxt」と「ImageSets」は利用しないため、
格納しなくても問題ありません。
02.annotation_data
│ pascal_label_map.pbtxt
│
├─Annotations
│ 000001.xml
│ :
│ 000050.xml
│
├─ImageSets
│
└─JPEGImages
000001.jpg
:
000050.jpg
トレーニングはGoogle Colaboratory上で実施します。
[Open In Colab]リンクからノートブックを開き、以下の順に実行してください。
- PyTorch Lightningインストール(PyTorch Lightning install)
- 乱数シード固定(Random seed fixed)
- データセットダウンロード(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 nanodet-m.yml」を実施する前に「nanodet」ディレクトリに「nanodet-m.yml」を格納してください。
自前のデータセットを使用する場合「nanodet-m.yml」の以下の項目を変更してください。- クラス数
num_classes(model->arch->head->num_classes) - 学習データ 画像格納パス
img_path(data->train->img_path) - 学習データ アノテーション格納パス
ann_path(data->train->ann_path) - 検証データ 画像格納パス
img_path(data->val->img_path) - 検証データ アノテーション格納パス
ann_path(data->val->ann_path) - バッチサイズ
batchsize_per_gpu(device->batchsize_per_gpu) - クラス名リスト
class_names
- クラス数
- ONNX変換(Convert to ONNX)
- ONNXファイル情報確認(Check ONNX file information)
- 学習済ファイルダウンロード(Download Trained Model)
高橋かずひと(https://twitter.com/KzhtTkhs)
NanoDet-Colaboratory-Training-Sample is under Apache-2.0 License.