Разработка решений в области компьютерного зрения

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 180 из 186 услугВсе 1566 услуг
Средняя
~2-4 недели
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1218
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    853
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1047
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    825

Computer Vision: детекция, сегментация, OCR и видеоаналитика

На производстве стоит камера, контролирует качество продукции. Модель обучена на 10 тысячах размеченных изображений, точность на тесте — mAP 0.84. Запускают в продакшен — и в первую же неделю пропускают 30% дефектов. Оказывается, освещение на линии меняется по сменам, и distribution shift убивает метрики. Это классическая история с Computer Vision в промышленности.

Детекция объектов: YOLO, RT-DETR и всё что между ними

YOLO — стандарт для задач real-time детекции. YOLOv8 и YOLOv11 от Ultralytics — наиболее используемые версии в производстве: простой API, активное сообщество, хорошая документация, встроенная валидация и экспорт в ONNX/TensorRT.

Для задач с высокими требованиями к точности и когда latency менее критична — RT-DETR (Real-Time DEtection TRansformer). Transformer-based архитектура без NMS даёт лучший mAP на COCO при сравнимой скорости с YOLOv8l.

Типичная ошибка при обучении детектора. Датасет 8000 изображений, 3 класса, fine-tune YOLOv8m — F1 0.73 на валидации. Смотрим confusion matrix: один класс почти никогда не детектируется. Причина: дисбаланс 1:23 в пользу двух других классов. Решение: oversampling редкого класса, focal loss вместо BCELoss для objectness, аугментации (Mosaic, MixUp отключить для редкого класса — они его «размывают»).

Transfer learning и fine-tuning. Предобученные на COCO или ImageNet веса — обязательная точка старта. Полное обучение с нуля требует миллионы примеров. Fine-tune на 500-2000 доменных изображениях при правильной аугментации даёт рабочую модель за 1-2 дня обучения на одной GPU.

Экспорт и оптимизация. Для edge deployment: экспорт в ONNX → TensorRT engine. YOLOv8n в TensorRT FP16 на Jetson AGX Orin даёт 150+ FPS при P99 latency < 8ms. На сервере (A10G): 700+ FPS для YOLOv8n в TensorRT INT8.

Сегментация: SAM, Mask R-CNN и instance segmentation

SAM (Segment Anything Model) от Meta изменил подход к сегментации. SAM 2 — работает с видео, поддерживает трекинг объектов через кадры. Для задач «выдели объект по prompt (точка, bbox)» SAM — лучший выбор из коробки.

Для production instance segmentation без интерактивного промпта — Mask R-CNN или YOLOv8-seg. YOLOv8-seg обучается как обычный детектор с дополнительными масками, удобен в тех же пайплайнах.

Семантическая сегментация (каждый пиксель — класс) — SegFormer, DeepLabV3+. SegFormer-B5 — хороший баланс точности и скорости для задач типа анализа спутниковых снимков или медицинской сегментации.

Кейс: сегментация клеток на микроскопических изображениях. Датасет 400 изображений с ручной разметкой. Обучение Mask R-CNN на ResNet-50 backbone дало IoU 0.61 — плохо. Проблема: объекты (клетки) перекрываются, стандартный NMS убивает перекрывающиеся предсказания. Решение: переход на cellpose (специализированная архитектура для биомедицинских задач) + soft-NMS. IoU вырос до 0.79.

OCR: когда Tesseract не справляется

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

PaddleOCR — production-grade решение: обнаружение текстовых блоков + распознавание + структурный анализ. Работает из коробки для 80+ языков, включая русский. Поддерживает таблицы и документы со сложной структурой.

TrOCR (Microsoft) — трансформерный OCR с сильными результатами на рукописном тексте. Для русского рукописного текста нужен fine-tuning: базовая модель обучена преимущественно на латинице.

Document understanding. Для задач «извлеки данные из счёта / договора / паспорта» — LayoutLMv3 или Donut. Эти модели понимают layout документа, а не только текст. Интеграция через Hugging Face Transformers, fine-tuning на 200-500 размеченных документах.

Типичный pipeline для production OCR:

  1. Preprocessing: deskew (исправление наклона), denoising, binarization через OpenCV
  2. Обнаружение текстовых блоков: PaddleOCR detection или CRAFT
  3. Распознавание: PaddleOCR recognition или TrOCR
  4. Post-processing: нормализация, валидация через regex или LLM для структурированных полей

Для документов с фиксированной структурой (типовые формы) template matching + OCR точечно по координатам зачастую надёжнее и быстрее end-to-end решения.

Face Recognition: идентификация и верификация

Face recognition = detection + alignment + embedding + matching. Каждый этап важен.

Detection. RetinaFace или InsightFace для точной локализации лица и ключевых точек (landmarks). MTCNN — более старое, но надёжное решение.

Embedding. ArcFace (InsightFace) — state-of-the-art для face recognition embeddings. Модели iresnet50/iresnet100 предобучены на MS1MV3 (5M идентичностей). Эмбеддинг-вектор 512 float32, сравнение по cosine similarity.

Threshold tuning. Порог решения — критический параметр. При threshold 0.6 (cosine) типичный FPR на LFW benchmark — 0.001, TPR — 0.985. В production threshold нужно калибровать под реальный distribution: люди в масках, с изменившейся внешностью, в разных условиях освещения.

Liveness detection. В серьёзных production-системах нельзя обойтись без anti-spoofing: защита от фото, видео, 3D-маски. MiniFASNet — lightweight модель, работает на CPU. FaceX-Zoo содержит несколько предобученных liveness-детекторов.

Видеоаналитика

Видео — это последовательность кадров плюс временное измерение. Наивный подход — детектировать на каждом кадре — работает, но дорого.

Трекинг. ByteTrack и BoT-SORT — стандарт для multi-object tracking. Работают поверх любого детектора, добавляют persistent ID объектам между кадрами. Это даёт подсчёт объектов, треки движения, velocity.

Оптимизация. Не нужно обрабатывать каждый кадр. Для статичных сцен: детекция на каждом 5-10 кадре, между ними — трекер. Для детекции событий (человек вошёл в зону): background subtraction (OpenCV MOG2) как lightweight pre-filter перед нейросетевой детекцией.

Action Recognition. SlowFast, VideoMAE для классификации действий на видео. Тяжёлые модели, требуют значительных вычислений. Для production — ONNX export + TensorRT, либо оффлайн обработка.

Деплой CV-моделей

Онлайн инференс. Triton Inference Server (NVIDIA) — production-стандарт для serving CV-моделей. Поддерживает TensorRT, ONNX, PyTorch, dynamic batching, multiple instances. REST и gRPC API.

Edge deployment. ONNX Runtime на ARM/x86 CPU. TensorFlow Lite для мобильных устройств. OpenVINO для Intel CPU/GPU/VPU — часто даёт 2-3x прирост скорости на Intel железе по сравнению с ONNX Runtime.

Мониторинг качества. Для CV в продакшене мониторим: распределение prediction confidence, доля low-confidence предсказаний (индикатор OOD-данных), дрейф входных изображений через feature distribution (embeddings из backbone). Падение средней confidence с 0.87 до 0.71 за неделю — ранний сигнал о distribution shift.

Сроки и этапы

Прототип детектора на существующих данных — 1-2 недели. Production-система с оптимизацией под целевое железо — 4-8 недель. Полный цикл включая разметку данных (1000-5000 изображений) — 2-4 месяца. Стоимость зависит от объёма датасета, целевой платформы и требований к точности/latency.