TensorFlow で使用するMS COCO スタイルのデータセットを作成するには? 誰もこれを経験していますか?画像、注釈、およびグラウンド トゥルース マスクがあります。MS COCO と互換性があるように変換する必要があります。COCO スタイルの JSON アノテーションを作成するためのオープン ソース ツールが見つかりません。
TensorFlow MS COCO は、あまり経験のない JSON ファイルを読み取ります。
TensorFlow で使用するMS COCO スタイルのデータセットを作成するには? 誰もこれを経験していますか?画像、注釈、およびグラウンド トゥルース マスクがあります。MS COCO と互換性があるように変換する必要があります。COCO スタイルの JSON アノテーションを作成するためのオープン ソース ツールが見つかりません。
TensorFlow MS COCO は、あまり経験のない JSON ファイルを読み取ります。
これを行うための多くの便利なクラスと関数を持つ python ライブラリに取り組んでいます。これは、イメージ セマンティクスと呼ばれます。
マスクを追加して COCO 形式でエクスポートする例を次に示します。
from imantics import Mask, Image, Category
image = Image.from_path('path/to/image.png')
mask = Mask(mask_array)
image.add(mask, category=Category("Category Name"))
# dict of coco
coco_json = image.export(style='coco')
# Saves to file
image.save('coco/annotation.json', style='coco')
COCO スタイルのデータセットを作成し、その API を使用してメトリックを評価する
オブジェクト検出タスク用の注釈と結果ファイルを作成するとします (つまり、バウンディング ボックスだけに関心があります)。以下は、COCO API メトリクスを使用するために適切にフォーマットされた注釈と結果ファイルを作成する方法を示す、シンプルで軽量な例です。
注釈ファイル:ann.json
{"images":[{"id": 73}],"annotations":[{"image_id":73,"category_id":1,"bbox":[10,10,50,100],"id":1,"iscrowd": 0,"area": 10}],"categories": [{"id": 1, "name": "person"}, {"id": 2, "name": "bicycle"}, {"id": 3, "name": "car"}]}
結果ファイル:res.json
[{"image_id":73,"category_id":1,"bbox":[10,10,50,100],"score":0.9}]
これで、次のスクリプトを使用して COCO メトリックを評価できます。
from pycocotools.coco import COCO
from pycocotools.cocoeval import COCOeval
annFile = './ann.json'
resFile='./res.json'
cocoGt=COCO(annFile)
cocoDt=cocoGt.loadRes(resFile)
annType = 'bbox'
cocoEval = COCOeval(cocoGt,cocoDt,annType)
cocoEval.evaluate()
cocoEval.accumulate()
cocoEval.summarize()