🛠 Vision par caméra : OpenCV sur le SoC x86

LattePanda Alpha · avance · Schéma : IMG-lattepanda-alpha-avance-2-camera-vision.svg — camera USB ou RealSense branchee sur un port USB 3.0 Type A de la LattePanda Alpha, pipeline OpenCV avec detection de visage

Objetivos

Aprovechar la potencia x86 del Alpha para visión en tiempo real: captar una cámara USB (o Intel RealSense, citada explícitamente en la documentación oficial como compatible) en uno de los tres puertos USB 3.0 Tipo-A, y procesar las imágenes con OpenCV en Python — captura, redimensionamiento, detección de rostros. Este es el tipo de carga que un microcontrolador no puede abordar, pero que el Core m3-7Y30 soporta sin problemas.

Material

Código completo

# vision_visage.py — capture USB + détection de visage OpenCV
import cv2

cap = cv2.VideoCapture(0)          # 0 = première caméra UVC (Windows ou /dev/video0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)

cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

assert cap.isOpened, "Caméra introuvable : vérifier /dev/video0 ou le numéro de flux"

while True:
    ok, frame = cap.read
    if not ok:
        break
    gris = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    visages = cascade.detectMultiScale(gris, scaleFactor=1.2, minNeighbors=5)
    for (x, y, w, h) in visages:
        cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
    cv2.putText(frame, f"visages: {len(visages)}", (10, 30),
                cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)
    cv2.imshow("LattePanda Alpha - vision", frame)
    if cv2.waitKey(1) & 0xFF == 27:   # Échap pour quitter
        break

cap.release
cv2.destroyAllWindows

Verificación esperada

La ventana se abre en unos segundos con el flujo de 640×480; un rectángulo verde rodea cada rostro detectado y el contador se muestra en rojo. Bajo Linux, ls /dev/video* muestra la cámara; bajo Windows, el administrador de dispositivos la lista bajo «dispositivos de imagen».

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales