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

LattePanda Mu Ultra: x86 Compute Module for Embedded AI · File : lattepanda-mu-ultra-ai-cam-usb-rtsp-9.ino · Language : python · Use case : 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.

Python script using OpenCV to capture and display a USB camera stream, optimized for real-time rendering on the LattePanda Mu Ultra's Intel Arc GPU.

Connect a standard USB webcam to the carrier board's USB-A or USB-C port. Install dependencies with 'pip install opencv-python-headless numpy'. Run the script. The Intel Arc GPU accelerates rendering and blur effects. Press 'q' to close the window.

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()

← Back to the board