Open Source Robotics

Una raccolta curata di progetti, strumenti e software di robotica open source di alta qualità per la comunità della robotica.

Camera Intrinsics

  • Detto anche: intrinsic parameters, intrinsic matrix
  • Categoria: Foundations & spatial maths › Frames & transforms
  • Tag: camera-calibration, computer-vision, projective-geometry, sensors, 3d-perception

I parametri interni di una telecamera, lunghezze focali, punto principale e distorsione dell'obiettivo, che mappano i punti 3D nel sistema della telecamera in coordinate di pixel.

Definizione

Parametri intrinseci della telecamera (camera intrinsics) sono i parametri che descrivono come una telecamera trasforma la luce proveniente da punti 3D nel proprio sistema di coordinate in posizioni di pixel. Nel modello pinhole sono raccolti in una matrice K 3×3, che contiene le lunghezze focali fx e fy espresse in pixel, il punto principale (cx, cy) dove l'asse ottico incontra l'immagine e talvolta un termine di skew che è zero in quasi tutti i sensori moderni. Un punto (X, Y, Z) nel sistema della telecamera si proietta nel pixel u = fx·X/Z + cx e v = fy·Y/Z + cy. Gli obiettivi reali aggiungono distorsione, modellata di solito con coefficienti radiali e tangenziali nel modello di Brown-Conrady, oppure con modelli fisheye dedicati per gli obiettivi grandangolari.

I parametri intrinseci si stimano con la calibrazione. Il metodo comune, introdotto da Zhang (2000), fotografa un target planare come una scacchiera da molte orientazioni e ricava K e i coefficienti di distorsione minimizzando l'errore di riproiezione; gli strumenti di calibrazione delle telecamere di OpenCV, MATLAB e ROS seguono tutti questo approccio. Le calibrazioni di fabbrica memorizzate nelle telecamere di profondità sono spesso abbastanza buone da usarle direttamente, ma vanno lette dal dispositivo, non indovinate. I parametri intrinseci cambiano con la risoluzione, il ritaglio, lo zoom e talvolta la messa a fuoco, quindi una calibrazione vale solo per la modalità di immagine in cui è stata fatta.

I parametri intrinseci si distinguono dagli estrinseci, che descrivono dove si trova la telecamera rispetto al robot o al mondo. Insieme danno la proiezione completa dai punti del mondo ai pixel. I robot usano i parametri intrinseci ovunque: per retroproiettare i pixel di profondità in nuvole di punti, ricavare la posa di un oggetto da keypoint dell'immagine con Perspective-n-Point, correggere la distorsione delle immagini prima dell'associazione delle feature e renderizzare immagini sintetiche di addestramento che corrispondano a una telecamera reale. Tenere i parametri intrinseci fuori da un modello appreso, e applicarli dopo in un passaggio geometrico, permette alla stessa rete di funzionare con una telecamera diversa.

Perché è importante

Ogni misura che collega i pixel alla geometria del mondo reale dipende dai parametri intrinseci. Errori in questi parametri deformano le nuvole di punti, falsano le stime di posa e rompono la corrispondenza tra immagini simulate e reali, quindi parametri intrinseci corretti sono un prerequisito per la maggior parte della visione robotica.

Applicazioni principali

  • Retroproiezione di immagini di profondità in nuvole di punti
  • Stima della posa di oggetti e della telecamera con PnP
  • Correzione della distorsione delle immagini prima del tracciamento delle feature e dell'odometria visiva
  • Rendering di dati sintetici di addestramento che corrispondono a una telecamera reale
  • Rettifica stereo e stima della profondità

In pratica

Un team sostituisce la telecamera RGB-D del proprio sistema di presa con un'altra a risoluzione diversa. Il rilevatore di keypoint restituisce coordinate di pixel, e la posa viene ricavata con PnP usando la matrice della telecamera. Invece di riaddestrare, il team legge i parametri intrinseci della nuova telecamera dal suo driver per l'esatta risoluzione dello stream in uso, passa le immagini senza distorsione al rilevatore e aggiorna K nel passaggio PnP. Un rapido controllo riproietta nell'immagine il modello 3D di un oggetto noto nella posa stimata; i bordi si allineano entro un pixel o due, a conferma che i parametri sono corretti. Quando in seguito dimezzano le immagini per guadagnare velocità, dimezzano anche fx, fy, cx e cy.

Idee sbagliate comuni

  • La lunghezza focale in K è la lunghezza focale dell'obiettivo in millimetri — è espressa in pixel e dipende dalla dimensione dei pixel del sensore e dalla risoluzione dell'immagine
  • I parametri intrinseci restano gli stessi quando le immagini vengono ridimensionate o ritagliate — il ridimensionamento cambia le lunghezze focali e il punto principale, e il ritaglio sposta il punto principale
  • Il punto principale è sempre il centro esatto dell'immagine — di solito è vicino, ma può discostarsi di diversi pixel o più
  • In robotica la distorsione dell'obiettivo si può ignorare — conta soprattutto vicino ai bordi dell'immagine e con gli obiettivi grandangolari, dove gli errori non corretti possono essere grandi

Chi dovrebbe saperlo

  • Ingegneri di visione e percezione robotica
  • Sviluppatori che usano telecamere RGB-D per la manipolazione
  • Ricercatori che generano dati sintetici di addestramento
  • Studenti di robotica che imparano la geometria proiettiva

Tecnologie correlate

  • OpenCV calibrateCamera
  • ROS camera_calibration
  • Modello di telecamera pinhole (Pinhole Camera Model)
  • Modello di distorsione di Brown-Conrady (Brown-Conrady Distortion Model)
  • Modello fisheye di Kannala-Brandt (Kannala-Brandt Fisheye Model)

Termini correlati

  • Extrinsic Calibration
  • Perspective-n-Point
  • RGB Camera
  • Depth Camera
  • Point Cloud
  • Coordinate Frame

Progetti correlati

  • pySLAM: Hybrid Python/C++ visual SLAM pipeline with classic and deep-learning front-ends
  • AprilTag: The standard visual fiducial marker system for robot localization and pose estimation
  • MRPT: Comprehensive C++ toolkit for mobile robotics, SLAM, and sensor-based navigation
  • Gazebo: Industry-standard open-source robotics simulator with multi-physics and ROS integration
  • PULP-Dronet: Visual navigation for nano-drones with CNN inference onboard a PULP processor.
  • OpenWeedLocator: Low-cost Raspberry Pi weed detector that uses computer vision for precision spot spraying

Video

  • Intrinsic and Extrinsic Matrices | Camera Calibration: First Principles of Computer Vision
  • Linear Camera Model | Camera Calibration: First Principles of Computer Vision

Questo sito richiede JavaScript. Attiva JavaScript per esplorare i nostri progetti di robotica open source.