Как интегрировать распознавание лиц и объектов с помощью ip-камер?

Предварительно, в районе есть 200+ аналоговых камер на ПЦН, но у этих камер нет распознавания лиц или объектов. Можно ли реализовать распознавание лиц на этих камерах? Есть ли какие-то предпосылки, которыми должны обладать эти камеры? Как я могу загрузить изображение, которое отправляют эти камеры, и обработать его?


person José C. Arbildo López    schedule 19.12.2017    source источник
comment
Вы уже поняли? работаю над той же идеей   -  person Innocent    schedule 19.09.2018


Ответы (1)


Поскольку ваш вопрос не касается конкретной проблемы кодирования, а скорее фокусируется на общей концепции решения задачи распознавания образов, я хотел бы дать вам некоторый обзор шагов, которые необходимо рассмотреть. Как вы уже заметили, я кое-что писал о распознавании образов (PR). Ну, это то, что вы хотите сделать, помимо анализа шаблонов, который на самом деле является шагом 2.

Давайте начнем с конвейера PR следующим образом:

1. Получение сигнала

Чтобы анализировать сигнал, у вас должен быть сигнал в первую очередь. Сбор этого сигнала — первый шаг, и позвольте мне сказать вам одну вещь: здесь не так уж много нужно сделать, но много ошибок. Для вас, поскольку вы хотите получить доступ к видеосигналу с аналоговых камер, первое, что нужно сделать, это аналого-цифровое преобразование, чтобы вы могли работать с цифровым сигналом. У меня нет никакого впечатления о качестве видео ваших камер, но имейте в виду: сигнал, который вы подаете в свой инструмент извлечения признаков (FE), почти наверняка будет одним кадром на шаг FE. Так что проверяйте качество кадра, а не всего видео, это может создать у вас неправильное впечатление. Кроме того, вы не можете реально повлиять на получение сигнала. Я ничего не писал о том, как получить доступ к аналоговому видео с камеры, просто потому, что нет информации об их окружении.

2. Предварительная обработка сигнала

Теперь, когда у вас есть какой-то цифровой сигнал (конечно, вы можете сделать это и с аналоговыми сигналами, но для простоты я буду рассматривать здесь только цифровую предварительную обработку), вы хотите получить от этого максимальную отдачу. Что это значит? Каждый сигнал X, который вы собираете (или наблюдаете), в основном представляет собой смесь истинного (неискаженного) сигнала S и своего рода шума N:

X = S + N

В идеале вы хотите иметь S. Если вам удастся уменьшить шум N, вы уменьшите его вклад в общий сигнал X, который у вас есть. Поэтому во время предварительной обработки вы часто делаете какую-то фильтрацию. Например, для изображения можно применить медианный фильтр к одному кадру, чтобы справиться с шумом Солта и Петтера. Но обработка сигналов может иметь много разных аспектов, вы должны прочитать эту тему для своей конкретной задачи. Короче говоря: вы хотите улучшить качество сигнала за счет уменьшения шума, артефактов и т. д.

3. Извлечение / классификация признаков

Теперь у вас есть сигнал достаточного качества (это предположение, я ничего не знаю о вашей конкретной настройке). Вы хотите сделать извлечение признаков сейчас. Что это? Только один видеокадр содержит много информации. Допустим, у вас разрешение 720×576 пикселей, тогда у вас уже более 400 000 значений, а это даже не очень хорошее качество изображения. Первое: не каждый пиксель интересен для того, что вы хотите сделать. Сейчас я рассмотрю только задачу распознавания лиц: вам нужны пиксели, которые показывают человеческое лицо. Все остальные пиксели для вас менее интересны. Теперь вам нужно сделать две вещи: сначала обнаружить лицо, а затем обработать его для обнаружения людей. Для общего обнаружения лиц существуют различные подходы, такие как сопоставление с образцом, сопоставление текстуры или сверточная нейронная сеть (CNN). Что вы делаете с лицом после успешного обнаружения лица? Опять же, у вас есть разные варианты, такие как собственные грани, масштабно-инвариантное преобразование признаков (SIFT) или еще раз CNN.

Кроме того, ваши алгоритмы классификации нуждаются в обучении. Обучение алгоритма означает оптимизацию его параметров по отношению к определенной цели. И здесь все становится очень сложно: вам нужны не только образцы данных (вы можете собрать их со своих камер), но вам также нужны метки. Для обнаружения лиц вы можете получить несколько приличных предварительно обученных алгоритмов, которые также должны работать с вашими данными. Однако для распознавания лиц вам потребуются образцы от каждого человека, которого вы хотите обнаружить. И вы должны аннотировать их. Вам понадобится их много, идеально снятых камерами, которые вы также будете использовать для распознавания. Опять же, есть предварительно обученные модели, но вам все равно нужно показать этим предварительно обученным моделям новые лица, которые вы хотели бы распознать.


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

Я ничего не писал о законах о конфиденциальности в разных странах. Я просто ожидаю, что вы будете уважать любые ограничения, с которыми вы можете столкнуться!

person PKlumpp    schedule 25.09.2018