🛠 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

Objectifs

Exploiter la puissance x86 de l'Alpha pour de la vision temps réel : capter une caméra USB (ou Intel RealSense, explicitement citée par la doc officielle comme compatible) sur l'un des trois ports USB 3.0 Type-A, et traiter les images avec OpenCV en Python — capture, redimensionnement, détection de visage. C'est le type de charge qu'un microcontrôleur ne peut pas aborder, mais que le Core m3-7Y30 encaisse.

Matériel

Code complet

# 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

Vérification attendue

La fenêtre s'ouvre en quelques secondes avec le flux 640×480 ; un rectangle vert entoure chaque visage détecté et le compteur s'affiche en rouge. Sous Linux, ls /dev/video* montre la caméra ; sous Windows, le gestionnaire de périphériques la liste sous « périphériques image ».

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels