Si quieres experimentar con visión artificial de forma rápida y visual, aquí tienes tres demos sencillas usando Python y una webcam (ya sea la integrada o una externa).

Estas implementaciones funcionan en hardware modesto (por ejemplo como un Intel Core i3 de 10ª generación con NVMe) y se preparan en minutos con Jupyter Notebook. Para una instalación limpia, lo ideal es usar Anaconda y Visual Studio Code.

1. Detección de objetos en tiempo real con YOLOv8

YOLOv8 permite detectar múltiples objetos (personas, móviles, etc.) en tiempo real. Es eficiente incluso trabajando solo con CPU.

Pasos en Anaconda Prompt:

  1. Abrir Anaconda Prompt (en Windows) o terminal con conda en Linux/macOS.
  2. Crear el entorno: conda create -n yolo_webcam python=3.11 -y
  3. Activar el entorno: conda activate yolo_webcam
  4. Instalar dependencias: pip install -U ultralytics opencv-python
  5. Verificar: python -c "from ultralytics import YOLO; import cv2; print('OK')"

Código Python para Jupyter:

Python

from ultralytics import YOLO
import cv2
# Cargar modelo ligero (rápido para CPUs)
model = YOLO("yolov8n.pt")
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
while True:
ret, frame = cap.read()
if not ret: break
results = model(frame)
annotated = results[0].plot()
cv2.imshow("Deteccion YOLOv8", annotated)
if cv2.waitKey(1) & 0xFF == ord('q'): break
cap.release()
cv2.destroyAllWindows()

Nota: Para más precisión usa yolov8s.pt en lugar de yolov8n.pt.

ejemplo de 
yolo

2. Clasificador con Teachable Machine (Google)

Exporta modelos entrenados sin código para usarlos en Python.

Configuración del entorno y VS Code:

  1. Instalar soporte en Anaconda Prompt:conda activate yolo_webcampip install jupyter ipykernel tensorflow pillow numpy opencv-python
  2. Instalar Kernel para VS Code:python -m ipykernel install --user --name yolo_webcam --display-name "Python (yolo_webcam)"
  3. En VS Code:
    • Pulsa Ctrl+Shift+P -> Python: Select Interpreter -> elige yolo_webcam.
    • En tu notebook (.ipynb), arriba a la derecha en Kernel, elige Python (yolo_webcam).

Código de inferencia:

Python

import tensorflow as tf
import cv2
import numpy as np
from PIL import Image, ImageOps
model = tf.keras.models.load_model('keras_model.h5')
with open('labels.txt', 'r') as f:
class_names = f.read().split("\n")
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if not ret: break
rgb_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
pil_img = Image.fromarray(rgb_frame)
img_resized = ImageOps.fit(pil_img, (224, 224), Image.LANCZOS)
img_array = np.asarray(img_resized).astype(np.float32) / 127.0 - 1
data = np.expand_dims(img_array, axis=0)
prediction = model.predict(data)
index = np.argmax(prediction)
cv2.putText(frame, f'{class_names[index]}: {prediction[0][index]:.2f}', (10, 30),
cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
cv2.imshow("Clasificador Teachable Machine", frame)
if cv2.waitKey(1) & 0xFF == ord('q'): break
cap.release()
cv2.destroyAllWindows()

3. Reconocimiento facial clásico (OpenCV Haar Cascades)

Ideal para entender los conceptos base del machine learning tradicional.

Instalación y comprobación:

  1. Activar entorno: conda activate yolo_webcam
  2. Instalar OpenCV: pip install opencv-python
  3. Verificar en el Notebook:

Python

import cv2
print(cv2.__version__)
print(cv2.data.haarcascades) # Ruta de los archivos Haar

Importante: No instales opencv-python-headless, ya que no permite mostrar ventanas de vídeo (cv2.imshow).

Código de detección facial:

Python

import cv2
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if not ret: break
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x, y, w, h) in faces:
cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)
cv2.imshow("Deteccion facial", frame)
if cv2.waitKey(1) & 0xFF == ord('q'): break
cap.release()
cv2.destroyAllWindows()

Comparación de Rendimiento (i3 10ª Gen)

DemoLibreríaTipo de IAFPS aprox.
YOLOv8UltralyticsDetección objetos10–20
Teachable MachineTensorFlowClasificación15–30
OpenCV CarasOpenCVHaar Cascades20–40

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.

La FRASE DEL MES

«Cualquier tecnología suficientemente avanzada es indistinguible de la magia.»

~ Arthur C. Clarke