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

Статья для тех, кто заказывает систему распознавания или собирает её сам. Как устроена услуга, цены и приёмка описаны на странице «Распознавание изображений на заказ». Общая подготовка данных для любого ИИ-пилота разобрана в статье «Как подготовить данные для ИИ-пилота», здесь только то, что специфично для снимков.

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

Шаг 1. Определите, что система должна ответить

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

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

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

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

Шаг 2. Соберите снимки из тех условий, в которых система будет работать

Модель учится на том, что ей показали. Если в обучении только удачные дневные снимки с одной камеры, на вторую камеру или на сумеречный свет она может не обобщиться. Поэтому набор собирается по условиям, а не по числу файлов:

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

Записывайте происхождение каждого снимка: откуда, когда, с какого устройства, к какому объекту относится. Эти метаданные нужны для деления набора и разбора ошибок: «система ошибается на снимках с третьей камеры» видно только по такой записи.

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

Шаг 3. Опишите классы письменно и проверьте согласованность разметчиков

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

Что должно быть в инструкции

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

Как проверить согласованность

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

Размечать удобнее в инструменте, который работает в вашем контуре и хранит историю правок: подходят открытые CVAT и Label Studio. Снимки ограниченного доступа не загружайте в облачные сервисы разметки: для таких данных они чаще всего не подходят по требованиям заказчика.

Шаг 4. Разделите набор так, чтобы метрика не врала

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

Как делятКогда допустимоВ чём подвох
Случайно по кадрамПочти никогда для фотографий объектовСоседние кадры одного объекта почти одинаковы; часть окажется в обучении, часть в проверке, метрика завышена
По объектамКогда один объект снят многократно: опора, изделие, партия, клиентНужен идентификатор объекта в метаданных, его приходится собирать заранее
По времени, облёту, сменеКогда условия меняются со временемПроверочная часть должна быть из более позднего периода, а не вперемешку
По источникуКогда важно проверить новую камеру или нового поставщикаЕсли разбить иначе, эта способность не измеряется; отдельный срез нужен в любом случае

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

Проверочную часть при возможности размечайте отдельно и после прогона модели: так разметчик не видит ответов системы и не подстраивается под них. Критерии приёмки (полнота по классам, число ложных срабатываний, срезы по источникам) записывайте до обучения, как в статье «Видеоаналитика: как оценить точность до запуска»: принципы те же, только на входе фотографии.

Шаг 5. Что делать, когда брака и редких случаев мало

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

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

На вопрос «сколько снимков нужно» честный ответ: зависит от класса и проверяется опытом. Обучите модель на части набора и смотрите, как растёт качество на отложенной части. Если кривая идёт вверх, данных не хватает; если вышла на плато, дело в разметке или условиях съёмки.

Симптомы в данных: что вы видите и что за этим стоит

Когда модель ведёт себя странно, причину чаще всего находят в данных, а не в обучении. Таблица диагностики для первых недель проекта:

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

Набор данных не заканчивается на первом обучении: исправления эксперта пополняют его, а контроль после запуска описан на странице MLOps и развёртывание моделей.

Персональные данные, права и хранение набора

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

  • Нужно ли это в кадре? Если нет, закрывайте лишнее на входе или меняйте ракурс съёмки.
  • Кто видит исходники? Разметчики, разработчики, внешние подрядчики: доступ выдаётся по списку.
  • Где хранится набор? Персональные данные граждан России обычно должны храниться на серверах в России, а материалы ограниченного доступа не уходят во внешние облачные сервисы.
  • Чьи это фотографии? Основание для сбора снимков клиентов, подрядчиков и сотрудников определяет юрист заказчика, мы даём технические меры.
  • Сколько хранить? Срок хранения исходников и разметки записывается заранее.

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

Что делаем мы и с чего начать

Без подрядчика на подготовку уходит примерно неделя. Порядок:

  1. Сформулировать вопрос к снимку и решение, которое по нему принимается.
  2. Отобрать серию снимков из разных условий и показать эксперту.
  3. Выписать классы словами и найти пограничные случаи.
  4. Посчитать, сколько настоящих примеров каждого класса есть в архиве.
  5. Записать, на каких объектах и когда сделаны снимки.

Если хотите передать это нам, начинаем с обследования: 200 000 ₽ и 2–3 недели за одну задачу и один источник снимков, 350 000 ₽ и 3–4 недели при нескольких источниках и системах. На выходе постановка, письменные классы, проверка видимости ответа на ваших образцах, план разметки и вилка бюджета. Стоимость вычитается из первого этапа, если продолжаете с нами. Лёгкий пилот на ваших снимках стоит 150 000–400 000 ₽. Мы не опознаём людей по лицам, не анализируем медицинские снимки и не поставляем камеры. Код лежит в вашем репозитории с первого коммита. Цены и сроки — на странице «Тарифы», услуга — на странице «Распознавание изображений на заказ».

Частые вопросы

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

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

Чем размечать изображения?

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

Можно ли увеличить набор искусственно?

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

Нужна ли разметка, если нужен поиск по фото?

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

Что делать, если эксперты спорят о границе дефекта?

Зафиксировать решение в инструкции с примерами и контрпримерами, затем проверить на новой выборке, что два разметчика теперь согласны. Если полного согласия нет, это потолок задачи: добавьте класс «нельзя оценить» или оставляйте спорные случаи человеку.

Как делить набор, если один объект снят много раз?

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

Можно ли отдать подготовку данных вам?

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

Подойдут ли фотографии с телефонов сотрудников?

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