Как выглядит приемка систем машинного зрения
Обе стороны довольны ровно до первого разбора пропущенного события
Сценарий повторяется от проекта к проекту почти дословно. В техническом задании написано «точность распознавания не менее 95 %». Через три месяца подрядчик приносит отчет: обучили детектор, на тестовой выборке mAP@0,5 равен 0,93, mAP@0,5:0,95 — 0,64, precision 0,96, recall 0,89. Цифры выглядят убедительно, графики обучения приложены, матрица ошибок нарисована. Акт подписывается. Система едет на объект.
Через месяц эксплуатации выясняется, что дрон, зашедший со стороны леса на высоте двести метров, системой не увиден — оператор нашел его на записи глазами. Начинается разбор, и он упирается в стену. Подрядчик показывает акт: метрика в договоре выполнена, вот отчет. Заказчик показывает запись: цель в кадре была, тревоги не было. Оба правы. В договоре записана величина, которая не запрещает пропускать такие цели.
Дальше в тексте показано, что противоречия между отчетом и записью с объекта нет. Наш собственный замер по одной и той же сборке дает mAP@0,5:0,95 равный 0,575 в целом по выборке и 0,163 на целях мельче шестнадцати пикселей. Полнота на рабочем пороге в целом 0,882, на тех же мелких целях 0,482. Разбор инцидента, в котором дрон был виден как пятно в двадцать пикселей, попадает во вторую цифру, а в акте стоит первая. Ошибки в отчете нет: усреднение сработало ровно так, как устроено.
Здесь нет ничьей злой воли. Подрядчик берет метрику, которую печатает его инструмент обучения по умолчанию [7]. Заказчик берет формулировку, которая выглядит понятной. Метрика была придумана для сравнения научных работ на общем наборе данных [1, 3], и для этой задачи она хороша. Проблема начинается там, где число из научного протокола переезжает в приемочный акт, не меняя определения и не приобретая ни одного условия применения.