Skip to content

VOTTで出力したPascal VOC形式のXMLファイルをCOCO形式のJSONファイルへ変換するスクリプト

License

Notifications You must be signed in to change notification settings

tatsuya-fukuoka/convert_pascalvoc2coco

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 

Repository files navigation

1. 概要

  • アノテーションツールVOTTで出力したPascal VOC形式のXMLファイルをCOCO形式のJSONファイルへ変換するコード
  • VOTTで定義されたtrainとvalに分割を考慮して、COCO形式のデータセットに変換する。

2. 引用

3. 環境構築

3.1 pip install

  • tqdm
  • natsort
pip install tqdm natsort

3.2 実行時のファイル構成

  • convert_vott_voc2coco.pyのファイル構成は以下のようにします。
  • 以下以外でも動くかもしれませんが、動作確認していません。
├─convert_vott_voc2coco.py
│  
└─{you setting name}-PascalVOC-export
    ├─Annotations
    ├─ImageSets
    │  └─Main
    └─JPEGImages
  • Annotationsにはxmlファイル(@@@.xml...)、ImageSets/Mainにはtxtファイル(@@@_train.txt, @@@_val.txt)、JPEGImagesには画像ファイル(@@@.jpg...)を格納

4. 実行

  • 以下のコマンドで実行します。
python convert_vott_voc2coco.py {yo setting name}-PascalVOC-export

# ex)
python convert_vott_voc2coco.py yolox_test-PascalVOC-export

なお、デフォルトではクラス名がソートされますので、abc順になります。 クラス名の順番を指定したい場合は下記のように引数-cnの後にスペースで区切って指定の順番でクラス名を記載してください。

# ex)
python convert_vott_voc2coco.py yolox_test-PascalVOC-export -cn person car motorcycle
  • 実行後、以下のフォルダが生成されます。{YYYYMMDD_HHMMSS}は日付・時刻です。
  • annotationsフォルダに変換後のtrain、valのCOCO形式のjsonファイル(instances_train2017.json、instances_val2017.json)、train2017フォルダにtrain画像、val2017フォルダにval画像が保存されます。
─{YYYYMMDD_HHMMSS}_COCO_format
   ├─annotations
   |  ├─instances_train2017.json
   |  └─instances_val2017.json
   ├─train2017
   |  └─@@@.jpg
   └─val2017
      └─@@@.jpg

5. 活用

YOLOXのdatasetsに格納して、学習に活用することができます。

6. 紹介

ブログ

Youtube

About

VOTTで出力したPascal VOC形式のXMLファイルをCOCO形式のJSONファイルへ変換するスクリプト

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages