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:
- Abrir Anaconda Prompt (en Windows) o terminal con conda en Linux/macOS.
- Crear el entorno:
conda create -n yolo_webcam python=3.11 -y - Activar el entorno:
conda activate yolo_webcam - Instalar dependencias:
pip install -U ultralytics opencv-python - Verificar:
python -c "from ultralytics import YOLO; import cv2; print('OK')"
Código Python para Jupyter:
Python
from ultralytics import YOLOimport 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'): breakcap.release()cv2.destroyAllWindows()
Nota: Para más precisión usa yolov8s.pt en lugar de yolov8n.pt.

2. Clasificador con Teachable Machine (Google)
Exporta modelos entrenados sin código para usarlos en Python.
Configuración del entorno y VS Code:
- Instalar soporte en Anaconda Prompt:
conda activate yolo_webcampip install jupyter ipykernel tensorflow pillow numpy opencv-python - Instalar Kernel para VS Code:
python -m ipykernel install --user --name yolo_webcam --display-name "Python (yolo_webcam)" - En VS Code:
- Pulsa
Ctrl+Shift+P-> Python: Select Interpreter -> eligeyolo_webcam. - En tu notebook (.ipynb), arriba a la derecha en Kernel, elige
Python (yolo_webcam).
- Pulsa
Código de inferencia:
Python
import tensorflow as tfimport cv2import numpy as npfrom PIL import Image, ImageOpsmodel = 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'): breakcap.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:
- Activar entorno:
conda activate yolo_webcam - Instalar OpenCV:
pip install opencv-python - Verificar en el Notebook:
Python
import cv2print(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 cv2face_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'): breakcap.release()cv2.destroyAllWindows()

Comparación de Rendimiento (i3 10ª Gen)
| Demo | Librería | Tipo de IA | FPS aprox. |
| YOLOv8 | Ultralytics | Detección objetos | 10–20 |
| Teachable Machine | TensorFlow | Clasificación | 15–30 |
| OpenCV Caras | OpenCV | Haar Cascades | 20–40 |

Deja un comentario