Чтобы подготовить данные для распознавания изображений, нужно пройти пять шагов: определить, что именно должна отвечать система, собрать снимки из тех условий, в которых она будет работать, описать классы письменно и разметить их с проверкой согласованности, разделить набор по объектам, а не по кадрам, и отдельно решить, что делать с редкими классами. Количество снимков стоит на последнем месте: чаще подводят их разнообразие и качество разметки.
Статья для тех, кто заказывает систему распознавания или собирает её сам. Как устроена услуга, цены и приёмка описаны на странице «Распознавание изображений на заказ». Общая подготовка данных для любого ИИ-пилота разобрана в статье «Как подготовить данные для ИИ-пилота», здесь только то, что специфично для снимков.
Шаг 1. Определите, что система должна ответить
Одни и те же фотографии можно разметить пятью способами, и от выбора зависят и стоимость разметки, и то, что вы получите на выходе. Поэтому начните с вопроса: какое решение примет человек, получив ответ системы?
| Если нужно | Форма ответа | Как размечаем | Цена ошибки в разметке |
|---|---|---|---|
| Решить «годно или нет» по снимку целиком | Класс на снимок | Один ярлык: «целое», «повреждённое», «нельзя оценить» | Невысокая, но мелкая деталь может задавать класс, и разметчик её не увидит |
| Показать, где находка | Рамка и класс | Прямоугольник вокруг каждого объекта или дефекта | Рамки у разных разметчиков не совпадают, из-за чего проверка находок идёт по пересечению и шумит |
| Оценить размер или площадь | Контур или маска | Обводка участка: трещина, коррозия, пятно | Самая дорогая; границы размыты, и два эксперта рисуют разные контуры |
| Найти похожие снимки | Список ближайших | Размечать не нужно, нужна проверочная пара «этот снимок и его правильные аналоги» | Нет эталона похожести: без проверочных пар качество поиска проверить нельзя |
| Заметить необычное | Оценка отклонения | Нормальные снимки без разметки и небольшая выборка отклонений для проверки | Нормой считается то, что попало в обучение, включая случайный фон |
Берите самую дешёвую форму ответа, при которой решение ещё принимается. Если вернуть партию на проверку можно по классу снимка, рамки не нужны. Если инженеру нужно ехать к конкретной опоре, класс снимка бесполезен без места. Частая ошибка: размечают рамками «на всякий случай», тратят время эксперта, а в работе используют только класс.
Затем проверьте главное условие: виден ли ответ на снимке. Покажите серию фотографий опытному сотруднику и спросите, что он решил бы. Если он колеблется или просит взять изделие в руки, нейросети информации тоже не хватит. Проверка занимает день.
Шаг 2. Соберите снимки из тех условий, в которых система будет работать
Модель учится на том, что ей показали. Если в обучении только удачные дневные снимки с одной камеры, на вторую камеру или на сумеречный свет она может не обобщиться. Поэтому набор собирается по условиям, а не по числу файлов:
| Что варьируется | Пример | Что произойдёт, если не собрать |
|---|---|---|
| Источник съёмки | Разные модели телефонов, камеры на разных постах, борты дронов | Хорошая работа на одной камере и провал на остальных |
| Освещение и погода | Утро и вечер, пасмурно и солнечно, зима и лето, лампы в помещении | Качество просядет с первой сменой сезона |
| Ракурс и расстояние | Сверху и сбоку, вплотную и издали, наклон камеры | Модель узнаёт объект только в привычной позе |
| Фон и окружение | Чистый стол и реальный склад, соседние предметы, надписи | Система запоминает фон, а не объект |
| Состояние объекта | Новый, грязный, мокрый, в упаковке, частично закрытый | Ложные срабатывания на грязь и упаковку |
Записывайте происхождение каждого снимка: откуда, когда, с какого устройства, к какому объекту относится. Эти метаданные нужны для деления набора и разбора ошибок: «система ошибается на снимках с третьей камеры» видно только по такой записи.
Не ограничивайтесь красивыми примерами. В обучении должны быть и неудачные снимки: размытые, тёмные, с пальцем в кадре. В работе такие снимки всё равно придут: либо их отсекает проверка пригодности на входе, либо модель должна уметь на них не отвечать. Для этого заведите отдельный класс «нельзя оценить»: он дешевле, чем неверный уверенный ответ.
Шаг 3. Опишите классы письменно и проверьте согласованность разметчиков
Самая частая причина слабой модели не архитектура, а противоречивая разметка. Если один эксперт называет царапиной то, что другой считает бликом, модель учится на противоречии и усредняет его. Лечится это не повторной разметкой, а инструкцией.
Что должно быть в инструкции
- Определение каждого класса словами. Не «серьёзный дефект», а «скол, при котором видна кромка и который затрагивает край детали».
- Примеры и контрпримеры. Для каждого класса несколько снимков «это он» и несколько «это не он, хотя похоже».
- Пограничные случаи. Что делать, если дефект наполовину закрыт, виден только часть объекта, снимок размыт.
- Класс «нельзя оценить». Разметчик не обязан угадывать, и это правило записано.
Как проверить согласованность
Возьмите небольшую общую выборку и дайте её двум разметчикам независимо друг от друга. Сравните ответы по классам: где они расходятся, там инструкция неполна. Расхождения разберите вместе с экспертом, внесите решения в инструкцию и повторите на новой выборке. Только после этого размечайте весь массив. Так вы узнаете потолок задачи: если два специалиста согласны не полностью, безошибочности от модели ждать бессмысленно.
Размечать удобнее в инструменте, который работает в вашем контуре и хранит историю правок: подходят открытые CVAT и Label Studio. Снимки ограниченного доступа не загружайте в облачные сервисы разметки: для таких данных они чаще всего не подходят по требованиям заказчика.
Шаг 4. Разделите набор так, чтобы метрика не врала
Набор делится на три части: обучающую, на которой модель учится, настроечную, по которой подбираются порог и параметры, и проверочную, которую никто не трогает до приёмки. Главный риск здесь утечка: когда почти одинаковые снимки оказываются по разные стороны границы и модель «узнаёт» их, а не распознаёт.
| Как делят | Когда допустимо | В чём подвох |
|---|---|---|
| Случайно по кадрам | Почти никогда для фотографий объектов | Соседние кадры одного объекта почти одинаковы; часть окажется в обучении, часть в проверке, метрика завышена |
| По объектам | Когда один объект снят многократно: опора, изделие, партия, клиент | Нужен идентификатор объекта в метаданных, его приходится собирать заранее |
| По времени, облёту, смене | Когда условия меняются со временем | Проверочная часть должна быть из более позднего периода, а не вперемешку |
| По источнику | Когда важно проверить новую камеру или нового поставщика | Если разбить иначе, эта способность не измеряется; отдельный срез нужен в любом случае |
Найдите также дубли и почти дубли: снимок, загруженный дважды, кадры серии с минимальным сдвигом, копии из разных папок. Поиск по сходству быстро собирает такие группы, и каждая группа уходит целиком в одну часть набора.
Проверочную часть при возможности размечайте отдельно и после прогона модели: так разметчик не видит ответов системы и не подстраивается под них. Критерии приёмки (полнота по классам, число ложных срабатываний, срезы по источникам) записывайте до обучения, как в статье «Видеоаналитика: как оценить точность до запуска»: принципы те же, только на входе фотографии.
Шаг 5. Что делать, когда брака и редких случаев мало
Редкие классы встречаются почти везде, где ищут дефекты: именно потому, что они редкие, их и ищут. Общая «точность» на таком наборе ничего не показывает: модель, отвечающая «дефекта нет» всегда, окажется права почти каждый раз. Считать нужно полноту и ложные срабатывания по каждому классу отдельно.
- Собирайте настоящие примеры целенаправленно. Попросите сотрудников фотографировать каждый найденный случай по единому порядку съёмки, настройте отбор из архива по записям о рекламациях и ремонтах.
- Ищите примеры в архиве моделью. Первая простая версия модели предлагает кандидатов, эксперт подтверждает или отклоняет, и разметка редких случаев идёт быстрее, чем просмотр архива целиком.
- Не рассчитывайте на искусственное размножение. Повороты, обрезки и изменение яркости делают модель устойчивее, но не заменяют новые случаи. Нарисованный или сгенерированный дефект даёт модели признак, которого в реальности может не быть.
- Сузьте постановку. Класс с горсткой примеров лучше объединить с близким или отложить, чем обещать его распознавание.
- Рассмотрите поиск отклонений от нормы. Он не требует примеров дефекта, но даёт ложные срабатывания и годится как фильтр перед человеком.
На вопрос «сколько снимков нужно» честный ответ: зависит от класса и проверяется опытом. Обучите модель на части набора и смотрите, как растёт качество на отложенной части. Если кривая идёт вверх, данных не хватает; если вышла на плато, дело в разметке или условиях съёмки.
Симптомы в данных: что вы видите и что за этим стоит
Когда модель ведёт себя странно, причину чаще всего находят в данных, а не в обучении. Таблица диагностики для первых недель проекта:
| Симптом | Вероятная причина | Что проверить и сделать |
|---|---|---|
| На проверке отлично, на живых снимках плохо | Утечка между обучением и проверкой, либо живые условия отличаются | Как делили набор; собрать небольшую выборку живых снимков и измерить отдельно |
| Хорошо на одной камере, плохо на другой | В обучении не было второго источника | Добавить снимки второй камеры, ввести срез по источнику |
| Модель путает два соседних класса | Классы определены нечётко или разметчики расходятся | Сравнить ответы двух разметчиков на этой паре, уточнить инструкцию |
| Много ложных срабатываний на одном виде фона | Фон оказался признаком класса | Добавить такие фоны в набор без дефектов, пересобрать |
| Редкий класс почти не находится | Мало примеров или они однотипны | Собрать новые случаи, объединить близкие классы, снизить порог в режиме подсказки |
| Качество упало через несколько месяцев | Изменились камера, свет, поставщик, сезон | Включить контрольные кадры и срез по времени, дообучить на свежих исправлениях |
Набор данных не заканчивается на первом обучении: исправления эксперта пополняют его, а контроль после запуска описан на странице MLOps и развёртывание моделей.
Персональные данные, права и хранение набора
На фотографиях часто есть то, ради чего их не снимали: лица сотрудников и посетителей, номера автомобилей, документы на столе, вывески. В файлах остаётся служебная информация, в том числе место и время съёмки. До сбора набора ответьте на несколько вопросов:
- Нужно ли это в кадре? Если нет, закрывайте лишнее на входе или меняйте ракурс съёмки.
- Кто видит исходники? Разметчики, разработчики, внешние подрядчики: доступ выдаётся по списку.
- Где хранится набор? Персональные данные граждан России обычно должны храниться на серверах в России, а материалы ограниченного доступа не уходят во внешние облачные сервисы.
- Чьи это фотографии? Основание для сбора снимков клиентов, подрядчиков и сотрудников определяет юрист заказчика, мы даём технические меры.
- Сколько хранить? Срок хранения исходников и разметки записывается заранее.
Набор данных нужно версионировать так же, как код: при каждом пополнении фиксируется состав, чтобы модель можно было воспроизвести и сравнить с предыдущей. Разметка вашего архива ценнее самой модели: модель переобучается, а размеченный набор восстанавливается долго, поэтому право на него закрепляется в договоре.
Что делаем мы и с чего начать
Без подрядчика на подготовку уходит примерно неделя. Порядок:
- Сформулировать вопрос к снимку и решение, которое по нему принимается.
- Отобрать серию снимков из разных условий и показать эксперту.
- Выписать классы словами и найти пограничные случаи.
- Посчитать, сколько настоящих примеров каждого класса есть в архиве.
- Записать, на каких объектах и когда сделаны снимки.
Если хотите передать это нам, начинаем с обследования: 200 000 ₽ и 2–3 недели за одну задачу и один источник снимков, 350 000 ₽ и 3–4 недели при нескольких источниках и системах. На выходе постановка, письменные классы, проверка видимости ответа на ваших образцах, план разметки и вилка бюджета. Стоимость вычитается из первого этапа, если продолжаете с нами. Лёгкий пилот на ваших снимках стоит 150 000–400 000 ₽. Мы не опознаём людей по лицам, не анализируем медицинские снимки и не поставляем камеры. Код лежит в вашем репозитории с первого коммита. Цены и сроки — на странице «Тарифы», услуга — на странице «Распознавание изображений на заказ».
Частые вопросы
Сколько снимков нужно для обучения модели?
Универсального числа нет. Оно зависит от постановки, разнообразия условий съёмки и редкости класса. Практичный способ: обучить модель на части набора и посмотреть, как растёт качество на отложенной части при увеличении объёма. Если рост продолжается, нужны ещё данные, если кривая вышла на плато, причина в разметке или условиях съёмки.
Чем размечать изображения?
Подходят открытые инструменты вроде CVAT и Label Studio, которые разворачиваются в вашем контуре и хранят историю правок. Важнее инструмента инструкция по классам и проверка согласованности двух разметчиков. Для материалов ограниченного доступа облачные сервисы разметки чаще всего не подходят по требованиям заказчика.
Можно ли увеличить набор искусственно?
Повороты, обрезки и изменение яркости делают модель устойчивее, но не заменяют новые случаи. Нарисованный дефект рискует научить модель признаку, которого в жизни нет. Надёжнее копить настоящие примеры и искать их в архиве.
Нужна ли разметка, если нужен поиск по фото?
Для поиска похожих снимков разметка классов не нужна, но нужны проверочные пары: снимок и его правильные аналоги. Без них невозможно измерить, находит ли система то, что вы имеете в виду, или только схожий фон.
Что делать, если эксперты спорят о границе дефекта?
Зафиксировать решение в инструкции с примерами и контрпримерами, затем проверить на новой выборке, что два разметчика теперь согласны. Если полного согласия нет, это потолок задачи: добавьте класс «нельзя оценить» или оставляйте спорные случаи человеку.
Как делить набор, если один объект снят много раз?
По объектам, а не по кадрам. Все снимки одной опоры, изделия или партии должны попасть в одну часть набора. Для этого в метаданных нужен идентификатор объекта. При случайном делении по кадрам метрики завышаются, и на новых снимках система проседает.
Можно ли отдать подготовку данных вам?
Да. Обследование покажет, что есть в архиве, какие классы можно описать и сколько примеров не хватает. Размечают ваши эксперты в вашем контуре, мы готовим инструкцию, инструмент и проверку согласованности. Разметка остаётся у вас.
Подойдут ли фотографии с телефонов сотрудников?
Да, если в обучении были такие же снимки, а на входе стоит проверка пригодности: размытые и тёмные фото возвращаются для пересъёмки. Свет и ракурс у телефонов разные, поэтому в наборе нужны и удачные, и неудачные кадры.