Project and Product Manager
0,0
рейтинг
1 августа 2012 в 10:41

Дизайн → Шрифт для регистрационных номерных знаков (автомобильных номеров) из песочницы

Разработка комплексной автоматизированной системы, целью которой является автоматизация механизма контроля доступа на основании системы распознавания номерных знаков, сложная и, несомненно, комплексная задача. Для ее решения, в рамках квалификационной работы на степень бакалавра, мне потребовался не один месяц, и не одна сотня чашек чая.
Сегодня посмотрим на алгоритм и результаты решения локальной задачи по созданию шрифта в векторном формате согласно нормативной документации для отображения эталонов символов при корреляционном распознавании. На первом этапе углубимся в суть решаемой задачи.


1 «Матчасть»: Регистрационный номерной знак Российской Федерации


Согласно ГОСТ Р 50577-93 «Знаки государственные регистрационные транспортных средств. Типы и основные размеры. Технические требования» большинство регистрационных знаков имеют вид, указанный на рисунке ниже.

image
Рис. 1.

Стандартные размеры регистрационного знака, которые составляют 520×112 мм. Символьные комбинации на стандартных номерных знаках определяются тремя буквами и тремя цифрами. Вышеприведенный ГОСТ Р 50577-93 ссылается на использование 12 букв кириллицы, которые имеют графические аналоги в латинском алфавите: А, В, Е, К, М, Н, О, Р, С, Т, У и Х. Надо заметить, что буквы по размеру шрифта меньше, чем цифры.
Начертание символов определяется шрифтом ЖР5 по ГОСТ 3489.2-71 «Шрифты типографские. Гарнитура Журнальная рубленая». На рисунке ниже приведена область из ГОСТа начертания шрифта для кеглей от 12 и выше.
image
Рис. 2.

Перед решением задачи, всегда необходимо провести исследование и определить «Решили ли уже эту задачу до меня?» и «Каким образом, ее решили?». Следовательно, перейдем к следующему этапу, а именно поиску.

2 «Поиск»: Шрифт для автомобильных номеров


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

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

3 «Анализ применимости»: RoadNumbers.otf


Без тщательного анализа получить отличный результат, на мой взгляд, невозможно, поэтому рекомендуется потратить немного времени, чтобы потом судорожно не исправлять ошибки и недостатки.
И так, анализ показал следующее:
  • В шрифте не хватает пары символов (в т.ч. символ «D», см. ниже)
  • Шрифт заполнен в нижнем регистре
  • Контуры только PostScript (у меня с ним возникали какие-то проблемы)
  • Непонятные и лишние символы

Примечание: буква D используется в регистрационных знаках транспортных средств дипломатических представительств и торговых представительств иностранных компаний.

4 «Велосипед 2.0»: RoadNumbers2.0.ttf, RoadNumbers2.0.otf


В результате была проведена работа по оптимизации шрифта, получившим атрибут «2.0»:
  • В шрифте имеется все 12+1 символов
  • Символы верхнего и нижнего регистра заполнены и обладают одинаковым начертанием (обеспечивает исключение ошибок)
  • TrueType и PostScript версии
  • Не используемые символы не имеют начертания (аналог «space»)


image

Рис. 3.

Результат


В качестве результата представим шрифт, который пусть и не идеален, но позволяет решить глобальную задачу.
Имя шрифта: RoadNumbers
Версия: 2.003 2009
Контуры: TrueType, PostScript
Скачать: sdrv.ms/PjPjPM

Источники:
  1. ГОСТ Р 50577-93 «Знаки государственные регистрационные транспортных средств. Типы и основные размеры. Технические требования»
  2. ГОСТ 3489.2-71 «Шрифты типографские. Гарнитура Журнальная рубленая»
  3. Википедия. Статья «Индекс автомобильных номеров России»

Anatoly Simkin @SAnatoly
карма
20,0
рейтинг 0,0
Project and Product Manager
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Дизайн

