«Точность 98 %» в коммерческом предложении на систему контроля качества — это не хорошая новость и даже не плохая, это отсутствие информации. Возьмите модельную линию: 120 000 изделий в месяц, доля брака 2 %, то есть 2 400 дефектных изделий. Модель, которая на каждый кадр без раздумий отвечает «годен», угадает в 117 600 случаях из 120 000. Её точность — ровно 98 %, и при этом она не поймала ни одного дефекта.

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

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

Почему общая доля правильных ответов обманывает

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

Доля брака на линииДефектных изделий из 120 000«Точность» модели, которая всегда говорит «годен»«Точность» рабочей модели с полнотой 88 %
0,5 %60099,5 %98,9 %
2 %2 40098,0 %98,8 %
5 %6 00095,0 %98,4 %

Первая строка — самая неприятная. При доле брака 0,5 % рабочая система показывает меньше, чем модель-пустышка: она ловит 528 дефектов из 600, но поднимает 1 200 ложных тревог, и по общей доле правильных ответов проигрывает. Если приёмка идёт по одной цифре «точность», такую систему честно можно завернуть — и это будет ошибкой заказчика, а не подрядчика.

Что это значитПолнота

Доля реальных дефектов, которые система нашла. Считается только по дефектным изделиям: поймано 2 112 из 2 400 — полнота 88 %. Это та метрика, ради которой систему покупают, и та, которую первой роняет любое изменение условий съёмки.

Что это значитТочность сигнала

Доля настоящих дефектов среди всех поднятых тревог. Из 3 312 сигналов настоящими оказались 2 112 — точность сигнала 63,8 %. Это метрика нагрузки на человека: она отвечает на вопрос, сколько годных изделий контролёр будет перебирать зря.

сравнениеrealnaya-tochnost-kompyuternogo-zreniya--01
Сравнение модели-пустышки с точностью 98 % и рабочей модели с точностью 98,8 % на 120 000 изделий

Сравнение в две колонки на общем фоне «линия 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,8 процентного пункта — это все 2 112 пойманных дефектов

Порог не улучшает модель — он переносит ошибки

Модель отвечает не словом «брак», а числом уверенности от 0 до 1. Порог — граница, начиная с которой это число считается сигналом. Он не делает систему лучше: он решает, какие ошибки вы предпочитаете. Ниже — одна и та же модель на одной и той же линии при трёх порогах.

ПорогПоймано дефектов из 2 400ПолнотаЛожных тревогВсего сигналовТочность сигналаПропущено
0,32 28095 %4 3506 63034,4 %120
0,52 11288 %1 2003 31263,8 %288
0,71 72872 %3802 10882,0 %672

Обратите внимание: по строке 0,7 «точность сигнала 82 %» выглядит лучше всех, и именно её любят показывать в презентациях. При этом система пропускает 672 дефекта в месяц против 120 при пороге 0,3. Выбрать между строками нельзя, глядя на проценты, — только глядя на цену двух ошибок в рублях. Как эта цена собирается на производстве, мы разбирали в материале про контроль качества и брак на линии: пропущенный дефект, доехавший до клиента, обходится в 1 200 ₽, а ложная тревога стоит столько, сколько стоит разобраться со снятым изделием.

Цена ошибок в месяц: перепроверка контролёром, 6 ₽ за ложную тревогу
Порог 0,3: пропуски 120 × 1 200 ₽ + ложные 4 350 × 6 ₽170 100 ₽
Порог 0,5: пропуски 288 × 1 200 ₽ + ложные 1 200 × 6 ₽352 800 ₽
Порог 0,7: пропуски 672 × 1 200 ₽ + ложные 380 × 6 ₽808 680 ₽
ИтогоОптимум — порог 0,3: чем дешевле перепроверка, тем ниже ставится порог
Та же модель, но каждая тревога останавливает линию: 3 400 ₽ за ложную
Порог 0,3: пропуски 120 × 1 200 ₽ + ложные 4 350 × 3 400 ₽14 934 000 ₽
Порог 0,5: пропуски 288 × 1 200 ₽ + ложные 1 200 × 3 400 ₽4 425 600 ₽
Порог 0,7: пропуски 672 × 1 200 ₽ + ложные 380 × 3 400 ₽2 098 400 ₽
ИтогоОптимум перевернулся: порог 0,7, и всё равно дороже в 12 раз — линию останавливать нельзя

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

