Компьютерное зрение в смартфоне: рассортировка объектов по фото

Современные смартфоны превратились в мощные вычислительные платформы, способные решать задачи, ранее требовавшие промышленное оборудование․ Одной из таких задач является рассортица (сортировка, градация, калибровка) объектов по фотографии․ От сельского хозяйства до логистики и бытовых нужд, компьютерное зрение (Computer Vision) в вашем кармане открывает новые горизонты автоматизации․

Как это работает: Технологическая база

Процесс рассортицы по фото на телефоне строится на конвейере компьютерного зрения:

  1. Получение изображения: Камера смартфона фиксирует объект или группу объектов․ Важно: освещение, ракурс и разрешение напрямую влияют на точность․
  2. Предобработка: Приложение корректирует яркость, контраст, удаляет шумы, выравнивает перспективу (если фото сделано под углом)․
  3. Детекция (Обнаружение): Нейросеть (обычно архитектуры YOLO, EfficientDet, RT-DETR) находит границы каждого объекта (Bounding Boxes) или их точные контуры (Segmentation, Mask R-CNN, YOLO-Seg)․
  4. Классификация и Регрессия: Для каждого найденного объекта модель предсказывает класс (сорт, вид, дефект) и/или числовые параметры (диаметр, длина, площадь, вес)․
  5. Постобработка и Отчет: Агрегация данных: подсчет количества, расчет процента брака, построение гистограмм распределения по размерам, экспорт в CSV/Excel/JSON․

Основные сценарии использования

Агросектор и пищевая промышленность

  • Калибровка плодов и овощей: Определение диаметра яблок, картофеля, цитрусовых, томатов прямо в ящике или на конвейере (через телефон на штативе);
  • Оценка качества: Выявление внешних дефектов: вмятины, гниль, пятна, механические повреждения, зараженность вредителями․
  • Сортировка зерна и бобовых: Анализ пробы на наличие примесей, сломанных зёрен, определение класса натура․

Промышленность и логистика

  • Подсчет деталей: Быстрый инвентаризационный учет мелких деталей (болты, гайки, шайбы, электронные компоненты) по фото корзины․
  • Контроль геометрии: Замер длины пиломатериалов, профилей, труб, кабелей без рулетки․
  • Идентификация маркировки: Чтение DataMatrix, QR-кодов, штрих-кодов и OCR-распознавание текста на этикетках для автоматической сортировки партий․

Строительство и геология

  • Анализ фракции щебня/песка: Определение гранулометрического состава по фото кучи или пробы на поддоне (метод «цифровой ситы»)․
  • Сортировка плитки/кирпича: Выявление сколов, трещин, геометрических отклонений․

Бытовые и нишевые задачи

  • Нумизматика/Филателия: Автоматическое определение года чеканки, состояния (UNC, AU, XF), оценка стоимости монет и марок․
  • Коллекционирование карт (TCG): Сканирование коллекций Magic: The Gathering, Pokemon, Yu-Gi-Oh для инвентаризации и поиска цен․
  • Сортировка мусора/вторсырья: Помощь в раздельной сборке: определение типа пластика (PET, HDPE, PP) по маркировке или форме бутылки․

Обзор инструментов: От готовых приложений до DIY-решений

Готовые мобильные приложения (No-Code / Low-Code)

Подходят для стандартных задач, не требуют программирования․

Категория Примеры / Направление Особенности
Агро-сканеры FruitSizer, AgroScout, CropX, специализированные приложения заводов упаковки Калибровка под конкретные культуры, интеграция с ERP, работа офлайн․
Промышленный подсчет CountThings, PartCounter, StockCount Обучение под пользовательские детали (Few-shot learning), экспорт в Excel․
Гранулометрия Split-Online, WipFrag, Fragalyzer (мобильные версии) Требуют эталонного объекта (масштабной линейки/шара) на фото для калибровки пикселей в мм․
Универсальные конструкторы Roboflow (мобильный деплой), Nyckel, Google Vertex AI (AutoML) + кастомный фронтенд Позволяют загрузить свою модель и сделать под неё простое приложение за часы․

Самостоятельная разработка (Custom Development)

Если готовых решений нет, путь лежит через обучение собственной модели․

Этапы создания своего решения:

  1. Сбор датасета: 200–500+ фото объектов в реальных условиях (разное освещение, фон, перекрытия)․
  2. Разметка (Annotation): CVAT, LabelImg, Roboflow Annotate, Makesense․ai․ Нужны bounding boxes (детекция) или маски (сегментация) + классы/атрибуты (размер, сорт)․
  3. Обучение (Training):
    • Облако: Roboflow Train, Ultralytics HUB, Google Colab (YOLOv8/v9/v10, RT-DETR)․
    • Локально: GPU (NVIDIA CUDA) для больших датасетов․
  4. Экспорт и Оптимизация: Конвертация в ONNX, TensorFlow Lite (TFLite), CoreML (для iOS), NCNN / MNN (кроссплатформенные C++ инференс-движки)․ Квантизация (INT8) критична для скорости на телефоне․
  5. Мобильное приложение:
    • iOS: Swift + Vision Framework / CoreML․
    • Android: Kotlin + TensorFlow Lite Task Library / MediaPipe / PyTorch Mobile․
    • Кроссплатформенно: Flutter + tflite_flutter / onnxruntime / YOLO-OPENCV; React Native + vision-camera + ML Kit․

Критические факторы качества (Best Practices)

Освещение — это 50% успеха

Тени, блики, пульсация ламп накаливания/люминесцентных ламп (мерцание на частоте 50/60 Гц) убивают точность․

  • Используйте диффузное световое поле (softbox, световой куб, кольцевой фонарик с диффузором)․
  • Избегайте смешанного света (дневной + искусственный)․
  • Для движущихся объектов (конвейер) нужна стробоскопическая подсветка или очень короткая выдержка (высокий ISO)․

Геометрия и Калибровка

Чтобы перевести пиксели в миллиметры/граммы, нужен эталон․

  • Коврик с сеткой / шахматной доской (ArUco / AprilTag маркеры)․
  • Монетка известного диаметра / линейка в кадре․
  • Калибровка камеры (искривление объектива) — особенно для широкоугольных модулей (0․5x)․

Фон и Сегментация

Сложный фон (тряпка, коробка, грязный пол) усложняет детекцию․

  • Используйте однотонный контрастный фон (зеленый/синий экран, белый пластик)․
  • Обучайте модель на фонах, максимально приближенных к производственным․
  • Сегментация (Mask R-CNN, YOLOv8-Seg) позволяет точно отделить объект от фона и измерить форму․

Производительность на устройстве (On-device Inference)

  • Модель: YOLOv8n / YOLOv9t / YOLOv10n (nano/tiny версии), баланс скорости и точности․
  • Квантизация: INT8 дает ускорение в 2-4 раза на NPU/DSP мобильных чипов (Snapdragon, Apple Silicon, MediaTek APU) с минимальной потерей точности․
  • Разрешение входа: 320×320 или 416×416 пикселей достаточно для детекции, 640×640 — для мелких объектов․ Не используйте 1280+ на телефоне — будет тормозить․
  • Термотиттинг: Длительная работа нагружает процессор -> телефон греется -> частота падает -> FPS проседает․ Нужен пассивный охлаждающий корпус или паузы․

Архитектура промышленного решения «Телефон на штативе»

Для стабильной работы в цеху/складе телефон не держат в руках․ Типичная схема:

  1. Статив / Кронштейн с фиксацией телефона (MagSafe / клемма)․
  2. Световая коробка (Light Box) с управляемыми LED-лентами (PWM димминг для устранения мерцания)․
  3. Питание: PD-зарядка (Power Delivery) + параллельная работа от сети (bypass заряда), чтобы не убивать аккумулятор и не перегреваться․
  4. Триггер съемки:
    • Программный: детектор движения в превью камеры (Motion Detection)․
    • Аппаратный: фотоэлемент / концевик на конвейере -> ESP32/Arduino -> USB OTG / Bluetooth -> команда на телефон․

Правовые и организационные аспекты

  • Поверка СИ (Средств Измерений): Если результаты рассортицы влияют на расчеты с покупателями/продавцами (вес, класс, цена), телефон + приложение должны быть включены в Госреестр СИ и проходить поверку․ Обычные приложения это не проходят, нужны сертифицированные комплексы (например, на базе rugged-смартфонов с закрепленным ПО)․
  • Персональные данные: Если на фото попадают люди (операторы), нужна анонимизация (блюр лиц) или согласие на обработку ПДн (152-ФЗ)․
  • Безопасность (InfoSec): На секретных производствах запрещены камеры․ Нужен rugged-смартфон без камер (есть такие модели) или камера, физически отключаемая/пломбируемая, либо стационарные промышленные камеры, а телефон — только как контроллер/дисплей․

Будущее: Edge AI и Генеративные модели

На горизонте 2025–2027 гг․:

  • SAM b>Zero-shot детекция (OWL-ViT, Grounding DINO, YOLO-World): Найти объекты по текстовому запросу («найди все яблоки с гнилью») без переобучения модели․
  • Мультимодальные модели на устройстве (MobileVLM, LLaVA-Edge, Gemini Nano): Телефон сам описывает дефект словами: «Глубокое вмятине на боковой грани, диаметр 1․2 см, класс брака 2″․
  • Федеративное обучение: Модели улучшаются прямо на телефонах операторов без ухода фото в облако․
  • AR-оверлеи (ARCore / ARKit): Наложение масок сортировки на экран в реальном времени: зеленый — проходит, красный, брак, цифры размера над каждым плодом․

Чек-лист: С чего начать внедрение завтра?

  1. Определите один конкретный кейс (не «сортировка всего», а «калибровка яблок сорта Гала в ящиках 20кг»)․
  2. Сделайте 50–100 тестовых фото в реальных условиях (своим телефоном, своим светом)․
  3. Попробуйте разметку в CVAT или Roboflow (бесплатно для малых объемов)․
  4. Обучите YOLOv8n-seg в Google Colab (бесплатный GPU T4)․
  5. Экспортируйте в TFLite (INT8) и запустите в демо-приложении TFLite Object Detection или YOLOv8 TFLite Demo на телефоне․
  6. Оцените FPS, точность (mAP), удобство․ Если «летит» — пишите ТЗ на продакшн-приложение и жёсткий стенд․

Резюме: Рассортица по фото через телефон, это уже не футуризм, а рабочий инструмент для пилотных проектов, малых предприятий, входного контроля и мобильных бригад․ Ключ к успеху — не в «магии ИИ», а в качественном освещении, жесткой фиксации геометрии, правильной разметке данных и оптимизации модели под железо конкретного смартфона․ Начните с малого, измеряйте метрики и масштабируйте то, что приносит деньги․