Комментарии (25)

  • +5
    Было бы интересно почитать, как делали распознавание.
    • +3
      Меня тоже хаб «обработка изображений» и тэг «распознавание» смутил.
      • +1
        Обязательно напишу! Это фактически одна из первых задач была. Тэг можно и убрать, если не в тему :)
    • 0
      На myfonts есть он-лайн сервис распознавания шрифтов по картинке.
  • +4
    А в чем суть работы, что вы внешне подредактировали шрифт? А смысл?

    Было бы интересно, если бы вы провели анализ с точки зрения эффективности автоматического распознавания и оптимизации этого процесса (например, улучшение начертания для увеличения точности или добавление QR кода к номеру).
    • 0
      Смысл был в том, чтобы обеспечить возможность самого начертания всех символов, а без этого дальше никак не пойдешь.

      С QR кодом не понял. А вот по поводу качества начертания, подобный анализ проводился, обязательно опубликую результаты
  • +19
    Главное, о вопросах безопасности не забудьте :)

    • +11
      Так интереснее)
    • 0
      Как раз чем и хороши русские номерные знаки — там нет возможности напечатать drop table.
      • +1
        Только программы распознавания номеров об этом не знают.
  • +1
    Когда заходил думал тут будет анализ, какие шрифты проще было бы распознавать. =) Но и так неплохо.

    Кстати по теме, мне кажется что если бы в шрифтах для номеров не было скруглений, а почти все углы были прямые, распознавать их было бы на порядок проще. Правда читабельность для людей уменьшилась.
    • 0
      Распознавать их было бы еще проще, если бы там место букв был баркод или QR.
      • 0
        *вместо
      • +1
        Но проверить их валидность «на глаз» стало бы на порядки сложнее.
        • +1
          Можно же делать, чтоб контуры букв были привычные человеческому глазу, а заполнение — баркодом вместо сплошного чёрного.
          Так печатаются реквизиты на банковских чеках. Легко читать, легко сканировать.
          На скорую руку нагуглилось только это в качестве примера, но принцип ясен и там.
      • 0
        На мой взгляд распознавать было бы проще, если бы на дорогах не было бы грязи ;-)
  • +1
    О, какраз искал шрифт чтоб напечатать себе бумажные в замен украденных, спасибо.
  • +1
    А исходник самого номера в векторе?
    • 0
      Я не делал весь номер в векторе, не было необходимости. В интернете можно найти .ai по ссылке www.umbum.ru/evgen/forum/road-number.zip (но я не проверял, нет под рукой Иллюстратора)
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Смысл в том, что он может еще кому-то пригодиться. Статьи по автоматизации и разработке будут, если сейчас выкину куски кода без алгоритмов — практическая польза будет минимальна.
  • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    А расскажите как происходит распознавание, когда номер попадает в объектив под случайным углом? Одно дело искаженные капчи, а другое поток из 100 машин в минуту по 3 полосам…
    • 0
      думаю, выравнивание трапеции (периметр номера) до прямых углов, вертикали в буквах найти легко (т.е. имеем высоту буквы), далее чистая математика.
  • 0
    Журнальной рубленой набирали старые транзитные номера.

    Смотрим ГОСТ:
    3.3. Структура регистрационных знаков должна быть следующей:

    тип 16 (трехстрочный) — “ТРАНЗИТ”
    ММ 55
    0000,

    3.8 Форма и характер начертания цифр и букв

    Цифры и буквы на лицевой стороне регистрационного знака типа 16 должны выполняться шрифтом ЖР5 по ГОСТ 3489.2
    Для остальных знаков — особый шрифт, рисунок букв и цифр которого одержится в приложениях Б и В — в них видно, что, например, цифры 13469 (то есть, половина цифр) заметно отличаются от тех, что содержатся в Журнальной рубленой.

    Сейчас, после того, как стали выдавать узкие транзитные номера с кодом региона на жёлтом фоне, Журнальная рубленая совсем не используется.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.