Если говорить о внедрении систем видеомониторинга на стройку, то здесь стоит отметить важный фактор. Речь идёт об обучении модели непосредственно для внедрения на объект. В этом материале расскажу про данные, классы, разметку, особенности датасета и другие параметры, которые стоит учитывать при масштабировании системы.
Минимальный объём данных, необходимых для работы
Основываясь на своём опыте, скажу, что для обучения одного класса необходимо примерно 3-4 тысячи размеченных изображений. Это число не будет универсальным минимумом для любой нейросети, это больше рекомендуемый стартовый объём в рамках того подхода, с которым мы работаем.
Сложность классов, а также разнообразие условий здесь играют важную роль. Если объект крупный и его легко различить, то нам потребуется одно покрытие. Если же объект маленький и находится на заднем плане, то в таком случае необходимо другое покрытие. Иногда приходится использовать сотни тысяч реальных размеченных кадров, и тогда, как правило, применяется аугментация. Чтобы проверить, готова ли модель к production, нужно прогнать её на тестовой выборке. Если данных много — это хорошо, но важно понимать, представлены ли в этих данных условия, в которых системе предстоит работать.
Различия в моделях при разном количестве размеченных примеров
Если мы говорим о том, сколько примеров используется для обучения моделей (тысяча, десять тысяч или сто тысяч), то здесь нет универсальной зависимости по процентам качества. Итоговый результат всегда будет зависеть от того, насколько качественная выборка, разметка, какая исходная модель и насколько сложная задача.
В случае увеличения объёма важно понимать, какие примеры будут добавлены. Тысячи однотипных изображений могут вообще ничем не помочь, а вот если добавляются новые ракурсы, перекрытия, сложное освещение или редкие ситуации, то это будет намного полезнее. Итог здесь один — вместе с количеством данных нужно смотреть на их разнообразие.
Самые сложные классы для сбора данных
Есть такие примеры, которые очень тяжело собрать. К ним относятся редкие события. Это задымления, пожары, взрывы и несчастные случаи. Проблема этих примеров заключается в том, что они встречаются очень редко по сравнению с обычными рабочими ситуациями. Поэтому, если мы имеем большой объём данных, это не означает, что мы получили большую выборку нужных нам событий.
Иногда заказчики могут присылать специализированные запросы. Некоторые хотят контролировать загрязнение шин, складирование и освещение кранов, например. Чтобы выполнить эти задачи, приходится целенаправленно отбирать и размечать материалы.
В таком случае очень помогает накопленный архив, но для каждого запроса всё равно необходимо сформировать подходящую выборку и проверить, отражает ли она необходимые условия. Отмечу, что важно и различать объект и событие, потому что в некоторых ситуациях важен временной контекст и одного кадра в таком случае будет недостаточно.
Разметка данных
Данные можно размечать по-разному. На своём опыте расскажу, как это делаем мы. При разметке используется смешанный подход: мы размечаем часть данных внутри компании, а часть отдаём внешним командам. Благодаря такому способу организации распределяется большой объём работы, а также сохраняется внутренний контроль над качеством результата. Отмечу, что выполнение разметки и её приёмка — это разные этапы. Валидация разметки также идёт внутри компании, и в ней принимают участие специально обученные валидаторы и специалисты, работающие с командой Data Science.
Внутри нашей инфраструктуры был развёрнут CVAT, который связан с инструментами автоматического сбора датасета. Когда появляются новые материалы, то они направляются на очередные итерации разметки и дообучения. При этом подготовленная разметка проходит внутреннюю валидацию с участием специалистов, лишь после чего используется в обучении. При большом масштабе очень важно следить за качеством разметки. Мы не рассматриваем её как вспомогательную операцию. Она является самостоятельной частью разработки модели. Если появляются ошибки в классах, обнаруживаются пропущенные объекты и неправильно обозначенные границы, то создаются неверные обучающие сигналы. Разметка — это непрерывный цикл, и эта непрерывность показана на отрисованной мной схеме:

Датасет и специфика стройки
Внутри датасета компании более миллиона размеченных кадров, полученных с реальных видеозаписей на строительных площадках. Отмечу, что это объём исходных несинтетических данных. Все остальные варианты, которые мы получаем при помощи аугментаций, в это число не входят. В компании мы не наращиваем выборку искусственным образом за счёт идентичных кадров. Все эти данные собираются уже более трёх с половиной лет, поэтому удалось накопить материалы за все сезоны, при разных погодных условиях, освещённости и качестве видеосъёмки. В процессе внутреннего конкурентного анализа и общения с участниками отрасли наши специалисты пришли к мнению, что компания на данный момент располагает крупнейшим в России массивом размеченных реальных строительных кадров. Однако отмечу, что это именно оценка компании, а не результат независимого рейтинга.
Строительный датасет принципиально отличается от общих датасетов типа COCO и ImageNet из-за соответствия конкретной среде эксплуатации. Пока общие датасеты полезны за счёт обучения визуальным признакам и сравнительной оценки алгоритмов, строительный датасет представляет те условия и объекты, с которыми система непосредственно сталкивается на площадке. Для нас это: реальные ракурсы видеокамер, разные расстояния до объектов, различные перекрытия из-за техники или конструкций, изменение освещения или погоды, а также преобразование самого объекта. Важно и другое (отраслевые задачи): просто обнаружить человека или технику на площадке не то же самое, что и определить ситуацию, требующую внимания. Различия в особенностях датасетов можно увидеть на схеме:

На реальных видеозаписях факторы сочетаются так, что их потом сложно воспроизвести искусственно. При этом даже несинтетическое происхождение данных не гарантирует качество само по себе. В любом случае будет необходима разметка и достаточное разнообразие примеров.
Мы разработали модули, для большинства из которых не требуется адаптация моделей под новую площадку. Обычно внедрение готового решения занимает около недели. Такого результата мы смогли достигнуть за счёт как раз накопленной базы данных с разными условиями съёмки. Однако отмечу важный нюанс: необходимо различать типовое внедрение от нового специализированного запроса. Если заказчик хочет получить дополнительный сценарий, тогда необходимо дополнительно настраивать зоны и правила, собирать целевую выборку и дообучать модель. В таком случае внедрение продукта займёт цикл в пределах одного месяца. Но в конечном итоге конкретный объём работы зависит от задачи и учёта ракурсов камер заказчика.
Кстати, чтобы решать проблему сезонности, приходится сочетать реальные примеры с аугментациями, которые расширяют вариативность обучающих примеров. Однако реальные материалы в любом случае останутся основой. Если просто затемнить дневное изображение, то ночная съёмка с её шумом и засветами не воспроизведётся должным образом. Или, например, если объект полностью закроется пылью и будет неразличим, то дополнительное обучение здесь ничем не поможет. Важным фактором качества останутся именно условия видеосъёмки.
Дообучение и адаптация моделей
Большой накопленный датасет и уже работающие модели позволяют быстрее готовить новые сценарии. Ручная работа сокращается за счёт автоматизации сбора и передачи данных между этапами. При этом при специализированном запросе целевая выборка дособирается, проводится разметка и валидация, после чего идёт обучение модели и проверка результата перед выводом в production. Выше я упоминал, что срок внедрения может достигать одного месяца. В этот срок уже включён полный цикл адаптации, а не только вычислительный этап обучения.
Чтобы дать техническую оценку, мы используем precision (это доля правильных срабатываний), recall (доля обнаруженных целевых объектов или событий) и F1 (объединяется precision и recall в одном показателе). Качество измеряется на отдельной тестовой выборке, которая не участвует в обучении. Эти значения необходимо приводить вместе с описанием задачи и правил оценки. Помимо внутренних замеров, мы также сравниваем модели с другими российскими командами на общей выборке китайского строительного датасета.
В конечном итоге отмечу, что на качество будет влиять освещённость, размер объекта в кадре, перекрытия, погодные условия и характеристики видеосъёмки. При помощи разнообразного датасета можно учесть и эти изменения, но один средний показатель не сможет описать поведение модели во всех ситуациях. Чтобы провести содержательное сравнение, необходимо рассмотреть группы данных. В таком случае важно сохранять одинаковые правила оценки и учитывать объём каждой группы.
ссылка на оригинал статьи https://habr.com/ru/articles/1082180/