«Точность 98 %» в коммерческом предложении на систему контроля качества — это не хорошая новость и даже не плохая, это отсутствие информации. Возьмите модельную линию: 120 000 изделий в месяц, доля брака 2 %, то есть 2 400 дефектных изделий. Модель, которая на каждый кадр без раздумий отвечает «годен», угадает в 117 600 случаях из 120 000. Её точность — ровно 98 %, и при этом она не поймала ни одного дефекта.
Заказчику нужны две другие цифры. Первая — полнота: какую долю реальных дефектов система нашла. Вторая — точность сигнала: какая доля поднятых тревог оказалась настоящей. Эти две метрики связаны обратно, и подрядчик управляет ими одним числом — порогом уверенности. Общая логика двух метрик разобрана отдельно в материале про то, что прячут за точностью и полнотой; здесь мы считаем их в рублях именно для камеры на линии.
Дальше — арифметика на модельной линии, три сценария порога с деньгами, правило деления выборки, из-за нарушения которого цифра подрядчика оказывается завышенной вдвое, процедура приёмочного замера на 500 кадрах с ценой в рублях и регламент повторных измерений. Всё это считается на калькуляторе, и любую цифру ниже можно перепроверить.
Почему общая доля правильных ответов обманывает
Эффект называется перекосом классов и появляется всюду, где искомое событие редкое. Чем реже брак, тем выше «точность» бесполезной модели и тем меньше разница между ней и рабочей системой.
| Доля брака на линии | Дефектных изделий из 120 000 | «Точность» модели, которая всегда говорит «годен» | «Точность» рабочей модели с полнотой 88 % |
|---|---|---|---|
| 0,5 % | 600 | 99,5 % | 98,9 % |
| 2 % | 2 400 | 98,0 % | 98,8 % |
| 5 % | 6 000 | 95,0 % | 98,4 % |
Первая строка — самая неприятная. При доле брака 0,5 % рабочая система показывает меньше, чем модель-пустышка: она ловит 528 дефектов из 600, но поднимает 1 200 ложных тревог, и по общей доле правильных ответов проигрывает. Если приёмка идёт по одной цифре «точность», такую систему честно можно завернуть — и это будет ошибкой заказчика, а не подрядчика.
Доля реальных дефектов, которые система нашла. Считается только по дефектным изделиям: поймано 2 112 из 2 400 — полнота 88 %. Это та метрика, ради которой систему покупают, и та, которую первой роняет любое изменение условий съёмки.
Доля настоящих дефектов среди всех поднятых тревог. Из 3 312 сигналов настоящими оказались 2 112 — точность сигнала 63,8 %. Это метрика нагрузки на человека: она отвечает на вопрос, сколько годных изделий контролёр будет перебирать зря.
Сравнение в две колонки на общем фоне «линия 120 000 изделий, брак 2 %, дефектных 2 400». Левая колонка «Модель, которая всегда говорит „годен“»: крупно «98,0 %», ниже строки «поймано дефектов — 0», «ложных тревог — 0», «польза — нулевая». Правая колонка «Рабочая модель, порог 0,5»: крупно «98,8 %», ниже «поймано дефектов — 2 112 из 2 400», «ложных тревог — 1 200», «полнота 88 %, точность сигнала 63,8 %». Между колонками вертикальная выноска «разница 0,8 процентного пункта». Чертёжный стиль, подписи по-русски.
Порог не улучшает модель — он переносит ошибки
Модель отвечает не словом «брак», а числом уверенности от 0 до 1. Порог — граница, начиная с которой это число считается сигналом. Он не делает систему лучше: он решает, какие ошибки вы предпочитаете. Ниже — одна и та же модель на одной и той же линии при трёх порогах.
| Порог | Поймано дефектов из 2 400 | Полнота | Ложных тревог | Всего сигналов | Точность сигнала | Пропущено |
|---|---|---|---|---|---|---|
| 0,3 | 2 280 | 95 % | 4 350 | 6 630 | 34,4 % | 120 |
| 0,5 | 2 112 | 88 % | 1 200 | 3 312 | 63,8 % | 288 |
| 0,7 | 1 728 | 72 % | 380 | 2 108 | 82,0 % | 672 |
Обратите внимание: по строке 0,7 «точность сигнала 82 %» выглядит лучше всех, и именно её любят показывать в презентациях. При этом система пропускает 672 дефекта в месяц против 120 при пороге 0,3. Выбрать между строками нельзя, глядя на проценты, — только глядя на цену двух ошибок в рублях. Как эта цена собирается на производстве, мы разбирали в материале про контроль качества и брак на линии: пропущенный дефект, доехавший до клиента, обходится в 1 200 ₽, а ложная тревога стоит столько, сколько стоит разобраться со снятым изделием.
Между двумя расчётами не менялась ни модель, ни камера, ни разметка — менялось только то, что происходит с изделием после сигнала. Отсюда практическое следствие, которое стоит проговорить с подрядчиком до обучения первой версии: сначала проектируется реакция на сигнал, потом назначается порог, и только потом обсуждается точность. Обратный порядок даёт систему, которую через месяц выключают, потому что она «слишком часто срабатывает».
Двухлинейный график. Ось X — порог от 0,3 до 0,7 с отметками 0,3, 0,5, 0,7. Ось Y слева — проценты. Сплошная линия «полнота» идёт вниз: 95 %, 88 %, 72 %. Пунктирная линия «точность сигнала» идёт вверх: 34,4 %, 63,8 %, 82,0 %. Под каждой отметкой порога подписаны две суммы в рублях за месяц: при 0,3 — «170 100 ₽ / 14 934 000 ₽», при 0,5 — «352 800 ₽ / 4 425 600 ₽», при 0,7 — «808 680 ₽ / 2 098 400 ₽», с легендой «перепроверка 6 ₽ / остановка линии 3 400 ₽». Точка оптимума обведена в каждом сценарии. Чертёжный стиль, подписи по-русски.
Что делать с остатком ошибок
Ошибки обоих типов не устраняются — они маршрутизируются. Это стоит денег, планируется заранее и должно стоять в смете отдельной строкой, иначе через месяц после запуска выяснится, что «система работает, но контролёра не убрали». Контролёра действительно не убрали, и это нормально: у него изменилась работа, а не исчезла.
Вторая строка важнее первой. Выборочный контроль на выходе — единственный способ узнать про пропуски: сама система о них по определению не сообщает, потому что для неё эти изделия годные. Три процента потока ловят падение полноты на 10 процентных пунктов примерно за две недели — быстрее, чем квартальный замер, и намного быстрее, чем рекламация от клиента. Экономия на этой строке выглядит безобидно ровно до первого возврата партии, а стоимость такого возврата разобрана в материале про контроль качества и брак на производстве.
Если в системе четыре класса дефекта, средняя полнота 88 % может означать 97 % на трёх частых классах и 12 % на четвёртом, редком, — а именно он у вас и уезжает к клиенту. Требуйте метрики по каждому классу отдельно, и в акте тоже. Усреднение по классам — самый распространённый способ показать хорошую цифру, не соврав ни в одной букве.
Отложенная выборка: почему нельзя мерить на тех же кадрах
Модель, проверенная на кадрах, которые она видела при обучении, показывает завышенные цифры всегда. Это не жульничество подрядчика, а свойство самого метода: система запоминает конкретные изделия, а не признак дефекта. Проверка должна идти на кадрах, отложенных заранее и не участвовавших в обучении, — и здесь есть неочевидное правило.
Если 3 000 собранных кадров разделить случайно в пропорции 80 на 20, то в проверочную часть попадут кадры того же изделия, той же смены и той же партии сырья, что и в обучающую. Модель узнает не дефект, а конкретную деталь, и покажет полноту на 15–25 процентных пунктов выше настоящей. Делить надо по времени и по изделию: последняя неделя съёмки целиком уходит в отложенную выборку и не открывается до замера.
- Отложенная выборка снимается на других сменах, других партиях сырья и в другое время суток, чем обучающая. Три недели съёмки — обучение на первых двух, замер на третьей.
- Ни один кадр одного и того же физического изделия не должен оказаться и там, и там. При пересъёмке одного отложенного изделия получается 15–30 кадров — все они идут в одну часть.
- Отложенная выборка вскрывается один раз. Если по её результатам модель дообучили, выборка сгорела и для следующего замера нужна новая — это отдельная строка сроков, а не формальность.
- Хранится она у заказчика, а не у подрядчика. То же правило действует и для регресс-набора при обновлении модели, и по той же причине: проверяющая сторона не должна зависеть от проверяемой.
Схема из двух горизонтальных лент, каждая размечена на три недели съёмки. Верхняя лента подписана «Неправильно: случайное деление 80/20» — точки обучения и проверки перемешаны по всем трём неделям, справа результат «полнота 96 % на бумаге». Нижняя лента подписана «Правильно: деление по времени» — первые две недели сплошь закрашены как «обучение», третья неделя целиком как «отложенная выборка», справа результат «полнота 88 % в цехе». Между лентами вертикальная выноска «разрыв 8 процентных пунктов». Под лентами отбивка «ни один кадр одного изделия не попадает в обе части». Чертёжный стиль, подписи по-русски.
Приёмка: 500 кадров, собранных заказчиком
Единственная цифра, которой стоит верить на приёмке, получена на кадрах, которые собрали вы, и размечена человеком с вашей стороны. Процедура занимает две недели календарно и стоит меньше трёх процентов сметы пилота.
- 1Собрать 500 кадров, из них 150 дефектных
Естественная доля брака здесь не годится: при 2 % в пятистах кадрах будет всего 10 дефектных, и полнота измерится с погрешностью в десятки процентов. Выборка намеренно перевешивается — 150 дефектных и 350 годных. Кадры снимаются на разных сменах и партиях; дефектные изделия контролёр откладывает в коробку с ярлыком, как при подготовке к запуску видеоаналитики.
- 2Разметить эталон силами технолога
Эталон пишет тот, кто отвечает за критерий дефекта на производстве, а не тот, кто настраивал систему. Спорные кадры откладываются в отдельную папку и в замер не идут — их доля, кстати, сама по себе показатель: если технолог сомневается в 15 % кадров, письменного критерия дефекта у вас пока нет.
- 3Прогнать и посчитать обе метрики
Полнота считается прямо на 150 дефектных кадрах. А вот точность сигнала на такой выборке завышена и пересчитывается на естественную долю брака: при полноте 88 % и 1 % ложных модель даст 132 верных сигнала и 4 ложных, то есть 97 % на выборке — против 63,8 % в реальном цехе, где годных изделий в пятьдесят раз больше.
- 4Зафиксировать результат в акте
В акт идут обе метрики, объём и состав выборки, дата и фамилия разметчика эталона. Одна цифра «точность 98 %» в акте не значит ничего и не может быть проверена через полгода. Порядок оформления такого замера разобран в материале про то, как измерить качество ИИ на своих данных.
Горизонтальная лента из четырёх этапов слева направо. Этап 1 «Сбор 500 кадров: 150 дефектных, 350 годных — 10 смен, 1 815 ₽», результат «коробка образцов». Этап 2 «Эталонная разметка технологом — 2,8 часа, 3 080 ₽», результат «размеченная выборка и папка спорных». Этап 3 «Прогон и подсчёт — 6 часов инженера, 18 000 ₽», результат «полнота 88 %, точность сигнала 63,8 % после пересчёта». Этап 4 «Акт», результат «две метрики, состав выборки, дата, фамилия разметчика». Под лентой итоговая плашка «22 895 ₽ — 2,5 % от сметы пилота 905 940 ₽». Чертёжный стиль, подписи по-русски.
Дрейф: почему замеренная цифра живёт полгода
Полнота, полученная на приёмке, — это снимок условий того дня. Она сползает, и сползает предсказуемо: качество распознавания на восемьдесят процентов определяется не моделью, а физикой съёмки — светом, углом, разрешением на признак и чистотой объектива. Меняется физика — меняется цифра, а модель при этом продолжает уверенно выдавать числа. Общая механика этого явления разобрана в материале про деградацию качества ИИ со временем; ниже — конкретные причины именно для камеры на линии.
| Что произошло | Что происходит с полнотой | Как это ловится | Что делают |
|---|---|---|---|
| Новая партия сырья: другой оттенок, другая шероховатость | Падает на 10–25 процентных пунктов за одну смену | Контрольный прогон 100 кадров при каждой смене партии | Добор 200–400 кадров новой партии и дообучение |
| Плановая замена светильников в зоне контроля | Скачок вниз в один день, без предупреждения | Прогон после любых работ энергетика в зоне | Пункт в регламенте ППР: замена ламп согласовывается |
| Сезон и окно: зимой темнее, летом засветка | Плавает по времени суток на 5–10 пунктов | Сравнение метрик по сменам, а не в среднем | Кожух от внешнего света, собственная подсветка |
| Загрязнение объектива маслом и пылью | Медленное сползание за 3–6 недель | Еженедельный контрольный прогон | Чистка дважды в неделю как строка регламента |
| Новый поставщик тары или износ оснастки | Появляются типы дефектов, которых не было в обучении | Квартальный полный замер на 500 кадрах | Новый класс в разметке, отдельная строка сметы |
Эти 28 482 ₽ — не накрутка подрядчика, а обязательная часть владения системой, и в коммерческих предложениях её обычно нет. Полная раскладка месячной эксплуатации точки контроля вместе с хранением кадров и резервом на оптику приведена в разборе окупаемости зрения при разной доле брака.
Линейный график за 12 месяцев. Ось Y — полнота от 60 до 100 %, горизонтальная пунктирная линия «требование договора — 85 %». Линия стартует с 88 %, плавно сползает до 80 % к третьему месяцу с подписью «загрязнение объектива», возвращается на 88 % после отметки «чистка и прогон». На седьмом месяце резкий провал до 66 % с подписью «новая партия сырья», через две недели возврат к 87 % с отметкой «дообучение, 60 000 ₽». На десятом месяце ступенька вниз до 78 % с подписью «замена светильников в зоне контроля». Точки еженедельных прогонов отмечены мелкими засечками. Чертёжный стиль, подписи по-русски.
Как записать требование к точности в договор
Формулировка «точность распознавания не менее 95 %» не защищает никого: она не говорит, что за метрика, на каких данных, кем измерена и что происходит при отклонении. Рабочий пункт состоит из четырёх частей, и все четыре обязательны.
- 1Что меряем. Две метрики отдельно: полнота по классу дефекта и точность сигнала, пересчитанная на естественную долю брака. Пороговые значения разные: например, полнота не ниже 85 %, точность сигнала не ниже 55 %.
- 2На каких данных. Отложенная выборка из 500 кадров, собранная заказчиком на трёх сменах и не менее чем двух партиях сырья, ранее не предъявлявшаяся исполнителю. Состав выборки фиксируется в приложении.
- 3Кто размечает и кто считает. Эталон размечает технолог заказчика, прогон делает исполнитель в присутствии представителя заказчика, спорные кадры исключаются по согласованию до прогона.
- 4Что происходит при отклонении. Ступени, а не расторжение: первое отклонение — доработка за счёт исполнителя в срок 15 рабочих дней, второе — удержание части оплаты этапа, третье — право заказчика на выход. Как формулируются такие ступени, подробно разобрано в материале про метрики качества ИИ в договоре.
«Какую полноту вы гарантируете и на какой выборке будете её показывать?» Ответ «98 %» без уточнения выборки означает, что цифра получена на кадрах подрядчика. Ответ «назовём после двух недель съёмки на вашей линии» означает, что перед вами инженер. Второй ответ хуже звучит и лучше заканчивается — на этом же принципе построены наши гарантии на результат.
Когда точность мерить не надо
Есть три ситуации, в которых замер — трата денег и времени, и лучше признать это сразу.
- Письменного критерия дефекта нет. Пока два контролёра расходятся в оценке одного и того же изделия, эталонной разметки не существует, и мерить нечего: любая цифра будет измерять разногласие людей, а не работу модели. Сначала — критерий в измеримых величинах, потом замер.
- Признак физически не виден на кадре. Если дефект в 0,5 мм при поле зрения 400 мм занимает 2,4 пикселя, никакая модель его не найдёт, и замер только подтвердит это за 22 895 ₽. Проверяется расчётом миллиметров на пиксель за пятнадцать минут, до любых работ.
- Реакции на сигнал не предусмотрено. Если линию останавливать некому, а изделия всё равно идут дальше, разница между полнотой 72 % и 95 % не влияет ни на одно решение. Система в этом случае не средство контроля, а архив событий, и требования к точности к ней предъявлять бессмысленно.
И последнее замечание про соседнюю тему, которую регулярно смешивают с точностью. Детектор события на линии не устанавливает личность и не работает с биометрией: он отвечает «есть дефект» или «в зоне кто-то есть», но не «кто это». Биометрический режим обработки возникает ровно в тот момент, когда к системе добавляется ответ на вопрос «кто именно», и это не настройка модели, а отдельный проект с отдельным юридическим разбором. Смешивать две задачи в одном техническом задании — верный способ получить и завышенные требования к точности, и претензии по обработке персональных данных.
Одна цифра «точность» не проверяется. Две цифры на вашей выборке проверяются кем угодно и через год.
