lattepanda-mu-ultra-ai-cam-usb-rtsp-9.ino

LattePanda Mu Ultra : Module de calcul x86 pour l'IA embarquée · Fichier : lattepanda-mu-ultra-ai-cam-usb-rtsp-9.ino · Langage : python · Usage : Diffuser un flux vidéo temps réel d'une webcam USB avec une détection d'objets légère via NPU/OpenCV pour surveillance locale.

Script Python utilisant OpenCV pour capturer et afficher un flux vidéo d'une caméra USB, optimisé pour l'affichage temps réel sur le GPU Intel Arc de la LattePanda Mu Ultra.

Connectez une webcam USB standard au port USB-A ou USB-C de la carte porteuse. Installez les dépendances avec 'pip install opencv-python-headless numpy'. Exécutez le script. Le GPU Intel Arc accélère l'affichage et les effets de flou. Utilisez 'q' pour fermer la fenêtre.

lattepanda-mu-ultra-ai-cam-usb-rtsp-9.ino

# -*- coding: utf-8 -*-
"""
LattePanda Mu Ultra: Exemple de streaming vidéo avec détection IA (Intel NPU/OpenCV)
Prérequis:
- pip install opencv-python-headless numpy
- La webcam est connectée en USB (index 0 par défaut).
- Le NPU Intel Arc est utilisé si OpenCV est compilé avec OpenMP/TBB et support UVC.
"""

import cv2
import numpy as np
import time

# Initialisation de la capture vidéo
# CAP_DSHOW est souvent plus fiable sur les cartes industrielles Windows/Linux pour l'init rapide
cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)

# Vérifier si la caméra s'ouvre correctement
if not cap.isOpened():
    print("Erreur: Impossible d'ouvrir la caméra USB.")
    exit()

cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)
cap.set(cv2.CAP_PROP_FPS, 30)

print("Caméra initialisée. Appuyez sur 'q' pour quitter.")

while True:
    ret, frame = cap.read()
    if not ret:
        print("Erreur de lecture du flux.")
        break

    # Exemple de traitement léger (Flou gaussien pour simuler une charge GPU/CPU ou pré-traitement IA)
    # Sur le Mu Ultra, le GPU Arc gère cela très bien.
    blurred = cv2.GaussianBlur(frame, (5, 5), 0)

    # Affichage du flux
    cv2.imshow('LattePanda Mu Ultra - Live Feed', blurred)

    # Touche pour quitter
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

← Retour à la fiche