Skip to content

microsoft社製のVoTTでラベル付けを行ったアノテーションをyolo v7以降の転移学習用のデータに変換するスクリプト

Notifications You must be signed in to change notification settings

gokatei/VoTT2YOLO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

What Is This

microsoft社製のvottでラベル付けを行ったアノテーションをyolo v7以降の転移学習用のデータに変換するスクリプト

How To Use

現在サポートしているバージョンは YOLOv7 のみですので v8 を利用する方はファイルを各自設定してご利用ください。

変換方法

事前準備

まず以下のコマンドを実行して必要なモジュールをインストールします。

pip install -r req.txt

基本的な使い方

python 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 での使い方

出力されたフォルダを(YOLOv7の場合)YOLOのrootディレクトリ内(train.pyと同じ階層)にあるdataフォルダ内に移動します。
その後yolov7-train-start.sh(Linux)およびyolov7-train-start.bat(Windows)を実行すればすぐに転移学習が可能です。
それぞれのスクリプトは編集可能ですので各自で設定して利用してください。

About

microsoft社製のVoTTでラベル付けを行ったアノテーションをyolo v7以降の転移学習用のデータに変換するスクリプト

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages