Verificado em 13.09.2024 ✅ (este projeto foi desenvolvido testado na plataforma AI Lightning, executando em uma GPU L40)
O Summarizer de Vídeo de Vigilância é um sistema orientado a IA que processa vídeos de vigilância, extrai os principais quadros e gera anotações detalhadas. Alimentado por um modelo de Languagem de Florence-2 de Florence-2 (VLM) treinado especificamente no conjunto de dados SPHAR, ele destaca eventos, ações e objetos notáveis nas filmagens de vídeo e os registra para facilitar a revisão e análises adicionais.
O modelo de ajuste fino pode ser encontrado em: krdrvitja/Florence-Sphar-Finetune-2.
Veja a ferramenta em ação abaixo!
Resumo de vídeo movido a IA
Extraia automaticamente os quadros de vídeos de vigilância e geram anotações que capturam ações, interações, objetos e eventos incomuns. As anotações são armazenadas em um banco de dados SQLite para facilitar a recuperação.
Processamento de quadros em tempo real
Ao utilizar a rosqueamento assíncrono, o sistema processa quadros de vídeo com eficiência, permitindo análises em tempo real e minimizando gargalos de desempenho. Ele registra a cada segundo, garantindo uma fácil depuração e verificação.
Florence-2 VLM de ajuste fino para conjunto de dados SPHAR
O processo de resumo é alimentado por um VLM Florence-2 de ajuste fino, treinado especificamente no conjunto de dados SPHAR. Este modelo é otimizado para detectar e descrever eventos específicos de vigilância com maior precisão.
Interface interativa movida a graduação
Interaja com os registros de vigilância através de uma interface da Web baseada em graduação. Você pode especificar intervalos de tempo e o sistema recuperará, resumirá e analisará os logs anotados, fornecendo informações detalhadas sobre as imagens de vídeo sobre o período selecionado usando a API do OpenAI. Essa funcionalidade pode ser estendida para alavancar modelos avançados como Gemini, permitindo um manuseio mais eficiente de vídeos de contexto mais longos e fornecendo resumo de vídeo mais abrangente sobre os prazos estendidos.
Extração de quadros :
Os quadros são extraídos em intervalos regulares dos arquivos de vídeo de vigilância usando o OpenCV.
Anotação de IA :
Cada quadro é analisado pelo modelo Florence-2 de Florence-2, gerando anotações perspicazes sobre a cena.
Armazenamento de dados :
As anotações e seus dados de quadro associados são armazenados em um banco de dados SQLite, pronto para análises futuras.
Interface Gradio : O sistema permite que os usuários consultem sem esforço os registros de vigilância, fornecendo um intervalo de tempo específico e instruções personalizadas. Ele recupera, resume e analisa as imagens de vídeo relevantes, oferecendo informações concisas
git clone https://github.com/Ravi-Teja-konda/Surveillance_Video_Summarizer.git cd Surveillance_Video_Summarizerpip install -r requirements.txtModelo e processador
O sistema utiliza o modelo Florence-2 Vision-Language, ajustado para o conjunto de dados SPHAR. O modelo de ajuste fino pode ser encontrado no Krndvitja/Florence-Sphar-Finetune-2.
Certifique -se de ter sua chave de API do OpenAI armazenada em um arquivo .env conforme necessário.
Caminho do banco de dados
Em primeiro lugar, execute a extração de quadros:
python surveillance_video_summarizer.pyEm seguida, interaja com a interface Gradio para análise de log:
python surveillance_log_analyzer_with_gradio.pyA partir daqui, você pode usar a interface gradio para consultar períodos específicos de imagens de vídeo e recuperar resumos anotados com base na sua entrada. Você pode consultar o sistema para ações específicas, eventos notáveis ou resumos de atividades gerais. Forneça o intervalo de tempo e seu prompt de consulta e o sistema retornará os logs relevantes
Planejamos aprimorar a capacidade do modelo de detectar eventos mais complexos, como violações de tráfego, comportamento suspeito e outros cenários de vigilância sutis, treinando Florence-2 com mais dados
No futuro, planejará suportar fluxos de vídeo em tempo real para extração e análise de quadros imediatos à medida que o vídeo está sendo capturado.
As contribuições são bem -vindas! Sinta -se à vontade para enviar uma solicitação de tração.
Se você achar esse projeto útil, considere estrelado no Github para ajudar os outros a descobrirem!
Inspirado por avanços em modelos de linguagem da visão como Florence-2.
Este projeto está licenciado sob a licença Apache 2.0.