как распознать номер машины
«Грязь может запутать камеры». Как распознают нечитаемые номера
Аномально теплая зима принесла на российские дороги грязь, лужи и жижу из мокрого снега. Все это налипает на автомобильные номера и накрепко примерзает. Но водители не спешат протирать таблички, надеясь, что камеры фотовидеофиксации в случае нарушения ПДД их просто не увидят. А иногда специально наносят искусственную грязь, чтобы обмануть комплексы фиксации нарушений. Эксперты предупреждают, что в таких случаях инспекторы ГИБДД могут лишить прав.
Если автомобильный номер плотно покрыт грязью или залеплен снегом, его не распознает ни одна камера, уверен руководитель компании «Астралаб» Сергей Ласкин. По его словам, точность работы комплексов зависит от освещенности участка и ракурса, под которым проезжают объекты, но грязь — это главная преграда.
«Грязь иногда дает читаемый рельеф. Но если вы сами, глядя на номер, не можете прочитать цифры и буквы, то и камера этого сделать не сможет, — признался Ласкин. — Особенно если все происходит в темное время суток, а на дорогах много автомобилей — в таких условиях статистика выявления нарушителей обычно падает. Конечно, если госномера лишь немного покрыты грязью, нельзя говорить, что в 100% случаев распознать номер не получится, но чем толще слой грязи, тем ниже процент распознавания».
По словам эксперта, у всех камер работает алгоритм, который в случае сомнений автоматически отбраковывает сомнительные материалы. Тогда они просто не попадают в центры обработки информации. Это делается для того, чтобы избежать ошибочных постановлений. Иногда камера думает, что считала госномер, но она может ошибаться, поскольку все ГОСТы для работы подобных комплексов создавали под автомобили с чистыми номерами.
«Грязь может запутать камеры, ведь их «зрение» очень похоже на человеческое, — объяснил Ласкин. — Так, камера видит цифру, создается некий ассоциативный ряд, принимается решение, что цифра похожа на 8, а это на самом деле 0 с комком грязи посередине. Поэтому в наших камерах алгоритм такой: если устройство номер распознало, но вероятность ошибки выше 20%, эти данные просто идут в поток, например, для сбора статистических данных или же для розыскных мероприятий. В центры обработки они просто не попадут: материалы для штрафов формируются только при уверенности на уровне 99%».
Эксперт признается, что проблема езды с грязными номерами стоит остро и пока с помощью камер не получается фиксировать все нарушения. Прогрессивные технологии, которые предлагалось внедрять при создании госномеров, пока себя не оправдали. К примеру, идея устанавливать в номера специальные чипы не прошла дальше стадии обсуждения. По этой причине сотрудники ГИБДД регулярно проводят рейды и требуют у водителей удалять с табличек снег и грязь. По оценке Ласкина, вопрос грязных знаков окончательно решится только тогда, когда камеры заменят радиовизоры, способные считывать госномера.
В свою очередь, представитель компании «Технологии распознавания» (производитель комплексов «Автоураган») Сергей Кусов уверяет, что камеры могут считывать даже загрязненные знаки, хоть и с определенными ограничениями. Но в качестве доказательной базы собранные при помощи искусственного интеллекта данные использовать не получится. Информация не подойдет для оформления штрафов, поскольку камеры иногда, как мозаику, по кусочкам собирают данные о госномере автомобиля на всем пути его следования. Искусственный интеллект на этом основании делает вывод, какой у автомобиля номер, но четких фотографий, на которых виден момент нарушения, сделать не получается.
В качестве примера эксперт привел ситуацию с комплексами фиксации, которые замеряют среднюю скорость автомобилей на отдельном участке. Так, все работающие камеры по очереди фиксируют номер автомобиля-нарушителя. Если он загрязнен, искусственный интеллект все равно анализирует каждое изображение, сопоставляет их с базами данных, собирает в единую картину и таким образом «понимает», что это за номер. Камера определяет, что конкретный автомобиль нарушил ПДД, а искусственный интеллект «достраивает» для нее информацию о госномере.
Как распознать номер машины
Сообщение valeon » 03 окт 2013, 13:27
1. Берем VirtualDUB (желательно последнй он все форматы видео понимает), открываем видео, удаляем не нужное видео, оставляем только кусок где сам инцендент. Далее Файл-сохранить последовательность картинок. выбирете папку куда сохранять. Я сохранял в формате BMP. Отобрал фото где более менее близко машина с не читаемым номером была. Как отрезать не нужное в VirtualDUB выбраете начало ненужного фрагмента нажимаете кнопку HOME на клаве, затем встанте в конец ненужного фрагмента нажмите END. затем DEL. все кусок отрезан.
2. Открываем программку PhotoZoom Pro 5. Загружаете туда первую картинку. Слева в программе выбраете разрешение 500-800, сдвигаете картинку так чтобы в правом окне был виден номер ил очертания его. Затем по порядку применяете Алгоритмы изменения размера. В каждом фильтре есть наборы настроек, их тоже прогоняете. Еще нюанс, иногда получается так что пр применении фильтра в близи номер непонятен но из далека метров с двух от монитора становиться различим. (в моем случае так и получилось). Если с первой не получилось пробуйте следующую. Процесс муторный, и долги в зависимости от ПК, программке хороший процессор нужен.
3. Если картинка четкая но смазанная есть изумительная прога SmartDeblur-2.1_win в ней все понятно. Тоже помогает хорошо.
Еще нюанс чтобы результат был хороший всегда берите оригинальное ВИДЕО без пересжатия.
з.ы. Админы готов заслуженно получить предупреждение тк не знаю в какой раздел форума, запостить.
И ещё раз про распознавание номеров
Весной администрация хабра любезно предоставила нам блог, чтобы мы рассказали о нашем экзерсисе с распознаванием номеров. Всё поддержание этой системы делалось просто из интереса и на энтузиазме, зато позволило пообщаться с интересными людьми, некоторым людям помочь, а самим найти подработку по совершенно другим тематикам.
В любых задачах обработки изображений 90% успеха — хорошая база данных. Репрезентативная и большая. Весной мы обещали выложить полную базу изображений того, что нам придёт. Подписка блога заканчивается, поэтому время выполнить обещание (блог может продлят, а может и нет). Наш сервер работал 95% времени, начиная с первого поста. Всё что пришло теперь доступно + мы сделали отдельные базы по вырезанным номерам и нарезанным символам.
Под катом ссылки на базу + её анализ + немного кода + небольшой рассказ о том, что будет сделано дальше с нашим сервером/жизнью проекта.
Сама база
Базы по номерам у нас не размечены (нигде нет файла с правильной расшифровкой). Размечена только база по символам.
База необрезанных фотографий автомобилей (1.4 ГБ). Примерно 9300 кадров.
Размеры будут от пары сотен пикселей до десятка мегапикселей. Выглядят картинки так:
База вырезанных номеров + контрпримеров (260 МБ). Примерно 5000 номеров + 1200 контрпримеров.
Выглядят картинки так:
База нарезанных символов для российских номеров (60 МБ). Примерно 18 тысяч букв, цифр и контрпримеров.
*Маленькое дополнение. Папка «17» — пустая. В ней были буквы «O», но классификаторы не делали различия от неё и нуля, поэтому мы их объединили в папке «0».
Выглядят картинки так:
Пара слов про базу
База основана на том, что мы собирали сами + на том, что нам присылали + ручное прореживание от плохих кадров. Для буков дана нарезанная база отрицательных примеров (папка за номером 22). Без отрицательной выборки почти невозможна работа реального алгоритма, буквы будут определяться на любом шуме. В отрицательной выборке содержатся куски буков, без этого порезанная пополам восьмёрка может быть принята за тройку. В конце статьи будет пример такого использования такой базы. Отрицательная выборка дана и для вырезанных номеров, если найдутся желающие обучить каскад по ним.
— порядочно кадров снятых с монитора
— некоторые номера встречаются неоднократно и чаще других
— есть дубликаты изображений, хотя и не очень много
— прореживание кадров для базы с большими фотографиями неидеальное. На сервер приходили всё: совершенно не относящиеся к делу фотографии, пустые фотографии, фотографии с нечитаемыми номерами. Большую часть я вычистил, но остатки могут быть.
Зачем это нужно?
Как ни странно, но задача распознавания номеров актуальна в множестве ситуаций, зачастую не связанных с номерами. И, несмотря на то, что вроде как существуют десятки решений, есть множество проектов, где её нужно решить независимо и с нуля. Такая база является подспорьем таким проектам.
Интересна она и для тестирования алгоритмов машинного распознавания и классификации. Взять тот же MNIST. Синтетическая задача, но до сих пор многим интересна. А тут имеется возможность реального применения обученного алгоритма.
Дальнейшая жизнь проекта
Сервер с распознаванием номеров мы планирует поддерживать в рабочем состоянии + иногда мы апдейтим алгоритм. Приложение на телефоны, как мы и предполагали, особо не выстрелило. Оно доступно в PlayStore + есть версия под iPhone. Приложения в целом рабочие, но какой-то дальнейшей их поддержки мы делать не будем. Да и особо большой базы не собралось. Код для обоих приложений открыт. Если хотите, можете допиливать самостоятельно.
С другой стороны мы были приятно удивлены, что наш сервер зачастую стали использовать как некий эталон для проверки своих алгоритмов. Раза три нам загоняли на сервер огромные базы. Точно мы не знаем, кто и зачем. Но, приятно. Видно, что люди потратили время, чтобы сравнить свой алгоритм с нашим, пусть даже далёким от идеала.
Отсюда родилась идея: небольшой кусок базы мы оставили себе. Если вдруг кому будет интересно, можем прогнать алгоритм по нашей базе (или дать базу вам), на условиях нераспространения базы и публикации результатов. Результаты мы опубликуем тут и тут, при публикации ставим ссылку на ваш сайт/контакт.
Нераспространение такой тестовой базы нужно чтобы избежать подгонки результатов, как делают при наличии открытых баз (например MNIST).
Если блог нам продлят, то о результатах и методологии оценки будем отчитываться на Хабре.
Про каскад
Нас уже раз пять просили обновить каскад. На это нужно потратить ещё несколько вечеров, но сейчас времени нет. Обязательно сделаем, представленная тут упорядоченная база — это большой кусок работы в этом направлении. Новая версия появится в нашем репозитории. Ориентировочно займусь на праздники январские, но могу не успеть. В принципе, если кому не лень, можно использовать представленную тут базу и посчитать по ней каскад. Как это сделать вот инструкция. Если сделаете, киньте нам, или прямо на гитхаб, мы обновим каскад на него.
Обучение распознавания букв
Не смотря на то, что всю логику и алгоритмы мы опубликовали в прошлых статьях, исходники куска, где происходит распознавание букв номера мы пока публиковать не хотим (если вдруг решим отключить сервер окончательно, то, конечно, опубликуем).
Но всё же, нам хотелось бы показать способ, как можно распознавать номера быстро и просто. Поэтому мы перебрали несколько вариантов простых алгоритмов позволяющих распознать буквы, которые легко обучить (при наличии большой базы) и обучили по базе, которую выложили выше. Наилучшие проценты и наиболее простая работа на наш взгляд у SVM в библиотеке Accord (ML-библиотека проекта AForge). В принципе, всё аналогично делается и в OpenCV, SVM есть и там.
Распознавание реализуется двумя строчками:
Важно, чтобы входные данные были бинаризованы. Это значительно повышает точность работы. Приведу пример загрузки:
Пример обученного SVM’a. Процент правильно распознанных символов по независимой от обучающей выборке — 96%.
Возможно ли распознать номер машины из видео?
Возможно ли распознать номер машины из видео?
Алгоритмы машинного обучения умеют «угадывать», что, вероятно, имелось в виду и, например, повышать разрешение фото, если до этого им «показывали» похожие участки изображений. Но в задаче с номером подход более узкий.
Есть дополнительные данные:
известно, что там номер, какого он формата, из каких возможных символов он состоит, и в наличии не единственный кадр, а много – все кадры видео, куда попал один и тот же номер, под разными углами.
Поэтому, наверное, можно обучить модель на примерах других номеров и в результате предположить какие-то наиболее вероятные варианты искомого номера.
Как и в распознавании лиц, сначала на изображении найти область с номером и нормализовать её, «развернув», чтобы номер точно занимал прямогульник, который будет входом во вторую сеть.
Как распознать номер машины
Сообщение valeon » 03 окт 2013, 13:27
1. Берем VirtualDUB (желательно последнй он все форматы видео понимает), открываем видео, удаляем не нужное видео, оставляем только кусок где сам инцендент. Далее Файл-сохранить последовательность картинок. выбирете папку куда сохранять. Я сохранял в формате BMP. Отобрал фото где более менее близко машина с не читаемым номером была. Как отрезать не нужное в VirtualDUB выбраете начало ненужного фрагмента нажимаете кнопку HOME на клаве, затем встанте в конец ненужного фрагмента нажмите END. затем DEL. все кусок отрезан.
2. Открываем программку PhotoZoom Pro 5. Загружаете туда первую картинку. Слева в программе выбраете разрешение 500-800, сдвигаете картинку так чтобы в правом окне был виден номер ил очертания его. Затем по порядку применяете Алгоритмы изменения размера. В каждом фильтре есть наборы настроек, их тоже прогоняете. Еще нюанс, иногда получается так что пр применении фильтра в близи номер непонятен но из далека метров с двух от монитора становиться различим. (в моем случае так и получилось). Если с первой не получилось пробуйте следующую. Процесс муторный, и долги в зависимости от ПК, программке хороший процессор нужен.
3. Если картинка четкая но смазанная есть изумительная прога SmartDeblur-2.1_win в ней все понятно. Тоже помогает хорошо.
Еще нюанс чтобы результат был хороший всегда берите оригинальное ВИДЕО без пересжатия.
з.ы. Админы готов заслуженно получить предупреждение тк не знаю в какой раздел форума, запостить.





















