Создал домашнюю систему видеонаблюдения с распознаванием номеров

Всем привет!


INTRO
Статья о том, когда It-шнику становится любопытно. Как я решил при помощи простой ip-камеры создать сервис регистрации проезжающих автомобилей с блек-джеком и шлю… распознаванием номера и определением владельца.

Заранее напоминаю о том, что я пишу непосредственно о системе. Легитимность установки камеры и съемки зависит от конкретных случаев и в некоторых из них запрещена законом.


Часть первая. Зарождение идеи.
Начну рассказ с текущей ситуации. Примерно год назад, очередной раз бродя по интернету я попал в цепкие лапы акций магазинов бытовой техники и зачем-то купил себе камеру "Xiaomi Mi Home Security Camera 1080p Magnetic". С учетом всех скидок, акций и бонусов камера обошлась примерно в 1тыс. рублей.

Камера mi camera magnetic (фото из интернета)

Задача для камеры была поставлена быстро — "наблюдать за происходящим во дворе". Меня интересовала парковка.
Интересный факт, камера лично мне не пригодилась ни разу, но несколько раз меня с утра будили незнакомые люди звонком в дверь и интересовались "моя ли это камера" и "пишет ли она" т.к у них что-то случалось во дворе.

Пример дневной съемки во дворе

Пример ночной съемки во дворе

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

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


Часть вторая. Формируем ТЗ.
Идея понятна. Хочу фиксировать все проезжающие машины параллельно распознавая их номера и по возможности получать дополнительную информацию по автомобилю.

Что дальше? Дальше агрегируем требования и формируем задачу.
— Доступ к данным должен быть простым. Писать приложения под каждую платформу(вин, андроид, ios и.т.д.) мне очень не хотелось. Решено, это будет web-приложение с адаптивным под мобильные устройства дизайном.
Доступ из интернета.
— Авторизация — система должна иметь функционал авторизации по логину и паролю.
Регистрация.
Данные должны хранится в БД для возможности быстрого доступа к информации и построения различных отчетов ( сколько раз за день а/м с номером появлялся в поле камеры, самая частая машина за неделю, количество машин в день/неделю/месяц )
— Простота разработки — я бы не хотел писать полностью весь код, т.к я не супер крутой программист. Честно говоря я вообще не считаю себя программистом. Соответственно приоритет будет отдан готовым библиотекам, сервисам — которым можно отдать часть работы на аутсорс.
— Простая масштабируемость — возможно, то, что я сделаю будет полезно кому-то еще. В таком случае, не стоит создавать систему из непонятных инструментов и костылей. Использовать популярные фреймворки.
— Писать код и разрабатывать функционал с учетом использования несколькими пользователями.
— Стоимость — аренда сервера, покупка домена и подключение к сторонним api могут вылиться в копеечку. Мне постоянно стоит напоминать себе что это домашний хобби-проект. Стоит тщательно контролировать расходы.
— Данные по госномеру — очень хотелось бы помимо номера так-же получать подробные данные по госномеру.

И так, основные требования сформулированы. Можно начинать делать? Нет!
Не хочется городить велосипед ( совсем немного конечно хочется, все-таки будет свой родной, из костылей :-) ). Следующим делом стоит изучить рынок, понять что вообще предлагается в сфере видеонаблюдения конечному потребителю.


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

Полный размерзапрос популярен, статей и предложений на рынке достаточно

Полностью готовые решения.
После радости сразу пришло разочарование. Я начал переходить по ссылкам, знакомиться с продуктами и что самое неприятное, их стоимостью. Не буду здесь приводить примеры конкретных продуктов и говорить почему они мне не подошли. В целом, претензии ко всем продуктам были идентичны.
— юзабилити продающего сайта. Да, это ужас. Словно подключился к интернету 2005 года. Подавляющее большинство сайтов были прямиком от туда. Данный факт не имеет прямой корреляции с качеством продукта. Но я был удивлен что в век цифровизации, компании которые продают системы видеонаблюдения или ПО к ним, совсем не думают о важности пользования сайтом.
— дизайн ПО. Примерно тоже самое что и сайт. Добавить особо нечего. ПО как и сайт написано в 2005 и с тех пор директора всех этих фирм запрещают обновлять интерфейс)) .
— закрытость рынка. Получить демку какого-то ПО это отдельная эпопея, нужно обязательно позвонить, написать в мессенджер, оставить заявку на сайте, написать на почту, станцевать танец и сделать жертвоприношение. В общем это лучшая практика чтобы вам никто не звонил и не писал. Отчасти я понимаю что данные системы нацелены на коммерческий сектор, а там высокая клиент-ориентированность не нужна. Торги выиграли и вперед монтировать камеры!

Тем не менее полезные выводы сделаны:
— ознакомившись с интерфейсом подобных программ начал вырисовываться и интерфейс моей системы. Определены основные блоки сайта.


Микросервисы
Теперь стоит посмотреть в сторону open-source решений касающихся распознавания номеров, конечно в первую очередь меня интересовала логика перехвата видеопотока с камеры и анализ картинки, поиск и распознавание российского гос. номера.
Погружаться в нейронные сети и машинное обучение мне не очень хотелось, это сильно замедлит разработку.
Поискав по интернету нашел несколько неплохих по описанию решений. Отфильтровав самые живые в плане комьюнити и апдейтов я решил протестировать Nomeroff Net
Nomeroff Net — это опенсорсный фрейморк написанный на питоне для распознавания номеров автомобилей.
Писать о разворачивании сервера, настройке и установке фреймворка не буду. Статей на эту тему достаточно, для разных уровней пользователей.
По результатам — номер определяется достаточно плохо. Возможно стоит поковырять настройки, но мне этого делать не хотелось т.к на мой взгляд фреймворк из коробки не справился даже с хорошим примером.
На скриншоте вы можете видеть фото с номером, которое я отдал программе и его результат распознавания.

пример распознавания с помощью nomeroff net

Тестирование сторонних сервисов.
Собираю различные изображения из интернета, дополнительно самостоятельно делаю фото на камеру телефона/фотоаппарата и отправляю их в сторонние сервисы распознавания. Здесь показывать нечего, работает все на порядок лучше и стабильнее, дополнительным плюсом является что в будущем я уменьшу возможную нагрузку на свои сервера.
Цены разные, самый дорогой что я нашел — 20рублей за одно распознавание.

Часть третья. Обработка видеопотока.
Разобрать номер на изображении это конечно хорошо, но для начала изображение необходимо получить. Первой моей мыслью было напрямую подключаться к камере, каково было мое удивление что ip-камера xiaomi не имеет популярного rtsp протокола для прямого подключения. Что делать? Пришлось прошивать. Кажется бренд xiaomi создан для того, чтобы после покупки его еще приходилось дорабатывать.
Прошивка установлена! Что дальше? Дальше настраиваем подключение к камере и понимаем что качество камеры не позволит нам разбирать номера автомобилей. Почему я не задался этим вопросом раньше? Я держал этот риск в голове изначально. Поэтому в первую очередь меня интересовала логика взаимодействия между узлами системы.
Таким образом первый тестовый стенд распознавания номером выглядел следующим образом:
Ip-камера стоит на столе и направленна на монитор пк где открыты найденные в интернете фотографии различных автомобилей с российскими номерами.

тестовый стенд распознавания номеров

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

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

ИТОГИ
Идея приобрела формализованный статус и перешла в небольшой хобби-проект. Я понял примерный объем работ. Проведены первые тестовые испытания.
Напишите в комментариях если к данному проекту у вас будет интерес. В следующей части я напишу о том какие изменения я решил внести в логику системы и почему. Опишу как проходила разработка дизайна и подбор оборудования.
p/s на текущий момент система мной написана функционирует в бета режиме.

Комментарии еще никто не писал. Будьте первым.

Чтобы добавить комментарий войдите в систему.

За нами следят, начиная с детского сада...

Работаю в детском саду,подбегает ко мне девочка и говорит: Миша и Вова в туалете,кидаются бумагой! Влетать в туалет и калечить детскую психику я не стала(как оказалось очень зря).Выходят два голубчика ,а тут уже я поджидаю: Я знаю,чем вы там занимались!!!! Мальчишки смотрят на меня с недоверием:Все знаете?? И что мы в урну для бумаг написали???Да!(у самой глаз дергаться начал)И что лего и киндеры в унитаз смыли??? Да!(когда успели?Были в туалете пять минут!)И что пластилин в краны затолкали?Да!(Господи,зачем я спрашиваю!?Надо прекращать этот разговор, пока не всплыл еще какой нибудь криминал)А еще вы бумагой кидались!!!Вовка говорит:Миха, я же тебе говорил,что в туалете камера!!А ты мне не верил!!!

Ещё и с пушками акимбо

Я с детьми и женой смотрю Фаллаут

«Роль играют деньги». В Иркутской области пожилого блогера с женой-инвалидом лишают жилья

В Куйтуне блогера-миллионника Перевалова с женой-инвалидом выгоняют на улицу

ПАСЕ приняла резолюцию с призывом к «деколонизации России»

Парламентская ассамблея Совета Европы (ПАСЕ), приняла резолюцию, призывающую к якобы необходимой деколонизации России. Текст документа опубликован на сайте международной организации, из которой Россия вышла в марте 2022 года.

Что с билетами на поезд?

Подруга вчера рассказала. Собрались они с семьей на юг в июле. Билеты надо брать уже сейчас, продажи открываются за 90 суток. Так вот купить их нереально! Даже если караулить в 8 утра и в 8.01 начать их оформлять, в конце пишет - билетов нет. И всё. Промучавшись так пару дней, подруга позвонила в ржд. Там ей ответили, что да, билеты сразу бронируют другие компании по продажам билетов. За одну секунду, получается!

