AI-система визуального контроля качества продуктов питания

Человеческий глаз устаёт, и к концу смены дефекты на линии начинают ускользать от внимания. Мы разрабатываем AI-системы визуального контроля, которые инспектируют каждый продукт круглосуточно, без потери концентрации. Наша команда реализует проект под ключ — от аудита и настройки освещения до внедрения машинного зрения и последующей поддержки.
Часто задаваемые вопросы

AI-визуальный контроль качества продуктов питания

На производственной линии гнилое яблоко в партии премиум-сорта может остаться незамеченным — человеческий глаз устаёт, внимание падает к концу смены. Мы ставим машинное зрение на базе computer vision и YOLOv8, которое инспектирует каждый продукт 24/7 без скидок на усталость. Автоматизированный визуальный контроль снижает количество ошибочно пропущенных дефектов на 80% и сокращает долю ручного труда до минимума. Система использует три камеры (верх + два бока) для многоракурсной съёмки, что критично для дефектов вроде ушибов яблок, видимых только под определённым углом. Точность детекции — до 98% для типовых дефектов. Окупаемость системы — от 6 до 12 месяцев при производительности от 5 тонн в смену.

Основные сложности визуального контроля

Освещение — ключевой фактор. Ушиб яблока виден только при определённом угле света. Решение — многоракурсная съёмка (3–4 камеры) или поляризованный свет, который подавляет блики. Без правильного освещения модель не отличит свежий плод от битого.

Субъективный стандарт. Оценка свежести рыбы по цвету жабр или прозрачности глаз требует обученной модели на узких признаках. Мы используем мультиспектральные камеры (NIR) для мяса и птицы — в ближнем ИК диапазоне кровоподтёки видны вне зависимости от цвета кожи.

Скорость конвейера. При скорости 0.3 м/с и ширине ленты 1.2 м нужно обработать кадр за 15–20 мс. На Jetson Orin мы укладываемся в 12 мс для 720p — с детекцией YOLOv8m и цветовой проверкой.

Как AI справляется с вариациями освещения?

Модель обучается на синтетически изменённых изображениях: добавление шума, изменение яркости, контраста, имитация разных источников света. Также применяется адаптивная нормализация гистограммы перед инференсом. В production-системе мы фиксируем калибровку освещения и мониторим отклонения через спектрофотометр.

Почему точность зависит от размера датасета?

Модель должна видеть все вариации дефекта: разный размер, ориентацию, освещение. На 4200 изображениях яблок (3 сорта) мы достигли recall 98.7% по гнили. Если датасет меньше 2000, модель переобучается и плохо обобщает. Оптимальный объём — 3000–5000 размеченных кадров на продукт.

Типичные задачи и методы

Пример программного кода для инспекции
import cv2
import numpy as np
from ultralytics import YOLO
import segmentation_models_pytorch as smp
import torch
from PIL import Image

class FoodQualityInspector:
    def __init__(self, config: dict):
        self.detector = YOLO(config['detection_model'])
        self.seg_model = smp.Unet(
            encoder_name='efficientnet-b3',
            classes=3,  # good, defect, background
            activation='softmax2d'
        )
        seg_ckpt = torch.load(config['seg_model'])
        self.seg_model.load_state_dict(seg_ckpt)
        self.seg_model.eval()
        self.color_standards = config.get('color_standards', {})
        self.defect_area_threshold = config.get('max_defect_ratio', 0.03)

    def inspect(self, image: np.ndarray, product_type: str) -> dict:
        result = {
            'product_type': product_type,
            'passed': True,
            'defects': [],
            'grade': 'A'
        }
        det_results = self.detector(image, conf=0.4)
        defect_area_total = 0
        for box in det_results[0].boxes:
            cls = self.detector.model.names[int(box.cls)]
            bbox = list(map(int, box.xyxy[0]))
            area = ((bbox[2]-bbox[0]) * (bbox[3]-bbox[1]))
            img_area = image.shape[0] * image.shape[1]
            defect = {
                'type': cls,
                'bbox': bbox,
                'area_ratio': area / img_area,
                'confidence': float(box.conf)
            }
            result['defects'].append(defect)
            defect_area_total += area / img_area
        if product_type in self.color_standards:
            color_result = self._color_check(image, product_type)
            result['color_analysis'] = color_result
            if not color_result['in_range']:
                result['defects'].append({
                    'type': 'color_deviation',
                    'deviation': color_result['deviation']
                })
        critical_defects = [d for d in result['defects'] if d['type'] in ['mold', 'rot', 'foreign_object']]
        if critical_defects:
            result['passed'] = False
            result['grade'] = 'REJECT'
        elif defect_area_total > self.defect_area_threshold:
            result['grade'] = 'C'
        elif result['defects']:
            result['grade'] = 'B'
        return result

    def _color_check(self, image: np.ndarray, product_type: str) -> dict:
        hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
        standard = self.color_standards[product_type]
        lower = np.array(standard['hsv_lower'])
        upper = np.array(standard['hsv_upper'])
        mask = cv2.inRange(hsv, lower, upper)
        in_range_ratio = mask.sum() / 255 / mask.size
        return {
            'in_range': in_range_ratio > standard.get('min_ratio', 0.6),
            'ratio': float(in_range_ratio),
            'deviation': float(1 - in_range_ratio)
        }

