我正在使用 mask rcnn 訓練數據集。我在 labelIMG 工具 ( https://github.com/tzutalin/labelImg ) 上注釋了大約 1500 張圖像。長話短說,我需要從 JSON 文件中的分段列表中獲取 x 和 y 坐標的值。如何使用 Python 編程訪問列表?或者有沒有其他方法可以在掩碼 Rcnn 上使用 .xml 注釋。這是從 VOC PASCAL 轉換為 COCO 的數據集。Xml 被轉換為 JSON 語法。代碼import jsonimport codecsdata = json.load(codecs.open('example.json', 'r', 'utf-8-sig'))for i in data['annotations']: print(data['annotations'][0]) #want to output segmentation values in JSON filesJSON文件{ "images": [ { "file_name": "out538.png", "height": 720, "id": 20180000001, "width": 1280 }, { "file_name": "3 0751.jpg", "height": 720, "id": 20180000002, "width": 1280 } ], "type": "instances", "annotations": [ { "segmentation": [ [ 935, 372, 935, 554, 1195, 554, 1195, 372 ] ], "area": 47320, "iscrowd": 0, "ignore": 0, "image_id": 20180000001, "bbox": [ 935, 372, 260, 182 ], "category_id": 1, "id": 1 }, { "segmentation": [ [ 743, 317, 743, 480, 962, 480, 962, 317 ] ], "area": 35697, "iscrowd": 0, "ignore": 0, "image_id": 20180000001, "bbox": [ 743, 317, 219, 163 ], "category_id": 1, "id": 2 } ],我想要分段列表的值:例如 935、372、935、554、1195、554、1195、372 但我得到的只是錯誤“列表索引必須是整數或切片,而不是字典”
2 回答

慕的地10843
TA貢獻1785條經驗 獲得超8個贊
循環中的i變量將是一個字典,因為它是一個字典列表。為了訪問該列表,您需要執行以下操作:for i in data['annotations']:annotationssegmentation
for annotation in data['annotations']:
segmentation = annotation['segmentation']
actual_segment_data = segmentation[0]
最后一行代碼是必要的,因為segmentation它是列表中的列表。
這應該返回以下內容:[935, 372, 935, 554, 1195, 554, 1195, 372].

largeQ
TA貢獻2039條經驗 獲得超8個贊
JSON 是 dict of ...dicts 的 dict 所以你需要正確的鍵來導航到段。
annotations[0]['segmentation']
應該給你名單
添加回答
舉報
0/150
提交
取消