Камера контроля скорости движения с распознаванием номерных знаков - Своими руками
Своими руками

Камера контроля скорости движения с распознаванием номерных знаков

>

В этой статье мастер расскажет нам, как сделать радар скорости с фиксацией номерных знаков автомобилей.
Примечательно, что цена этого устройство в разы отличается от подобных коммерческих устройств.
Инструменты и материалы:-Raspberry Pi 3/3 Модель B + / 4 Модель B и блок питания / адаптер;-Радарный доплеровский датчик OPS243 (-A или -C);-Модуль камеры Raspberry Pi (v1 или v2);
-Аккумулятор емкостью не менее 20000 мАч 2 А;
-Светодиодная матрица 8×8 (опция);
-Вентилятор охлаждения Raspberry Pi (опция);-ПК/Ноутбук для быстрого тестирования (опция);-Провода;-Гнездо USB – USB-C;
-USB 2.0 A-штекер на Micro B;
-Ethernet-кабель;-Корпус пластиковый;-3D-принтер;-PLA-нить;-Штатив для камеры;
-Шестигранная гайка 1 / 4-20;
-Плоская отвертка;-Паяльник;-Термоклеевой пистолет;-Изолента;
Камера контроля скорости движения с распознаванием номерных знаковШаг первый: загрузка проекта Python
Загружаем проект Python “traffic_camera_project”. Кроме того, можно загрузить код напрямую, введя командную строку:

$ git clone https://github.com/pedrigalchristian/traffic-camera-raspberry-pi.git

Камера контроля скорости движения с распознаванием номерных знаков Показать / Скрыть текстtraffic_camera_project

|—- README.txt

|—- traffic_camera

|—- |—- __init__.py

|—- |—- camera_config.py

|—- |—- file_org.py

|—- |—- serial_interface.py

|—- |—- led_dot_matrix.py

|—- |—- license_plate_recognition_API.py

|—- |—- _testUSB.py

|—- |—- _test_picamera.py

|—- main.py

main.py . Это основная программа, которая запускается для камеры контроля скорости движения. Она импортирует все пять модулей из пакета traffic_camera: camera_config.py, file_org.py, serial_interface.py, led_dot_matrix.py и license_plate_recognition_API.py.
README.txt . Это текстовый файл, в котором читается подробная информация о проекте.
camera_config.py. Этот модуль создает объект PiCamera.picamera, устанавливает его начальные конфигурации и запускает фоновый процесс для непрерывного захвата камеры.
file_org.py . Этот модуль включает в себя все функции, связанные с созданием / удалением папок и перемещением файлов в разные папки.
serial_interface.py. Этот модуль включает в себя все функции, связанные с чтением и записью данных из интерфейса USB, установленного между радарным доплеровским датчиком OPS243 и Raspberry Pi. Требуется установка сторонней библиотеки (подробно на шаге 2).
led_dot_matrix.py. Этот модуль включает в себя все функции и объекты, связанные с точечной светодиодной матрицей 8×8. Требуется установка сторонней библиотеки (подробно на шаге 2).
license_plate_recognition_API.py. Этот модуль запускает фоновый процесс для отправки фотографий автомобиля с превышением скорости в API распознавания номерных знаков.
_testUSB.py и _test_picamera.py . Эти модули помогают в модульном тестировании камеры трафика, например, гарантируют, что данные считываются с OPS243, и что модуль камеры Raspberry работает должным образом и делает фотографии в желаемом направлении.

Шаг второй: загрузка сторонних библиотек Python
На терминале Raspberry Pi вводим следующие команды оболочки Linux, чтобы установить сторонние библиотеки Python, используемые для этого проекта:
Pyserial : позволяет читать и записывать данные на периферийные устройства с последовательным интерфейсом.
$ python -m pip install pyserial
MAX7219 : позволяет программировать светодиодную матрицу 8×8 с помощью Python
$ sudo apt-get install python-dev python-pip
$ sudo pip install max7219

