Computer vision на складе не заменит ТСД и пиканье штрихкодов, но оно накажет тех, кто эти терминалы обходит. Кладовщик может просканировать коробку и физически кинуть её на соседнюю паллету. WMS считает, что всё идеально. Клиент на выгрузке получает пересорт, а ваш склад — акт о расхождениях и штраф. Камера в этой цепочке работает как беспристрастный физический валидатор. Она не верит базам данных, она верит фотонам. Жестко. Автоматически.
Видеоаналитика складского двора: как убрать недостачу, пересорт и простой фур на отгрузке
Реальный конвейер начинается за забором, на КПП. Обычный ANPR (Automatic Number Plate Recognition) есть везде, но сам по себе номер машины ничего не дает. Бизнес-логика появляется, когда ANPR жестко сцеплен с модулем управления двором (YMS) и складской системой (WMS). Тягач пересекает линию ворот — таймер запускается. Номера грязные, снег залепил буквы — типичная история. Решается не усложнением нейросетей, а правильной ИК-подсветкой и камерами с аппаратным WDR. Как только номер распознан, система чекает таймслот. Приехал на час раньше? Жди в буфере, на территорию шлагбаум не пустит. Никаких ручных проверок охраной с планшетами.
Дальше фура встает на док. Заявлено: видеоаналитика складского двора: как убрать недостачу, пересорт и простой фур на отгрузке. Механика этого процесса — трекинг объектов (object tracking) в крайне агрессивной визуальной среде. Камера над рампой или сбоку от ворот фиксирует проезд вилочного погрузчика или пронос короба через контрольную линию.
Считать паллеты тупым детектором кадров нельзя. Погрузчик заехал в кузов, сдал назад, поправил паллету, снова заехал. Если просто суммировать детекции в зоне, система насчитает пять паллет вместо одной. В основе рабочего решения лежит связка быстрого детектора (обычно YOLOv8) и алгоритма трекинга (ByteTrack, BoT-SORT). Мы трекаем уникальный ID объекта и анализируем его вектор движения. Линия пересечена строго наружу и объект исчез в зоне кузова? Считаем в плюс. Пересечена внутрь? Считаем в минус.
При этом гнать RTSP-потоки с пятидесяти камер в центральный дата-центр — верный способ убить локальную сеть склада. Облачные энтузиасты обожают этот подход, пока не приходит счет за трафик или пока экскаватор не рвет оптику за территорией. Инференс обязан жить на edge.
Возле группы доков ставится промышленный ПК. Либо x86 с тензорными ускорителями, либо решения на базе NVIDIA Jetson. Железо захватывает видео локально, аппаратно декодирует кадры, прогоняет через квантованную в INT8 модель и генерирует метаданные. Тяжелый видеопоток умирает прямо на узле. В центральную систему летит микроскопический JSON.
import requests
from edge_cv.tracker import ByteTrackWrapper
from edge_cv.zones import LineCrossingManager
def process_dock_stream(dock_id, stream_url, target_pallets):
tracker = ByteTrackWrapper(model_path='yolov8_int8_edge.trt')
lines = LineCrossingManager(dock_config='dock_geometry.yaml')
loaded = 0
for frame, detections in tracker.process_stream(stream_url):
events = lines.check_crossings(detections)
for ev in events:
if ev.type == 'pallet_loaded':
loaded += 1
elif ev.type == 'pallet_removed':
loaded -= 1
payload = {
"event_id": ev.uuid,
"dock_id": dock_id,
"ts": frame.timestamp,
"loaded_current": loaded,
"target": target_pallets
}
requests.post("http://wms-broker.local/api/cv/sync", json=payload, timeout=2.0)
if loaded == target_pallets:
return "DISPATCH_COMPLETE"Встраивать такую логику напрямую в монолит старой ERP — инженерное преступление. WMS ничего не должна знать про трекинг, потерянные кадры и векторы движения. Поднимается асинхронный middleware, обычно через брокер сообщений. Учетная система кидает туда план: «На доке номер четыре ждем отгрузку заказа 982, 33 паллеты». Edge-узел подхватывает конфиг и начинает слать факты загрузки.
Предел прочности: физика, оптика и деньги
Хайп вокруг AI заставляет менеджеров верить в магию. Реальность бьет по лицу сразу после установки камер. Computer vision ломается об оптику каждый день.
Стретч-пленка на паллетах бликует под складскими лампами, превращая форму объекта в белое пятно. Контровой свет от солнца через открытые ворота выжигает матрицу — модель слепнет, если у камеры нет нормального WDR (Wide Dynamic Range). Вилочный погрузчик перекрыл мачтой обзор на соседнюю коробку — трекер теряет объект из-за окклюзии. Нейросеть не умеет смотреть сквозь сталь. Это честный трейд-офф: мы детектируем аномалии только там, где есть прямая видимость. Архитектура пайплайна должна быть пессимистичной. Если трекер сомневается, отгрузка приостанавливается, система требует ручного подтверждения.
Всё это внедряется не ради инноваций, а ради метрик. Эффект измеряется конкретными показателями:
- Точность сборки: снижение доли пересорта на отгрузке практически до нуля. Если система видит лишнюю коробку, которая не числится в плане, загорается красный светофор над доком.
- Demurrage (штрафы за простой): сокращение времени пребывания фуры в зоне отгрузки на 15–30%. p99 времени погрузки падает, потому что бригадир не пересчитывает ряды паллет с блокнотом.
- Локализация потерь: если клиент заявляет недостачу, у склада есть поминутный лог с привязанными кроп-кадрами каждой паллеты, заехавшей в кузов. Спорить с этим невозможно.
- Пропускная способность двора (Throughput): увеличение оборачиваемости рампы без раздувания штата контролеров и охраны.
У нас в Morana Labs подход к складским периметрам бескомпромиссный. Edge-инференс в промышленных корпусах на каждые несколько ворот, предельно легковесные модели, выжатые через TensorRT, и жесткая асинхронная интеграция с учетными системами. Мы не пытаемся научить нейросеть заглядывать за угол программными костылями. Если ракурс перекрыт — мы меняем точку подвеса камер и ставим мощные прожекторы. Железобетонная инженерия всегда работает лучше, чем слепая вера в алгоритмы.