Nizomiddin Xalilov

Проекты / Smart Yard — Computer Vision for the Truck Yard

2026 · International logistics company В работе

Smart Yard — Computer Vision for the Truck Yard

Семь камер на площадке и один конвейер: распознать транспорт, прочитать USDOT и номер юнита, проверить перевозчика и открыть ворота.

Исходный код закрыт

Камеры площадки присылали тысячи снимков, но не давали ответов: что это за грузовик, чей он, открывать ли ворота? Я обучил набор моделей YOLOv11 на кадрах с нашей же площадки — тип транспорта, цвет, номера USDOT и юнита, номер прицепа — и объединил их результаты в один кейс на каждую машину с проверкой по реестру FMCSA.

Точность моделей
82–95%

Детекция, цвет и чтение номеров

Обучающих изображений
1,500+

Размечены с камер нашей площадки

Потоков с камер
7

Сводятся в один кейс на машину

Задача

Камеры, которые всё видят и ничего не сообщают

Семь камер следят за площадкой и сбрасывают снимки в почтовый ящик вперемешку. Один грузовик даёт десяток кадров с четырёх ракурсов вперемешку с остальным транспортом, проехавшим в то же время.

Готовые «умные» камеры читали госномер, но не USDOT и не номер юнита на кабине — а именно с ними работает логистическая компания. Готовые модели определения цвета тоже ошибались на наших кадрах: низкое солнце, тени и грязные прицепы превращали серый грузовик в белый.

Решения и компромиссы

Несколько узких моделей вместо одной «умной»

  • Детекция транспорта — YOLOv11 в реальном времени различает тягач, тягач с прицепом и легковой автомобиль.
  • Цвет — отдельная модель, обученная на снимках площадки: общие модели не справлялись с нашим освещением.
  • Чтение USDOT и номера юнита — детектор находит номер на кабине, затем фрагмент распознаётся. USDOT уходит в FMCSA API, которое возвращает компанию, её статус и контакты.
  • Номер прицепа — новые камеры не читали номера прицепов, поэтому этим занимается отдельная модель.
  • Сводный кейс — всё перечисленное объединяется в один кейс на машину: тип, цвет, USDOT, юнит, госномер и подтверждающие снимки.

Маленькие модели проще переобучать и отлаживать: если номер прочитан неверно, сразу видно, на каком этапе ошибка.

Архитектура

Как это устроено

7 камер → детекция транспорта (YOLOv11) → модель цвета
                        ↓
      чтение USDOT / юнита / номера прицепа
                        ↓
    FMCSA API (компания, статус, контакты)
                        ↓
  кейс на машину → правила ворот → открыть / закрыть
                        ↓
        журнал событий (Django + PostgreSQL)
Результат

Текущее состояние

Каждая модель даёт 82–95% точности; обучение шло на более чем 1 500 размеченных снимках с площадки.

Логика ворот работает на двух камерах: внешняя замечает подъехавший транспорт и отправляет команду на открытие, внутренняя видит, что машина проехала, и отправляет команду на закрытие. Каждое решение пишется в журнал событий. Сейчас легковые машины проезжают автоматически, а грузовики ждут этапа оплаты. Следующий шаг — пропускать без остановки грузовики с месячной подпиской на стоянку.

Что бы я сделал иначе

Что бы я сделал иначе

Я бы с первого дня собирал сложные кадры — блики, дождь, ночь, грузовик наполовину вне кадра. Модели сильнее всего улучшались, когда такие случаи попадали в обучающую выборку, а в начале я выбрасывал их как шум.