microsoft社製のvottでラベル付けを行ったアノテーションをyolo v7以降の転移学習用のデータに変換するスクリプト
現在サポートしているバージョンは YOLOv7 のみですので v8 を利用する方はファイルを各自設定してご利用ください。
まず以下のコマンドを実行して必要なモジュールをインストールします。
pip install -r req.txtpython main.py ./test-data/vott-json-exportこのように実行すると./test-data/vott-json-exportにあるVoTTのエクスポートデータをデフォルトディレクトリ./outputへバリデーションデータを元データから30%分引き出して出力します。
python main.py ./test-data/vott-json-export -o ./outこのようにすると基本的な使い方と同じ内容が./outへ出力されるようになります。
引数なしのデフォルト出力先は./outputです。
python main.py ./test-data/vott-json-export -v 0.5このようにすると元データから50%の確率でバリデーションデータを参照して出力します。
0-1の小数点で設定可能です。(0に設定した場合以下のfalseと同様の動作をします)
引数なしのデフォルト確率は0.3です。
python main.py ./test-data/vott-json-export -v falseこのようにするとバリデーションデータ元データから参照しないようにできます。
個別でバリデーションデータを用意したい場合はこのようにしてください。
python main.py ./test-data/vott-json-export -s test-1このように設定すると、出力ファイルおよびYOLOでの転移学習時の出力ファイル名へ名前を追加することができます。
同じデータを数値を変えて保存したい場合に重複しないようにすることが可能です。
読み込んだVoTTのプロジェクト名がtest-setの場合test-set-test-1といった感じに追加されます。
python main.py ./test-data/vott-json-export -as test-1このように設定すると、出力アセットファイル(ラベルや画像ファイル)名へ名前を追加することができます。
複数のプロジェクトをマージする際にデータが重複しないようにすることが可能です。
input
--output -o
--valPercent -v (0-1 の小数点で)
--suffix -s
--asassetSuffix -as
出力されたフォルダを(YOLOv7の場合)YOLOのrootディレクトリ内(train.pyと同じ階層)にあるdataフォルダ内に移動します。
その後yolov7-train-start.sh(Linux)およびyolov7-train-start.bat(Windows)を実行すればすぐに転移学習が可能です。
それぞれのスクリプトは編集可能ですので各自で設定して利用してください。