API desarrollada con FastAPI para el reconocimiento facial, que permite registrar, reconocer y eliminar rostros utilizando PostgreSQL para el almacenamiento.
API_FAST/
├── app/
│ ├── __init__.py
│ ├── main.py # Punto de entrada de la aplicación
│ ├── config.py # Configuraciones de la aplicación
│ │
│ ├── api/ # API Routes
│ │ ├── __init__.py
│ │ └── v1/ # Versión 1 de la API
│ │ ├── __init__.py
│ │ ├── api.py # Router principal de la API v1
│ │ └── endpoints/ # Endpoints agrupados por dominio
│ │ ├── __init__.py
│ │ └── face_auth.py # Endpoints de autenticación facial
│ │
│ ├── core/ # Lógica principal
│ │ ├── __init__.py
│ │ └── face_recognition_service.py # Servicio de reconocimiento facial
│ │
│ ├── db/ # Base de datos
│ │ ├── __init__.py
│ │ └── database.py # Conexión a la base de datos
│ │
│ └── schemas/ # Esquemas Pydantic
│ ├── __init__.py
│ └── face.py # Esquemas para reconocimiento facial
│
├── tests/ # Pruebas
├── .env.example # Ejemplo de variables de entorno
├── requirements.txt # Dependencias
└── README.md # Este archivo
- Python 3.8+
- PostgreSQL
- OpenCV
- face-recognition
-
Clona el repositorio:
git clone [URL_DEL_REPOSITORIO] cd API_FAST -
Crea un entorno virtual y actívalo:
python -m venv venv source venv/bin/activate # En Windows: venv\Scripts\activate
-
Instala las dependencias:
pip install -r requirements.txt
-
Crea un archivo
.envbasado en.env.exampley configura las variables de entorno.
Crea un archivo .env en la raíz del proyecto con las siguientes variables:
DB_HOST=localhost
DB_NAME=mi_base_de_datos
DB_USER=mi_usuario
DB_PASSWORD=mi_contraseña_segura
SECRET_KEY=tu_clave_secreta_muy_larga
Asegúrate de tener PostgreSQL instalado y crea una base de datos. Luego, ejecuta el siguiente script SQL para crear la tabla necesaria:
CREATE TABLE mis_personas (
id SERIAL PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
embedding REAL[]
);Para iniciar el servidor de desarrollo:
uvicorn app.main:app --reloadLa API estará disponible en http://127.0.0.1:8000
- Documentación interactiva:
http://127.0.0.1:8000/docs - Documentación alternativa:
http://127.0.0.1:8000/redoc
POST /api/v1/face_auth/recognize_face/- Reconoce un rostro en una imagenPOST /api/v1/face_auth/register_face/- Registra un nuevo rostroDELETE /api/v1/face_auth/delete_face/{nombre}- Elimina un rostro registradoGET /api/v1/face_auth/list_known_faces/- Lista todos los rostros registradosGET /api/v1/face_auth/status/- Obtiene el estado del servicio
Para ejecutar las pruebas:
pytest tests/- Haz un fork del proyecto
- Crea una rama para tu característica (
git checkout -b feature/nueva-caracteristica) - Haz commit de tus cambios (
git commit -am 'Añade nueva característica') - Haz push a la rama (
git push origin feature/nueva-caracteristica) - Abre un Pull Request
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.