Распознавание изображений на заказ: классификация снимков и поиск дефектов по фото

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

Пилот на ваших снимках — от 150 000 ₽Точность считаем на вашей выборке, готовых цифр не называемСнимки и модель остаются в вашем контуре, код у вас с первого коммита

С чем приходят

Когда фотографий много, а смотреть их некому

Снимки копятся и не разбираются

Фотоотчёты, снимки обходов, фото повреждений лежат в папках и мессенджерах. Их открывают, когда случился спор.

Разбор вручную идёт по-разному

Один сотрудник считает царапину браком, другой нет. Правило живёт в голове, а не в документе.

Готовый сервис распознавания не знает ваших объектов

Универсальные модели не отличают ваш тип изолятора от соседнего и не знают, что для вас считается повреждением упаковки.

Снимки нельзя отправлять наружу

На фото бывают люди, номера автомобилей, территория объекта. Для таких материалов внешние облачные сервисы чаще всего не подходят по требованиям заказчика.

Постановка

Пять постановок задачи: что система отвечает и чем это определяется

Постановку выбираем до разговора о модели: от неё зависят разметка и цена. Видео с камер разбираем на странице видеоаналитики, изделия на конвейере на странице контроля качества.

Постановка
Что нужно для разметки
Что получаем
Где ломается
ПостановкаКлассификацияснимок целиком
Что нужно для разметкиОдин класс на фото: «целое», «повреждённое», «нельзя оценить»
Что получаемСамая дешёвая разметка, простой подсчёт ошибок
Где ломаетсяКласс задаёт мелкая деталь в несколько пикселей; нет класса «нельзя оценить», и размытые снимки портят обучение
ПостановкаОбнаружение объектовчто и где на снимке
Что нужно для разметкиРамка вокруг каждого объекта и его класс
Что получаемНаходки с координатами, подсчёт, показ человеку
Где ломаетсяОбъекты мелкие или перекрывают друг друга; разметчики по-разному ведут границу рамки
ПостановкаСегментацияформа и площадь
Что нужно для разметкиКонтур каждого участка: трещина, коррозия, пятно
Что получаемРазмер и доля повреждённой поверхности, а не только факт наличия
Где ломаетсяСамая дорогая разметка; границы размыты, два эксперта рисуют разные контуры
ПостановкаПоиск похожихближайшие снимки архива
Что нужно для разметкиРазметка не нужна, нужны архив и векторное представление снимка
Что получаемПоиск по фото в каталоге, прежние случаи, проверка дублей
Где ломаетсяСистема находит схожий фон, а не тот же объект, если не настроить, по чему сравнивать
ПостановкаПоиск отклонений от нормыне похоже на обычное
Что нужно для разметкиМного снимков нормы и небольшая проверочная выборка отклонений
Что получаемПодходит, когда виды дефектов неизвестны или примеров почти нет
Где ломаетсяОтклонением считается и новый блик, и другой фон
Источники

Откуда приходят снимки и что мы делаем на входе

Качество определяют не только данные для обучения, но и то, какие фотографии придут завтра. Заготовка для разбора: на ваших процессах строки будут другими. Пример с аэроснимками описан в разборе аэроснимков ЛЭП.

Источник снимков
Типовая беда
К чему приводит
Что делаем на входе
Источник снимковТелефон сотрудникафотоотчёт, акт осмотра
Типовая бедаРазные телефоны, ракурсы, свет, пальцы в кадре
К чему приводитРазмытые и тёмные снимки
Что делаем на входеПроверка пригодности при загрузке, просьба переснять, подсказка по ракурсу
Источник снимковФото от клиентапретензия, возврат
Типовая бедаСнимает как получится, иногда присылает чужой или старый снимок
К чему приводитДубли и снимки не по заказу
Что делаем на входеПоиск повторов в архиве, сверка со временем и заказом, сомнительное в очередь человека
Источник снимковКамера на поступриёмка, весовая, склад
Типовая бедаКамера сдвигается, объектив пачкается, свет меняется по сезону
К чему приводитКачество падает постепенно, без явной поломки
Что делаем на входеКонтрольные кадры по расписанию, сравнение с эталоном, оповещение при сдвиге
Источник снимковСъёмка с дрона или обходинспекция протяжённого объекта
Типовая бедаОгромные архивы, дефект занимает малую часть кадра
К чему приводитРедкие находки среди пустых кадров
Что делаем на входеНарезка кадра на фрагменты, режим отбора кадров для инженера
Источник снимковАрхив каталогафото товаров и упаковки
Типовая бедаНет единого стандарта съёмки, имена файлов не совпадают с карточками
К чему приводитОдин товар в разных ракурсах и на разном фоне
Что делаем на входеПривязка к карточке по идентификатору, проверка дублей, группировка по похожести
Конвейер

Путь снимка от загрузки до решения

Модель — одна ступень из четырёх, остальные решают, будет ли система полезна людям.

Проверка пригодности

До модели снимок проходит простые проверки: размыт ли он, не пересвечен ли, не повторяет ли ранее загруженный. Негодный снимок возвращается отправителю с причиной, пока он ещё может переснять. Это дешевле, чем разбирать потом «ошибку» на фотографии, где ничего не видно.

Ответ модели и степень уверенности

Модель возвращает класс, степень уверенности и, для обнаружения, координаты. Порог подбирается по цене ошибки: пропущенное повреждение и лишняя проверка стоят по-разному, см. статью про порог уверенности. Он записывается в приёмку заранее.

Автоматическое решение, подсказка или очередь

  • Подсказка. Система показывает результат, а решение принимает человек. С этого режима начинаем почти всегда.
  • Очередь неуверенных. Уверенные случаи закрываются сами, сомнительные идут эксперту. Размер очереди измеряем на пилоте.
  • Автоматическое действие. Только там, где ошибка обратима, а проверка на отложенной выборке пройдена.

Журнал и обратная связь

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

Что может быть на фотографии, кроме предмета съёмки

В кадр попадают лица, номера автомобилей, документы на столе, а в файле остаётся место съёмки. Заранее решаем, что хранится и кто видит исходник. Людей по лицам мы не опознаём. Юридические вопросы согласий и сроков хранения решает юрист заказчика.

Дефекты

Поиск дефектов по снимкам: классификатор, детектор или поиск отклонений

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

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

Детектор возвращает рамку и тип дефекта. Он нужен, когда важно место (опора, участок, деталь), когда находок на снимке несколько и когда результат уходит в заявку на ремонт. Размечать дольше, а классы нужно описать письменно: иначе разметчики спорят о границах, и модель учится на противоречиях.

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

Три условия, без которых мы не беремся

  • Дефект виден на снимке. Если опытный эксперт не отличает его на хорошей фотографии, рассчитывать на нейросеть, как правило, не стоит. Скрытые под поверхностью повреждения на обычном снимке не видны.
  • Есть письменное определение класса. «Недопустимая царапина» описана так, чтобы два человека согласились на одних и тех же снимках.
  • Есть примеры. Для редкого класса сначала собираем примеры, потом обсуждаем модель. Подробности в статье «Как подготовить данные для распознавания изображений».
Приёмка

Как принимаем результат: что считаем и что записываем до начала

Готовых процентов точности у нас нет: они зависят от ваших снимков. Проверочные снимки откладываются до обучения и делятся по объектам, сменам или заказам, а не по кадрам: соседние фото одного объекта почти одинаковы и завышают метрики. Критерии подписываются до обучения.

Что считаем
Что записываем заранее
Чем подменяют
К чему приводит
Что считаемПолнота по классусколько находок не пропущено
Что записываем заранееДопустимая доля пропусков для каждого класса
Чем подменяютОбщая «точность», где почти все снимки без дефектов
К чему приводитХорошо на словах и плохо на редком классе, ради которого всё затевалось
Что считаемЛожные срабатываниясколько лишней работы у эксперта
Что записываем заранееДопустимое число лишних находок на сотню снимков
Чем подменяютСчитают найденное верно и не считают лишнее
К чему приводитЭксперт устаёт от шума и перестаёт доверять системе
Что считаемСрезы по источникамработает ли на всех камерах и объектах
Что записываем заранееРезультат по камере, объекту, сезону, освещению
Чем подменяютОдно среднее число на весь набор
К чему приводитСреднее скрывает источник, на котором система не работает
Что считаемДоля в очереди человекасколько остаётся людям
Что записываем заранееДопустимый размер очереди при выбранном пороге
Чем подменяютОбещание «закроем автоматически почти всё»
К чему приводитЭксперт просматривает всё, как раньше
Что считаемСкорость на вашем железеуспевает ли за потоком
Что записываем заранееВремя обработки партии заданного объёма у вас
Чем подменяютЗамер на нашем стенде
К чему приводитПилот проходит, а на вашем сервере система не успевает
Что делаем

Из чего состоит работа и сколько она стоит

Цены совпадают со страницей «Тарифы». Внутри вилки цену двигают постановка (рамка и контур размечаются дольше класса), редкость класса, число источников снимков и требования контура. Остановиться можно после любой ступени.

Обследование: одна задача и один источник снимков

Вопрос к снимку, образцы, проверка видимости ответа, письменные классы, вилка бюджета. Вычитается из первого этапа, если продолжаете с нами.

200 000 ₽ · 2–3 недели

Обследование: несколько источников и систем

Несколько источников и связь с учётом, хранилищем и заявками: схема обменов и требования к серверу.

350 000 ₽ · 3–4 недели

Обследование: контур с оборудованием

Снимки с производственной линии или площадки с особыми требованиями к контуру.

500 000 ₽ · 4–6 недель

Лёгкий пилот: проверка на ваших снимках

Разметка выборки, обучение, замер по протоколу, отчёт «что работает, что нет». Без подключения к боевым системам.

150 000–400 000 ₽ · 2–8 недель

Тяжёлый пилот: в рабочем окружении

Приём снимков из вашего источника, очередь эксперта, журнал, интеграция с учётом, подсказка на живом потоке.

400 000–1 200 000 ₽ · 2–3 месяца

Вывод в эксплуатацию

Опытная эксплуатация, дообучение на исправлениях, регламент проверки качества, передача исходников.

от 1 500 000 ₽ этапами по 300 000–700 000 ₽ · от 3 месяцев

Сопровождение

Контроль качества на новых снимках, дообучение, разбор инцидентов. Сверх пакета — 5 000 ₽ в час.

20 000 / 60 000 / 120 000 ₽ в месяц
Процесс

Как идёт работа

2–4 недели — Обследование: вопрос и образцы

Формулируем, на что отвечает снимок, смотрим образцы с вашим экспертом, записываем классы словами. Часть задач здесь честно уходит в «не наша».

Перед пилотом — Инструкция и эталон

Пишем инструкцию, два специалиста размечают общую выборку, расхождения возвращаем в инструкцию. Проверочную часть откладываем.

От 2 недель — Пилот на ваших снимках

Обучаем модель, подбираем порог под цену ошибки, считаем показатели по протоколу и срезам. Результат — отчёт с разбором ошибок.

1–3 месяца — Рабочее окружение

Подключаем источник, очередь эксперта и журнал. Первое время система только подсказывает.

Перед запуском — Приёмка

Прогон на отложенной выборке по критериям из договора, замер скорости на вашем оборудовании.

Дальше — расширение или сопровождение

Новые классы и источники по этапам, дообучение на исправлениях эксперта.

Контроль

Что остаётся у вас и чего мы не делаем

Остаётся у вас

  • Исходный код в вашем репозитории с первого коммита.
  • Модель, разметка, инструкция по классам и протокол испытаний.
  • Обучение и прогон на вашем оборудовании; развёртывание описано инструкцией.
  • Право остановиться после любой ступени: сделанное остаётся у вас по акту.

Мы этого не делаем

  • Не распознаём людей по лицам и не строим слежение за сотрудниками.
  • Не анализируем медицинские снимки для диагностики и не даём рекомендаций по лечению.
  • Не поставляем и не монтируем камеры и освещение.
  • Не делаем мобильное приложение для съёмки: загрузка идёт через адаптивную веб-страницу.
  • Не обещаем точность до того, как увидели снимки, не берём работы дешевле 150 000 ₽ и не дежурим круглосуточно.
Граница

Изображения, видео, документы и генерация: где проходит граница

Фотографии объектов, товаров, повреждений и снимки с обходов — это эта страница. Поток с камер и события во времени (человек вошёл в зону, остановился транспорт) — видеоаналитика. Текст на сканах и фотографиях документов — распознавание документов, а извлечение полей со сверкой описано на странице интеллектуальной обработки документов.

