Все, что разработано и протестировано в идеальных «лабораторных» условиях, может оказаться под угрозой в реальных условиях. На бумаге идеальные условия в аэродинамической трубе могут заставить дизайнера поверить в то, что он сконструировал лучший в мире гоночный автомобиль Формулы-1. Но в ветреный апрельский день на португальском побережье испытательные модели могут буквально потерпеть фиаско. То же самое касается видеоаналитики, и почему тестирование в реальных пользовательских средах важно для обеспечения действенности алгоритмов машинного обучения для конкретных случаев и сценариев использования.

Тренировка перед тестированием

Перед тестированием в реальных условиях необходимо разработать и обучить алгоритмы машинного обучения — например, те, что используются для обнаружения и распознавания объектов в видеоаналитике.

Чтобы разработать программное обеспечение с видеоаналитикой на основе глубокого или машинного обучения, необходимо собрать большие объемы данных. При видеонаблюдении это обычно изображения и клипы с людьми, транспортными средствами или другими объектами, представляющими интерес. Учитывая широту этих объектов, требуемые наборы данных могут быть огромными.

Чтобы сделать данные распознаваемыми для машины или компьютера, необходим процесс аннотации данных, с помощью которого соответствующие объекты классифицируются и маркируются. Аннотированные данные должны охватывать достаточно большое количество разнообразных выборок, актуальных для контекста, в котором будет использоваться аналитическое приложение. К сожалению, аннотирование данных — это, в основном, ручная и трудоемкая задача.

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

Методы обучения машинному обучению

Обучение алгоритму, основанному на машинном обучении, может осуществляться тремя основными способами:

  • Обучение с учителем: модель учится делать точные прогнозы;
  • Обучение без учителя: модель учится определять кластеры;
  • Обучение с подкреплением: модель учится на ошибках.

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

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

В обучении без учителя используются алгоритмы для анализа и группировки немаркированных наборов данных. Это не распространенный метод обучения в индустрии видеонаблюдения, поскольку модель требует большого количества калибровок и испытаний, а качество все еще может быть непредсказуемым. Наборы данных должны иметь отношение к аналитическому программному обеспечению, но не должны иметь четкой маркировки

Ручная работа с аннотациями исключается при обучении без учителя, но количество изображений или видео, необходимых для обучения, должно быть весомо увеличено на несколько порядков. На этапе обучения модель, которую необходимо обучить, определяет общие функции в наборах данных, поддерживаемые структурой обучения. На этапе развертывания это позволяет группировать данные в соответствии с шаблонами, а также обнаруживать аномалии, которые не вписываются ни в одну из изученных групп.

Обучение с подкреплением используется, например, в робототехнике, системе “умный дом” и промышленной автоматизации, а также в планировании бизнес-стратегии, но из-за необходимости большого количества обратной связи этот метод сегодня имеет ограниченное применение в видеонаблюдении. Обучение с подкреплением — это принятие подходящих действий для максимизации потенциального вознаграждения в конкретной ситуации; вознаграждение, которое становится больше, когда модель делает правильный выбор. Алгоритм не использует пары данных / меток для обучения, а вместо этого оптимизируется путем тестирования своих решений посредством взаимодействия с окружающей средой при измерении вознаграждения. Цель алгоритма — изучить политику действий, которые помогут максимизировать вознаграждение.

Тестирование перед развертыванием и в реальных условиях

После обучения модели ее необходимо тщательно протестировать, как правило, в сочетании автоматизированной части с обширным тестированием в реальных ситуациях развертывания. В автоматизированной части приложение сравнивается с новыми наборами данных, которые модель не видит во время обучения. Если эти тесты не соответствуют ожидаемым, процесс начинается заново: собираются новые обучающие данные, создаются или уточняются аннотации, и модель повторно обучается.

После достижения желаемого уровня качества начинается полевое испытание. В этом тесте приложение подвергается реальным сценариям. Количество и вариации зависят от области применения: чем уже область применения, тем меньше вариантов необходимо проверять; чем шире охват, тем больше требуется тестов. Результаты снова сравниваются и оцениваются, а это повторно может привести к тому, что процесс начнется заново, если результаты окажутся не там, где должны быть. Другой потенциальный результат может заключаться в определении предварительных условий, объясняющих известный сценарий, в котором приложение не рекомендуется или рекомендуется использовать только частично.

Однако открыть приложение видеоаналитики для реальных сценариев и камер видеонаблюдения — это не то же самое, что запустить приложение в реальном мире. Развертывание, также называемое логическим выводом или прогнозированием, представляет собой процесс выполнения обученной модели машинного обучения в системе видеонаблюдения, отслеживающей реальные жизненные сцены, чтобы проверить, использует ли алгоритм то, что он изучил на этапе обучения, для получения желаемого результата. Только на этом этапе — когда «чистые» данные, используемые в процессе разработки и тестирования, заменяются реальными данными (качество которых может сильно отличаться), выясняется, подходит ли алгоритм для той цели, для которой был разработан.

Тестирование видеоаналитики: часто упускают из виду

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

Аналитика видеонаблюдения будет продолжать развиваться, повышая точность и производительность, но зачастую она разрабатывается в идеальных условиях. Несовершенный мир, в котором мы живем, может подорвать любой алгоритм, и проверка этих недостатков очень важна.

Несовершенства не вызваны автоматически самим приложением — чаще всего они вызваны несоответствием ожиданий. Это означает, что тестирование не только поможет найти недостатки или ограничения, но и весомо улучшит понимание общих возможностей видеоаналитики. В свою очередь, это поможет подготовить установку IP камеры видеонаблюдения наилучшим образом и даже приведет к возможным изменениям самой сцены (например, освещения).