обнаружение номерного знака с помощью YOLO - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь обучить модели для обнаружения номерных знаков пакистанских автомобилей.Я нашел более быструю технику под названием YOLO.Вот ссылка YOLOv2

Блог, за которым я следую, чтобы обучать YOLOv2, это блог

В соответствии с этим блогом мне нужно иметь изображенияавтомобили и мне нужно аннотировать эти изображения (необходимо отметить положение номерного знака) для подготовки данных испытаний и данных обучения.Проблема в том, что у меня уже есть данные обучения в виде

sample training data

, и в этом учебнике я должен сделать аннотацию к изображениям автомобилей, подобным этому.

enter image description here

Если кто-то работал с YOLO, пожалуйста, скажите мне, как можно избежать аннотаций и использовать мои собственные данные обучения для обучения модели YOLO.

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Обучение Yolo требует следующего формата аннотации

[class] [X] [Y] [W] [H]

т.е.

0 0.443359 0.434722 0.391406 0.869444

Если у вас такой же набор данных аннотации, поздравляем васмогу начать тренировку.Если у вас его нет, вы можете конвертировать, используя инструменты, доступные на github.

Обновление: Аннотация рассчитывается по центру Например.Если вы работаете с форматом x1, y1, x2, y2, вам необходимо конвертировать его.

def convert_to_yolo_format(path, x1, y1, x2, y2):
    """
    Definition: Converts (x1, y1, x1, y2) format to
        (x, y, width, height) normalized YOLO format.
    """
    size = get_img_shape(path) # size array [width,height]
    dw = 1./size[0]
    dh = 1./size[1]
    x = (x1 + x2)/2.0 # centroid x
    y = (y1 + y2)/2.0 # centroid y
    w = x2 - x1 # width
    h = y1 - y2 # height
    x = abs(x*dw) # divide by width
    w = abs(w*dw) # divide by width
    y = abs(y*dh) # divide by height
    h = abs(h*dh) # divide by height
    return (x,y,w,h)
0 голосов
/ 31 мая 2018

Я также занимаюсь распознаванием LP с YOLO прямо сейчас.Это хороший выбор, как упомянуто выше, шина, чтобы решить проблему обнаружения объекта, вам нужен тренировочный набор не с пустыми LP, а с "LP в естественной среде", чтобы научить Yolo находить позицию LP на кадре.Если у вас его нет, а есть только набор чистых пластинок, вам нужно сделать это каким-то искусственным способом.Я могу предложить: 1) расширить ваш обучающий набор с отрицательными примерами (изображения без LP) 2) обучить Йоло для задачи классификации объектов 3) обработать ваш немаркированный поезд "естественная среда" с помощью полученной модели классификации с использованием движущегося окна для обнаружения истинных позиций грунта ЛП(да, это может потреблять много ресурсов ...) и, таким образом, получить обучающий набор для проблемы обнаружения объекта 4) обучить NN решать проблему обнаружения объекта.Кстати, вы можете использовать тот же NN, обученный на шаге 2, но с большим входным размером и с измененными последними слоями в качестве начальных весов для проблемы обнаружения (но для меня это не дало никакого улучшения, конкурирующего с отслеживанием для обнаруженияс нуля).

...