Специфика по категориям продуктов

Фрукты и овощи

Основные дефекты — гниль, ушибы, трещины, посторонние включения. Ключевая сложность — ушиб яблока виден только при определённом освещении. Решение: многоракурсная съёмка (3–4 камеры) или поляризованный свет.

Мясо и птица

Кровоподтёки, загрязнения, неполная разделка. Мультиспектральная камера (NIR диапазон) лучше стандартного RGB для обнаружения кровоподтёков.

Хлеб и выпечка

Трещины корки, посторонние включения, недопёк. Задача высококонтрастная — работает хорошо.

Рыба

Свежесть определяется по цвету жабр, прозрачности глаз. Требует обученной модели на специфических признаках.

Сравнение методов детекции по продуктам

Продукт Основные дефекты Рекомендуемая модель Дополнительные датчики
Яблоки Гниль, ушиб, трещина YOLOv8 + ResNet Поляризованный свет
Курица Кровоподтёк, неполная разделка EfficientDet NIR камера
Хлеб Трещины корки, включения YOLOv8 Стандартное RGB
Рыба Цвет жабр, прозрачность глаз EfficientNet-b4 NIR + высокое разрешение

Кейс: линия сортировки яблок, 8 т/час (из нашей практики)

Конвейерная лента 1.2м шириной, скорость 0.3 м/с, 3 камеры (верх + 2 боковых). Задача — сортировка на 3 категории: Premium (нет дефектов), Standard (мелкие), Juice (крупные дефекты).

  • Модель: YOLOv8m, дообученный на 4200 изображениях яблок (3 сорта)
  • Классы: bruise, rot_spot, scar, crack, size_small, size_large
  • Производительность: обработка 1 кадра 720p за 12ms на Jetson Orin

Результаты после 2 недель эксплуатации:

  • Точность классификации Premium/Standard: 96.2%
  • Точность обнаружения гнили (recall): 98.7%
  • Потери от неправильной сортировки снизились на 68% vs. ручной контроль (экономия до $14k–20k в месяц)

Что входит в работу: доставка "под ключ"

  1. Аудит производственной линии — оценка освещения, скорости конвейера, доступного места
  2. Сбор и разметка датасета — от 2000 изображений с аннотациями дефектов
  3. Обучение модели — YOLOv8, EfficientNet или Transformer-based архитектура (выбор зависит от требований по скорости и точности)
  4. Инференс-инжиниринг — оптимизация для запуска на Jetson, GPU-сервере или облаке (Triton, ONNX)
  5. Интеграция с конвейером — синхронизация камер, пульсация сортировщиков, протоколы OPC UA/Modbus
  6. Документация и обучение операторов — инструкции, регламенты, дашборд
  7. Гарантия — 6 месяцев поддержки модели (дообучение при появлении нового дефекта)

Сроки разработки

Продукт Срок разработки
Детектор дефектов одного продукта 4–6 недель
Мультипродуктовая система (3–5 видов) 8–12 недель
С интеграцией в производственную линию 10–16 недель

Консультация и пилотный проект

Для оценки вашего проекта свяжитесь с нами — проведём аудит линии и предложим решение под ваш бюджет и сроки. Закажите пилотный проект на две недели, чтобы увидеть точность на своей продукции. Получите консультацию по внедрению AI-инспекции на вашей линии.

Наш опыт: 10 внедрённых систем в пищевой промышленности, сертификаты на соответствие ISO 9001 и HACCP.

Направления AI-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139