графикrealnaya-tochnost-kompyuternogo-zreniya--02
Кривая: при росте порога полнота падает с 95 до 72 процентов, а точность сигнала растёт с 34 до 82

Двухлинейный график. Ось 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 ₽». Точка оптимума обведена в каждом сценарии. Чертёжный стиль, подписи по-русски.

Две метрики движутся в разные стороны — порог выбирает, какую из них жертвовать

Что делать с остатком ошибок

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

Очередь разбора при пороге 0,5, линия 120 000 изделий в месяц
Перепроверка ложных тревог: 1 200 изделий по 40 секунд — 13,3 часа по 550 ₽7 315 ₽/мес
Выборочный контроль на выходе, 3 % потока: 3 600 изделий по 10 секунд — 10 часов по 550 ₽5 500 ₽/мес
Итого12 815 ₽ в месяц — цена того, чтобы обе метрики оставались проверяемыми в эксплуатации

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

Средняя полнота по всем классам дефекта скрывает главное

Если в системе четыре класса дефекта, средняя полнота 88 % может означать 97 % на трёх частых классах и 12 % на четвёртом, редком, — а именно он у вас и уезжает к клиенту. Требуйте метрики по каждому классу отдельно, и в акте тоже. Усреднение по классам — самый распространённый способ показать хорошую цифру, не соврав ни в одной букве.

Отложенная выборка: почему нельзя мерить на тех же кадрах

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

Случайное деление выборки завышает результат вдвое

Если 3 000 собранных кадров разделить случайно в пропорции 80 на 20, то в проверочную часть попадут кадры того же изделия, той же смены и той же партии сырья, что и в обучающую. Модель узнает не дефект, а конкретную деталь, и покажет полноту на 15–25 процентных пунктов выше настоящей. Делить надо по времени и по изделию: последняя неделя съёмки целиком уходит в отложенную выборку и не открывается до замера.

  • Отложенная выборка снимается на других сменах, других партиях сырья и в другое время суток, чем обучающая. Три недели съёмки — обучение на первых двух, замер на третьей.
  • Ни один кадр одного и того же физического изделия не должен оказаться и там, и там. При пересъёмке одного отложенного изделия получается 15–30 кадров — все они идут в одну часть.
  • Отложенная выборка вскрывается один раз. Если по её результатам модель дообучили, выборка сгорела и для следующего замера нужна новая — это отдельная строка сроков, а не формальность.
  • Хранится она у заказчика, а не у подрядчика. То же правило действует и для регресс-набора при обновлении модели, и по той же причине: проверяющая сторона не должна зависеть от проверяемой.
схема процессаrealnaya-tochnost-kompyuternogo-zreniya--03
Схема деления выборки: правильное деление по неделям против неправильного случайного

Схема из двух горизонтальных лент, каждая размечена на три недели съёмки. Верхняя лента подписана «Неправильно: случайное деление 80/20» — точки обучения и проверки перемешаны по всем трём неделям, справа результат «полнота 96 % на бумаге». Нижняя лента подписана «Правильно: деление по времени» — первые две недели сплошь закрашены как «обучение», третья неделя целиком как «отложенная выборка», справа результат «полнота 88 % в цехе». Между лентами вертикальная выноска «разрыв 8 процентных пунктов». Под лентами отбивка «ни один кадр одного изделия не попадает в обе части». Чертёжный стиль, подписи по-русски.

Случайное деление даёт красивую цифру и никакой информации о цехе

Приёмка: 500 кадров, собранных заказчиком

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

  1. 1
    Собрать 500 кадров, из них 150 дефектных

    Естественная доля брака здесь не годится: при 2 % в пятистах кадрах будет всего 10 дефектных, и полнота измерится с погрешностью в десятки процентов. Выборка намеренно перевешивается — 150 дефектных и 350 годных. Кадры снимаются на разных сменах и партиях; дефектные изделия контролёр откладывает в коробку с ярлыком, как при подготовке к запуску видеоаналитики.

  2. 2
    Разметить эталон силами технолога

    Эталон пишет тот, кто отвечает за критерий дефекта на производстве, а не тот, кто настраивал систему. Спорные кадры откладываются в отдельную папку и в замер не идут — их доля, кстати, сама по себе показатель: если технолог сомневается в 15 % кадров, письменного критерия дефекта у вас пока нет.

  3. 3
    Прогнать и посчитать обе метрики

    Полнота считается прямо на 150 дефектных кадрах. А вот точность сигнала на такой выборке завышена и пересчитывается на естественную долю брака: при полноте 88 % и 1 % ложных модель даст 132 верных сигнала и 4 ложных, то есть 97 % на выборке — против 63,8 % в реальном цехе, где годных изделий в пятьдесят раз больше.

  4. 4
    Зафиксировать результат в акте

    В акт идут обе метрики, объём и состав выборки, дата и фамилия разметчика эталона. Одна цифра «точность 98 %» в акте не значит ничего и не может быть проверена через полгода. Порядок оформления такого замера разобран в материале про то, как измерить качество ИИ на своих данных.

Сколько стоит приёмочный замер на 500 кадрах
Сбор кадров: 10 смен по 20 минут контролёра — 3,3 часа по 550 ₽1 815 ₽
Эталонная разметка: 500 кадров по 20 секунд — 2,8 часа технолога по 1 100 ₽3 080 ₽
Прогон, подсчёт обеих метрик и отчёт: 6 часов инженера по 3 000 ₽18 000 ₽
Итого22 895 ₽ — 2,5 % от сметы пилота в 905 940 ₽
этапыrealnaya-tochnost-kompyuternogo-zreniya--04
Четыре этапа приёмочного замера: сбор кадров, эталон, прогон, акт — итого 22 895 рублей

Горизонтальная лента из четырёх этапов слева направо. Этап 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 ₽». Чертёжный стиль, подписи по-русски.

Две недели и 22 895 ₽ отделяют цифру подрядчика от проверяемого факта

Дрейф: почему замеренная цифра живёт полгода

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

Что произошлоЧто происходит с полнотойКак это ловитсяЧто делают
Новая партия сырья: другой оттенок, другая шероховатостьПадает на 10–25 процентных пунктов за одну сменуКонтрольный прогон 100 кадров при каждой смене партииДобор 200–400 кадров новой партии и дообучение
Плановая замена светильников в зоне контроляСкачок вниз в один день, без предупрежденияПрогон после любых работ энергетика в зонеПункт в регламенте ППР: замена ламп согласовывается
Сезон и окно: зимой темнее, летом засветкаПлавает по времени суток на 5–10 пунктовСравнение метрик по сменам, а не в среднемКожух от внешнего света, собственная подсветка
Загрязнение объектива маслом и пыльюМедленное сползание за 3–6 недельЕженедельный контрольный прогонЧистка дважды в неделю как строка регламента
Новый поставщик тары или износ оснасткиПоявляются типы дефектов, которых не было в обученииКвартальный полный замер на 500 кадрахНовый класс в разметке, отдельная строка сметы
Регламент контроля качества в месяц, одна точка контроля
Еженедельный автоматический прогон 100 кадров, 20 минут на разбор отчёта — 1,4 часа в месяц по 3 000 ₽4 200 ₽
Квартальный полный замер на 500 кадрах: 22 895 ₽ в пересчёте на месяц7 632 ₽
Дообучение при дрейфе: 3 раза в год по 60 000 ₽, в пересчёте на месяц15 000 ₽
Физика точки: чистка объектива и проверка ракурса дважды в неделю по 20 минут — 3 часа по 550 ₽1 650 ₽
Итого28 482 ₽ в месяц — 63 % от 45 000 ₽ полной эксплуатации точки

Эти 28 482 ₽ — не накрутка подрядчика, а обязательная часть владения системой, и в коммерческих предложениях её обычно нет. Полная раскладка месячной эксплуатации точки контроля вместе с хранением кадров и резервом на оптику приведена в разборе окупаемости зрения при разной доле брака.

графикrealnaya-tochnost-kompyuternogo-zreniya--05
График полноты за год: провал при смене партии, сползание от грязного объектива, возврат после дообучения

Линейный график за 12 месяцев. Ось Y — полнота от 60 до 100 %, горизонтальная пунктирная линия «требование договора — 85 %». Линия стартует с 88 %, плавно сползает до 80 % к третьему месяцу с подписью «загрязнение объектива», возвращается на 88 % после отметки «чистка и прогон». На седьмом месяце резкий провал до 66 % с подписью «новая партия сырья», через две недели возврат к 87 % с отметкой «дообучение, 60 000 ₽». На десятом месяце ступенька вниз до 78 % с подписью «замена светильников в зоне контроля». Точки еженедельных прогонов отмечены мелкими засечками. Чертёжный стиль, подписи по-русски.

Полнота не константа: без регламента она сползает молча

Как записать требование к точности в договор

Формулировка «точность распознавания не менее 95 %» не защищает никого: она не говорит, что за метрика, на каких данных, кем измерена и что происходит при отклонении. Рабочий пункт состоит из четырёх частей, и все четыре обязательны.

  1. 1Что меряем. Две метрики отдельно: полнота по классу дефекта и точность сигнала, пересчитанная на естественную долю брака. Пороговые значения разные: например, полнота не ниже 85 %, точность сигнала не ниже 55 %.
  2. 2На каких данных. Отложенная выборка из 500 кадров, собранная заказчиком на трёх сменах и не менее чем двух партиях сырья, ранее не предъявлявшаяся исполнителю. Состав выборки фиксируется в приложении.
  3. 3Кто размечает и кто считает. Эталон размечает технолог заказчика, прогон делает исполнитель в присутствии представителя заказчика, спорные кадры исключаются по согласованию до прогона.
  4. 4Что происходит при отклонении. Ступени, а не расторжение: первое отклонение — доработка за счёт исполнителя в срок 15 рабочих дней, второе — удержание части оплаты этапа, третье — право заказчика на выход. Как формулируются такие ступени, подробно разобрано в материале про метрики качества ИИ в договоре.
Один вопрос, который стоит задать на первой встрече

«Какую полноту вы гарантируете и на какой выборке будете её показывать?» Ответ «98 %» без уточнения выборки означает, что цифра получена на кадрах подрядчика. Ответ «назовём после двух недель съёмки на вашей линии» означает, что перед вами инженер. Второй ответ хуже звучит и лучше заканчивается — на этом же принципе построены наши гарантии на результат.

Когда точность мерить не надо

Есть три ситуации, в которых замер — трата денег и времени, и лучше признать это сразу.

  • Письменного критерия дефекта нет. Пока два контролёра расходятся в оценке одного и того же изделия, эталонной разметки не существует, и мерить нечего: любая цифра будет измерять разногласие людей, а не работу модели. Сначала — критерий в измеримых величинах, потом замер.
  • Признак физически не виден на кадре. Если дефект в 0,5 мм при поле зрения 400 мм занимает 2,4 пикселя, никакая модель его не найдёт, и замер только подтвердит это за 22 895 ₽. Проверяется расчётом миллиметров на пиксель за пятнадцать минут, до любых работ.
  • Реакции на сигнал не предусмотрено. Если линию останавливать некому, а изделия всё равно идут дальше, разница между полнотой 72 % и 95 % не влияет ни на одно решение. Система в этом случае не средство контроля, а архив событий, и требования к точности к ней предъявлять бессмысленно.

И последнее замечание про соседнюю тему, которую регулярно смешивают с точностью. Детектор события на линии не устанавливает личность и не работает с биометрией: он отвечает «есть дефект» или «в зоне кто-то есть», но не «кто это». Биометрический режим обработки возникает ровно в тот момент, когда к системе добавляется ответ на вопрос «кто именно», и это не настройка модели, а отдельный проект с отдельным юридическим разбором. Смешивать две задачи в одном техническом задании — верный способ получить и завышенные требования к точности, и претензии по обработке персональных данных.

Одна цифра «точность» не проверяется. Две цифры на вашей выборке проверяются кем угодно и через год.