Шаг третий: настройка параметров Raspberry Pi
Теперь нужно обновить Raspberry Pi. Выполните следующую команду на терминале Raspberry Pi:
$ sudo apt update
Включите камеру и SSH в конфигурации Raspberry Pi. Выполните следующую команду на терминале Raspberry Pi:
$ sudo raspi-config
На вкладке «Интерфейсы» включите камеру и SSH. Возможно, придется перезапустить Raspberry Pi, чтобы эти изменения вступили в силу.
Отредактируйте сценарий / etc / profile, чтобы проект запускался при запуске. Выполните следующую команду на терминале Raspberry Pi:
$ sudo nano / etc / profile
Прокрутите вниз и добавьте следующую строку:
$ sudo python /home/pi/traffic_camera_project/main.py
Выйдите из скрипта, нажав Ctrl + X, Y и Enter. Теперь плата запустит скрипт python. Более подробную информацию о настройке скриптов Python при запуске можно прочесть здесь.
Камера контроля скорости движения с распознаванием номерных знаковКамера контроля скорости движения с распознаванием номерных знаковКамера контроля скорости движения с распознаванием номерных знаковШаг четвертый: создание учетной запись
Дорожная камера использует бесплатную версию сервиса License Plate Recognition API, чтобы распознавать номерные знаки транспортных средств по неподвижным изображениям. В бесплатной версии доступно до 2500 изображений.

Создать бесплатный аккаунт можно на домашней странице License Plate Recognition. После регистрации нужно запомнить токен.
Камера контроля скорости движения с распознаванием номерных знаковКамера контроля скорости движения с распознаванием номерных знаковШаг пятый: изменение аргументов пользователя на Main.py
В строках 37–40 указаны четыре аргумента пользователя, которые можно изменить для пользовательского приложения проекта, например скорость, с которой камера начнет делать снимки и где эти фотографии будут храниться. Измените значения этих четырех переменных в своем приложении.
speed_limit = 10 # in mph
main_folder = "LPR Speed Photos" # Name of your main directory
parent_directory = '/home/pi/Desktop/' # Location of your main directory
token = YOUR_UNIQUE_TOKEN_FROM_STEP_4
Speed_limit – это переменная, которая отражает ограничение скорости на улице, которую отслеживает камера.
Main_folder – это имя основного каталога, в котором фотографии будут храниться на Raspberry Pi.
Parent_directory – это строковая переменная пути к main_folder.
token – это переменная значения токена, полученного при регистрации
Камера контроля скорости движения с распознаванием номерных знаковКамера контроля скорости движения с распознаванием номерных знаковКамера контроля скорости движения с распознаванием номерных знаковШаг шестой: настройка датчика OPS243
Подключите датчик доплеровского радара OPS243 к Raspberry Pi. С помощью кабеля USB 2.0 A-Male – Micro B подключите датчик к любому порту Raspberry Pi. OPS243 может связываться с другими интерфейсами, такими как UART и Wifi, но в этом конкретном проекте данные будут передаваться через последовательный интерфейс.

Доступ к данным отчета от радарного датчика из PuTTY. PuTTY – это бесплатный SSH-клиент, который позволяет удобно читать данные отчета из OPS243. На терминале Raspberry Pi открываем PuTTY с помощью следующей команды:
$ putty
В качестве альтернативы, PuTTY можно запустить на терминале компьютера; датчик радара может быть просто сначала подключен к ноутбуку, а затем снова подключен к Raspberry Pi.

Изменение постоянных настроек OPS243. Для удобства доплеровский радиолокационный датчик OPS243 использует простые команды клавиатуры для чтения или записи своих текущих настроек. Все команды клавиатуры можно просмотреть в официальной документации OmniPreSense здесь.

Используются следующие команды клавиатуры:
Камера контроля скорости движения с распознаванием номерных знаков Показать / Скрыть текстДля OPS243-C и -A

