🛠 Vision par caméra : OpenCV sur le SoC x86
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
- LattePanda Alpha bajo Windows o Linux (Linux: se recomienda una distribución reciente para UVC; soporte comunitario más allá de Ubuntu 16.04)
- Cámara USB UVC (las webcams estándar funcionan sin controladores) o cámara Intel RealSense
- Pantalla HDMI / DisplayPort-USB-C / eDP según su configuración
pip install opencv-python(osudo apt install python3-opencvbajo Linux)
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
VideoCapture(0)que selecciona otra cámara (virtual, infrarroja): pruebe conVideoCapture(1), o bajo Linux apunte a/dev/video1.- Olvidar
cv2.waitKey(1): la ventana se congela y deja de responder. - Cámaras RealSense que requieren la biblioteca específica librealsense además de OpenCV.
- Bajo Linux reciente, paquetes multimedia faltantes si la distribución es minimalista: instale python3-opencv vía apt en lugar de pip si faltan las dependencias de vídeo.
Otros tutoriales para esta placa
- Faire clignoter une LED sur les broches du coprocesseur
- Bouton poussoir et console série avec le coprocesseur
- Premier script Python sur le PC x86 de la carte
- Pont série SoC ↔ MCU : le tunnel x86 vers ATmega32U4
- Lire un capteur analogique du MCU depuis Python (Firmata)
- Wi-Fi 802.11ac et Bluetooth 4.2 depuis le SoC
Ejemplos de código para esta placa
clignotante.pyPythonbouton.pyPythonservo.pyPythonanalogique.pyPythonrespiration.pyPythonneopixel.pyPython