OpenMV Cam : Guide technique complet des caméras vision intelligente
Les caméras à vision intelligente intègrent capteur d'image et traitement embarqué pour capturer des images, en extraire des données précises et prendre des décisions via filtres numériques. L'OpenMV Cam en est un exemple abouti : interfaces de communication, lignes I/O, coût réduit.
Qu'est-ce qu'OpenMV ?
Le projet OpenMV rend la vision par ordinateur accessible aux apprenants via une plateforme open-source, low-cost et programmable en Python 3 (MicroPython).
OpenMV Cam
Fonctions de traitement d'image et machine learning embarquées :
- Enregistrement vidéo GIF / MJPEG
- Détection AprilTags, lecture QR codes / codes-barres
- Suivi de couleur (color tracking)
- Descripteurs de points clés (keypoints)
- Détection de visages
QR et code-barres
L'IDE OpenMV (basé sur Qt, multiplateforme) permet :
- Visualiser le flux vidéo (frame buffer) en direct
- Accéder aux contrôles du capteur
- Téléverser scripts via USB (VCP), BLE, Wi-Fi ou série
- Outils de seuillage, détection de tags, points clés, etc.
Description de l'OpenMV Cam
Objectif ultra-grand-angle OpenMV
Définition
Carte microcontrôleur programmable en MicroPython avec capteur d'image intégré, conçue pour la vision embarquée.
Fonctions principales
- Exécution d'algorithmes de vision machine (détection visage, suivi couleur, etc.)
- Fonctionnalité embarquée : pilotage direct des broches I/O dans le monde réel (déclenchement capture, exécution algorithme sur événement externe)
- Programmation en MicroPython (haut niveau) au lieu de C/C++ : manipulation aisée de structures de données complexes issues des algorithmes de vision
OpenMV Cam M7
Définition
Version basée sur STM32F7 (Cortex-M7), basse consommation, format compact, pour applications de vision machine temps réel.
Fonctions
Identiques à l'OpenMV Cam standard : détection couleurs, suivi visages, etc., avec performances accrues (216 MHz).
Caractéristiques techniques (OpenMV Cam Cortex-M7)
- ADC 12 bits / DAC 12 bits
- 2 LED IR 850 nm haute puissance + 1 LED RVB
- 10 broches I/O (PWM, interruptions, 3 pour servos), SPI jusqu'à 54 Mb/s (streaming image)
- I/O 3,3 V (non tolérant 5 V)
- 216 MHz, 2 Mo Flash externe + 512 Ko RAM
- Capteur OV7725 : 320×240 16 bits ou 640×480 8 bits grayscale @ 30 FPS
- Interfaces : UART (TX/RX), CAN, I2C
- Monture M12 standard (objectif 2,8 mm fourni), slot microSD (100 Mb/s R/W), objectifs experts optionnels
- USB full-speed 12 Mb/s : apparaît comme disque USB + port COM virtuel
Bibliothèque d'interface RPC (Remote Procedure Call)
Bibliothèque RPC intégrée pour connecter l'OpenMV Cam à : microcontrôleur (Arduino, ESP32), SBC (Raspberry Pi, BeagleBone), ou PC.
Transports supportés
- Wi-Fi (via shield) : jusqu'à 12 Mb/s
- USB VCP : jusqu'à 12 Mb/s
- CAN bus : jusqu'à 1 Mb/s
- SPI : jusqu'à 54 Mb/s (40-80 Mb/s fils courts)
- I2C : 1 Mb/s (avec pull-up)
- UART (série asynchrone) : 7,5 Mb/s
Streaming image JPG/RAW et résultats de traitement via RPC. Pilotage matériel bas niveau (moteurs) via second microcontrôleur commandé par OpenMV.
Bibliothèques d'interface disponibles
Arduino (I2C, UART, SPI, CAN)
- CAN via périphérique ESP32 ou MCP2515 sur SPI
- Compatible toutes variantes Arduino
Python générique (SPI/I2C, Kvaser CAN, UART, Ethernet/Wi-Fi, USB VCP)
Code Python pour connecter OpenMV Cam à Linux (Raspberry Pi, BeagleBone), macOS, Windows.
BeagleBone
- SPI/I2C sur SBC Linux
- Kvaser CAN sur Linux/Windows
- Wi-Fi/Ethernet tous systèmes
- USB VCP tous systèmes
- UART TTL/RS485/RS422/RS232 tous systèmes
Précautions ports série
Exemple Python pour lire le port VCP :
import serial
port = serial.Serial('/dev/ttyACM0', baudrate=115200, dtr=False)
while True:
line = port.readline().decode().strip()
if line: print(line)
Fonctionne Linux/macOS/Windows (adapter le nom de port). Sur Linux/macOS : /dev/ttyACM* ou /dev/ttyUSB*.
Important : Mettre dtr=False à l'ouverture du port VCP, sinon l'OpenMV Cam peut saturer la sortie imprimée.
Applications
- Détection ligne/bord (line/edge detection)
- Différence d'images (frame differencing)
- Enregistrement vidéo
- Suivi AprilTag
- Suivi multi-blobs couleur (création marqueurs couleurs)
- Capture d'image
- Template matching
- Détection formes (rectangle, cercle)
- Détection codes-barres linéaires, DataMatrix, QR
- Flux optique (optical flow)
- Modèles TensorFlow Lite pour microcontrôleurs
- Suivi oculaire (eye tracking)
- Détection visage
- Suivi marqueurs (marker tracking)
Détection et reconnaissance faciale
Conclusion
L'OpenMV Cam réalise des fonctions de vision machine (détection visage, enregistrement RAW, lecture codes couleurs) grâce à ses fonctionnalités exceptionnelles. Pour en savoir plus sur les caméras vision intelligente, contactez-nous.
Technologie industrielle
- Construire une usine intelligente : un plan pratique étape par étape
- ADLINK lance NEON‑1000‑MDX : Caméra intelligente Edge AI clé en main pour déploiement vision industriel rapide
- B&R lance des caméras intelligentes entièrement intégrées pour une automatisation précise
- Maîtriser le Brasage de l'Aluminium : Techniques Expertes et Guide Pratique
- Guide Expert du Soudage du Cuivre : Techniques, Astuces et Bonnes Pratiques
- Guide de réglage du poste MIG : optimiser les performances et obtenir des cordons parfaits
- Choisir le bon matériau PCB : Guide complet
- Maîtriser les raidisseurs PCB : Guide complet pour PCB flex
- Maîtriser la conception de circuits imprimés pour l'Internet des objets : Guide complet