Распознавание номеров. Как мы получили 97% точности для Украинских номеров. Часть 2

    Nomeroff Net numberplate detection OCR example


    Продолжаем рассказ о том как распознавать номерные знаки для тех кто умеет писать приложение «hello world» на python-е! В этой части научимся тренировать модели, которые ищут регион заданного объекта, а также узнаем как написать простенькую RNN-сеть, которая будет справляться с чтением номера лучше чем некоторые коммерческие аналоги.
    В этой части я расскажу как тренировать Nomeroff Net под Ваши данные, как получить высокое качество распознавания, как настроить поддержку GPU и ускорить все на порядок…

    Тренируем Mask RCNN находить область с номером


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

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

    Итак, алгоритм подготовки данных следующий:


    • Берем изображения размером не менее 300x300, сбрасываем все в одну папку
    • Загружаем инструмент для нанесения разметки VGG Image Annotator (VIA), можно размечать прямо онлайн, на выходе будет директория с фото и сформированный вами json-файл с разметкой. Таких папок нужно две, в одной под названием train поместите основную часть примеров, во вторую val приблизительно 20-30% от числа примеров первой паки (Конечно же, в этих папках не должно быть одинаковых фотографии). Можете посмотреть пример размеченных данных для проекта Nomeroff Net. По количеству — чем больше тем лучше. Некоторые специалисты рекомендуют 5 000 примеров, мы обленились, набрав чуть более 1 000 так как результат нас вполне устроил.

      VGG Image Annotator (VIA) editing example
    • Чтоб приступить к обучению вам нужно загрузить с Github сам проект Nomeroff Net, установить Mask RCNN со всеми зависимостями и можно попробовать запустить скрипт тренировки train/mrcnn.ipynb на наших данных
    • Сразу предупреждаю, это работает не быстро. Если у Вас нет GPU это может занять дни. Чтоб существенно ускорить процесс обучения желательно установить tensorflow с поддержкой GPU.
    • Если тренировка на нашем датасета у вас прошла успешно, теперь можно смело переключатся на свой.
    • Обратите внимание — мы не обучаем все «с нуля», мы дотренировываем модель, обученную на данных COCO dataset, которую Mask RCNN закачает при первом запуске

    • Вы можете дотренировывать не coco, а нашу модель mask_rcnn_numberplate_0700.h5, при этом укажите путь к этой модели в конфигурационном параметре WEIGHTS (по умолчанию «WEIGHTS»: «coco»)
    • Из параметров, которые можно протюнить это: EPOCH, STEPS_PER_EPOCH
    • Результат после каждой эпохи будет сбрасываться в папку ./logs/numberplate<дата запуска>/

    Чтоб опробовать натренированную модель в деле, в примерах проекта замените MASK_RCNN_MODEL_PATH на путь к своей модели.

    Улучшаем классификатор номерных знаков под свои требования


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

    В нашем проекте мы реализовали поддержку распознавания номеров Украины, РФ и Европейские номера в целом. Качество распознавания европейских номеров немного хуже, так как там номера с разным дизайном и увеличенным количеством встречающихся символов. Возможно, со временем, будут отдельные модули распознавания для «eu-ee», «eu-pl», «eu-nl»,…

    Перед классификацией номерного знака его нужно «вырезать» из изображения и нормализировать, другими словами по максимуму убрать все искажения и получить аккуратный прямоугольник, который будет подвергаться дальнейшему анализу. Эта задача оказалась достаточно нетривиальной, мне даже пришлось вспомнить школьную математику и написать специализированную реализацию алгоритма кластеризации k-means :). Модуль, который это все процессит называется RectDetector, вот как выглядят нормализованные номера, которые далее будем классифицировать и распознавать.

    Пример нормализации номерных знаков

    Чтоб как-то автоматизировать процесс создания датасета для классификации номеров мы разработали небольшую админку на nodejs. С помощью этой админки вы можете разметить надпись на номерном знаке и класс к которому его относить.

    Классификаторов может быть несколько. В нашем случае по типу номера и по тому зарисован/закрашен ли он на фото.

    Админка для разметки номерных знаков Nomeroff Net

    После того как разметили датасет, делим его на тренировочную, валидационную и тестовую выборки. В качестве примера скачайте наш датасет autoriaNumberplateOptionsDataset-2019-03-06.zip, чтоб посмотреть как там все устроено.
    Так как выборка уже размечена (отмодерирована), то вам нужно в рандомных json-файлах поменять «isModerated»:1 на «isModerated»:0 и после этого запустить админку.

    Тренируем классификатор:


    Скрипт тренировки train/options.ipynb поможет получить Вам свой вариант модели. На нашем примере видно что для классификации регионов/типов номерных знаков мы получили точность 98.8%, для классификации «закрашен ли номер?» 99,4% на нашем датасете. Согласитесь, неплохо получилось.

    Тренируем свою OCR (распознавалку текста)


    Ну вот мы нашли область с номером и нормализировали ее в прямоугольник, который содержит надпись с номером. Как нам прочитать текст? Проще всего прогнать его через FineReader или Tesseract. Качество будет «не очень», но при хорошем разрешении области с номером сможете получить точность на уровне 80%. На самом деле это неплохая точность, но если я Вам скажу что можете получить 97% и при этом потратите значительно меньше компьютерных ресурсов? Звучит неплохо — попробуем. Для этих целей подойдет немного необычная архитектура, в которой используются как сверточные так и рекуррентные слои. Архитектура этой сети выглядит приблизительно так:

    image

    Реализация взята с сайта https://supervise.ly/, мы ее немного модифицировали для тренировки на реальных фото (на сайте supervisely подан вариант для синтетической выборки)

    Теперь начинается самая увлекательная часть, разметить хотя бы 5 000, номеров :). Мы разметили около ~15 000 Украинских, ~6500 Европейских и ~5000 РФ. Это была самая сложна часть разработки. Вы даже не представляете сколько раз я засыпал на стуле у компа модерируя по нескольку часов в день очередную порцию номеров. Но настоящий герой разметки dimabendera — он разметил 2/3 всего контента, (поставьте ему плюс если понимаете как скучно было делать всю эту работу :) )

    Можно попробовать этот процесс как-то автоматизировать, например, предварительно распознав каждое изображение Tesseract-ом, а потом уже поправить ошибки с помощью нашей админки.
    Обратите внимание: для разметки классификатора и OCR на номере используется одна и та же админка. Одни и те же данные вы сможете загрузить и туда и туда, кроме зарисованных номеров, конечно.
    Если вы разметите хотя бы 5000 номеров и сможете обучить свою OCR — смело оформляйте себе премию у начальства, уверен, это испытание не для слабаков!

    Приступаем к тренировке


    Скрипт train/ocr-ru.ipynb тренирует модель для номеров РФ, там же примеры для Украины и Европы.

    Обратите внимание, в настройках тренировки там только одна эпоха (один проход).

    Особенностью тренировки такого датасета будет очень разный результат при каждой попытке, перед каждой тренировкой данные перемешиваются в случайном порядке, иногда более удачно для тренировки иногда «не очень». Я вам рекомендую пробовать хотя бы 5 раз, при этом контролировать точность на тестовых данных. При разных попытках запуска у нас точность могла «прыгать» от 87% до 97%.

    Несколько рекомендаций:

    • Не нужно инициализировать все по-новой просто перезапускаем строку model = ocrTextDetector.train(mode=MODE) пока не получим ожидаемый результат
    • Одна из причин плохой точности недостаточное количество данных. Если не устраивает — размечаем еще и еще, в какой-то момент качество расти перестает, для каждого датасета по-разному, можно ориентироваться на цифру 10 000 размеченных примеров
    • Тренировка будет проходить быстрее, если у вас установлен драйвер CuDNN от NVIDIA, поменяйте значение MODE = «gpu» в сценарии обучения и вместо слоя GRU подключится CuDNNGRU, что приведет к трехкратному ускорению.

    Немного о настройке tensorflow для GPU NVIDIA


    Если вы счастливый обладатель GPU от NVIDIA, то вы можете в разы все ускорить: и тренировку моделей и инференс (режим распознавания) номеров. Проблема заключается в том чтоб корректно все установить и скомпилировать.

    Мы на своих серверах ML используем Fedora Linux (так сложилось исторически).

    Приблизительная последовательность действий для тех кто использует эту OS следующая:

    • Ставим драйвер GPU для вашей версии OS, вот тут для Fedora
    • Подключаем репозиторий NVIDIA и ставим оттуда набор пакетов CUDA, вот тут для CentOS/Fedora
    • Ставим bazel, и собираем tensorflow из исходников по этой доке
    • Так же желательно установить старую версию компилятора gcc, который называется cuda-gcc, у меня все нормально собиралось на cuda-gcc 6.4. При настройке сборки указывайте путь именно к cuda-gcc

    Если собрать tensorflow с поддержкой gpu не получится, можно запустить все через docker, при этом кроме docker-а нужно доустановить пакет nvidia-docker2. Внутри docker-контейнера можно запустить jupyter notebook, и далее запускать все там.

    jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root

    Полезные ссылки



    Также хочу поблагодарить хабраюзеров 2expres, glassofkvass за предоставленные фото с номерами и dimabendera за то что написал большую часть кода и разметил большую часть данных проекта Nomeroff Net.

    UPD1: Так как мне и Дмитрию пишут в личку стандартные вопросы по распознаванию номеров, связке tensorflow с gpu и т.д. и мы с Дмитрием даем одни и те же ответы, хочется как-то заоптимизировать этот процесс.
    Предлагаем сделать переписку в комментариях более структурированной, разделенной по темах. Для этого есть удобный функционал на GitHub. В дальнейшем просьба задавать вопросы не в комментах а в тематических issue на github Nomeroff Net
    Поделиться публикацией

    Комментарии 97

      +3
      При разных попытках запуска у нас точность могла «прыгать» от 87% до 97%.

      Дело не только в данных, но и в вашем процессе обучения — высокий статичный lr, SGD. Попробуйте поменять SGD на Adam или RMSProp и меняйте (в общем случае уменьшайте, но есть и извращения вроде циклических изменений) learning rate, например, как здесь

      Также есть замечательная штука кросс-валидация, которая позволяет получать более стабильный результат от запуска к запуску (по сути это усреднение результатов n запусков с разными наборами train и val)
        0
        Спасибо, попробуем.
          0
          Менял SGD на Adam и RMSProp, экспериментировал с learning rate, результат похуже, даже так — «стабильно хуже». Если есть спецы, ради спортивного интереса попробуйте получить accuracy выше 97.2% на этом датасете, там есть и тестовая выборка, но ее, по понятным причинам включать в обучение нельзя.
        • НЛО прилетело и опубликовало эту надпись здесь
            0
            В Германии был разработан и с 2000 года используется (а также в некоторых других странах) шрифт FE, специально для номерных знаков, чтобы номер было легко автоматически распознавать и очень сложно изменить.

            Заголовок спойлера
            image

            Пример из статьи: сочетание PBF переделано в R3E. Ниже — как R3E должно выглядеть на самом деле.
            image

            А на украинских О от 0 с трудом отличишь (только по позиции).
              0
              Ну из-за позиции это и теряет смысл. В и 3 не могут пересечься.
            +3
            Вы много пишете о героической разметке номеров разработчиками, но доблести в этом подходе нет никакой.

            Почему бы не передать эту часть работы менее квалифицированным людям? Можно же студентов найти в своем городе, фрилансеров нанять и т.д. По итогу для компании это будет стоить во много раз дешевле, а контролировать качество сильно быстрее и проще, чем размечать самостоятельно.
              0
              Это была самоирония (я там смайлик поставил). Вы все правильно пишите — мы делали не оптимально, но быстро. Кроме того, благодаря тому что мы сами размечали, мы создали неплохую админку, которую допиливали в процессе разметки. Вначале файлы раскладывались по папкам и редактировались json-описания вручную.
              0

              А как же "евробляхи"?)

                0
                «Евробляхи» уже законодательно урегулировали. На европейских номерах ездить не выгодно, грозит большой штраф. Они все постепенно переходят на украинские номера.
                  0
                  Прикрыли лавочку. На дорогах стало сильно меньше евроблях.
                    +1
                    Интересно, за что меня минуснули. Лично знаю троих людей которые покупали евробляхи, ходили на разные митинги типа «евросила», но в итоге вот недавно растаможили их, ибо прижали.
                  –1
                  Все-таки здорово, что в Украине можно столь часто встретить автомобили с европейскими номерами. Приезжие из Европы туристы — это очень и очень хорошо. Но особенно приятно, что многие из данных автомобилей принадлежат самим украинцам.

                  По сравнению с Россией, Украина — просто отдельный удивительный мир.
                  Снимаю шляпу и очень-очень уважаю.

                  И в особенности уважаю решение разрешить безвизовый въезд граждан ЕС в Украину (на тот момент еще односторонний).
                    –1
                    Вы видимо не совсем в курсе почему там можно встретить автомобили с европейскими номерами. Кстати как тут выше написали их скоро будет много меньше.
                    Но особенно приятно что многие из данных автомобилей принадлежат украинцам
                    — вот это вы сейчас серьёзно? Совсем не понимаете зачем так делают, почему это очень плохо и с какой целью борются?
                    По сравнению с Россией Украина почти ничем и не отличается, вот их децентрализация пожалуй действительно может принести плоды, поживём увидим какие.
                      –1
                      1. Есть много украинцев, которые смогли получить гражданства Польши, Румынии, Венгрии и некоторых других европейских стран. Они имеют возможность приобретать автомобили в Европейском Союзе, проживать там и приезжать в Украину на автотранспорте с европейскими номерными знаками.

                      2. Есть много украинцев, которые задействуют серые схемы с целью ввоза в Украину и последующей эксплуатации транспортного средства на европейских номерах.

                      Целей использования украинцами автомобилей на европейских номерах две:

                      — Не платить таможенные пошлины
                      — Имиджевый статус

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

                      Оставшиеся в Украине автопроизводства всеми силами лоббируют снижение параллельного импорта и удержания таможенных пошлин на ввоз авто. Еще бы. Кто будет покупать «отечественного производителя» известного качества, если в ту же цену (и даже дешевле) будет возможность купить импортное авто с минимальным пробегом? Официально функционирующие в Украине представительства мировых автобрендов тоже не заинтересованы в параллельном импорте.

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

                      В России гайки закручены уже давно и никакого возмущения в публичном пространстве не было (в России публично возмущаться запрещено). Эксплуатация транспортных средств на иностранных номерных знаках была свернута еще в начале нулевых, а в дальнейшем ограничили самостоятельный ввоз ТС путем высоких пошлин и смежных платежей. Сделали невыгодным импорт авто из Японии, хотя весь Дальний восток жил исключительно праворульными автомобилями. Издевательства вводятся каждый год, например, недавно ввели обязательное оснащение ввозимых авто системой ЭРА-ГЛОНАСС.

                      Ну и напоследок скажу про автомобили приезжих. В России среди иностранных автомобилей я видел разве что авто на беларуских, киргизских и казахстанских номерах (ну и на номерах недо-государств «ДНР», «ЛНР», «Абхазии» и «Южной Осетии»). В Украине — на польских, немецких, венгерских, румынских, чешских, и других европейских.

                      Кроме того, в Россию просто так не получится ввезти авто с иностранной регистраций и разобрать на автозапчасти (заработав тем самым на ценовой разнице). В Украину — можно, существуют отработанные схемы. Следовательно, в Украине даже в этом гораздо больше возможностей для заработка средств.
                        –2
                        П.1 ничтожество и полностью эквивалентен России, так что им можно пренебречь и в дальнейшем не рассматривать.
                        П.2 основной, именно о нём и речь
                        В России закрутить гайки в этом направлении настолько давно, что в то время можно было всё, это привело к появлению автомобилях кластеров в Калуге и Питере, с тысячами рабочих мест, про Ваз даже не говорю.
                        На Украине фактически не осталось гражданских автопроизводств, за в коме и давно, цель в другом, чтоб автокомпании перенесли хотя б отвёрточную сборку на Украину тем самым создав рабочие места.
                        Кстати во многих европейских странах пошлины так же высоки, хотя там нет своих автопроизводств.

                        Борьба с иностранными номерами лежит ещё в одной плоскости — автофиксация штрафов, поэтому государство такие номера не любит.

                        В России массово видел эстонские и латвийские номера, да и в России где? В Екатеринбург вы и этого не увидите, в Карелии наоборот, Украине достаточно компактна по площади и сильно ближе к восточной Европе, потому там и много таких номеров, заметьте не Италии, Испании, Франции или Финляндии, а именно государств соседей, с чего б это?

                        Последний абзац явный и неприкрытый уход от налогов, подождите немного и на Украине с этим разберутся
                          0
                          В России закрутить гайки в этом направлении настолько давно, что в то время можно было всё, это привело к появлению автомобилях кластеров в Калуге и Питере, с тысячами рабочих мест, про Ваз даже не говорю.

                          А могли быть вместо производственных гигантов тысячи малых фирм, занимающихся перегоном авто из Европы. Это, внезапно, тоже рабочие места.

                          Борьба с иностранными номерами лежит ещё в одной плоскости — автофиксация штрафов, поэтому государство такие номера не любит.

                          Как на счет того, чтобы научить камеры распознавать европейские номера?

                          В России массово видел эстонские и латвийские номера, да и в России где? В Екатеринбург вы и этого не увидите, в Карелии наоборот, Украине достаточно компактна по площади и сильно ближе к восточной Европе, потому там и много таких номеров, заметьте не Италии, Испании, Франции или Финляндии, а именно государств соседей, с чего б это?

                          В Петербурге и в Карелии автомобилей на финских номерах жалкая горстка, в отличие от Львова, где можно видеть польские буквально в каждом потоке. В Калининградской области вообще не видел ни одной машины на иностранных номерах. В Псковской области видел парочку на эстонских.

                          Последний абзац явный и неприкрытый уход от налогов, подождите немного и на Украине с этим разберутся

                          Уходить от данных налогов не потребуется, если их не будет.

                          П.1 ничтожество и полностью эквивалентен России, так что им можно пренебречь и в дальнейшем не рассматривать.

                          Вот тут вы ошибаетесь. В Западной Украине у многих польские, румынские и венгерские паспорта.
                            0
                            Перегоны это что-то из девяностых, на уровне челноков с турецкими джинсами. Нормально для перестраивающейся экономики, но устоявшемуся рынку как раз нужны стабильные производственники, а не спекулянты.
                      –1
                      А я заметил, что вы возникаете в топиках на любую тему, и начинаете вести тупую агитацию за эмиграцию, хотя это неактуально уже лет 30. Вам за это платят? Судя по моментальной поддержке — да. Вы же даже имя сменили — с какой целью болтаетесь здесь?
                        –1
                        А, я просто не знал про этого персонажа.
                          +3
                          это неактуально уже лет 30

                          Хорошая шутка, особенно на фоне полусотни тысяч людей, сваливших из РФ только в Европу только за 2018й год.

                            –2
                            Ну, я и сказал, что агитировать за это просто глупо — люди валят с конца 80-х.
                            –1
                            вести тупую агитацию за эмиграцию

                            Читайте мои публикации внимательнее.
                            Ни разу не агитировал уезжать из Украины.
                              0
                              А причем тут вообще Украина? Я ее не упоминал.
                                0
                                Так и я не агитировал.
                            +1
                            Вам нравятся в чистом виде номера? Ведь доступность автомобилей для населения в России объективно не то чтобы прям на много, но выше. Какое-то время был даже большой поток перепродажи авто из Краснодарского края в Украину через Крым, Лавочку прикрыли, но раскупали авто по российским ценам весьма охотно. Странным такой отдельный удивительный мир не находите?
                              0
                              Что в Украине, что в России, проблема с доступностью автомобилей одна: наличие таможенных пошлин. В обоих случаях это «налог на иностранное».
                                +2
                                Разумеется, таможенные пошлины являются мерой по поддержке собственной экономики. Если их одну за одной отменять, то положительный эффект для населения будет кратковременным, те же автомобили по началу станут доступнее, но и рабочих мест в стране станет меньше. Трудовая миграция станет не одним из возможных вариантов улучшения благосостояния, а единственным путём выживания. Эмиграционный поток вырастет ещё на порядок, мы уже можем наблюдать этот эффект.
                                  0
                                  Разумеется, таможенные пошлины являются мерой по поддержке собственной экономики. Если их одну за одной отменять, то положительный эффект для населения будет кратковременным, те же автомобили по началу станут доступнее, но и рабочих мест в стране станет меньше.

                                  Искусственно раздувать рабочие места — это тупиковый путь. В России и Украине до сих пор в городах ходят автобусы с кондукторами, только потому, что это рабочие места. В России запутанная донельзя система управления бизнесом (НИГДЕ не видел такого в Европе, и, по отзывам, в Украине все сильно проще), из-за которой предприниматели вынуждены нанимать юристов и бухгалтеров. Толпы юристов и бухгалтеров — вновь искусственно созданные рабочие места. И таких примеров масса. Миллионы людей занимаются пустой и неэффективной работой.

                                  Эмиграционный поток вырастет ещё на порядок, мы уже можем наблюдать этот эффект.

                                  Эмиграционный поток не должен быть потоком с билетом в один конец. По моим наблюдениям, из Украины люди уезжают поработать на несколько месяцев, или на несколько лет. Заработав состоятельные деньги, они обосновываются в Украине, занимаются строительством и т.п. Большой плюс, если человек проработал 5-7 лет в стране, в которой возможно получить гражданство (в Польше — вполне реально).

                                  Трудовая миграция станет не одним из возможных вариантов улучшения благосостояния, а единственным путём выживания.

                                  Человек, проживший, проучившийся, поработавший долго в Европе и вернувшийся в родную страну — уже совсем другой человек. И ментально, и культурно. Считаю, что такие люди очень выгодны любой стране бывшего СССР. Невыгодны только диктатурам.
                                    +1
                                    Искусственно раздувать рабочие места — это тупиковый путь
                                    Только вот именно этот «тупиковый» путь сделал успешными крупнейшие экономики мира. Речь ведь не только в юристах и бухгалтерах. Если к примеру та же Шкода открывает завод по производству автомобилей в Украине, тем самым избавляясь от таможенных пошлин и обеспечивая рабочими местами, в том числе и высококвалифицированными, украинцев. А не выманивает их средства, а затем и их самих за границу.
                                      –1
                                      Думаю, многие предпочли бы массовую выдачу рабочих виз на аналогичный завод в Чехии.
                                        0
                                        Люди? Вполне себе предпочли бы. То же касается и любой другой промышленности и сельского хозяйства, с таким подходом в конечном итоге все с радостью уедут. А кто останется? Что вообще останется? Вы серьезно считаете, что это верный путь?
                                          –1
                                          Уехавшие однажды люди вернутся с хорошими финансами. Украина — не то государство, из которого люди уезжают, сжигая за собой мосты. Многие из вернувшихся будут обладателем европейского гражданства.

                                          Главное: они вернутся носителями принципиально новой культуры и уникального жизненного опыта. Это происходит уже сегодня.
                                            0
                                            Украина — не то государство, из которого люди уезжают, сжигая за собой мосты.
                                            Вы в этом уверены? Почему же тогда украинские диаспоры за границей столь многочисленны? В интервью с ними на вопрос о том, когда они вернутся на родину все как один отвечают «может быть когда-нибудь в лучшие времена», т.е. мы понимаем, что никогда.
                                            Давайте просто рассуждать логично. Вы можете придумать причину по которой они должны возвращаться и покидать насиженное место в более развитой стране, которая обеспечила их всем необходимым? Ради чего? Чтобы снова столкнуться со всем тем, от чего они когда-то успешно сбежали? Где тут логика?
                                              0
                                              Давайте просто рассуждать логично. Вы можете придумать причину по которой они должны возвращаться и покидать насиженное место в более развитой стране, которая обеспечила их всем необходимым? Ради чего?

                                              Если говорить про IT-сферу то причина есть — это налоги, в Украине на упрощенке IT-шник платит 5% с оборота + грубо 35$/месяц в персионный форд (есть еще военный сбор 1.5%) и все, раз в квартал в электронной форме здает отчет. В Европе это 35-40% + дороже проживание. Конечно, с судами и силовыми органами в Украине все печально их никто не риформировал, тут риски есть, но к IT-шнику тяжелее «присосаться» чем к обычному бизнесу. Так что в IT-сфере массовой эмиграции в Украине не наблюдается, наоборот, отрасль развимвается, я знаю людей которые вернулись со штатов во Львов и рабоатаю там в оутсорсинговой компании.
                                                0
                                                Продолжаем рассуждать логично. В случае IT сферы люди зачастую вообще не выезжают из Украины, это им и не нужно, они просто работают удаленно. Проживание в Украине с их зарплатами от зарубежных заказчиков — предложение от которого трудно отказаться. Только налоги они тоже платят не в Украине, а в основном на Кипре или каком-нибудь Гибралтаре. В этом легко убедиться, посмотрев их реквизиты и примеры договоров. Т.е. по сути представители IT в Украине являются не резидентами Украины, а лишь проживающими на ее территории. Траты на питание и проживание у них минимальны относительно их заработка, а остальные свои потребности они удовлетворяют зарубежными товарами (электроника, бытовая техника и даже медицина).
                                                В текущем виде Украина неплоха для условного IT специалиста, работающего через интернет, но вот он не приносит Украине при этом вообще ничего.
                                                  0
                                                  В текущем виде Украина неплоха для условного IT специалиста, работающего через интернет, но вот он не приносит Украине при этом вообще ничего.

                                                  Совсем-совсем ничего:

                                                  1. Оплата товаров, продуктов и услуг, в стоимость которых заложен украинский НДС
                                                  2. Оплата ЖКХ и других регулярных услуг в Украине (электричества, интернета, мобильной связи и т.д.)

                                                  И кто вам сказал, что электронику и бытовую технику они покупают вне границ Украины? (бытовую технику!!! я понимаю смартфон, но кто холодильник из Польши повезет?) Тоже, разумеется, покупают большую часть всего в Украине, доплачивая украинский НДС и оставляя средства в экономике страны.

                                                  Они зарабатывают деньги за рубежом и тратят их в Украине. В то время как другие зарабатывают в Украине и выводят все за рубеж. Прямо совсем бесполезные люди удаленщики, не правда ли?
                                                    0
                                                    1. Оплата товаров, в которых заложен украинский НДС
                                                    2. Оплата ЖКХ и других регулярных услуг в Украине (интернета)
                                                    Так суть в том, что в той же мере, сколько любые другие граждане Украины. Т.е. их большие заработки ничего существенного дополнительно экономике не приносят.
                                                    И кто вам сказал, что электронику и бытовую технику они покупают вне границ Украины?
                                                    Мы ведь на IT ресурсе, так? Можем судить по себе? Вполне! Все, что можно дешево и практично заказать из-за границы — заказывается там. Разумеется холодильник проще купить в местном магазине бытовой техники. Но смартфоны, комплектующие ПК, лампы, светильники, звуковые колонки умные и не очень, и все такое прочее заказывается через интернет или привозится самостоятельно при посещении зарубежных стран и зачастую не облагается НДС. Но определенную часть средств налог государству все равно позволяет собрать.
                                                    А ведь НДС — это такая же мера защиты экономики, как таможенные пошлины на авто. А в данной ситуации буквально последний её оплот. Уже становится страшно его снижать, не так ли?
                                                    Они зарабатывают деньги за рубежом и тратят их в Украине.
                                                    По факту получается в своей стране тратят мало, не многим больше среднего… А вот к примеру отпуске, не редко в другой стране — другое дело. Они не бесполезные, но они не приносят ничего существенного сверх остального населения и драйвером экономики в таком случае стать не могут. Им самим хорошо, а стране: что они в IT, что на рынке торгуют — одно и то же.
                                      0
                                      Эмиграционный поток не должен быть потоком с билетом в один конец. По моим наблюдениям, из Украины люди уезжают поработать на несколько месяцев, или на несколько лет. Заработав состоятельные деньги, они обосновываются в Украине, занимаются строительством и т.п. Большой плюс, если человек проработал 5-7 лет в стране, в которой возможно получить гражданство (в Польше — вполне реально).
                                      Наблюдение — это одно, а вот косвенные признаки говорят об обратном, многие люди не возвращаются, таких все больше. Вы, возможно, слышали о приблизительных оценках населения по потреблению хлеба или количеству отходов жизнедеятельности? Они дают неутешительные цифры. Но точно на этот вопрос нам даст ответ перепись населения, предлагаю подождать её и убедиться где правда.
                                      0
                                      Обратная сторона медали развития промышленности путём обкладывания пошлинами — убогий выбор автомобилей на внутреннем рынке, поскольку заходят только самые мейнстримовые производители со своими самыми мейнстримовыми моделями, а менее мейнстримовые вроде Seat или Alfa-Romeo из того же ценового диапазона, не видя смысла вкладываться в постройку завода, не могут конкурировать и не заходят вообще. Зато сразу понятно, холоп едет (если на недоиномарке местной сборки) или барин (если на немце или американце).

                                      Кстати за последние пару лет ВВП в Украине вырос, несмотря на отмену пошлин на авто и «развал» автомобильной промышленности — в отличие от… Просто люди начинают заниматься тем, что более актуально и в чём можно конкурировать — например, IT. Оттока населения в последнее время тоже не наблюдается: net migration на 1000 человек — в районе 0.
                                        0
                                        Обратная сторона медали развития промышленности путём обкладывания пошлинами — убогий выбор автомобилей на внутреннем рынке...
                                        За экзотические марки автомобилей переплачивать вполне разумно. Это же выбор роскоши или средства передвижения. К тому же, если бы, к примеру, в России было бы достаточно почитателей Alfa-Romeo, способных ко всему прочему ее приобрести, то завод бы построили из чисто экономических соображений, рынок-то большой. Так же страны для этого объединяются в экономические союзы, в рамках которых имеют особые правила торговли между собой на взаимовыгодных условиях. Как, например ЕАЭС и ЕС. Последний союз для новых членов выгодных условий принципиально на данный момент не предлагает, но ничего не мешает этого добиваться, а не соглашаться на что угодно, либо вступать в другие экономические союзы, либо даже создавать новые, более подходящие.

                                        Кстати за последние пару лет ВВП в Украине вырос, несмотря на отмену пошлин на авто и «развал» автомобильной промышленности — в отличие от…
                                        Ну вы же понимаете, что из той позиции, где ВВП оказался за последние 5 лет, путь в принципе есть только вверх. В связи с чем не знаю к чему люди используют данный аргумент.
                                        Оттока населения в последнее время тоже не наблюдается: net migration на 1000 человек — в районе 0.
                                        Эти данные не о чем не говорят. Если отслеживание миграции в какой-либо стране не входит в текущие задачи ЦРУ, то данные для отчетности они вносят из любых других источников на их усмотрение и велика вероятность, что этим источникам был «Держстат», которой, мы понимаем, в угоду кому рисует цифры. Как я уже предлагал, надо дождаться переписи — она всё покажет. Сейчас точных данных по Украине в принципе нет и утверждения на эту тему беспочвенны.
                                          0
                                          За экзотические марки автомобилей переплачивать вполне разумно

                                          Экзотические они только в странах-любителях высоких пошлин, в других странах
                                          это обычные автомобили. Пошлины искусственно ограничивают выбор и повышают цены, в том числе цену владения.


                                          из той позиции, где ВВП оказался за последние 5 лет, путь в принципе есть только вверх

                                          Есть десятки стран с в разы более низким ВВП.


                                          которой, мы понимаем, в угоду кому рисует цифры

                                          Какие есть основания не доверять Укрстату? Оценка количества населения Украины Укрстатом на миллион меньше, чем ЦРУ, кстати. Можно также проверить по другим источникам.


                                          надо дождаться переписи

                                          Перепись населения ждать не обязательно, поскольку данных по смертности/рождаемости, въездам/выездам и т.д. ежегодно собирается и так достаточно.

                                            0
                                            Экзотические они только в странах-любителях высоких пошлин, в других странах это обычные автомобили.
                                            В каких других? Членах единых экономических союзов? Знаете страны с сильной экономикой и беспошлинным ввозом товаров для всех желающих? Я повторяю, низкие пошлины — это предмет двухсторонних договоренностей или договоренностей в рамках экономических союзов, а не «все везите к нам, что хотите».
                                            Есть десятки стран с в разы более низким ВВП.
                                            В Европе? И им тоже даёт кредиты МВФ? А уровень коррупции в них не выше украинского?
                                            Какие есть основания не доверять Укрстату?
                                            Огромный антирейтинг находящихся у руководства страны людей и высочайший уровень коррупции. Мы же понимаем, что антирейтинг не на пустом месте основан.
                                            Перепись населения ждать не обязательно...
                                            Достоверных демографических данных по Украине в принципе не существует, а перепись их даст.
                                              0

                                              Высокие пошлины в целом признак слаборазвитых экономик. Является ли это последствиями неспособности договориться с другими странами или чего-то ещё — уже другой вопрос.


                                              им тоже даёт кредиты МВФ

                                              Кредиты дают тем, кто способен расти.


                                              антирейтинг находящихся у руководства страны людей

                                              Это довольно эфемерное понятие — у Трампа тоже антирейтинг, но рост ВВП за прошлый год — самый высокий с 2008 года, а у Ына или Туркмен-баши рейтинг, наоборот, пробивает потолок, но реальные результаты — не очень.


                                              Достоверных демографических данных по Украине в принципе не существует

                                              С таким подходом можно и результаты переписи под сомнение поставить: они ведь тоже обрабатываются Укрстатом. На самом деле существенные расхождения можно отловить путём сравнения данных с, к примеру, европейскими: например так недавно обнаружили, что Росстат показал в 5 раз меньше выехавших из России в Европу, чем Евростат.

                                                0
                                                Высокие пошлины в целом признак слаборазвитых экономик.
                                                Тут есть корреляция, высокие пошлины на определенные категории товаров есть везде, ими закрывают проблемные места в балансе торговли. Больше проблемных мест — больше высоких пошлин. Слабая экономика не является следствием пошлин, а их причиной, ответом на проблемы. По этому их бездумное снижение или отмена могут привести лишь к краху.
                                                Это довольно эфемерное понятие — у Трампа тоже антирейтинг.
                                                У Трампа в основном искусственный антирейтинг, вызванный ведущейся против него пропагандой и политической борьбой элит внутри США. В Украине антирейтинг власти естественный, вызванный объективными причинами.
                                                С таким подходом можно и результаты переписи под сомнение поставить: они ведь тоже обрабатываются Укрстатом
                                                Под сомнение стоит ставить абсолютно всё и везде, но в любом случае перепись даёт существенно более близкую к реальности картину. Тем более велика вероятность, что проводить ее будут при руководстве уже нынешних оппозиционных сил, которым очевидно будет нужна реальная картина происходящего для демонстрации проблем из-за ошибок их предшественников.
                                      +4
                                      С одной поправочкой. В России есть АвтоВАЗ, и, чисто теоретически, можно предположить что налоги на растаможку это поддержка отечественного производителя. А вот какого хрена такие налоги у нас в Украине — здравого объяснения нет. Был АвтоЗАЗ, и тот загнулся
                                        0
                                        А вот какого хрена такие налоги у нас в Украине

                                        Чтобы стимулировать автопроизводителей открывать заводы непосредственно в стране, создавая рабочие места, а не выжимать из нее все средства и вслед за ними само её население. Иметь своего автопроизводителя хорошо, но можно заставить работать на экономику своей страны также и чужих.
                                          +2
                                          А самих людей спросили, что они больше хотят?

                                          Есть представительство автоконцернов, лоббирующих свои интересы.
                                          Есть представительство «отечественных» автоконцернов, лоббирущих свои.

                                          Где представительство (объединение, выражающее свою политическую волю) жителей страны, которые, между прочим, как потребители, тоже имеют право высказать свое мнение?

                                          К чести Украине, мне попадалась информация о массовых митингах и забастовках владельцев автомобилей на европейских номерах. Однако недостаток политической культуры в стране до сих пор позволяет властным структурам вседозволено принимать решения в обход мнения жителей страны.
                                            –1

                                            Вообще смогли добиться довольно лояльного закона, многие сейчас совершают паломничество в Европу за машинами.

                                              +1
                                              В Украине есть еще одно обстоятельство, которое, возможно, косвенно влияет на размер растаможки — у нас президент совладелец корпорации Богдан, которая производит (в том числе) легковые авто :).
                                              После выборов, может все изменится, т.к. есть люди, которые смотрят прогрессивно на ставки растаможки.
                                              С электрокарами вопрос уже решен на 4 года, у нас електрический iPace на 20% дешевле чем в Росии.
                                              Я надеюсь, что все же количество авто на еврономерах уменьшится, т.к. налоги нужно платить.
                                                0
                                                А самих людей спросили, что они больше хотят?
                                                А как сформулировать вопрос? Вообще все люди хотят по 10 миллиардов долларов, виллу на берегу моря и бесплатное питание до конца жизни по достижению совершеннолетия. И может быть их потребности были бы даже рады удовлетворить, но это нереально.
                                                Где представительство (объединение, выражающее свою политическую волю) жителей страны, которые, между прочим, как потребители, тоже имеют право высказать свое мнение?
                                                Руководство страны. Люди высказали свое мнение, отдали свой голос на выборах и их интересы теперь представляют депутаты той же Верховной Рады (или подставьте соответствующий орган любой другой страны).

                                                К чести Украине, мне попадалась информация о массовых митингах и забастовках владельцев автомобилей на европейских номерах.
                                                Увы, всё лишь потому, что это затрагивает интересы бизнеса с миллиардными оборотами и его представители организуют данные протесты, а так же лоббируют интересы в самом руководстве страны. Люди тут не при чем и к протестам вообще весьма не склонны, рост тарифов ЖКХ в 11 (!!!) раз никакого протеста не вызывает, хотя бьёт объективно больнее и по большему количеству людей, нежели «евробляхи».
                                                  0
                                                  Да постоянно спрашивают.
                                                  На выборах в местные рады, на выборах в Верховную Раду, на встречах с избирателями, ща вот на выборах Президента спросят у людей, чего люди хотят…
                                                  И люди отвечают на вопрос…
                                        0
                                        Что бы получить точность около 50% при распознавании украинских номеров, достаточно взять систему распознавания номеров с ЕС.
                                          0

                                          А зачем вам понадобился k-means? Использовали вместо non-max suppression для разделения результатов?

                                            +1
                                            Может быть я недостаточно описал проблему, сейчас поясню.

                                            Дело вот в чем, на первом этапе с помощью Mask RCNN мы получаем области с потенциальными номерами, они бинарные в виде маски.

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

                                            Многоуголник может сотоять из разного размера линий и их угла наклона, с помощью k-means я разбиваю эти линии на 2 группы таким образом чтоб далее можно было сгрубировать эти линии в 4 грани многоугольника с номером. Использования стандартного k-means было невозможно, т.к. подсчет distance по классическому алгоритму будет считать неправильно угол между двумя прямыми.

                                            Например угол между линиями 180 градусов и 0 градусов равен 0, или угол между 175 и 3 = 8, между 95 и 120 равен 25. Также по другому нужно просчитывать центроиды кластеров для таких distance.

                                            Над этим пришлось покреативить и создать свою разновидность k-means а остальная часть алгоритма классическая.
                                              0

                                              А, понятно. Т.е. вы аппроксимировали контур маски сегментации параллелограммом, как я понимаю? В общем, логично. Автомобили в упор не фотографируют, чтобы там появлялась перспектива. Это же делает approxPolyDP из OpenCV, или он плохо работает на номерах?

                                                +1
                                                Я использую approxPolyDP, но для получения не 4 а большего числа граней, так как при апроксимации в 4 вершины вы получите очень неточный результат. Потом применяю k-means и получаю 4-х угольник, который нельзя назвать параллелограммом, т.к. там допускается наличие перспективного искажения, оно задается настройками. Мы допускаем вариативность до 3% между противоположными гранями (по умолчанию), этот параметр можно протюнить («под себя»). Т.е. если разница получается больше, мы «подравниваем» наш 4-х угольник.
                                                  0

                                                  Интересное решение. Спасибо за подробный ответ! Я просто в голове прикинул, как бы я решал, но, очевидно, что в таких задачах много подводных камней и пока не поэкспериментируешь с реальными изображениями, не поймёшь, какое решение лучше.

                                                    0
                                                    Да и там опечатка не 3% а 3 градуса (в градусах мне привычнее).
                                            0

                                            Вообще, вам идеально подошла бы сетка вроде MTCNN (не обязательно именно эта архитектура, просто детектор совмещённый с регрессией лэндмарков). Она бы и номера детектила, и 4 угла выдавала бы для каждого. Mask RCNN, по-моему, — оверкилл в этой задаче.

                                              +1
                                              Чтоб вы правильно понимали мой выбор еще полгода назад, я вообще не понимал как решаются задачи компьютерного зрения. Следуя мисии нашей компании, которая звучит так «мы строим проверенный интернет», у нас возникла потребность в системе разпознавания номерных знаков с валедацией по базе МВД, которая должна справляться с нагрузкой 200 000/день. Мне задача показалась очень интересной, адекватного опенсурс-решения с требуемой точностью я не нашел, вот мы с Дмитрием написали то что есть. Все работает на одном сервере с 2 видеоплатами (для моей компании это не дорого). 2 месяца назад там вместо нынешней OCR вообще использовался tesseract :), так что вы видите решение уже после первой оптимизации.

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

                                                +1

                                                Не сочтите за критику. Мне просто любопытно. :) Вы на самом деле молодцы, что создали рабочее решение.

                                              0
                                              Интересно мнение авторов по поводу OpenALPR в сравнении
                                                0
                                                Трудно сделать корректное сравнение, так как они проганяют бенчмарки на американских номерах, opensource-версию скорее всего не развивают в угоду комерческой версии, которая работает хорошо.
                                                Мы пробовали пользоваться opensource-версией, она не собралась ни на одном из наших linux-ов, в docker-е запустилась, но качество распознавания было очень низким, поэтому и пришлось писать свое.
                                                Единстввенный плюс — она работает быстее.
                                                  0
                                                  Я подумал, что замеры провести можно. Например, взять фото из папки test, русских или украинских номеров (на них не проводилась тренировка модели) и прогнать через наш модуль, через api openaslr и получить результат. Ну потом сравнить. Думаю, для интереса мы как-то найдем для этого время. :)
                                                  0
                                                  Спасибо за отличное решение, но не могли бы Вы поподробнее объяснить, что требуется для обучения под Казахстанский формат номеров. У нас в номерах присутствует весь алфавит, еще и размер букв от цифр отличается.Заранее благодарю.
                                                    0
                                                    Вначале, вам нужно сформировать выборку номеров, на которой будете обучать.
                                                    • Берете хотя бы 1000 фото авто с номерами вашей страны
                                                    • Берете за основу вот этот скрипт, и выдергиваете ним сами номера, вот фрагмент как нужно модифицировать код:
                                                              # cut zones
                                                              zones = await rectDetector.get_cv_zonesBGR_async(img, arrPoints)
                                                              toShowZones = await rectDetector.get_cv_zonesRGB_async(img, arrPoints)
                                                              num = 0
                                                              for zone, points in zip(toShowZones, arrPoints):
                                                                  plt.axis("off")
                                                                  mpimg.imsave("{}-{}.png".format(fname,num), zone)
                                                                  num = num + 1
                                                                  plt.imshow(zone)
                                                                  plt.show()
                                                      

                                                    • Потом размечаем, полученные номера с помощью нашей админки, класификатору в перпечень добавляете «kz» (к конфиге)
                                                      region_id: ["xx-unknown", "eu-ua-2015", "eu-ua-2004", "eu-ua-1995", "eu", "xx-transit","ru","kz"]
                                                      ,
                                                    • Перетринировуем модель классификатора типов номеров, чтоб он начал различать номера вашей страны
                                                    • По аналогии создаем файл OCR для Вашей страны и тренируем
                                                    • Проверяем точность на тестовой выборке в этом же скрипте, если устраивает записываем натренированную модель, нет тренируем еще раз, также качество можно улучшить если увеличить выборку.


                                                    Если не разберетесь можете выслать нам исходный датасет с фотографиями авто, мы можем помочь, но при условии что мы выложим результат в открытый доступ для всех.
                                                      0
                                                      Спасибо большое за ответ, попытаюсь своими силами, результатами обязательно поделюсь. Надеюсь и Вам буду полезен)
                                                        0
                                                        Добрый день. Мы собрали около 1000 фотографий, далее переходим к этому скрипту , и у нас возникает вопрос: должны ли мы использовать Ваши модели? Вы описали, как изменить код, мы внесли эти изменения. Далее мы должны запустить код с Вашими моделями?
                                                          0
                                                          Модель, которая находит границы номеров, пока что перетренировывать нету смысла. она и так будет находить границы номеров
                                                          MASK_RCNN_MODEL_PATH = os.path.join(NOMEROFF_NET_DIR, «models/mask_rcnn_numberplate_0700.h5»)

                                                          Модель, которая класифицирует тип номера требует перетренировки с добавлением вашего датасета
                                                          OPTIONS_MODEL_PATH = os.path.join(NOMEROFF_NET_DIR, «models/numberplate_options_2019_03_05.h5»)

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

                                                          Модель OCR, которая счытывает номер вашей страны независима, вам ее просто нужно натренировать.
                                                            0
                                                            Спасибо за ответ, проблем с дорожными знаками не будет, потому что требуется распознавать номерной знак только на въезде на территорию.
                                                              0
                                                              Приветствую, возникла проблема, что при разметке с помощью вашей админки не создается json файл с аннотацией номеров.
                                                                0
                                                                Разметили номера, а далее не получается:
                                                                • Перетринировуем модель классификатора типов номеров, чтоб он начал различать номера вашей страны(как ее нужно перетренеровывать ?)
                                                                • По аналогии создаем файл OCR для Вашей страны и тренируем
                                                                  0
                                                                  Перетренировка классификатора в этом примере
                                                                  Не забываем поправить перечень классов:
                                                                          self.CLASS_REGION = ["xx-unknown", "eu-ua-2015", "eu-ua-2004", "eu-ua-1995", "eu", "xx-transit", "ru", "kz"]
                                                                  
                                                                    0
                                                                    Добрый вечер, у нас не работает build tensorflow на bazel. Можем ли мы скинуть вам размеченные номера и вы нам модель отправите?
                                                                      0
                                                                      Да, такой вариант возможен, пришлите пожалуйста ссылку на архив автомобилей с номерами и сами вырезанные номера, если вы их уже повырезали.
                                                                        0
                                                                        Мы все сделаем и натренируем, но есть одно условие мы выложим модель в открытый доступ и поставим ваши копирайты.
                                                                          0
                                                                          apelsyn Добрый день. Мы собрали и сделали разметку около 1000 фотографий Казахстанских авто номеров. Можете помочь с обучением. Мой контакты: tolegen.ch@gmail.com
                                                                            0
                                                                            Выложите архив с фотографиями на Google disk, например. И вышлите ссылку на этот архив
                                                                              0
                                                                                0
                                                                                Посмотрел датасет, есть несколько моментов, которые нужно уладить перед тем как заниматься распознаванием.
                                                                                1. Размечая данные нужно использовать инструмент «Polygon region shape» а не «Rectangular region shape», часть фото размечена неправильно «Rectangular region shape»
                                                                                2. С помощью примера пройдитесь по датасету и отметте для себя те фото, где границу номера находит неверно. С помощью VGG Image annotator есть смысл разметить только те фото, которые не определяются нашей моделью корректно. Поблемные можно скопировать в отдельную папку и там розметить. Потом их можно будет добавить к нашим данным и перетренировать, после этого находить будет лучше.
                                                                                3. Я вижу несколько дизайнов номеров, кроме того есть «квадратные» (с пропорцией 1:2). Такой тип номеров Nomeroff Net пока что распознавать не умеет. Поэтому начать нужно с чего-то одного, например с новых «неквадратных»
                                                                                image
                                                                                Для этого с выборки надо убрать все «квадратные» и оставить только с таким дизайном, можно попробовать оставить и с другим дизайном, но не инверсные (где белим по синему или белым по красному)

                                                                                Жду от вас отфильтрованую выборку для дообучения Mask RCNN (п.1) и очищенную от «квадратных» и инверсных номеров/
                                                                                  0
                                                                                  Добрый день apelsyn dimabendera pan_danil ссылка yadi.sk/d/95Af7-LTYTdgVg на отфильтрованную выборку для дообучения Mask RCNN (п.1) и очищенную от «квадратных» и инверсных номеров

                                                                                  Как будет с квадратными номерами, для них отдельно собрать датасет и дообучать?
                                                                                    0
                                                                                    Пример номеров РК

                                                                                    1. Частные лица (1993) двухрядный номер
                                                                                    image

                                                                                    2. Частные лица (1993) однорядный номер
                                                                                    image

                                                                                    3. Частные лица (2012) двухрядный номер
                                                                                    image

                                                                                    4. Частные лица (2012) однорядный номер
                                                                                    image

                                                                                    5, Прицепы 1993
                                                                                    image

                                                                                    6. Прицепы 2012


                                                                                    7. и еще инверсные номера
                                                                                0
                                                                                pan_danil, tolegen95
                                                                                Маловато данных, будет работать очень некачественно. «Намайнил» вам номеров, там более 10 000, эту выборку надо очистить от не номеров и неполных номеров, кроме того поправить ошибки в распознавании.
                                                                                https://nomeroff.net.ua/examples/draft/kz.rar
                                                                                Когда подготовите эту выборку, я объединю с вашей и тогда получим хорошее качество.
                                                                                По «квадратным» номерам есть планы, но это будем делать в следуюющих версиях.
                                                                                    0
                                                                                    pan_danil, tolegen95 Натренировал и добавил в мастер.
                                                                                    Пример использования в примере:
                                                                                    https://github.com/ria-com/nomeroff-net/blob/master/examples/demo3.ipynb
                                                                                    Пока что точность «не очень» 91% — мало данных, в kz-номерах используется пректически весь англ. алфавит, поэтому для нормального качества обучающую выборку надо увеличить до, хотя бы 10 000, а лучше до 15 000 (как мы сделали для укр. номеров).
                                                                                      0
                                                                                      постараемся сделать более 10 000, в ближайшее время отправим
                                                                                        0
                                                                                        Вы можете предварительно удалять номера плохого качества, от них качество может ухудшаться. Предыдущую выборку я «почистил» вручную.
                                                                                          0
                                                                                          apelsyn dimabendera Здравствуйте, здесь 1 line номера(13 809) yadi.sk/d/0nsydwrTINx2lw,

                                                                                          Еще собрали квадратные более 14 000 (2 line)
                                                                                            0
                                                                                            apelsyn dimabendera здравствуйте, посмотрели?
                                                                                              0
                                                                                              1. Давайте дальнейшый диалог вести на github (создал issue по распознаванию казахских (kz) номеров), так как мне не удобно каждый раз скролить по этой «простыне тесктов», особенно в мобилке.
                                                                                              Переходим к более структурированному диалогу, всех welcome на github
                                                                                              2. Я вытянул номера из вашего датасета и в скором времени выложу результат. Вы должны меня понять что это мое хобби, которым я занимаюсь, в основном в свободное от работы время, машины с номерами Казахстана не продаются на сайте AUTO.RIA.
                                                                                              3. Дмитрий Пробачай в ближайшее время займется «квадратными» номерами и тогда можно будет задействовать другой Ваш датасет.
                                                                                            0
                                                                                            Добрый день, можно ли переделать demo3.ipynb чтобы он запускался на обычном питоне?
                                                                                            0
                                                                                            Какие вы фильтры используете?
                                                                0
                                                                Добрый день! Огромное спасибо за ваш труд, система действительно рабочая и при нормальном качестве фотографии почти не ошибается. Я попробовал дообучить существующую модель для российских номеров, но при запуске /train/py/ocr.py получил ошибку Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR. В классе NomeroffNet/Base/OCR.py в методе load_frozen присутствует фикс этой проблемы, но похоже он не сработал. Решил проблему добавлением
                                                                import keras
                                                                import tensorflow as tf
                                                                
                                                                config = tf.ConfigProto()
                                                                config.gpu_options.allow_growth = True
                                                                session = tf.Session(config=config)
                                                                


                                                                Дообучение запускал на вашем датасете (из любопытства как это работает), но больше 96% точности получить не смог. Обучал на GPU под Ubuntu 18.04.

                                                                Еще обратил внимание, что в примере для российских номеров приводится команда для получения украинского датасета. Это мелочь, но новичков вроде меня может сбить с толку.
                                                                cd ./datasets/ocr
                                                                wget https://nomeroff.net.ua/datasets/autoriaNumberplateOcrUa-2019-02-19.zip
                                                                unzip autoriaNumberplateOcrUa-2019-02-19.zip
                                                                mv autoriaNumberplateOcrUa-2019-02-19 ua
                                                                
                                                                  0
                                                                  Этой командой вы минимизировали количество потребляемой видеопамяти, это могло незначительно отразится на производительности, можете поэкспериментровать с этим коэффициентом:
                                                                  config = tf.ConfigProto()
                                                                  config.gpu_options.per_process_gpu_memory_fraction = 0.7
                                                                  session = tf.Session(config=config)


                                                                  Ошибку с датасетом пофиксим, спасибо.

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