Поломки по данным оборудования — предиктивное обслуживание, модели по таблицам и рядам — разработка моделей машинного обучения. Контроль модели после запуска, когда меняются сезон, камеры и поставщики, — MLOps.

Инструменты

На чём собираем

Модели и обработка
  • Python, PyTorch для обучения
  • ONNX Runtime для работы на сервере и на площадке
  • OpenCV для проверки пригодности и подготовки кадров
  • Поиск по сходству: pgvector или Qdrant
Данные и развёртывание
  • PostgreSQL для результатов, порогов и журнала
  • S3-совместимое хранилище для снимков (своё или у выбранного вами хостера)
  • CVAT или Label Studio для разметки в вашем контуре
  • Docker, GitLab CI, версии моделей и порогов хранятся рядом с кодом
Материалы

Материалы по теме

Статья

Как подготовить данные для распознавания изображений

Разметка, разбиение, редкие классы и персональные данные на снимках: что сделать до пилота.

  • Постановка и разметка
  • Разбиение выборки
  • Редкие классы
Читать →
Разбор

Разбор аэроснимков ЛЭП: поиск дефектов

Типовая задача с редкими дефектами в больших архивах: нарезка кадров, деление по облётам, приёмка.

  • Редкие классы
  • Деление по облётам
  • Приёмка
Читать →
Статья

Порог уверенности модели: зачем он нужен

Как выбрать порог по цене ошибки и что делать с результатами ниже него.

  • Цена ошибки
  • Очередь человека
  • Проверка порога
Читать →
Заявка

Покажите снимки и вопрос, на который они должны отвечать

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

Спасибо, заявка отправлена. Ответим в течение рабочего дня.

Не удалось отправить. Напишите в телеграм или позвоните.

Вопросы

Частые вопросы: распознавание изображений на заказ

Сколько стоит разработка системы распознавания изображений?

Начинаем с обследования: 200 000 ₽ за одну задачу и один источник снимков, 350 000 ₽ при нескольких источниках и системах. Лёгкий пилот на ваших снимках стоит 150 000–400 000 ₽, тяжёлый в рабочем окружении 400 000–1 200 000 ₽, вывод в эксплуатацию от 1 500 000 ₽ этапами по 300 000–700 000 ₽. Обследование вычитается из первого этапа, если продолжаете с нами.

Сколько нужно снимков для обучения?

Универсального числа нет: оно зависит от постановки, разнообразия съёмки и редкости класса. Для редких дефектов важнее собрать примеры, чем выбирать модель. Достаточность проверяем на обследовании: обучаем на части набора и смотрим, как растёт качество на отложенной части.

Можно ли найти дефект, которого у нас почти нет в архиве?

Частично. Поиск отклонений от нормы учится на нормальных снимках и отмечает необычное, но даёт ложные срабатывания на новый свет и фон. Его используют как фильтр перед человеком. Обещать поиск дефекта, которого никто не видел, нельзя.

Модель будет работать на фотографиях с телефонов сотрудников?

Да, если на обучении были похожие фотографии, а на входе стоит проверка пригодности: размытые и тёмные снимки возвращаются отправителю. Приложение для съёмки мы не пишем, загрузка идёт через адаптивную веб-страницу.

Где обрабатываются снимки?

На вашем оборудовании или в вашем частном облаке: фотографии, разметка и модель не уходят во внешние сервисы. Если на снимках есть люди или номера автомобилей, заранее решаем, что хранить и что закрывать; юридические вопросы согласий остаются за юристом заказчика.

Как вы проверяете, что система работает?

На отложенной выборке, которая не участвовала в обучении и в подборе порога. Критерии записываются в договор до начала: полнота по классам, ложные срабатывания, срезы и время обработки на вашем оборудовании. Готовых процентов точности до знакомства со снимками мы не называем.

Кому принадлежат модель и разметка?

Вам. Исходный код, конфигурации, обученные модели и разметка передаются по акту, код лежит в вашем репозитории с первого коммита. Открытые компоненты остаются под своими лицензиями, их список входит в документацию.

Вы работаете только в Ростове-на-Дону?

Мы в Ростове-на-Дону, работаем с заказчиками по всей России: удалённо и в вашем контуре. Доступ к системам и обследование согласуем на старте с вашей службой безопасности.