Occulta: um sistema de anomização seletiva
Como editor de vídeo, sei o quanto pode ser trabalhoso anonimizar rostos para proteger a identidade de alguém. Dependendo do material, é necessário acompanhar rostos ao longo de centenas de frames apenas para aplicar um desfoque ou efeito de pixelização.
Isso me fez pensar: será que a IA poderia ajudar a automatizar a anonimização seletiva de rostos?
Foi assim que criei o Occulta, uma pipeline local de processamento de vídeo que reconhece rostos selecionados e decide quais devem ser desfocados ou mantidos visíveis.
Por meio de uma interface em Streamlit, é possível enviar um vídeo, navegar até qualquer frame, clicar nos rostos que serão utilizados como referência e escolher entre dois modos:
- Manter os targets selecionados visíveis e desfocar as demais pessoas.
- Desfocar os targets selecionados e manter os outros rostos válidos visíveis.
Atualmente, o Occulta suporta até 32 referências e pode ser utilizado tanto pela interface web quanto pela CLI. Também existe um modo de debug que exibe bounding boxes, scores de similaridade, a referência correspondente e a decisão final de manter ou desfocar cada rosto.
Por baixo dos panos, o projeto utiliza:
- RetinaFace e InsightFace para detecção e alinhamento facial.
- AdaFace IR-101 para geração de embeddings faciais.
- Similaridade de cosseno para comparação com os targets.
- PyTorch e ONNX Runtime com seleção automática entre CPU e CUDA.
- FFmpeg para codificação em H.264 e preservação do áudio original.
- Chain of Responsibility para organizar as etapas da pipeline.
Para melhorar o desempenho, os embeddings são processados em batch e a análise mais pesada pode ser executada apenas a cada determinado número de frames. Os embeddings biométricos permanecem somente em memória durante o processamento.
O Occulta ainda é um projeto pessoal e experimental. A detecção pode deixar de encontrar alguns rostos, a comparação pode gerar falsos positivos ou falsos negativos e a versão atual ainda não possui um tracker facial propriamente dito. Esses são alguns dos pontos que pretendo explorar nas próximas versões.
Já existem ótimas soluções comerciais e open source para esse problema, e alguns editores modernos oferecem funcionalidades semelhantes. Ainda assim, construir minha própria pipeline foi uma excelente forma de entender o que acontece por trás dessas ferramentas.
Mais importante do que o resultado final, aprendi bastante sobre Visão Computacional, embeddings faciais, comparação por similaridade, inferência de modelos, processamento de vídeo, otimização de desempenho e desenvolvimento de software orientado à privacidade.
🔗 Projeto: https://github.com/JonatasMSS/Occulta
Fonte: https://lnkd.in/p/eFKvyHiC