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

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

1 ответ

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

Давайте начнем с PR-конвейера, подобного этому:

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

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

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

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

X = S + N

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

3. Особенности извлечения / классификации

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

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


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

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

Другие вопросы по тегам