Локализация JavaAnpr для локальных номерных знаков

Я работаю с JavaAnpr для автоматического распознавания номерных знаков. Хотя он хорошо работает с европейскими номерными знаками, он не работает с моей страной. Например;

Номерной знак из моей страны

Как я могу отредактировать файлы ресурсов и синтаксис XML для поддержки других стран?

2 ответа

Решение

@michel_layyous - вот документация автора. Прочитайте страницу 57: http://javaanpr.sourceforge.net/anpr.pdf

Синтаксис.xml по сути является файлом регулярных выражений.

Используя эту страницу в качестве примера: https://code.google.com/p/android-anpr/source/browse/trunk/res/raw/syntax.xml?r=21

<type name="russia">
   <char content="abcehkmoptxy"/>
   <char content="0123456789"/>
   <char content="0123456789"/>
   <char content="0123456789"/>
   <char content="abcehkmoptxy"/>  
   <char content="abcehkmoptxy"/>
   <char content="0123456789"/>
   <char content="0123456789"/>
</type>

Этот российский номерной знак состоит из 8 символов. Первый символ может быть любой из этих букв. Следующие 3 символа могут быть любым числом из их соответствующего набора. Следующие 2 символа могут быть любыми из этих букв из их соответствующего набора, а последние 2 символа могут быть любыми из этих букв из их соответствующего набора.

Следующий российский номерной знак похож на первый российский номерной знак, за исключением одного ключевого различия:

<type name="russia2">
   <char content="abcehkmoptxy"/>
   <char content="0123456789"/>
   <char content="0123456789"/>
   <char content="0123456789"/>
   <char content="abcehkmoptxy"/>  
   <char content="abcehkmoptxy"/>
   <char content="012"/>
   <char content="0123456789"/>
   <char content="0123456789"/>
</type>

6-й символ может быть только 0, 1 или 2.

Я также нашел соответствующую рекламу на этой странице: http://www.mp3car.com/software-and-software-development/124529-automatic-number-plate-recognition-anpr-3.html

Я нашел очень похожий номерной знак для вашей страны, однако он состоит из двух рядов. Первые два числа находятся в верхнем ряду, а в нижнем ряду 5 чисел. Похоже, в вашей стране есть 7 цифр для вашего конкретного стиля тарелки. Я не знаю, как точечные факторы влияют на узнаваемость вашей таблички, однако, на странице 58 авторской документации говорится:

Исправление таблички означает замену каждого недействительного символа другим. Если символ () i p в i-м положении пластины P не соответствует выбранному шаблону () ` sel P, он будет заменен первым действительным из from () s y . () s y - отсортированный вектор действий вывода, обозначающий, насколько распознанный символ похож на отдельный символ в алфавите. Эвристический анализ сегментированной пластины может иногда неправильно оценивать не символьные элементы как символы. Принятие нехарактерных элементов приводит к тому, что распознанная табличка будет содержать избыточные символы. Избыточные символы встречаются обычно по бокам пластины, но редко в середине. Если распознанный номер пластины длиннее самого длинного синтаксического шаблона, мы можем выбрать ближайший шаблон и удалить лишние символы в соответствии с ним.

Проверьте OpenALPR ( http://www.openalpr.com/). Он имеет лучшую поддержку в разных странах. Библиотека написана на C++ (в отличие от Java), но ее легко подключить с помощью JNI.

Другие вопросы по тегам