Требуемый от нас результат;
- Онлайн‑счёт с достоверностью ≥99,0% при нормальных условиях.
- Снижение ручного труда/ошибок, автоматический стоп‑сигнал при расхождениях (опционально).
- История по сменам/линиям, пропуски, двойной учёт и подобные данные.
Входные данные
Камера над конвейером, фиксированная. Рекомендации: 1920×1080@30 FPS, короткая выдержка, стабильный свет, поляризационный фильтр при бликах.
Фон и разметка: желательно однотонный конвейер/подложка, разметочная линия (виртуальная «tripwire» в кадре).
Датасет: 3–5 тыс. размеченных кадров (bounding boxes по стаканам) + 1–2 часа сырого видео. В набор включить сценарии: плотная укладка, частичное перекрытие, разные материалы/прозрачность, загрязнения, тени, смаз, неполный стакан (дефект).
Постановка задачи
- Детекция объектов: найти стаканы в каждом кадре.
- Трекинг и подсчёт: присвоить ID, вести траектории, считать при пересечении контрольной линии (исключает двойной учёт при дрожании).
- Фильтрация артефактов: отбраковка по размеру/эксцентриситету/скорости (ложные срабатывания).
- Логирование и интеграция: счёт/время/ID → БД/шина; панель оператора; опционально — сигнал на ПЛК
Как итог мы имеем рабочее решение, которое включает:
- Распознавание стаканов
Мы используем специальную «умную» модель, которая находит стаканы на изображении с камеры. Есть разные варианты таких моделей — быстрые, точные и компактные, чтобы всё работало без задержек.
- Отслеживание движения
После того как стакан найден, система «запоминает» его и следит за ним в каждом кадре, пока он движется по конвейеру. Это помогает не считать один и тот же стакан несколько раз, даже если он временно перекрыт другими.
- Подсчёт
В кадре есть условная линия — как невидимый барьер. Стакан засчитывается в общий счёт один раз, когда он пересекает эту линию в нужном направлении.
Если стаканы лежат в беспорядке, мы считаем их в специальной выделенной зоне на конце ленты.
Цепочка обработки
Всё происходит в такой последовательности:
Камера → обработка видео → распознавание стаканов → отслеживание их движения → подсчёт при пересечении линии → отбраковка ошибок → запись данных и отображение на экране или передача в учётную систему.
Инструменты
Железо и съёмка
- Камера: индустриальная 1080p@30FPS, глобальный затвор (Basler/FLIR) + линейная подсветка, поляризационный фильтр.
- Вычислитель (edge):
— Бюджет: i7/Ryzen + RTX A2000/3060 (8–12 GB VRAM)
— Компакт: NVIDIA Jetson Orin 8–16 GB.
- ПО камеры: SDK производителя + GStreamer/DirectShow (захват видеопотока).
Датасет и разметка
- Инструменты: CVAT или Label Studio (онлайн/он‑прем), Roboflow (по желанию).
- Хранение версий: DVC + Git (или просто Git LFS для начала).
Стек:
- Инференс: ONNX Runtime (GPU/CPU).
- CV/Видео: OpenCvSharp4.
- Сервис: ASP.NET Core (REST/SignalR).
- UI: WPF/WinUI или Blazor.
- Интеграции: OPC‑UA .NET, MQTTnet.
- Логи: Serilog + Prometheus-net.
Хранилище и обмен
- БД: SQLite (локально) или PostgreSQL.
- Очередь/шина (по потребности): MQTT или RabbitMQ.
- Форматы: JSON/CSV, Parquet для архивов.
Деплой и эксплуатация
- Windows Service / systemd, Watchdog, ротация логов.
- Контейнеризация (опционально): Docker + NVIDIA Container Toolkit.
Сроки: 24 дня.