labelme2yoloの使い方~Segmentation編~
はじめに
labelme2yoloというpythonライブラリを発見
かなり新しいライブラリなので日本語記事が皆無
なら、私が書きましょう☆彡
動作環境
Python:3.11.5
ultralytics:8.0.145
labelme:5.3.1
labelme2yolo:0.1.3 ★今回の主役!!
labelme2yoloの使い方
labelme2yoloとは?
labelmeで作成したjson形式のラベルを、yolo(v8含む)で使える形式に変換できるライブラリ
detectionとsegmentation用のフォルダ構成、yamlファイルの生成もしてくれるため、非常に便利!!
PyPIはこちら(labelme2yolo · PyPI)
導入方法
pipで簡単に導入できます!
python -m pip install labelme2yolo
使い方
labelme2yoloはコマンドプロンプト上で実行するツールです
labelmeでアノテーションを行って保存されたjsonファイルを
YOLOv8の学習に使用できるtxt形式に、コマンド1発で変換してくれます
(labelmeでのアノテーション(ラベル付け)方法は別記事でまとめます)
使い方は、以下のコマンドを実行するだけです
labelme2yolo --json_dir ./datasets/ --val_size 0.10
※ちなみに、デフォルトではSegment用の変換(--output_format polygon)ですが、オプション引数の--output_formatを"bbox"にすると、
Detection用の変換も可能です(labelme2yolo v0.1.3の場合))
正常に終了したら、--json_dirに指定したフォルダに「YOLODataset」というフォルダが生成されます
生成物は以下の通りです。
imagesフォルダ
trainとval, testに分けられた画像labelsフォルダ
trainとval, testに分けられたYOLO用の形式になったtxtファイルdataset.yaml
YOLOv8のtrainコマンド時に使用するyamlファイル
実際にYOLOv8を学習させてみる
実際にYOLOv8の学習に使えるか?試してみました
(yaml内の相対PATHは、絶対PATHに記載を変更しております)
学習(train)
予測(predict)
念のため、キチンの判定できるか確認(closed条件)
上側:デフォルトのモデル(yolov8n-seg.pt)での判定結果
no detection(検出されず)となっている下側:先ほど学習したモデル(best.pt)での判定結果
アノテーション時に設定した「hakusekirei」で検出されている
おまけ
YOLOv8のsegmentation用に変換前後を検算しました
まとめ
labelme2yoloはlabelmeで作成したjson形式のラベルを
YOLOv8用に変換できるCLIライブラリ評価用フォルダ構成(train, val, test)やyamlファイルも生成されるため、かなり便利!!
デフォルトはSegmentation用だが、オプション引数--output_formatで"bbox"を指定することで、Detectionの学習にも使える(v0.1.3)
以上☆彡
参考URL
labelme2yolo - PyPI
https://pypi.org/project/labelme2yolo/ハクセキレイのイラスト - かわいいフリー素材集 いらすとや
https://www.irasutoya.com/2015/08/blog-post_597.html
この記事が気に入ったらサポートをしてみませんか?