Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Мне как-то наоборот было немного лень писать такую программу и вот нашлось уже готовое open-source приложение…
В нем тоже можно связывать кнопки клавиатуры с классами для разметки. Классы для раметки и тип разметки можно конфигурировать, например :
LABELS = (
{"attributes": {"type": "rect",
"class": "head"},
"item": "sloth.items.RectItem",
"inserter": "sloth.items.RectItemInserter",
"text": "Head",
"hotkey": "w"
},
{"attributes": {"type": "rect",
"class": "rhand"},
"item": "sloth.items.RectItem",
"inserter": "sloth.items.RectItemInserter",
"text": "Right Hand",
"hotkey": "d",
},
{"attributes": {"type": "rect",
"class": "lhand"},
"item": "sloth.items.RectItem",
"inserter": "sloth.items.RectItemInserter",
"text": "Left Hand",
"hotkey": "a",
},
{"attributes": {"type": "rect",
"class": "steer_wheel"},
"item": "sloth.items.RectItem",
"inserter": "sloth.items.RectItemInserter",
"text": "Steering wheel",
"hotkey": "s",
},
)На выходе json файл типа
[
{
"annotations": [
{
"class": "head",
"height": 150.0,
"type": "rect",
"width": 155.0,
"x": 52.0,
"y": 48.0
},
{
"class": "lhand",
"height": 51.0,
"type": "rect",
"width": 52.0,
"x": 420.0,
"y": 96.0
},
{
"class": "rhand",
"height": 73.0,
"type": "rect",
"width": 71.0,
"x": 458.0,
"y": 110.0
},
{
"class": "steer_wheel",
"height": 214.0,
"type": "rect",
"width": 115.0,
"x": 406.0,
"y": 99.0
}
],
"class": "image",
"filename": "train\\c0\\img_34.jpg"
},
...
]Сама программа немного тупит на загрузке базы изображений, но потом все довольно плавно. При редактирование разметки, приходится использовать мышь (не особо искал, если есть шорткаты). Вот как-то так.
Колыбель для AI