Pull to refresh

Comments 100

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

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

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

Из личного опыта MRCNN показывает результаты хуже результаты с другими оптимизаторами. Если классы сбаласированы то Adam справляется на ура. SGD и RMSprop спасают, если какие-то буквы встречаться будут откровенно редко (1к10 и больше). Но опять же с этим можно побороться, если прикрутить взвешенную функцию потерь.

Вообще говоря MRCNN это не оптимизатор, это фреймворк (MaskRCNN). В OCR, которая отвечает, непосредственно, за распознавание использовался и используется SGD. Саму сеть мы немного переписали и адаптировали к tensorflow 2.x, точность по большинстве стран 99%.
В текущей версии мы отказались от MaskRCNN, т.к. он очень ресурсоемкий и медленный. Пока что остановили свой выбор на CenterMask2 и ускорились в 2.5 раза.
UFO just landed and posted this here
В Германии был разработан и с 2000 года используется (а также в некоторых других странах) шрифт FE, специально для номерных знаков, чтобы номер было легко автоматически распознавать и очень сложно изменить.

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

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

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

Почему бы не передать эту часть работы менее квалифицированным людям? Можно же студентов найти в своем городе, фрилансеров нанять и т.д. По итогу для компании это будет стоить во много раз дешевле, а контролировать качество сильно быстрее и проще, чем размечать самостоятельно.
Это была самоирония (я там смайлик поставил). Вы все правильно пишите — мы делали не оптимально, но быстро. Кроме того, благодаря тому что мы сами размечали, мы создали неплохую админку, которую допиливали в процессе разметки. Вначале файлы раскладывались по папкам и редактировались json-описания вручную.
«Евробляхи» уже законодательно урегулировали. На европейских номерах ездить не выгодно, грозит большой штраф. Они все постепенно переходят на украинские номера.
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Вы видимо не совсем в курсе почему там можно встретить автомобили с европейскими номерами. Кстати как тут выше написали их скоро будет много меньше.
Но особенно приятно что многие из данных автомобилей принадлежат украинцам
— вот это вы сейчас серьёзно? Совсем не понимаете зачем так делают, почему это очень плохо и с какой целью борются?
По сравнению с Россией Украина почти ничем и не отличается, вот их децентрализация пожалуй действительно может принести плоды, поживём увидим какие.
UFO just landed and posted this here
П.1 ничтожество и полностью эквивалентен России, так что им можно пренебречь и в дальнейшем не рассматривать.
П.2 основной, именно о нём и речь
В России закрутить гайки в этом направлении настолько давно, что в то время можно было всё, это привело к появлению автомобилях кластеров в Калуге и Питере, с тысячами рабочих мест, про Ваз даже не говорю.
На Украине фактически не осталось гражданских автопроизводств, за в коме и давно, цель в другом, чтоб автокомпании перенесли хотя б отвёрточную сборку на Украину тем самым создав рабочие места.
Кстати во многих европейских странах пошлины так же высоки, хотя там нет своих автопроизводств.

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

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

Последний абзац явный и неприкрытый уход от налогов, подождите немного и на Украине с этим разберутся
UFO just landed and posted this here
Перегоны это что-то из девяностых, на уровне челноков с турецкими джинсами. Нормально для перестраивающейся экономики, но устоявшемуся рынку как раз нужны стабильные производственники, а не спекулянты.
А я заметил, что вы возникаете в топиках на любую тему, и начинаете вести тупую агитацию за эмиграцию, хотя это неактуально уже лет 30. Вам за это платят? Судя по моментальной поддержке — да. Вы же даже имя сменили — с какой целью болтаетесь здесь?
А, я просто не знал про этого персонажа.
это неактуально уже лет 30

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

Ну, я и сказал, что агитировать за это просто глупо — люди валят с конца 80-х.
UFO just landed and posted this here
А причем тут вообще Украина? Я ее не упоминал.
UFO just landed and posted this here
Вам нравятся в чистом виде номера? Ведь доступность автомобилей для населения в России объективно не то чтобы прям на много, но выше. Какое-то время был даже большой поток перепродажи авто из Краснодарского края в Украину через Крым, Лавочку прикрыли, но раскупали авто по российским ценам весьма охотно. Странным такой отдельный удивительный мир не находите?
UFO just landed and posted this here
Разумеется, таможенные пошлины являются мерой по поддержке собственной экономики. Если их одну за одной отменять, то положительный эффект для населения будет кратковременным, те же автомобили по началу станут доступнее, но и рабочих мест в стране станет меньше. Трудовая миграция станет не одним из возможных вариантов улучшения благосостояния, а единственным путём выживания. Эмиграционный поток вырастет ещё на порядок, мы уже можем наблюдать этот эффект.
UFO just landed and posted this here
Искусственно раздувать рабочие места — это тупиковый путь
Только вот именно этот «тупиковый» путь сделал успешными крупнейшие экономики мира. Речь ведь не только в юристах и бухгалтерах. Если к примеру та же Шкода открывает завод по производству автомобилей в Украине, тем самым избавляясь от таможенных пошлин и обеспечивая рабочими местами, в том числе и высококвалифицированными, украинцев. А не выманивает их средства, а затем и их самих за границу.
UFO just landed and posted this here
Люди? Вполне себе предпочли бы. То же касается и любой другой промышленности и сельского хозяйства, с таким подходом в конечном итоге все с радостью уедут. А кто останется? Что вообще останется? Вы серьезно считаете, что это верный путь?
UFO just landed and posted this here
Украина — не то государство, из которого люди уезжают, сжигая за собой мосты.
Вы в этом уверены? Почему же тогда украинские диаспоры за границей столь многочисленны? В интервью с ними на вопрос о том, когда они вернутся на родину все как один отвечают «может быть когда-нибудь в лучшие времена», т.е. мы понимаем, что никогда.
Давайте просто рассуждать логично. Вы можете придумать причину по которой они должны возвращаться и покидать насиженное место в более развитой стране, которая обеспечила их всем необходимым? Ради чего? Чтобы снова столкнуться со всем тем, от чего они когда-то успешно сбежали? Где тут логика?
Давайте просто рассуждать логично. Вы можете придумать причину по которой они должны возвращаться и покидать насиженное место в более развитой стране, которая обеспечила их всем необходимым? Ради чего?

Если говорить про IT-сферу то причина есть — это налоги, в Украине на упрощенке IT-шник платит 5% с оборота + грубо 35$/месяц в персионный форд (есть еще военный сбор 1.5%) и все, раз в квартал в электронной форме здает отчет. В Европе это 35-40% + дороже проживание. Конечно, с судами и силовыми органами в Украине все печально их никто не риформировал, тут риски есть, но к IT-шнику тяжелее «присосаться» чем к обычному бизнесу. Так что в IT-сфере массовой эмиграции в Украине не наблюдается, наоборот, отрасль развимвается, я знаю людей которые вернулись со штатов во Львов и рабоатаю там в оутсорсинговой компании.
Продолжаем рассуждать логично. В случае IT сферы люди зачастую вообще не выезжают из Украины, это им и не нужно, они просто работают удаленно. Проживание в Украине с их зарплатами от зарубежных заказчиков — предложение от которого трудно отказаться. Только налоги они тоже платят не в Украине, а в основном на Кипре или каком-нибудь Гибралтаре. В этом легко убедиться, посмотрев их реквизиты и примеры договоров. Т.е. по сути представители IT в Украине являются не резидентами Украины, а лишь проживающими на ее территории. Траты на питание и проживание у них минимальны относительно их заработка, а остальные свои потребности они удовлетворяют зарубежными товарами (электроника, бытовая техника и даже медицина).
В текущем виде Украина неплоха для условного IT специалиста, работающего через интернет, но вот он не приносит Украине при этом вообще ничего.
UFO just landed and posted this here
1. Оплата товаров, в которых заложен украинский НДС
2. Оплата ЖКХ и других регулярных услуг в Украине (интернета)
Так суть в том, что в той же мере, сколько любые другие граждане Украины. Т.е. их большие заработки ничего существенного дополнительно экономике не приносят.
И кто вам сказал, что электронику и бытовую технику они покупают вне границ Украины?
Мы ведь на IT ресурсе, так? Можем судить по себе? Вполне! Все, что можно дешево и практично заказать из-за границы — заказывается там. Разумеется холодильник проще купить в местном магазине бытовой техники. Но смартфоны, комплектующие ПК, лампы, светильники, звуковые колонки умные и не очень, и все такое прочее заказывается через интернет или привозится самостоятельно при посещении зарубежных стран и зачастую не облагается НДС. Но определенную часть средств налог государству все равно позволяет собрать.
А ведь НДС — это такая же мера защиты экономики, как таможенные пошлины на авто. А в данной ситуации буквально последний её оплот. Уже становится страшно его снижать, не так ли?
Они зарабатывают деньги за рубежом и тратят их в Украине.
По факту получается в своей стране тратят мало, не многим больше среднего… А вот к примеру отпуске, не редко в другой стране — другое дело. Они не бесполезные, но они не приносят ничего существенного сверх остального населения и драйвером экономики в таком случае стать не могут. Им самим хорошо, а стране: что они в IT, что на рынке торгуют — одно и то же.
Эмиграционный поток не должен быть потоком с билетом в один конец. По моим наблюдениям, из Украины люди уезжают поработать на несколько месяцев, или на несколько лет. Заработав состоятельные деньги, они обосновываются в Украине, занимаются строительством и т.п. Большой плюс, если человек проработал 5-7 лет в стране, в которой возможно получить гражданство (в Польше — вполне реально).
Наблюдение — это одно, а вот косвенные признаки говорят об обратном, многие люди не возвращаются, таких все больше. Вы, возможно, слышали о приблизительных оценках населения по потреблению хлеба или количеству отходов жизнедеятельности? Они дают неутешительные цифры. Но точно на этот вопрос нам даст ответ перепись населения, предлагаю подождать её и убедиться где правда.
Обратная сторона медали развития промышленности путём обкладывания пошлинами — убогий выбор автомобилей на внутреннем рынке, поскольку заходят только самые мейнстримовые производители со своими самыми мейнстримовыми моделями, а менее мейнстримовые вроде Seat или Alfa-Romeo из того же ценового диапазона, не видя смысла вкладываться в постройку завода, не могут конкурировать и не заходят вообще. Зато сразу понятно, холоп едет (если на недоиномарке местной сборки) или барин (если на немце или американце).

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

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

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


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

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


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

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


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

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

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

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


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

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


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

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


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

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

Высокие пошлины в целом признак слаборазвитых экономик.
Тут есть корреляция, высокие пошлины на определенные категории товаров есть везде, ими закрывают проблемные места в балансе торговли. Больше проблемных мест — больше высоких пошлин. Слабая экономика не является следствием пошлин, а их причиной, ответом на проблемы. По этому их бездумное снижение или отмена могут привести лишь к краху.
Это довольно эфемерное понятие — у Трампа тоже антирейтинг.
У Трампа в основном искусственный антирейтинг, вызванный ведущейся против него пропагандой и политической борьбой элит внутри США. В Украине антирейтинг власти естественный, вызванный объективными причинами.
С таким подходом можно и результаты переписи под сомнение поставить: они ведь тоже обрабатываются Укрстатом
Под сомнение стоит ставить абсолютно всё и везде, но в любом случае перепись даёт существенно более близкую к реальности картину. Тем более велика вероятность, что проводить ее будут при руководстве уже нынешних оппозиционных сил, которым очевидно будет нужна реальная картина происходящего для демонстрации проблем из-за ошибок их предшественников.
UFO just landed and posted this here
А вот какого хрена такие налоги у нас в Украине

Чтобы стимулировать автопроизводителей открывать заводы непосредственно в стране, создавая рабочие места, а не выжимать из нее все средства и вслед за ними само её население. Иметь своего автопроизводителя хорошо, но можно заставить работать на экономику своей страны также и чужих.
UFO just landed and posted this here

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Интересно мнение авторов по поводу OpenALPR в сравнении
Трудно сделать корректное сравнение, так как они проганяют бенчмарки на американских номерах, opensource-версию скорее всего не развивают в угоду комерческой версии, которая работает хорошо.
Мы пробовали пользоваться opensource-версией, она не собралась ни на одном из наших linux-ов, в docker-е запустилась, но качество распознавания было очень низким, поэтому и пришлось писать свое.
Единстввенный плюс — она работает быстее.
Я подумал, что замеры провести можно. Например, взять фото из папки test, русских или украинских номеров (на них не проводилась тренировка модели) и прогнать через наш модуль, через api openaslr и получить результат. Ну потом сравнить. Думаю, для интереса мы как-то найдем для этого время. :)
Спасибо за отличное решение, но не могли бы Вы поподробнее объяснить, что требуется для обучения под Казахстанский формат номеров. У нас в номерах присутствует весь алфавит, еще и размер букв от цифр отличается.Заранее благодарю.
Вначале, вам нужно сформировать выборку номеров, на которой будете обучать.
  • Берете хотя бы 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 для Вашей страны и тренируем
  • Проверяем точность на тестовой выборке в этом же скрипте, если устраивает записываем натренированную модель, нет тренируем еще раз, также качество можно улучшить если увеличить выборку.


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

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

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

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

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

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

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

5, Прицепы 1993
image

6. Прицепы 2012


7. и еще инверсные номера
pan_danil, tolegen95
Маловато данных, будет работать очень некачественно. «Намайнил» вам номеров, там более 10 000, эту выборку надо очистить от не номеров и неполных номеров, кроме того поправить ошибки в распознавании.
https://nomeroff.net.ua/examples/draft/kz.rar
Когда подготовите эту выборку, я объединю с вашей и тогда получим хорошее качество.
По «квадратным» номерам есть планы, но это будем делать в следуюющих версиях.
pan_danil, tolegen95 Натренировал и добавил в мастер.
Пример использования в примере:
https://github.com/ria-com/nomeroff-net/blob/master/examples/demo3.ipynb
Пока что точность «не очень» 91% — мало данных, в kz-номерах используется пректически весь англ. алфавит, поэтому для нормального качества обучающую выборку надо увеличить до, хотя бы 10 000, а лучше до 15 000 (как мы сделали для укр. номеров).
постараемся сделать более 10 000, в ближайшее время отправим
Вы можете предварительно удалять номера плохого качества, от них качество может ухудшаться. Предыдущую выборку я «почистил» вручную.
1. Давайте дальнейшый диалог вести на github (создал issue по распознаванию казахских (kz) номеров), так как мне не удобно каждый раз скролить по этой «простыне тесктов», особенно в мобилке.
Переходим к более структурированному диалогу, всех welcome на github
2. Я вытянул номера из вашего датасета и в скором времени выложу результат. Вы должны меня понять что это мое хобби, которым я занимаюсь, в основном в свободное от работы время, машины с номерами Казахстана не продаются на сайте AUTO.RIA.
3. Дмитрий Пробачай в ближайшее время займется «квадратными» номерами и тогда можно будет задействовать другой Ваш датасет.
Добрый день, можно ли переделать demo3.ipynb чтобы он запускался на обычном питоне?
Какие вы фильтры используете?
Добрый день! Огромное спасибо за ваш труд, система действительно рабочая и при нормальном качестве фотографии почти не ошибается. Я попробовал дообучить существующую модель для российских номеров, но при запуске /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
Этой командой вы минимизировали количество потребляемой видеопамяти, это могло незначительно отразится на производительности, можете поэкспериментровать с этим коэффициентом:
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.7
session = tf.Session(config=config)


Ошибку с датасетом пофиксим, спасибо.
По поводу «чтения» как-то игрался с ML на swift (iOS) и решил что проще натренировать модель классификатора по символам на номерах чем использоваться tesseract (тогда он был еще вроде не гугловый)
Зато эта модель очень просто отличает 0 от О
С разным кол-вом картинок от 400 до 1200+
image
Sign up to leave a comment.

Articles

Change theme settings