Este projeto consiste em uma aplicação Django para processamento de vídeos, detecção de faces e agrupamento. O sistema permite o upload de vídeos, detecta faces, organiza as faces em perfis e possibilita o agrupamento manual.
- Upload de vídeos.
- Detecção de faces nos vídeos.
- Agrupamento das faces em perfis de usuários.
- Agrupamento manual.
- Interface interativa para facilitar o processo.
- Backend: Django
- Processamento de Vídeo: OpenCV, face_recognition, dlib
- Banco de Dados: MySQL
- Processamento Assíncrono: Celery
- Frontend: React
- API: RESTful APIs com Django Rest Framework
-
Clone este repositório:
git clone https://github.com/Poliih/video-face-recognition.git cd video-face-recognition -
Instale as dependências:
pip install -r requirements.txt
-
Configure o banco de dados no arquivo
settings.pydo Django em:DATABASES
-
Execute as migrações:
python manage.py migrate
-
Inicie o servidor:
python manage.py runserver
-
Inicie o servidor Redis:
redis-server
-
Inicie o servidor Celery:
celery -A core worker --loglevel=info
-
Navegue até o diretório
frontend(caso haja um diretório separado):cd frontend -
Instale as dependências:
npm install
-
Inicie o servidor de desenvolvimento:
npm start
- Endpoint:
/api/video/faceslist/ - Método:
GET - Descrição: Retorna uma lista de faces que ainda não estão associadas a um perfil.
- Endpoint:
/api/user_profile/list_profiles_with_faces/ - Método:
GET - Descrição: Retorna uma lista de perfis de usuário, com as faces associadas a cada perfil.
- Endpoint:
/api/user_profile/associate_faces_to_profile/ - Método:
POST - Descrição: Associa faces selecionadas a um perfil de usuário. O corpo da requisição deve conter:
{ "profile_id": "ID do perfil", "face_ids": ["IDs das faces"] }
- Endpoint:
/api/video/upload/ - Método:
POST - Descrição: Este endpoint permite o upload de um vídeo para o servidor.
- Exemplo de corpo da requisição (form-data):
- Campo:
video(Arquivo de vídeo)
- Campo:
- Exemplo de sucesso:
{ "status": "Processando vídeo", "video_id": 123 } - Exemplo de erro (caso o arquivo de vídeo não seja encontrado):
{ "error": "Vídeo não encontrado" }
Poliana Rodrigues da Silva


