Разработка системы детекции дефектов на производстве (Visual Inspection)

На конвейере оператор может пропустить дефект из-за усталости. Через час монотонной работы точность обнаружения падает до 70%. Машинное зрение позволяет снизить брак до 0.5% и ниже — это не просто автоматизация, а реальный результат. Наша команда разрабатывает системы visual inspection более 5 лет,

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

Часто задаваемые вопросы

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

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1003

На конвейере оператор может пропустить дефект из-за усталости. Через час монотонной работы точность обнаружения падает до 70%. Машинное зрение позволяет снизить брак до 0.5% и ниже — это не просто автоматизация, а реальный результат. Наша команда разрабатывает системы visual inspection более 5 лет, выполнено 15+ внедрений на линиях металлообработки, сборки электроники и упаковки.

Применяем современные методы компьютерного зрения: детекцию аномалий без разметки, обученную детекцию на YOLOv8 и их комбинации. Системы работают круглосуточно и при правильной настройке превосходят человека по выявлению дефектов. Выгода: снижение брака, экономия на контролёрах, повышение пропускной способности.

Какие дефекты детектируем и какими методами

Тип дефекта Примеры Метод
Поверхностные Царапины, трещины, вмятины Anomaly Detection / Детекция
Размерные Неправильный размер, форма Измерение через CV
Сборочные Отсутствие компонента, неправильное положение Детекция + верификация
Цветовые Пятна, неравномерная окраска Classification / Anomaly
Текстурные Пористость, расслоение Anomaly Detection

Как работает anomaly detection без размеченных дефектов

Разметка дефектных примеров дорога — тысячи долларов за небольшой набор изображений. Методы anomaly detection решают эту проблему: модель обучается только на бездефектных изображениях и выявляет любое отклонение. Согласно бенчмарку MVTec AD, PatchCore достигает 99.1% AUROC на уровне изображений.

import torch from anomalib.models import PatchCore from anomalib.data import MVTec from anomalib import TaskType class ProductionAnomalyDetector: def __init__(self, model_type: str = 'patchcore'): # PatchCore best performer on MVTec-AD benchmark, код без изменений self.model = PatchCore( backbone='wide_resnet50_2', pre_trained=True, coreset_sampling_ratio=0.1, num_neighbors=9 ) def train(self, normal_images_dir: str): self.model.fit(normal_images_dir) def predict(self, image_path: str) -> dict: result = self.model.predict(image_path) return { 'anomaly_score': float(result.pred_score), 'is_defective': result.pred_label == 1, 'anomaly_map': result.anomaly_map, 'defect_regions': self._extract_regions(result.anomaly_map) } 

PatchCore даёт передовые показатели на бенчмарке MVTec AD: Image-level AUROC 99.1%, Pixel-level AUROC 98.1%, обучение 10 минут на 200 нормальных изображениях. Это позволяет внедрить детекцию за 4–6 недель без дорогой разметки. PatchCore превосходит EfficientAD на 2% AUROC на этом бенчмарке.

Когда стоит использовать supervised детекцию

Если типы дефектов известны и есть размеченная выборка, используем YOLOv8. Дропаем дообученную модель на инференс с латентностью менее 50 мс. Сравнение: supervised подход на 200 размеченных дефектах даёт mAP 0.95, в то время как anomaly detection — 0.91. Разметка требует времени и денег, но precision выше.

from ultralytics import YOLO import cv2 import numpy as np class DefectDetector: def __init__(self, model_path: str, confidence: float = 0.5): self.model = YOLO(model_path) self.confidence = confidence self.critical_defects = ['crack', 'deep_scratch', 'hole'] self.minor_defects = ['surface_scratch', 'small_dent', 'discoloration'] def inspect(self, image: np.ndarray) -> dict: results = self.model(image, conf=self.confidence) defects = [] for box in results[0].boxes: defect_type = self.model.names[int(box.cls)] defects.append({ 'type': defect_type, 'severity': 'critical' if defect_type in self.critical_defects else 'minor', 'bbox': box.xyxy[0].tolist(), 'confidence': float(box.conf), 'area_px': self._bbox_area(box.xyxy[0]) }) verdict = 'REJECT' if any(d['severity'] == 'critical' for d in defects) else \ 'QUARANTINE' if defects else 'PASS' return {'verdict': verdict, 'defects': defects, 'defect_count': len(defects)} 

Какие типичные ошибки возникают при внедрении visual inspection

  • Недостаточное освещение — нестабильный свет ведёт к ложным срабатываниям. Решение: стробоскоп с синхронизацией или равномерное освещение с контролем.
  • Плохая калибровка камеры — искажение перспективы снижает точность измерений. Нужна регулярная калибровка по мишени.
  • Игнорирование вариативности нормальных изделий — anomaly detection может браковать допустимые отклонения. Собирайте репрезентативную выборку нормы.
  • Latency не укладывается в такт конвейера — если время инференса превышает цикл, деталь уходит в отбраковщик с опозданием. Запасайтесь GPU или используйте TensorRT.

Как система интегрируется с конвейером

Для встраивания в производственную линию критична синхронизация:

  • Trigger: датчик (фотобарьер) фиксирует деталь в зоне съёмки → сигнал камере
  • Exposure control: стробоскоп синхронизирован с камерой (freeze motion)
  • Latency: от триггера до решения менее 100 мс для большинства линий
  • Rejection mechanism: пневматический толкатель или дивертер срабатывает по сигналу
class ConveyorInspectionSystem: def __init__(self, camera, detector, plc_client): self.camera = camera self.detector = detector self.plc = plc_client def on_trigger(self, trigger_signal): image = self.camera.capture() result = self.detector.inspect(image) if result['verdict'] in ['REJECT', 'QUARANTINE']: delay_ms = self.calculate_transport_delay() self.plc.schedule_rejection(delay_ms, result['verdict']) self.log_result(result) 

Процесс работы: от аудита до ввода в эксплуатацию

Этап Что делаем Результат
1. Аудит производства Изучаем тип деталей, дефекты, освещение, скорость конвейера Техническое задание с метриками
2. Прототипирование Собираем 200–500 изображений, обучаем модель, тестируем на вашей линии Демо-система с отчётом о точности
3. Интеграция Устанавливаем камеру, освещение, синхронизацию; разворачиваем инференс на edge/сервере Интегрированная система с API
4. Тестирование Прогоняем 5000+ деталей, сравниваем с ручным контролем Акт приёмки с подтверждёнными метриками
5. Гарантийная поддержка 6 месяцев мониторинга, обновление модели при изменении продукции Стабильная работа 24/7

Что входит в работу

  • Обученная модель (ансамбль или единая)
  • Контейнер инференса (Docker)
  • Документация по эксплуатации и интеграции
  • Обучение операторов (1–2 дня)
  • Гарантия 6 месяцев
  • Пост-релиз: дообучение модели при изменении материалов (1–2 дня)

Результаты на производстве

На металлических деталях (царапины, трещины) достигнуты следующие метрики:

  • Recall дефектов (PatchCore): 96–99%
  • Precision: 91–97%
  • Throughput: до 1200 деталей/час при latency 80 мс
Масштаб проекта Срок
Пилот: 1 тип детали, аномалия 4–6 недель
3–5 типов деталей, известные дефекты 8–12 недель
Многопозиционная линия, реалтайм 12–20 недель

Чтобы оценить применимость computer vision на вашем производстве, свяжитесь с нами — мы проведём бесплатный аудит и предоставим прототип за 2 недели. Получите консультацию — пришлём подробный гайд по внедрению visual inspection.