Программа распознавания номеров автомобилей бесплатная

По умолчанию мы предполагаем, что на плате стоит наиболее популярная операционная система для рассматриваемой платы – Raspbian. Все шаги выполняются на правах администратора (root). Начать нужно с двух стандартных команд, обновляющих операционную систему:

apt-get update apt-get upgrade

2. Устанавливаем необходимые пакеты

Перед установкой OpenALPR необходимо разобраться со всеми необходимыми зависимостями:

apt-get install autoconf automake libtool apt-get install libleptonica-dev apt-get install libicu-dev libpango1.0-dev libcairo2-dev apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev apt-get install python-dev python-numpy libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev apt-get install virtualenvwrapper apt-get install liblog4cplus-dev apt-get install libcurl4-openssl-dev

То же можно выполнить в виде однострочной команды:

apt-get install autoconf automake libtool libleptonica-dev libicu-dev libpango1.0-dev libcairo2-dev cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev python-dev python-numpy libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev virtualenvwrapper liblog4cplus-dev libcurl4-openssl-dev

В случае, если apt-get install для какого-либо из пакетов закончится неудачей (no package found), необходимо вручную найти отсутствующий пакет, используя apt-cache search .

Распознавание автомобильных номеров для автоматизации проезда! От монтажа до настройки системы!

Tesseract использует библиотеку leptonica версии 1.71, поэтому предварительно ее установим:

cd /usr/src wget http://www.leptonica.org/source/leptonica-1.71.tar.gz tar xf leptonica-1.71.tar.gz cd /usr/src/leptonica-1.71 ./configure make make install

3. Устанавливаем основные библиотеки нужных версий

Как было сказано выше, в основе OpenALPR лежат две библиотеки:

  • Tesseract OCR v3.0.4 (важно: OpenALPR не использует Tesseract последней версии)
  • OpenCV v2.4.8+

Чтобы предупредить возможные трудности, опишем процесс установки подробнее.

3.1. Tesseract OCR

Скачиваем (клонируем) пакет с git:

cd /usr/src/ git clone https://github.com/tesseract-ocr/tesseract cd /usr/src/tesseract git tag git checkout 3.04.01 ./autogen.sh

Если все прошло успешно, вы получите сообщение:

All done. To build the software now, do something like: $ ./configure [—enable-debug] [. other options]

На следующем шаге нужно настроить библиотеку, как предложено в сообщении выше, то есть запустить ./configure . Запустим с опцией отладки.

./configure —enable-debug

После того как мы настроили библиотеку, запустим компиляцию:

make -j2

На Raspberry процесс занимает много времени. Поэтому запускаем команду с опцией j2 (в два потока). В случае если это вызовет проблемы, запускайте команду make без дополнительных параметров. Устанавливаем скомпилированное:

make install

Проверяем результат компиляции:

Если вы получили схожую ошибку (на этом или следующих этапах) запустите ldconfig . Вновь проверим результат, теперь всё работает:

Распознавание номеров автомобилей — БЕСПЛАТНО

Видим номер версии, библиотека установлена.

3.2. OpenCV

Загрузим OpenCV. Разархивируем zip-файл. При этом будет создана директория /usr/src/opencv-2.4.13 .

cd /usr/src wget https://github.com/opencv/opencv/archive/2.4.13.zip unzip 2.4.13.zip

Далее создаем внутри каталог release , переходим в него и настраиваем проект.

cd opencv-2.4.13 mkdir release cd release cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

Читайте также:
Как устанавливать программы на Андроид через ПК

Если всё закончится хорошо, мы получим следующее сообщение:

— Configuring done — Generating done — Build files have been written to: /usr/local/src/opencv-2.4.13/release

Если вы получите ошибку вида libdc1394 error: Failed to initialize libdc1394 , запустите следующий код:

ln /dev/null /dev/raw1394 apt-get install libdc1394-22-dev apt-get install libdc1394-22 libdc1394-utils

Далее нужно скомпилировать результат, лучше, как и прежде, с параметром j2 , чтобы сократить время компиляции. То есть в окне терминала это будет выглядеть примерно так:

В первый раз процесс может закончиться следующей ошибкой:

[ 47%] Building CXX object modules/ocl/CMakeFiles/opencv_ocl.dir/src/cl_runtime/clamdfft_runtime.cpp.o c++: internal compiler error: Segmentation fault (program cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See for instructions. modules/ocl/CMakeFiles/opencv_ocl.dir/build.make:719: recipe for target ‘modules/ocl/CMakeFiles/opencv_ocl.dir/src/cl_runtime/clamdfft_runtime.cpp.o’ failed make[2]: *** [modules/ocl/CMakeFiles/opencv_ocl.dir/src/cl_runtime/clamdfft_runtime.cpp.o] Error 4 CMakeFiles/Makefile2:4734: recipe for target ‘modules/ocl/CMakeFiles/opencv_ocl.dir/all’ failed make[1]: *** [modules/ocl/CMakeFiles/opencv_ocl.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.

Это может быть вызвано нехваткой памяти. Срабатывает следующий набор действий:

  • Перезагрузить плату
  • Увеличить файл подкачки (swap)
  • Запустить make clean и вновь make

Чтобы увеличить файл подкачки, выполняем следующую последовательность:

fallocate —length 2GiB /root/2G.swap chmod 0600 /root/2G.swap mkswap /root/2G.swap swapon /root/2G.swap

После того как удастся успешно скомпилировать OpenCV, производим установку:

make install

4. Устанавливаем OpenALPR

Наконец, мы можем установить саму OpenALPR. Клонируем репозиторий и проверяем версию:

cd /usr/src git clone https://github.com/openalpr/openalpr.git cd openalpr/src git describe —tags

Например, в нашем случае ответом на последний запрос было v2.1.0-513-gcd2aab0 , то есть версия 2.1.0. Если вы хотите использовать ту же версию, что в нашем примере, используйте git checkout v2.1.0 .

mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_INSTALL_SYSCONFDIR:PATH=/etc .. make make install

Если после запуска make выводится ошибка, аналогичная случаю с установкой OpenCV, выполняем вышеописанную последовательность действий для OpenCV. Если обнаруживаются ошибки, связанные с отсутствием библиотек:

apt-get install cmake apt-get install liblog4cplus-dev libcurl3-dev sudo apt-get install beanstalkd apt-get install openjdk-7-jdk export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64/

Протестируем полученный результат:

wget http://plates.openalpr.com/h786poj.jpg -O lp.jpg alpr lp.jpg plate0: 8 results — 786P0 confidence: 90.1703 — 786PO confidence: 85.579 — 786PQ confidence: 85.3442 — 786PD confidence: 84.4616 — 7B6P0 confidence: 69.4531 — 7B6PO confidence: 64.8618 — 7B6PQ confidence: 64.627 — 7B6PD confidence: 63.7444

Всё работает. Слева — распознанный номер, справа — вероятность его соответствия реальному номеру на изображении.

Чтобы настроить связку библиотеки с С/С++Java, C#, Java или Python, ознакомьтесь с соответствующим разделом официальной документации. Например, использов связку с Python, вы можете построить систему из нескольких веб-камер, взаимодействующих с общим сервером, обращаясь к отдельным камерам только в случае нестандартных ситуаций, когда номер оказался не распознан.

Источник: proglib.io

Орион Авто

Яндекс.Браузер — быстрый браузер с защитой от мошенников и вредоносных сайтов.

  • Windows 7
  • Windows Vista
  • Windows XP

Тип лицензии:
Условно-бесплатное

Читайте также:
В какой программе создавать меню для кафе

Языки: Русский

Орион Авто – система распознавания номерных знаков. Для работы «Орион Авто» можно использовать аналоговые и сетевые камеры, которые подключаются к серверу. Это необходимо для того, чтобы отслеживать работу парковок, а также удаленно осуществлять пропускной режим.

Системы «Орион Авто» и автоматизированное рабочее место «Орион» находятся в тесной связи, благодаря чему удается достичь полной отдачи от всего комплекса ИСО «Орион». Кроме того, система умеет управлять воротами и шлагбаумами в автоматическом режиме. Функция распознавания номеров работает без неполадок благодаря уникальным алгоритмам программы.

Источник: www.softsalad.ru

ChatGPT и распознавание автомобильных номеров: это работает?

Задача: на сайте автобай обнаружить и идентифицировать регистрационный знак и его координаты.

1652 просмотров
Пример распознавания автомобильного регистрационного знака

На первый взгляд задача распознавания знака выглядит простой, но на деле возникает ряд трудностей, о которых расскажу далее.

Для начала спросим у ChatGPT, что он знает про методы распознавание регистрационных знаков на автомобилях.

Ответ ChatGPT

Чат не врет. Действительно, чтобы найти регистрационный автомобильный номер на фото можно использовать компьютерное зрение и сверточные нейронные сети на массиве данных.

Кроме того он предлагает открытые библиотеки TensorFlow и PyTorch. Также существуют платные решения на основе API от Google и Amazon, могу отметить, что такие системы есть и у VK Cloud и Yandex.

Пробуем узнать у чата про открытые популярные библиотеки.

Ответ ChatGPT

На слуху популярная библиотека компьютерного зрения OpenCV .

Спросим в лоб: как эта библиотека может помочь нам. Привожу часть ответа:

Ответ ChatGPT

ChatGPT предлагает пример кода на языке Python, но это не совсем, что нам нужно. Он написал алгоритм поиска цифр на номере, но нам надо не значение номера, а его координаты. Пробуем изменить запрос. Привожу часть ответа:

Ответ ChatGPT

Выглядит неплохо! На выходе мы имеем точку с координатами угла номера, высоту и его ширину. Вот, что получится:

В идеале, конечно, получить все 4 точки, потому что редко на фотографии номер прямоугольный формы, из-за того, что автомобиль часто сфотографирован под углом. Вот пример:

Я попросил несколько вариантов кода, но все они сводились к обработке фотографии, применении различных фильтров и методов для поиска цифр на номере.

Один из вариантов кода я попробовал на практике. Какие минусы были обнаружены:

1) Необходимость хорошей освещенности на фото: OpenCV работает лучше всего на светлых фотографиях.

2) Размер изображения: для определения номера с помощью OpenCV необходимо, чтобы знак занимал достаточно большую площадь на изображении.

3) Низкая скорость: обработка изображения с помощью OpenCV может занять значительное время, особенно, если изображение большое или нужно обработать несколько фотографий.

4) Слабое распознавания: могут быть случаи, когда система не распознает номер или распознает его неправильно.

5) Код предложенный ChatGPT весьма общий, без поиска сложных вариантов на фото.

Читайте также:
Программа которая стирает водяные знаки

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

Пример такого автомобиля:

Пример авто с номером под углом

В тоже время другой метод не подвел, о нем дальше.

Пример определения автомобильного номера

Теперь пройдемся по платным сервисам, которые предлагают решения для распознавания номерных знаков. Предлагаем ChatGPT привести несколько примеров.

ChatGPT API

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

OpenALPR считается популярным проектом, предлагают тестовую панель и 50 бесплатных запросов в месяц. Протестировав несколько автомобильных номеров, могу отметить, что он справился на 100%, даже на сложных фотографиях автомобилей. К сожалению, в полной мере опробовать сервис не получилось, карты РФ и РБ он не принимает.

Попробуем обратиться к сайту RapidAPI Hub, который содержат базу тысячи готовых API. Спросим у чата.

Примеры API rapidapi

Все пять предложенных вариантов были протестированы. Лучшие результаты показал License Plate Recognition. Отлично распознает автомобильные номера и выдает его координаты по 4 точкам, кроме этого хорошо определяет и значение самого номера.

Пример json ответа

RapidAPI Hub предлагает готовые решения API доступа практически на любом языке программирования, но и ChatGPT отлично с этим справляется. Фрагмент кода:

cURL запрос пример кода

Необходимо указать свои заголовки, изменить урл и внести небольшие изменения. Фактически код рабочий. После получения координат копируем название сайта на автомобильный номер.

Все эти операции как копирования одного изображения на второе считаются не сложными. ChatGPT без проблем с этим справится, но есть один нюанс. Обратите внимание способ наложения логотипа. На фотографии слева логотип скопирован без учета перспективы (изначально так ChatGPT и предлагает), в то время как на правом – она учтена.

Пример копирования знака

Привожу весь процесс распознавания и наложения логотипа:

1) Поиск региона: определения 4 координат автомобильного знака с помощью License Plate Recognition API.

2) Определения яркости исходного изображения для коррекция ее на логотипе.

3) Создание проекции логотипа по 4 координатам, которые мы нашли ранее.

4) Непосредственно нанесение логотипа на исходного фото.

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

В тоже время сторонние сервисы, которые предлагают распознавания знака имеют более продвинутый функционал. Процент распознавания выше ( в районе 94-96%) и они лучше справляются с сложными номерами на фотографиях низкого разрешения.

Источник: vc.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru