SentiVeillance 8.2 SDK
CONTEÚDO DO SDK
O SentiVeillance 8.2 SDK é baseado na tecnologia SentiVeillance 8.2, especialmente projetada para integrar o reconhecimento facial biométrico em sistemas de vigilância por vídeo. Os modelos de face criados com o SentiVeillance SDK são totalmente compatíveis com a tecnologia multibiométrica VeriLook SDK e MegaMatcher SDK.
O SentiVeillance 8.2 SDK inclui o componente SentiVeillance, que pode processar vários fluxos de vídeo no mesmo PC ou servidor. O componente SentiVeillance suporta três modalidades: reconhecimento facial biométrico, classificação de veículo/humano e reconhecimento automático de placas. Além disso, o SDK inclui a biblioteca Device Manager para Microsoft Windows e Linux que permite realizar capturas simultâneas de várias câmeras.
Componentes | Microsoft Windows
(64 bits somente) | Linux
(64 bits somente) |
• SentiVeillance componentes Face modality | licença para 1 vídeo stream |
• SentiVeillance componentes VH modality | licença para 1 vídeo stream |
• SentiVeillance componentes ALPR modality | licença para 1 vídeo stream |
• Biblioteca do Gerenciador de Dispositivos | + | + |
Amostras de programação |
• C++ | + | + |
• C# | + | |
• Visual Basic .NET | + | |
Tutoriais de programação |
• C | + | + |
• C# | + | |
• Java | + | + |
Documentação |
• SentiVeillance 8.2 SDK documentação | + |
BIBLIOTECA DO GERENCIADOR DE DISPOSITIVOS
A biblioteca do Device Manager funciona em Microsoft Windows e Linux e fornece funcionalidade para captura simultânea de várias câmeras.
A biblioteca suporta uma variedade de câmeras de vigilância digital de alta resolução e outras câmeras que fornecem interface DirectShow para plataforma Windows ou interface GStreamer para plataforma Linux.
As câmeras termográficas também são suportadas – o SDK inclui uma amostra de programação específica com interface do usuário para capturar e processar o fluxo de vídeo de uma câmera termográfica.
Os requisitos do sistema fornecem mais detalhes sobre a integração de câmeras em sistemas baseados em SentiVeillance.
O Device Manager inclui uma estrutura de plug-in que permite aos integradores escrever plug-ins para suportar suas câmeras usando a API fornecida. A documentação do SentiVeillance SDK contém informações detalhadas e exemplos.
Um arquivo de vídeo também pode ser usado como fonte de dados para SentiVeillance. A entrada do arquivo é processada como proveniente de uma câmera virtual, portanto, o vídeo é processado em tempo real.
SentiVeillance 8.2 SDK
MODALIDADE DE FACE
A modalidade Face do componente SentiVeillance realiza detecção em tempo real, identificação biométrica e rastreamento de todas as faces detectadas:
- A confiabilidade da identificação facial permite o uso de grandes bancos de dados de listas de observação (ou seja, uma lista de observação de suspeitos ou uma lista de funcionários da empresa).
- Novas faces podem ser registradas no banco de dados automaticamente a partir de fluxos de vídeo ou manualmente como templates, que foram criados com o VeriLook SDK.
- Pessoas usando máscaras faciais ou respiradores podem ser reconhecidas sem inscrição separada.
Os algoritmos SentiVeillance permitem realizar essas ações avançadas com os faces detectados:
- Rastreamento de face, que é realizado em todos os frames sucessivos da fonte de vídeo até que eles desapareçam do campo de visão da câmera. O algoritmo de rastreamento de face usa templates dinâmicos de previsão de face e movimento que o tornam robusto a oclusões como outros objetos ou até mesmo outros faces. O algoritmo é capaz de continuar rastreando um face mesmo quando ele reaparece após ser totalmente coberto por oclusões (como paredes, móveis, pôsteres etc).
- Classificação de gênero (opcional) para cada pessoa no frame.
- Determinação de idade (opcional) para cada pessoa no frame.
- Máscara facial, sorriso, boca aberta, olhos fechados, óculos, óculos escuros, óculos com armação pesada, detecção de atributos de barba e bigode (configurável).
A modalidade VH pode ser utilizada em conjunto com a modalidade Face para realizar rastreamento adicional das pessoas identificadas mesmo quando seus faces não estiverem mais visíveis, bem como associar histórico de rastreamento anterior com a pessoa reconhecida. Além disso, a modalidade VH pode ser usada para obter dados adicionais sobre as roupas da pessoa.
Exemplos de programação do SDK mostram como usar essa modalidade.
Licenças adicionais ou atualizações para o número de fluxos de vídeo processados nas licenças existentes podem ser adquiridas a qualquer momento pelos clientes do SentiVeillance 8.2 SDK.
RECOMENDAÇÕES E RESTRIÇÕES BÁSICAS DE USO
A precisão do reconhecimento de face do SentiVeillance depende muito da qualidade de uma imagem de face em um frame. Existem algumas recomendações e restrições básicas ao usar aplicativos de reconhecimento facial baseados no SentiVeillance SDK.
- A qualidade da imagem durante o registro é importante, pois influencia a qualidade do template de face. A inscrição a partir de foto ou fluxo de vídeo é possível.
- Várias imagens durante o registro são recomendadas para melhorar a qualidade do template facial, o que resulta na melhoria da precisão e confiabilidade do reconhecimento.
- Cadastramentos adicionais podem ser necessários quando o estilo de pelos faciais muda, especialmente quando a barba ou o bigode são crescidos ou raspados.
- 32 pixels é a distância mínima recomendada entre os olhos para um face na imagem ou fluxo de vídeo para realizar a extração do template de face de forma confiável. 64 pixels ou mais recomendado para melhores resultados de reconhecimento de face. Observe que essa distância deve ser nativa, não alcançada pelo redimensionamento de uma imagem.
- Recomenda-se uma resolução de câmera de 1 Megapixel ou melhor para registro e reconhecimento de face. Certifique-se de que a resolução nativa seja fornecida por uma câmera, pois algumas câmeras ou webcams podem aumentar as imagens nativas para uma resolução mais alta sem melhorar a qualidade da imagem.
- Tolerância da postura da face:
- rotação da cabeça (inclinação) – ±15 graus;
- inclinação da cabeça (nod) – ±15 graus da posição frontal.
- A tolerância de inclinação da cabeça pode ser aumentada em até ±25 graus se várias vistas da mesma face que cobrem diferentes ângulos de inclinação forem usadas durante o registro.
- guinada da cabeça (bobble) – ±90 graus da posição frontal (valor padrão).
- Várias visualizações da mesma face podem ser registradas no banco de dados para cobrir toda a faixa de ±90 graus de guinada da posição frontal.
ESPECIFICAÇÕES TÉCNICAS
Abaixo são fornecidas especificações para a modalidade de reconhecimento facial SentiVeillance.
4% do lado maior do frame (pelo menos 32 pixels) é a distância mínima recomendada entre os olhos para que um face em fluxo de vídeo ou imagem execute rastreamento de face confiável e extração de template. As velocidades de rastreamento de face, extração de template e matching com um banco de dados de lista de observação dependem do tamanho real de uma face em um frame, não do tamanho de todo o frame.
As especificações de desempenho são fornecidas para o processador Intel Core i7-4771, com clock de 3,5 GHz e vídeos de 1920 x 1080 pixels.
Especificações técnicas do algoritmo de reconhecimento facial biométrico SentiVeillance 8.2 |
Taxa de frames ao rastrear até 5 faces | Mais de 25 frames por segundo |
Hora de matching do banco de dados da lista de observação de faces (1) | Menos de 0,5 segundos |
Tamanho de registro de face única em um template (bytes) | 194 ou 322 (configurável) |
Tamanho máximo do banco de dados da lista de observação de faces | Limitado pela quantidade de RAM livre |
- até 20.000 registros de face no banco de dados; banco de dados maior gera tempo de resposta mais lento. Observe que cada pessoa pode ser representada por vários registros no banco de dados com diferentes variações de aparência, diferentes ângulos de captura etc.
SentiVeillance 8.2 SDK
MODALIDADE VH (VEÍCULO-HUMANO)
A modalidade Veículo-Humano (VH) do componente SentiVeillance realiza detecção, classificação e rastreamento de movimento de veículos ou humanos em tempo real.
Os algoritmos SentiVeillance permitem realizar estas ações com os objetos detectados:
- Classificação de objetos. O SentiVeillance permite realizar a classificação, localização e rastreamento de objetos com base em seu tipo. Além da classificação geral entre pedestres, carros, ônibus, bicicletas e caminhões, o SentiVeillance 8.2 SDK realiza classificação avançada de tipo de veículo com mais de 20 classes disponíveis, variando de comum (sedan, SUV, ônibus, caminhão etc.) -para países específicos (tuk-tuk, carruagem etc)
- Estimativa de cores. O algoritmo retorna a estimativa de cor mais provável para carros e pedestres. Os valores de cor estimados são: vermelho, laranja, amarelo, verde, azul, prata, branco, preto, marrom, cinza.
- Estimativa de marca e modelo de veículo. O SentiVeillance 8.2 SDK inclui uma estimativa baseada em redes neurais da marca (marca) e modelo do veículo rastreado. Além do uso geral, esses dados podem ser combinados com a placa reconhecida e verificados com os dados do registro de veículos.
- Análise de roupas. Quando um pedestre é detectado, sua aparência pode ser avaliada quanto à presença de diferentes tipos de roupas ou chapéus. Mais de 20 classes de roupas e chapelaria são reconhecidas, desde comuns (camisas, calças, saias, casacos etc.) Além disso, este algoritmo pode estimar se a pessoa está parcialmente ou totalmente nua.
- Estimativa da direção do movimento. O algoritmo estima a direção do movimento do veículo ou do pedestre como ângulo em relação à orientação da câmera.
- Tolerância à visibilidade do objeto. O algoritmo de detecção funciona com objetos parcialmente visíveis e de grande distância.
Além disso, os dados sobre os objetos detectados podem ser usados em combinação com outras modalidades do SentiVeillance:
- A modalidade Face pode ser utilizada em conjunto com a modalidade VH para realizar a identificação de desconhecidos.
- A modalidade ALPR pode ser utilizada em conjunto com a modalidade VH para realizar a identificação do veículo por sua placa.
Exemplos de programação do SDK mostram como usar essa modalidade.
Licenças adicionais ou atualizações para o número de fluxos de vídeo processados nas licenças existentes podem ser adquiridas a qualquer momento pelos clientes do SentiVeillance 8.2 SDK.
SentiVeillance 8.2 SDK
MODALIDADE ALPR
A modalidade ALPR do componente SentiVeillance realiza detecção e reconhecimento de placas de veículos em tempo real (placa de matrícula). Os algoritmos baseados em redes neurais profundas apresentam:
- Detecção confiável. As placas podem ser separadas mesmo em imagens complexas, que contêm objetos como placas ou sinais de trânsito. Veja os testes de confiabilidade abaixo.
- Processamento de dados de tráfego. Os algoritmos SentiVeillance podem ler simultaneamente placas de veículos de vários veículos em movimento no tráfego rodoviário.
- Tolerância à posição da câmera. Dependendo da resolução da câmera, o algoritmo ALPR pode ler placas de maior distância e ângulo mais alto.
A modalidade VH pode ser utilizada em conjunto com a modalidade ALPR, principalmente nestes casos:
- Detecção de dados do veículo. Em certos cenários, um tipo de veículo (ou seja, caminhão ou ônibus) deve ser detectado antes de executar o algoritmo de reconhecimento de placa. Além disso, a direção, a cor ou o modelo do movimento do veículo podem ser necessários como filtro antes de executar o reconhecimento da placa.
- Evitando trapaças com placas substituídas. Os integradores podem fazer uma lógica de software que verifica se a placa reconhecida corresponde a outros dados de registro, como cor do veículo ou marca e modelo, e não sendo falsificada ou movida de outro veículo.
Exemplos de programação do SDK mostram como usar essa modalidade.
Licenças adicionais ou atualizações para o número de fluxos de vídeo processados nas licenças existentes podem ser adquiridas a qualquer momento pelos clientes do SentiVeillance 8.2 SDK.
TESTES DE CONFIABILIDADE
Apresentamos os resultados dos testes para mostrar a confiabilidade do algoritmo SentiVeillance 8.2 ALPR nas imagens de carros tiradas em diferentes condições. Imagens do site platemania.com foram usadas para testes. As imagens foram agrupadas em cinco conjuntos de dados:
- Dataset 1 – imagens de qualidade inferior com largura das placas inferior a 100 pixels. As placas estão mais distantes. As imagens apresentam oclusões parciais e ângulos de captura altos.
- Dataset 2 – imagens de qualidade média com largura de placas entre 100 e 200 pixels. As imagens foram capturadas em médio alcance e as placas estão mais próximas da câmera.
- Dataset 3 – imagens de alta qualidade com largura de placas entre 200 e 300 pixels. A maioria das imagens foi capturada em cenário de estacionamento, com apenas alguns desfoques de movimento ou ocorrências de iluminação fraca.
- Dataset 4 – imagens de alta qualidade com largura de placas entre 300 e 400 pixels. A maioria das imagens foi capturada em cenário de estacionamento, com apenas alguns desfoques de movimento ou ocorrências de iluminação fraca.
- Dataset 5 – imagens de alta qualidade com largura de placas superior a 400 pixels. A maioria das imagens foi capturada em cenário de estacionamento, com apenas alguns desfoques de movimento ou ocorrências de iluminação fraca.
As imagens abaixo ilustram imagens de amostra de cada dataset:
Dataset 1
Dataset 2
Dataset 3
Dataset 4
Dataset 5
Dois experimentos foram realizados com imagens de cada dataset:
- Experimento 1 – o OCR foi configurado para interpretar 1 (um) como I (letra I) e 0 (zero) como O (letra O).
- Experimento 2 – o OCR não tinha regras específicas para interpretação de letras e números.
Teste de confiabilidade do algoritmo SentiVeillance 8.2 ALPR |
| Dataset 1 | Dataset 2 | Dataset 3 | Dataset 4 | Dataset 5 |
Contagem de imagens | 1052 | 4174 | 3098 | 768 | 147 |
Largura da placa de licença (pixels) | Menos que 100 | 100-199 | 200-299 | 300-399 | Mais que 400 |
Taxa de reconhecimento do experimento 1 | 90.58 % | 97.50 % | 99.48 % | 99.86 % | 100 % |
Taxa de reconhecimento do experimento 2 | 87.54 % | 94.89 % | 97.44 % | 98.95 % | 98.63 % |
SentiVeillance 8.2 SDK
REQUISITOS DO SISTEMA E CÂMERAS SUPORTADAS
Os requisitos abaixo são fornecidos para um único nó computacional (PC ou servidor) usado para executar os algoritmos do SentiVeillance. Vários nós podem ser conectados juntos via rede para oferecer suporte a sistemas de vigilância maiores.
- PC ou servidor com processador compatível com x86-64 (64 bits):
- Recomenda-se um processador de 3 GHz ou melhor com 6 núcleos.
- O suporte AVX2 é altamente recomendado. Os processadores que não suportam AVX2 ainda executarão os algoritmos SentiVeillance, mas em um modo que não fornecerá o desempenho especificado. A maioria dos processadores modernos suporta este conjunto de instruções, mas verifique se um modelo de processador específico o suporta.
- Unidade de processamento gráfico (GPU):
- uma GPU é necessária se um componente SentiVeillance com qualquer uma das modalidades suportadas for executado para processar mais de 2 fluxos de vídeo
- A GPU NVIDIA GeForce GTX 1080 ou superior é recomendada para processar até 10 fluxos de vídeo em um nó.
- Várias GPUs podem ser usadas na mesma máquina para processar um número maior de fluxos de vídeo.
- pelo menos 6 GB de VRAM é recomendado.
- Capacidade de computação 3.5 ou superior deve ser suportada pela GPU.
- É necessário o kit de ferramentas CUDA 11.2 ou mais recente
- A biblioteca cuDNN 7.5 é necessária.
- Pelo menos 8 GB de RAM.
- Câmera(s) digital(is) de alta resolução. A resolução da câmera pode variar dependendo da aplicação real. A resolução recomendada é de cerca de 2 Megapixel, pois o processamento de vídeo de câmeras com resolução mais alta exigirá mais RAM livre e um processador mais potente para manter a taxa de quadros aceitável.
- Essas câmeras suportadas são adequadas para uso com o SentiVeillance 8.2 SDK:
- Qualquer câmera IP que suporte RTSP (Real Time Streaming Protocol):
- Apenas RTP sobre UDP é suportado.
- A estrutura VLC pode ser usada opcionalmente para ler fluxos de vídeo.
- 264/MPEG-4 AVC ou Motion JPEG devem ser usados para codificar o fluxo de vídeo.
- Qualquer câmera digital de alta resolução acessível usando:
- Interfaces DirectShow ou Windows Media ou Media Foundation para plataforma Microsoft Windows;
- Interface GStreamer para plataforma Linux.
- A câmera térmica Mobotix M16 é compatível com sistemas que precisam de imagens térmicas. O SentiVeillance SDK inclui uma amostra de programação específica para processar fluxos de vídeo desta câmera.
- Qualquer outro suporte de dispositivo pode ser adicionado pelos clientes usando o Device Manager Plug-in Framework Consulte a documentação do SDK do SentiVeillance 8.2 para obter informações detalhadas.
- Específico do Microsoft Windows:
- Microsoft Windows 7/8/10/Server 2008/Server 2008 R2/Server 2012, 64 bits.
- Microsoft .NET framework 4.5 ou mais recente (para uso de componentes .NET).
- Microsoft DirectX 9.0 ou posterior.
- Um dos seguintes ambientes de desenvolvimento para desenvolvimento de aplicativos:
- Microsoft Visual Studio 2012 ou mais recente (para desenvolvimento de aplicativos em C/C++, C#, Visual Basic .Net)
- Java SE JDK 8 ou mais recente
- Específico do Linux:
- SO Ubuntu 20.04
- glibc 2.17 ou mais recente
- GStreamer 1.10.x ou mais recente com plug-ins gst-vaapi instalados para decodificação de vídeo acelerada por hardware
- libgudev-1.0 219 ou mais recente
- wxWidgets 3.0.0 ou mais recentes libs e pacotes dev (para compilar e executar amostras de SDK e aplicativos baseados neles)
- Java SE JDK 8 ou mais recente (para desenvolvimento de aplicativos com Java)