Oz (Disable Ignoring Watchdog Timer for USB Tx
S1 (Set Doppler Sampling Rate to 10k Hz)
US (mph Speed Unit Setting)
BV (Do not output blanks)
R>10 (Reported Speed Minimum Filter Setting at 10 mph)
OJ (Turn on JSON format)
M>150 (Minimum Speed Magnitude at least 150)
Для OPS243-C
r>20 (Reported Minimum Distance at 20 feet away)
r<60 (Reported Maximum Distance at 60 feet away)
OY (Combo Output)
После внесения этих изменений вы можно просмотреть текущие настройки, используя команду
??
Сохраните текущие настройки нужно с помощью команды
A!
Камера контроля скорости движения с распознаванием номерных знаковКамера контроля скорости движения с распознаванием номерных знаковКамера контроля скорости движения с распознаванием номерных знаковКамера контроля скорости движения с распознаванием номерных знаковШаг седьмой: настройка модуля камеры Raspberry Pi
Хотя официальный веб-сайт Raspberry Pi утверждает, что их модуль камеры имеет автофокус, те, кто работал с этой камерой, знают, насколько размытым может быть у нее изображение. Это легко исправить вручную, отрегулировав фокусную линзу модуля камеры с помощью отвертки. Еще лучше, чем отвертка, инструмент регулировки линз или инструмент, который можно распечатать на 3D-принтере из файлов stl.
Камера контроля скорости движения с распознаванием номерных знаковШаг восьмой: корпус и сборка
Корпус для устройства мастер распечатывает на 3D-принтере. Всего две части корпуса. Время печати составляет примерно 8 часов на каждую. При печати необходимо не забыть установить крепление для камеры.
Корпус LPR.
После печати корпуса подключаем оборудование. Подключаем модуль камеры к Raspberry Pi. Как это сделать видно на видео.

Дальше нужно подключить светодиодную матрицу 8×8 к Raspberry Pi. К контактам GPIO платы Raspberry Pi необходимо подключить 5 контактов: VCC, GND, DIN, CLK и CS с помощью соединительных проводов.
Подключите датчик радара OPS243 к Raspberry Pi. Датчик радара подключается к плате через USB-кабель. Сам радиолокационный датчик защелкивается в верхнем корпусе 3D-печатного объекта.

Используя кабель USB – USB-C, подключаем батарейный блок к порту источника питания Raspberry Pi. Хотя Raspberry Pi 4 требует 3,5 А, выходных 2 А от аккумуляторной батареи будет достаточно. Максимальная потребляемая мощность проекта камеры трафика составляет примерно 1,3 А . Например, при использовании литий-ионного аккумулятора емкостью 20 000 мАч ожидается, что камера дорожного движения проработает приблизительно 13 часов перед зарядкой.

Вентилятор охлаждения подключается к контактам GPIO 5V и GND платы Raspberry Pi.
После того, как все оборудование правильно закреплено в корпусе, прикрепляем камеру к штативу с помощью шестигранной гайки.
Камера контроля скорости движения с распознаванием номерных знаковКамера контроля скорости движения с распознаванием номерных знаковКамера контроля скорости движения с распознаванием номерных знаковКамера контроля скорости движения с распознаванием номерных знаковКамера контроля скорости движения с распознаванием номерных знаковШаг девятый: установка камеры
Большинство номерных знаков находятся на высоте не более (60 см) от земли. Небольшая высота штатива 30-60 см является эффективной высотой для установки.

Определить угол установки немного сложнее. Ссылаясь на диаграмму, можно увидеть, что эти параметры зависят от 1 – того, как далеко камера движения расположена на тротуаре, 2 – как далеко камера должна начать обнаружение движущихся машин, 3 – сколько полос движения камера должна обнаружить, и 4 – ширину отдельных полос движения. Предполагая, что стандартная ширина каждой полосы движения составляет 3,5 метра, камера размещается на расстоянии 1,5 м от тротуара и размещается под углом 45 градусов , чтобы эффективно обнаруживать две полосы движения.

Важно отметить, что угол обзора камеры для одной полосы должен составлять 30 градусов.
Камера контроля скорости движения с распознаванием номерных знаковВсе готово. Теперь вы тоже можете собрать подобное устройство и пополнить ряды друзей ГИБДД-)))

SitesReady

Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного. - Альберт Эйнштейн

Follow us

Don't be shy, get in touch. We love meeting interesting people and making new friends.