В статье «Каждая царапина на виду. Видим битые машины и экономим деньги автопарка» мы взглянули на проект со стороны бизнеса и разобрались, как цифровизация техосмотра помогает экономить ресурсы, снимать нагрузку со специалистов и ускорять процессы в автопарке.
Но за выгодами стоит интересная техническая история.
Как из сырых фотографий, собранных с Avito и Kaggle, удалось построить работающую систему?
Какие алгоритмы лежат в основе «компьютерного зрения»?
И почему оно распознаёт вмятины, отсутствующие детали и разбитые стекла не хуже внимательного механика?
Сегодня мы расскажем, как создавалось решение: от подготовки нестандартного датасета до интеграции. Эта статья для тех, кому мало экономических выгод и хочется заглянуть глубже, чтобы понять, как все устроено.
За лаконичными бизнес-целями всегда скрывается длинная цепочка технических вызовов.
Крупный автопарк требует постоянного контроля состояния машин, однако традиционные проверки занимают время и ресурсы. Для эффективной работы важно оптимизировать затраты времени, не увеличивать нагрузку на персонал и оценивать объективную картину состояния транспорта.
Но простые строки запроса превратились для нас в настоящий айти-квест. Нужно было научить систему видеть детали кузова, различать типы повреждений и встроить всё в корпоративную инфраструктуру клиента, не ломая привычные процессы.
Поэтому задачи для команды звучали куда сложнее:
А главным вызовом проекта стало отсутствие готового датасета. Нам предстояло собрать и разметить картинки с нуля, чтобы научить компьютерное зрение смотреть на машины так же внимательно, как опытный механик.
Когда цели ясны и амбициозны, настоящая битва начинается внутри проекта. Разработчики NooSoft должны были создать устойчивую, точную и интегрированную подсистему для автопарка. И вот с чем пришлось столкнуться:
Каждый фактор формировал архитектуру решения, влиял на выбор моделей и подход к обработке данных. В итоге родилась система, способная точно видеть мельчайшие повреждения и отдавать результат в привычной для бизнеса форме.
Когда задачи и технические вызовы были определены, начался этап обычного многочасового кодинга (ну или реальной магии, если вы не сталкиваетесь с этим ежедневно). Разработчики приступили к превращению хаотичных фото в структурированный массив информации и работающий модуль распознавания повреждений.
Обучение модели требовало тщательной подготовки. Мы собрали изображения с Avito, Kaggle и других источников, вручную размечали их через MakeSense.AI. Итоговый набор получился около 3200 картинок.
После ручной сегментации мы столкнулись с классической проблемой компьютерного зрения: недостаточное разнообразие набора данных может сильно влиять на достоверность результата.
Машины в реальных условиях могут фотографироваться под разным освещением, с лёгкой или сильной тенью, под разными углами и на фоне разных объектов. Нужно учесть множество условий, чтобы алгоритм не «запутывался» и не ошибался.
Для решения проблемы пришлось применить аугментацию – набор техник, которые искусственно увеличивают датасет. На практике это выглядело так:
Такие действия позволили сбалансировать датасет, сделать его более «жизнеспособным» и подготовить к «боевым» условиям, где качество может быть далеким от идеала. Теперь модель устойчива к внешним факторам и точнее распознает повреждения в самых разных сценариях.
Система построена как модуль, который легко интегрируется в корпоративную ERP через API и очередь сообщений RabbitMQ. Водитель делает снимки автомобиля с четырёх ракурсов и загружает их в приложение. Фото не обрабатываются напрямую, а сначала становятся в очередь.
Дальше запускается внутренний процесс, незаметный для обычного глаза, из нескольких последовательных шагов:
Архитектура построена так, чтобы любой новый шаг или проверка легко вписывались в рабочий поток.
Модуль обрабатывает до 10 снимков за один запрос, формируя общий вывод для каждого автомобиля. Он просто масштабируется: можно добавлять новые классы повреждений, расширять типы транспортных средств или интегрировать дополнительные аналитические инструменты.
После нескольких месяцев разработки, тестов и тонкой настройки проект показал впечатляющие показатели на тестовом запуске.
Распознавание повреждений изначально создавалось как модульная система, готовая к росту и адаптации под новые задачи. Архитектура продумана так, чтобы с расширением датасета и ростом количества обрабатываемых машин точность и надежность только увеличиваются.
Технологию легко дообучить под новые марки автомобилей, грузовиков и даже спецтехнику – достаточно собрать и разметить соответствующие изображения. Кроме того, она подходит для предрейсовых осмотров: автомобили можно проверять автоматически перед выходом на линию, снижая риски аварий и соблюдая регуляторные требования без участия инспекторов.
В будущем функционал можно расширить, добавив прогноз ресурса автомобилей и аналитику для обновления автопарка. Привычный техосмотр превращается в управляемый и прозрачный процесс.
По запросу можно продолжать развитие – подключать внешние API (например, агрегаторы запчастей), расширять набор анализируемых данных или добавлять сценарии для каршеринга, вторичного рынка и страховых кейсов.
Проект показал, как продуманный комплексный подход к созданию ИИ-систем трансформирует ограниченные исходные данные в масштабируемые решения.
NooSoft сумел сбалансировать бизнес-цели и технические вызовы:
Система спроектирована так, чтобы её можно было развивать дальше под новые задачи и форматы проверки. Это еще один шаг к тому, чтобы техосмотр превратился в управляемый процесс, где любые действия совершаются на основе данных, а не догадок.
Дальше дело масштаба: интеграция с корпоративными продуктами, страховыми платформами, внешними API и новыми типами транспорта.
Модуль уже стал основой для будущих цифровых сервисов.
Если интересно, как внедрять подобные технологии в ваш бизнес, свяжитесь с нами и мы обсудим конкретные кейсы.