4.20. Récapitulatif¶
Vous avez parcouru les éléments de la chaîne d’imagerie de la caméra qui interviennent chaque fois qu’un script capture une trame :
L’optique placée devant le capteur – un sténopé comme élément formateur d’image le plus simple, puis les objectifs, qui recueillent bien plus de lumière tout en restant capables de faire la mise au point, avec la distance focale, l’ouverture, la profondeur de champ et le champ de vision comme réglages parmi lesquels l’application choisit. Les objectifs réels présentent une distorsion, un vignettage et des effets d’angle du rayon principal que le capteur et l’ISP compensent ensuite.
La grille du capteur – un tableau bidimensionnel de photodiodes qui transforme les photons en charge, avec le temps d’exposition et le gain analogique qui arbitrent entre luminosité d’une part et flou de mouvement et bruit d’autre part. Les obturateurs déroulant et global déterminent la manière dont les lignes du tableau sont lues, et un petit ensemble de calibrations sur puce – FPN de colonne, niveau de noir, pixels défectueux, ombrage d’objectif – nettoie les données avant qu’elles ne quittent la puce. Deux bus relient la puce au microcontrôleur : un bus de contrôle I2C lent pour les registres et un bus parallèle ou MIPI rapide pour les pixels.
La couleur et l’ISP – une matrice de filtres colorés de Bayer attribue à chaque pixel l’une des couleurs rouge, vert ou bleu ; le débayerisation interpole les deux canaux manquants. Le processeur de signal d’image assemble le reste de la chaîne – extraction de statistiques, balance des blancs automatique, débayerisation, correction par matrice de couleur, gamma, mise à l’échelle, recadrage, et un empaquetage final dans le format de pixel demandé.
Les formats de pixel – le Bayer brut, le RGB888, le RGB565, le YUV422, les niveaux de gris, le BINARY et les sorties compressées JPEG / PNG arbitrent entre taille mémoire d’une part et fidélité des couleurs et compatibilité avec les algorithmes en aval d’autre part. Le RGB565 est le format par défaut pour la couleur finie car il s’aligne sur la largeur de mot du microcontrôleur et réduit de moitié le coût mémoire par rapport au RGB888.
L’API CSI – cinq lignes de configuration plus une boucle de capture sont le canevas de départ de tout script. Les réserves de tampons d’image (simple, double, triple, FIFO vidéo ou déclenchée) déterminent la manière dont l’application et la caméra se partagent les trames ; un canal d’aperçu distinct alimente le programme de débogage attaché sans entrer en concurrence pour les tampons de l’application ; les réglages du capteur couvrent l’orientation, l’exposition, le gain, la balance des blancs, le plafond de fréquence de trame et une mire de test en barres de couleur.
Plusieurs capteurs et réserves mémoire – les cartes dotées de deux capteurs instancient une classe
CSIpar puce et font fonctionner chacune à sa propre cadence. En dessous, la réserve de tampons d’image, la région d’aperçu, le tas MicroPython et les allocations en mémoire rapide plus petites résident dans des régions distinctes de la RAM, placées de sorte que les parties qui ont besoin de vitesse l’obtiennent et que celles qui ont seulement besoin de capacité l’obtiennent à la place.
Cela suffit pour sortir une trame du capteur avec le bon format, la bonne taille de trame et la bonne exposition pour la scène ; choisir un mode de tampon d’image adapté au temps de traitement de l’application ; exposer un aperçu en direct à tout ce qui est attaché ; et relire l’objet Image dans Python, prêt à être manipulé.
4.20.1. Utiliser cette référence par la suite¶
Considérez les chapitres sur l’imagerie comme du matériel de référence, et non comme une lecture en une seule passe. Y revenir pour se rafraîchir la mémoire sur les modes de tampon d’image, les formats de pixel ou la signification d’un réglage de capteur donné est l’usage prévu. La page de référence csi.CSI liste toutes les méthodes au même endroit lorsque la question est simplement « quel est encore le nom exact de cet appel ».
4.20.2. Pour aller plus loin¶
Le traitement d’image est le sujet suivant naturel. Une fois le tampon en main et l’API csi comprise, il reste ce qu’il faut faire avec les pixels : seuils, détection de contours, recherche de blobs, détection de lignes et de formes, codes QR, AprilTags, inférence par apprentissage automatique. La boîte à outils se déplace vers le module image et son catalogue de méthodes sur l’objet Image. Tout ce qui figure dans cette section se reporte ; le canevas de la boucle, le mode de tampon d’image, le format de pixel – tout cela est ce sur quoi opèrent les méthodes de traitement d’image.