Разгорелась дискуссия. Другая подруга пишет, цитата: «В прошлом году я действительно ездила в 6 утра на вокзал, как в "старые добрые". Потому что на всех сайтах стоит типа блок. И ржд, и ту-ту. У меня везде есть учетные записи, где есть данные о нас. То есть мне даже заполнять ничего не надо было. Сайт дает оформить билеты, и уже перед оплатой пишет (то есть это в 8 часов и 1 секунду) - это место уже занято. Выходишь вообще - эти места есть. Оформляешь заново, и снова так же. Я приехала на вокзал часов в 6,а терминал, который выдаёт талоны, включается в 8 утра. И вот там была перепись толпы в очередь, записывали в журнальчик и потом кричали по фамилии. Моя очередь подошла где-то в 8.10. Сидя на вокзале, ровно в 8 стала пытаться параллельно купить билеты на ржд и ту-ту. НОЛЬ! А в кассе билеты были.»

Я честно была в ахуе от этой истории! Что это вообще за бред? Может кто в курсе? РЖД, поясните, куда деваются билеты на июль? И что это за дичь из 90х с очередями за 2 часа до открытия и переписи в тетрадке???

Поясню про себя. Я не вчера родилась, и не в танке. Последние лет 6 мы выбираем для отпуска июнь и ездим на машине.

Специально для тех, кому сложно воспринимать большой текст:

Речь идет про ПОКУПКУ билетов на ИЮЛЬ ( самый топовый отпускной месяц).

В наличии они могут быть - купить невозможно технически.

Те, кто ездит в июне и в другие месяцы - вы красавчики!

Девушка хотела сходить на свидание с айтишником, но что-то пошло не по плану

Что с билетами?

Подруга вчера рассказала. Собрались они с семьей на юг в июле. Билеты надо брать уже сейчас, продажи открываются за 90 суток. Так вот купить их нереально! Даже если караулить в 8 утра и в 8.01 начать их оформлять, в конце пишет - билетов нет. И всё. Промучавшись так пару дней, подруга позвонила в ржд. Там ей ответили, что да, билеты сразу бронируют другие компании по продажам билетов. За одну секунду, получается!

Разгорелась дискуссия. Другая подруга пишет, цитата: «В прошлом году я действительно ездила в 6 утра на вокзал, как в "старые добрые". Потому что на всех сайтах стоит типа блок. И ржд, и ту-ту. У меня везде есть учетные записи, где есть данные о нас. То есть мне даже заполнять ничего не надо было. Сайт дает оформить билеты, и уже перед оплатой пишет (то есть это в 8 часов и 1 секунду) - это место уже занято. Выходишь вообще - эти места есть. Оформляешь заново, и снова так же. Я приехала на вокзал часов в 6,а терминал, который выдаёт талоны, включается в 8 утра. И вот там была перепись толпы в очередь, записывали в журнальчик и потом кричали по фамилии. Моя очередь подошла где-то в 8.10. Сидя на вокзале, ровно в 8 стала пытаться параллельно купить билеты на ржд и ту-ту. НОЛЬ! А в кассе билеты были.»

Я честно была в ахуе от этой истории! Что это вообще за бред? Может кто в курсе? РЖД, поясните, куда деваются билеты на июль? И что это за дичь из 90х с очередями за 2 часа до открытия и переписи в тетрадке???

Поясню про себя. Я не вчера родилась, и не в танке. Последние лет 6 мы выбираем для отпуска июнь и ездим на машине.

Специально для тех, кому сложно воспринимать большой текст:

Речь идет про ПОКУПКУ билетов на ИЮЛЬ ( самый топовый отпускной месяц).

В наличии они могут быть - купить невозможно технически.

Те, кто ездит в июне и в другие месяцы - вы красавчики!

Ответ на пост «Какую неприятную правду вы осознали с возрастом?»

  1. Честный и добросовестный труд далеко не всегда достойно оплачивается.

  2. Чем больше у тебя ожиданий от жизни, тем больше вероятность, что всё пойдёт не по плану.

  3. После 30 организм и вправду потихоньку слетает с гарантии.

  4. В детстве мне говорили, что деньги не главное. Важнее здоровье, поддержка близких, смысл жизни и т.п. Но мир оказался таков, что с деньгами проще поддерживать здоровье, заботиться о близких, искать смысл жизни и т.п.

Шерстяной с высоким уровнем IQ

Fastler - информационно-развлекательное сообщество которое объединяет людей с различными интересами. Пользователи выкладывают свои посты и лучшие из них попадают в горячее.

Контакты

© Fastler v 2.0.2, 2024


Мы в социальных сетях: