Segizu commited on
Commit
2592e48
·
1 Parent(s): 6773de5

metadata v12

Browse files
Files changed (1) hide show
  1. app.py +12 -7
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, Image as HfImage
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, img in enumerate(batch):
50
  try:
51
- if not isinstance(img, Image.Image):
52
- print(f"⚠️ Saltando item {i + j} - no es imagen: {type(img)}")
 
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,