Как отличить разные номерные знаки с помощью OpenCV - PullRequest
0 голосов
/ 25 октября 2019

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

Кроме того, я хотел бы различать разные номерные знаки, если это возможно, но неЯ знаю, как обойти это, я пытался использовать базовое обнаружение и обнаружение объектов, но с треском провалился.

Ниже приведено изображение работающей программы, поскольку видно, что она обнаруживает один номерной знак и отображает его несколько экземпляров. Теперь проблема заключается в том, что я ожидаю, что она перейдет к следующей машине и отобразит табличку № 1,к сожалению, это не происходит и продолжает вводиться в программу № 0 «Выполнение программы»

«Запуск программы»

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

results = alpr.recognize_ndarray(frame)         
    for i, plate in enumerate(results['results']):             
    best_candidate = plate['candidates'][0]             
    print('Plate #{}: {:} ({:}%)'.format(i, 
          best_candidate['plate'].upper(),   
          best_candidate['confidence']))

Я хотел бы получить руководство по решению этой проблемы? Который в основном различают разные номерные знаки.

1 Ответ

0 голосов
/ 25 октября 2019

Это общая проблема без общего решения, потому что она сильно зависит от контекста. Некоторые мысли:

Если это видео, вы можете отслеживать движение пластины, трек будет «прыгать», когда обнаружит другую пластину. Допустим, максимальная скорость оптического потока составляет 100 пикселей / кадр. Если он превышает этот порог, можно предположить, что это новая пластина.

В зависимости от качества видео и детектора, возможны ли паразитные скачки,Я бы добавил фильтр Калмана или любой простой фильтр.

Возможно, существует минимальный промежуток времени между тем, как пластина выходит из изображения и появляется следующая. Вы можете использовать временной порог, чтобы вызвать событие «оповещение об измененной пластине».

...