Видеоанализ для детектирования подозрительных действий на основе глубокого обучения

Это экспликация может быть реализована классификацией видео. Nosso objetivo é explicar como of fizemos e os resultados obtidos para que vêssa aprender com isso.

Ao longo dessa publicação, Você encontrará uma descrição geral da arquitetura da solução, da metodologia que seguimos, do конъюнто де дадос usados, da implementationação e dos resultados alcançados.

Sinta-se vontade para usar essa publicação como ponto de partida para desenvolver seu próprio classificador de vídeo.

О системе описания классификации видео в классах:

1. Atividade criminosa ou violenta

2. Potencialmente suspeita

3. Сегура

Nossa proposta para resolver este problem é uma arquitetura baseada em redes neurais convolucionais e recorrentes.

Descrição da Arquitetura da Solução

Первый пример нейроэлемента - это запутанный объект, который является более низким, чем предыдущий, и более глубоким. Usaremos um modelo pré-treinado denominado inception desenvolvido pelo Google. O Inception-v3 - это не связано с исходными данными ImageNet Large Visual Recognition Challenge. Essa é uma tarefa padrão de visão computacional, на качественных моделях классических изображений, интеирах в классах с «зеброй», «далматами» и «лава-лучами».

Usamos esse modelo para aplicar a técnica de aprendizagem de transferência. Os modelos modernos de reconhecimento de objetos possible milhões de parâmetros e podem exigir semanas de treinamento. Приложение для передачи, которое имеет техническую сторону, отличную от большой части трабали, позволяет использовать его в полной мере для всех категорий, связанных с ImageNet и обновлением песо, существует для новых классов.

Сегунда восстановит нейронное использование для восстановления нейронной записи. O objetivo dessa rede é dar sentido à sequência das ações retratadas. Esta rede posui uma célula LSTM na primeira camada, seguida por duas camadas ocultas (uma com 1.024 Neurônios e ativação ReLu e outra com 50 Neurônios com ativação Sigmoid) и camada de saída é uma camada de camada Активируйте Softmax, чтобы пройти классификацию в финале.

Методология

O primeiro passo é extrair os quadros (кадры) сделать видео. Extraímos um quadro a cada 0,2 segundos e, por meio dele, fazemos uma previsão usando o modelo de inception. Uma vez que estamos usando a técnica de aprendizagem de transferência, não vamos extrair classificação final do modelo de inception. Ao invés disso, extrairemos o resultado da última camada de agrupamento: um vetor de 2.048 valores (mapa de características de alto nível). Até agora, tínhamos um mapa de características de um único quadro. Нет entanto, queremos fornecer a noção de sequência ao nosso sistema. Para tanto, não consideraremos os quadros únicos para nossa previsão final. Pegamos um grupo de quadros для классических сегментов видео и других видео.

Рассмотрим, что анализирует два эпизода видео, основанный на предварительном анализе и действии этого видео. Para tanto, armazenamos quinze mapas de características gerados pela previsão do modelo de inception: или эквивалентны последним видео. Assim, concatenamos este grupo de mapas de características em um unico padrão, sendo an entrada de nossa segunda rede neural, запись, para obter classificação final de nosso sistema.

Конхунто де Дадос де Трейнаменто

O Concunto de Dados (набор данных) используется для обработки компоста за 150 минут по сортировке по 38 видео. A maioria desses vídeos é gravada em câmeras de segurança de lojas e depósitos. O resultado da obtenção de um quadro, com 0,2 segundo de duração, é ter um concunto de dados de 45.000 quadros for treinamento - или эквивалентно 3.000 сегментов видео, с учетом того, что сегмент видео представляет собой три сегмента (наши 15 квадро) .

Todo o конъюнктура de dados foi intitulado por nós e dividido em grupos: 80% для лечения и 20% для яичек.

Соблюдайте que o concunto de dados final é realmente muito pequeno. Нет entanto, devido à técnica de aprendizagem de transferência, podemos obter bons resultados com menos dados. Sendo assim, quanto mais dados, maior a precision do sistema; Por isso, continamos trabalhando para obter cada vez mais dados para melhorar nosso sistema.

Реализация

Эта система реализована на Python 3.5.

Используйте OpenCV для Python для сегментов или видео в квадроциклах и уменьшенных размеров для 200x200 пикселей. Uma vez que todos os quadros foram obtidos, fazemos uma previsão no modelo de inception usando cada um deles. O resultado de cada predição é um «valor de transferência», представляет собой карту de características de alto nível extraído daquele quadro específico. Salvamos esse resultado na variable transfer_values ​​e seus respectivos títulos na Varável label_train.

Ao obtermos tais varáveis, Precisaremos dividi-las em grupos de 15 quadros. O resultado é, então, salvo na Varável Joint_transfer.

Agora que temos os valores de transferência e seus títulos, podemos usar esses dados para treinar nossa rede neural recorrente. Реализация этого кода для создания модели или сегмента:

O código acima descreve a construção do modelo. O próximo passo é treiná-lo:

Após treinarmos o modelo, Precisamos salvá-lo da seguinte maneira:

Resultados e Outras Aplicações Possíveis

Após Experimentarmos diferentes arquiteturas de rede e hiperparâmetros de ajuste, o melhor resultado que consguimos alcançar foi 98% de Precisão.

Projetamos или seguinte front-end, em que - это возможно, зависящее от видео и комедия в классическом реальном темпе. Возможно, вы наблюдаете за классами, которые являются постоянными, и должны быть соответственно точными для класса. Esses valores são atualizados constante

Ума дает возможность классифицировать видео, а также анализировать непрерывный анализ видео в реальном темпе, нет моментов в системе обнаружения преступных действий или подозрений.

Все, что нужно, чтобы использовать систему, похожую на систему, аналогичную системе, которая используется для определения различных типов ативидадес; por exemplo, com uma câmera instalada em uma escola com o objetivo de detectar запугивание.

Ссылки

· Учебное пособие по восстановлению изображений с использованием TensorFlow

· Учебное пособие по обновлению изображений для TensorFlow

· Сайт на Python

· OpenCV e Python

· Сайт да Керас