Я использовал код от https://github.com/MaybeShewill-CV/lanenet-lane-detection, который использовал Deep Learning для обнаружения линий полосы движения.
Я успешно протестировал модель. Теперь я хочу переучить модель по моим собственным данным.
Учебные данные состояли из трех частей: исходное изображение, файл двоичной сегментации и файл сегментации экземпляра. Пожалуйста, обратитесь к папкам gt_image_binary
и gt_image_instance
внутри папки /data/training_data_example
из репозитория.
Бинарная сегментация использует 255 для представления поля линии и 0 для остальных. Экземпляр использует другое значение пикселя для представления другого поля линии и 0 для остальных.
У меня вопрос, как мне сгенерировать эти две метки (двоичные файлы и файлы сегментации экземпляра)?
Автор сказал, что вам просто нужно следовать инструкциям в файле readme для набора данных Tusimple Lanenet, найденному здесь: https://github.com/TuSimple/tusimple-benchmark/blob/master/doc/lane_detection/readme.md
И из этого говорится, что вы можете сгенерировать эти файлы, используя этот формат в файле json:
{
'raw_file': str. 20th frame file path in a clip.
'lanes': list. A list of lanes. For each list of one lane, the elements are width values on image.
'h_samples': list. A list of height values corresponding to the 'lanes', which means len(h_samples) == len(lanes[i])
}
Где каждая строка json в label_data_ (date) .json - это данные метки для фрейма.
* * Например, тысяча двадцать-три
{
"lanes": [
[-2, -2, -2, -2, 632, 625, 617, 609, 601, 594, 586, 578, 570, 563, 555, 547, 539, 532, 524, 516, 508, 501, 493, 485, 477, 469, 462, 454, 446, 438, 431, 423, 415, 407, 400, 392, 384, 376, 369, 361, 353, 345, 338, 330, 322, 314, 307, 299],
[-2, -2, -2, -2, 719, 734, 748, 762, 777, 791, 805, 820, 834, 848, 863, 877, 891, 906, 920, 934, 949, 963, 978, 992, 1006, 1021, 1035, 1049, 1064, 1078, 1092, 1107, 1121, 1135, 1150, 1164, 1178, 1193, 1207, 1221, 1236, 1250, 1265, -2, -2, -2, -2, -2],
[-2, -2, -2, -2, -2, 532, 503, 474, 445, 416, 387, 358, 329, 300, 271, 241, 212, 183, 154, 125, 96, 67, 38, 9, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2],
[-2, -2, -2, 781, 822, 862, 903, 944, 984, 1025, 1066, 1107, 1147, 1188, 1229, 1269, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2]
],
"h_samples": [240, 250, 260, 270, 280, 290, 300, 310, 320, 330, 340, 350, 360, 370, 380, 390, 400, 410, 420, 430, 440, 450, 460, 470, 480, 490, 500, 510, 520, 530, 540, 550, 560, 570, 580, 590, 600, 610, 620, 630, 640, 650, 660, 670, 680, 690, 700, 710],
"raw_file": "path_to_clip"
}
Тогда вы просто наложите точки на исходном изображении (используя cv2.polylines?).
Как мне это сделать?
Я пытался создать как двоичные файлы, так и файлы сегментации экземпляров, просто нарисовав линию (нарисованная цветом) на черном фоне. Затем я получил ошибку формы, поэтому я преобразовал их в оттенки серого. Я также проверил исходные файлы, которые также в оттенках серого, поэтому я следовал этому формату изображения.
Но, опять же, я получил ошибку при этом.
Каков наилучший способ создания двоичных файлов и файлов сегментации экземпляра?