У меня есть файл .json, в котором есть аннотации (с точки зрения кругов и многоугольников) объектов, с которыми я хочу обучить свою нейронную сеть.Проблема, однако, заключается в том, что транзитный код принимает только полигоны из файла .json, что приводит к ошибке, так как у меня есть круги.
Кто-нибудь знает, как преобразовать круги в полигоны?
У меня естьуже пробовал некоторые решения (как показано ниже), которые не работали:
import json
from pprint import pprint
with open('via_region_data(val).json') as f:
data = json.load(f)
for attr, val in data.items():
for attr2, val2 in val.items():
if attr2 == 'regions':
for attr3, val3 in val2.items():
if val3['shape_attributes']['name'] == 'circle':
cx = val3['shape_attributes']['cx']
cy = val3['shape_attributes']['cy']
r = val3['shape_attributes']['r']
all_points_x = [cx, cx - 1.5 * r, cx, cx + 1.5 * r, cx]
all_points_y = [cy - 1.5 * r, cy, cy + 1.5 * r, cy, cy - 1.5 * r]
val3['shape_attributes']['cx'] = all_points_x
val3['shape_attributes']['cy'] = all_points_y
val3['shape_attributes']['all_points_x'] = val3['shape_attributes'].pop('cx')
val3['shape_attributes']['all_points_y'] = val3['shape_attributes'].pop('cy')
val3['shape_attributes']['name'] = 'polygon'
pprint(data)
with open('via_region_data-val.json', 'w') as f:
json.dump(data, f)
метание:
Traceback (most recent call last):
File "polygon_fixer.py", line 10, in <module>
for attr3, val3 in val2.items():
AttributeError: 'list' object has no attribute 'items'
Есть мысли?
PS: Ну, видимо, некоторые люди этого не сделалиЯ не понимаю, что это файл .JSON, с которым я пытаюсь работать. Итак, вот оно .