
КРАТКО
Нам недавно поступило интересное техническое задание: разработать программное обеспечение для автосервисов, которое будет работать с действующими камерами заказчика, считывать номера, писать все в базу данных, с указанием местонахождения авто (въехало, на территории, на конкретном этапе и/или подъемнике), сколько времени над ним работали, т.е. вся история авто. Задача очень интересная, ниже - как мы ее решили, и что в итоге получилось
Основные тезисы:
Устали тратить время на ручной учёт и опоздания машин по этапам обслуживания? Наше решение автоматизирует весь процесс: от распознавания номера при въезде до финального отчёта по времени работы мастера — без покупки дорогостоящих камер.
Проблема:
-
Клиент приезжает в сервис и ждёт своей очереди.
-
Трудно точно отследить, сколько часов автомобиль находился на каждом этапе.
-
Ручной ввод в 1С и разрозненные отчёты снижают эффективность.
Наше решение:
-
Точный учёт времени работ на каждом этапе и подъёмнике.
-
Автоматические отчёты в 1С и в веб‑интерфейсе: история машин, поиск по номеру/датам.
-
Гибкую настройку ролей: кассиры, мастера, охрана, бухгалтерия.
-
Систему оповещений: нарушение регламента, неоплаченные услуги и т. п.
-
Масштабируемость: от одного автосервиса до сети с единой базой.
Более подробно (много букв):
Как выглядит процесс работы автосервиса? Человек записывается на ремонт, создается заказ-наряд, клиент заезжает на территорию автосервиса. Далее он либо сразу попадает к мастеру на какой-нибудь из подъемников, либо ожидает своей очереди. Мастер чинит автомобиль, клиент оплачивает услуги и уезжает. Мы решили сделать упор именно на 1С, потому что в основном все работают именно с этой программой.
Первая версия программы была разработана с использованием на всем цикле процесса камер ANPR от Dahua. Это специальные камеры, которые уже под капотом умеют распознавать автомобильные номера, цвет авто, тип кузова и многое другое. Для работы с ними мы использовали API от Dahua. Все получилось: клиенты записываются в 1С, автоматически во всех камерах номер авто клиента добавляется в белый список, затем все фиксации этого номера падают в базу данных, которая интегрирована в 1С.
Плюсы такого подхода:
- Минимум написания собственного кода (только если необходим веб-интерфейс, и немного работы с API)
- Весь функционал уже есть в устройствах, задача только с ним правильно сработать
- Можно добавить как FaceID для считывания людей, так и другие сетевые устройства, работающие по API и увеличить функционал
Минусы:
- Достаточно дорого для конечного клиента (такие камеры стоят минимум 200 тысяч, плюс монтаж)
- При расширении функционала мы упираемся в возможности устройств
Все отчеты формировались в 1С, мы сделали простенький веб-интерфейс исключительно для себя, чтобы было удобно обкатывать. 1С берет данные с нашей базы данных, затем уже обрабатывает их так, как нужно. На этом уже казалось задача выполнена, но тут пришла идея:
а что если использовать любые камеры, которые уже установлены на объекте у заказчика и работать с ними напрямую?
Такое решение позволяет полностью исключить момент покупки дорогого оборудования. Если в первом случае вне зависимости от уже имеющихся камер клиента нам нужно покупать специальные и дорогие, то во втором - подойдут абсолютно любые цифровые камеры, неважно какого качества. То есть мы избавляемся от приличной статьи расходов.
Для того чтобы реализовать это решение стало понятно, что без нейросетей здесь не обойтись. Мы использовали следующую логику:
- Дергаем снапшоты с камер каждую минуту (хотя можно анализировать видеопоток и в реалтайме, но это потребует больше ресурсов ПК)
- Обрабатываем с помощью нейросети, выделяем номера
- С помощью натренированной OCR-модели распознаем номера авто и пишем в БД.
- Отправляем все в 1С.
В итоге у нас получилось вполне рабочее решение, которое требует минимум ресурсов от ПК. Согласно техзаданию мы все опять же отправляли в 1С, чисто для демонстрации ПО был разработан простенький веб-интерфейс, на котором мы видим сколько машин в работе, кто и сколько времени находится на подъемнике, фото и так далее. Также в вебчике сделали поиск по дате/диапазону дат и поиск по номеру, что дает нам возможность быстро просмотреть всю историю авто.
Мне очень понравилась такая реализация и вот почему. Во-первых наша вторая версия программы очень и очень гибкая. Ее можно адаптировать практически под любые задачи, формировать любые отчеты, тревоги и так далее. Можно разделить сотрудников по ролям и через веб-интерфейс показывать сотруднику только ту часть, на которую даем доступ. Охраннику можно на монитор выводить список авто, которым разрешен въезд на территорию, а также выезд, если клиент оплатил услуги автосервиса. Можно прикрутить рабочее время сотрудника, можно сделать доступ бухгалтерам, менеджерам и так далее через личные кабинеты.
Для работы с авто без номеров можно использовать QR-коды, а можно сразу в заказ наряде указать нужный подъемник для этой машины и отработать без номеров. Можно сделать единую централизованную систему для группы автосервисов, чтобы владелец бизнеса либо ответственное лицо могли в любой момент получить нужную информацию или статистику.
Такое решение лучше решения, работающего из коробки. В готовом массовом решении разработчики как правило закладывают обширный функционал, в надежде охватить как можно больше клиентов сразу. Мы пошли по другому пути: для каждого клиента и для каждой ситуации будет работать программа, заточенная исключительно под конкретные нужды, и ничего лишнего.
Построенный таким образом функционал очень легко расширить в дальнейшем. Если у бизнеса возникают новые требования (а они всегда возникают), то здесь мы просто дописываем нужный функционал и сразу запускаем в работу. Что касается выпуска обновлений и расширения функционала: от момента поступления "хотелки" заказчика и до полного его внедрения потребуется от часа до недели в зависимости от сложности нужного функционала.
Отдельно хочется сказать именно про использование веб-интерфейса и 1С. Мы больше склоняемся к тому, что бизнесу будет удобно все делать в 1С, а необходимые данные для этого предоставит программа. Почему: потому что 1С как правило уже у всех работает, бухгалтерия, кассиры и так далее активно используют эту программу, и формировать заказ-наряды, получать отчеты и так далее все таки проще в 1С.
Веб интерфейс может пригодиться руководителям автосервиса, охранникам для вывода инфы, возможно другим людям. Дублировать функции и в 1С и в веб-интерфейсе не будет хорошей практикой. Хотя если честно - реализовать крутой веб-интерфейс и крутить все на нем легче с точки зрения разработки. Однако, при автоматизации очень важно чтобы автоматизация не делалась ради автоматизации, а реально приносила пользу, и будет не очень правильно, если человеку нужно будет формировать заказ наряд в 1С, потом заходить в веб, и работать там, а потом опять принимать оплату в 1С.
Нужно разделить: тот, кто работает с 1С (кассир, бухгалтер, принимающий заявки) должен работать только с 1С. Тот, кто не работает с 1С (к примеру охранник) должен смотреть веб-интерфейс и видеть там, какие авто можно запускать и выпускать (опять же выпускать и запускать можно с помощью шлагбаума и камер с реле автоматически без участия охраны, однако охрана все-равно должна иметь возможность проверить легитимность заезда/выезда)
Если в качестве основного управляющего компонента использовать 1С, то на программу ложится задача только поставлять в БД данные с камер. Если мы расширяем веб-интерфейс, чтобы люди работали в нем, тогда наоборот: мы дергаем данные с 1С к себе и выстраиваем процесс. Оба варианта могут быть реализованы.
Для сотрудников СБ можно реализовать отдельный модуль, который будет отображать необходимые тревоги (хозяин авто не оплатил услуги, заехал без разрешения, и так далее).
Немного технической информации, вот системные характеристики ПК, на котором наша программа прекрасно работает:
Под капотом используются следующие технологии:
- Python 3.11 для работы скриптов нейросетей и получения данных с камер
- Обученная на детекцию и обнаружение автомобильных номеров модель нейросети YOLO
- OCR модель, обученная на распознавание номеров, включая регулируемый процент погрешности и вероятностью предсказывания (против бликов, грязных номеров и так далее)
- PHP и Apache для реализации веб-интерфейса
- MariaDB в качестве базы данных
Модели были обучены на собственноручно размеченных датасетах, данные для которых брали на реальном автосервисе. Модели можно как дообучить (допустим на распознавание QR), так и переобучить полностью под другие задачи. Все зависит от технического задания: чем оно полнее - тем лучше продукт будет соответствовать вашим ожиданиям
Контакты для связи:
Казахстан, Костанай, ул. Алтынсарина, 189
+7-747-276-03-43
Напоминаю, что вопросы можно задать в группе https://t.me/newqosgroup