Escopo do Projeto:
Substituição da Câmera Nativa:
Desenvolver uma aplicação que se registre como uma câmera disponível no sistema Android
Integrar a câmera virtual para que seja selecionável em qualquer aplicativo que utilize a câmera nativa.
Interação com Aplicações:
Garantir que a câmera virtual possa ser utilizada por qualquer aplicativo que solicite acesso à câmera.
Testar a compatibilidade com aplicativos populares que utilizam a câmera.
Reprodução de Imagem em TextureView:
Implementar uma função que permite carregar e exibir uma imagem estática em um TextureView.
Simular um feed de vídeo contínuo com a imagem estática.
Requisitos de Vivacidade para Reconhecimento Facial:
Adicionar funções para alterar a imagem estática de forma a atender aos requisitos de vivacidade do reconhecimento facial.
Implementar técnicas para simular piscar de olhos e movimentos faciais leves.
Sensores de Movimento:
Utilizar os sensores de acelerômetro e giroscópio do dispositivo para simular movimento da câmera.
Criar uma função que mova a imagem estática de acordo com os dados dos sensores, simulando movimentos de avanço e recuo.
Layout do Projeto:
1. Estrutura de Diretórios:
css
Copiar código
camera-virtual-app/
│
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ ├── com/
│ │ │ │ ├── cameraVirtual/
│ │ │ │ │ ├──
MainActivity.java
│ │ │ │ │ ├──
CameraService.java
│ │ │ │ │ ├──
TextureViewRenderer.java
│ │ │ │ │ ├──
LivenessHandler.java
│ │ │ │ │ ├──
AdversarialAttack.java
│ │ │ │ │ ├──
MotionSensorHandler.java
│ │ ├── res/
│ │ │ │ ├── layout/
│ │ │ │ │ ├──
activity_main.xml
│ │ │ │ ├── drawable/
│ │ │ │ │ ├──
example_image.png
│ ├── test/
│ │ ├── java/
│ │ │ ├── com/
│ │ │ │ ├── cameraVirtual/
│ │ │ │ │ ├──
MainActivityTest.java
│ │ │ │ │ ├──
CameraServiceTest.java
2. Funcionalidades Detalhadas:
MainActivity.java
Inicialização da interface do usuário.
Configuração do TextureView.
CameraService.java
Registro da câmera virtual no sistema.
Manuseio de solicitações de aplicativos externos.
TextureViewRenderer.java
Carregamento e exibição da imagem estática em um TextureView.
Simulação de feed de vídeo.
LivenessHandler.java
Implementação de técnicas para atender aos requisitos de vivacidade.
Simulação de piscar de olhos e movimentos faciais leves na imagem estática.
AdversarialAttack.java
Implementação de técnicas de ataque adversarial.
Modificação da imagem para enganar algoritmos de reconhecimento facial, se necessário.
MotionSensorHandler.java
Captura de dados do acelerômetro e giroscópio.
Simulação de movimento da câmera com base nos dados dos sensores.
3. Tecnologias e Ferramentas:
Linguagem de Programação: Java/Kotlin.
IDE: Android Studio.
Bibliotecas: OpenCV (para manipulação de imagem), TensorFlow Lite (para ataques adversariais).
APIs: SensorManager (para sensores de movimento).
Delivery term: Not specified