Spaces:
Build error
Build error
metadata v12
Browse files
app.py
CHANGED
@@ -2,11 +2,13 @@ import numpy as np
|
|
2 |
from PIL import Image, UnidentifiedImageError
|
3 |
import gradio as gr
|
4 |
from deepface import DeepFace
|
5 |
-
from datasets import load_dataset
|
6 |
import os
|
7 |
import pickle
|
8 |
from pathlib import Path
|
9 |
import gc
|
|
|
|
|
10 |
|
11 |
# 📁 Directorio para almacenar embeddings
|
12 |
EMBEDDINGS_DIR = Path("embeddings")
|
@@ -22,9 +24,6 @@ dataset = load_dataset(
|
|
22 |
|
23 |
print("✅ Primer item:", dataset[0])
|
24 |
|
25 |
-
# 🖼️ Convertir columna a imágenes usando HfImage (PIL)
|
26 |
-
dataset = dataset.cast_column("image", HfImage())
|
27 |
-
|
28 |
# 🔄 Preprocesar imagen para DeepFace
|
29 |
def preprocess_image(img: Image.Image) -> np.ndarray:
|
30 |
img_rgb = img.convert("RGB")
|
@@ -46,12 +45,18 @@ def build_database():
|
|
46 |
batch = dataset[i:i + batch_size]
|
47 |
print(f"📦 Procesando lote {i // batch_size + 1}/{(len(dataset) + batch_size - 1) // batch_size}")
|
48 |
|
49 |
-
for j,
|
50 |
try:
|
51 |
-
|
52 |
-
|
|
|
53 |
continue
|
54 |
|
|
|
|
|
|
|
|
|
|
|
55 |
img_processed = preprocess_image(img)
|
56 |
embedding = DeepFace.represent(
|
57 |
img_path=img_processed,
|
|
|
2 |
from PIL import Image, UnidentifiedImageError
|
3 |
import gradio as gr
|
4 |
from deepface import DeepFace
|
5 |
+
from datasets import load_dataset
|
6 |
import os
|
7 |
import pickle
|
8 |
from pathlib import Path
|
9 |
import gc
|
10 |
+
import requests
|
11 |
+
from io import BytesIO
|
12 |
|
13 |
# 📁 Directorio para almacenar embeddings
|
14 |
EMBEDDINGS_DIR = Path("embeddings")
|
|
|
24 |
|
25 |
print("✅ Primer item:", dataset[0])
|
26 |
|
|
|
|
|
|
|
27 |
# 🔄 Preprocesar imagen para DeepFace
|
28 |
def preprocess_image(img: Image.Image) -> np.ndarray:
|
29 |
img_rgb = img.convert("RGB")
|
|
|
45 |
batch = dataset[i:i + batch_size]
|
46 |
print(f"📦 Procesando lote {i // batch_size + 1}/{(len(dataset) + batch_size - 1) // batch_size}")
|
47 |
|
48 |
+
for j, item in enumerate(batch):
|
49 |
try:
|
50 |
+
image_url = item["image"]
|
51 |
+
if not isinstance(image_url, str) or not image_url.startswith("http"):
|
52 |
+
print(f"⚠️ Saltando item {i + j} - URL inválida: {image_url}")
|
53 |
continue
|
54 |
|
55 |
+
# Descargar imagen desde URL
|
56 |
+
response = requests.get(image_url, timeout=10)
|
57 |
+
response.raise_for_status()
|
58 |
+
img = Image.open(BytesIO(response.content)).convert("RGB")
|
59 |
+
|
60 |
img_processed = preprocess_image(img)
|
61 |
embedding = DeepFace.represent(
|
62 |
img_path=img_processed,
|