Contents — find the section you need

Per valutare se due punti in un'immagine mostrano la stessa cosa, è più efficiente confrontare piccoli indizi facilmente individuabili piuttosto che confrontare l'intera immagine. Il processo di selezione di questi indizi è chiamato rilevamento delle caratteristiche. Esso rappresenta il punto di partenza di qualsiasi processo che necessiti di corrispondenza tra immagini: stima del movimento della telecamera, unione di panorami, ricostruzione 3D, recupero di immagini, ispezione visiva. Questo articolo distingue "dove selezionare" da "come abbinare i punti selezionati" e organizza il ragionamento alla base degli algoritmi classici sia dal punto di vista matematico che implementativo.

Telecamera di profondità Intel RealSense D435 montata su un treppiedeIntel RealSense D435

Immagine: Intel Telecamera di profondità RealSense D435 (Marc Auledas, CC BY-SA 4.0), Wikimedia Commons. Una telecamera rappresentativa, non un dispositivo di solo rilevamento di caratteristiche.

Riepilogo di 30 secondi

  • Posiziona i punti di interesse non su pareti piane, ma negli angoli con variazioni di intensità in più direzioni, oppure su macchie la cui luminosità differisce da quella circostante. Ciò che conta è essere rilevati nuovamente nello stesso punto dopo una piccola trasformazione dell'immagine (ripetibilità).

Il rilevamento degli angoli cattura la bidirezionalità dei gradienti locali; il rilevamento dei blob cattura una zona di luminosità localmente distinta a una certa scala. DoG cerca rapidamente i candidati blob dalla differenza di più immagini sfocate.

FAST valuta rapidamente gli angoli confrontando solo i pixel su un cerchio. ORB combina FAST con una piramide di immagini, la stima dell'orientamento e un descrittore binario BRIEF ruotato, risultando adatto all'uso in tempo reale.

SIFT seleziona la scala tramite DoG, normalizza l'orientamento con un istogramma della direzione del gradiente e costruisce un descrittore a 128 dimensioni. I costi computazionali e di memoria aumentano, ma è robusto alle variazioni di scala e rotazione.

Il solo rilevamento non determina la corrispondenza. La distanza del descrittore, il test del rapporto e la verifica geometrica basata su RANSAC devono essere valutati insieme come un'unica pipeline. Recentemente, anche i metodi di rilevamento e corrispondenza basati sull'apprendimento automatico, come SuperPoint, ALIKED e LightGlue, sono diventati pratici.

Cos'è un punto caratteristico? Non "un punto che spicca", ma "un punto che si può ritrovare"

Supponiamo che le coordinate dei pixel siano \mathbf{x}=(x,y)^\mathsf{T} e l'immagine I(\mathbf{x}). Un punto caratteristico è una posizione la cui porzione di area adiacente può essere rilevata stabilmente come la stessa posizione fisica anche dopo una leggera traslazione, rotazione o ridimensionamento, e che può essere distinta dagli altri punti grazie al pattern circostante. Il primo è chiamato rilevatore, mentre ciò che trasforma il secondo in un vettore numerico o in una stringa di bit è chiamato descrittore.

Questi due concetti sono distinti. FAST è, in linea di principio, un rilevatore; BRIEF è un descrittore; ORB è un meccanismo che combina entrambi. SIFT è la combinazione di un rilevatore DoG e di un descrittore basato sull'istogramma del gradiente. Confrontare solo i nomi può generare confusione, quindi d'ora in poi tratteremo sempre questo processo in tre fasi: "selezionare i punti", "rappresentare l'ambiente circostante" e "abbinare i punti".

Diagram 1 · Use the button to switch views
The flow of feature-based matchingDiagram showing feature points and descriptors extracted from two images, candidate correspondences geometrically verified with RANSAC, to obtain reliable correspondences. Image AInput frameDetect + describekeypoints / descriptorsScale and orientation stored tooCandidate matchingDistance, ratio testGeometric verificationRANSACCorrespondence / poseThe same extraction runs on Image B too

Figura: creata da Duskcoil. La qualità del sistema non è determinata dal numero di rilevamenti, ma dal numero di corrispondenze che risultano geometricamente coerenti.

Angoli: Selezione di punti che cambiano in due direzioni

La caratteristica più intuitiva è l'angolo. Scriviamo la variazione apparente quando una porzione di immagine W viene spostata di un piccolo spostamento \mathbf{u}=(u,v)^\mathsf{T} come SSD (somma delle differenze al quadrato):

E(\mathbf{u})=\sum_{\mathbf{x}\in W} w(\mathbf{x})\left[I(\mathbf{x}+\mathbf{u})-I(\mathbf{x})\right]^2 \simeq \mathbf{u}^{\mathsf{T}}\mathbf{M}\mathbf{u}

Con un'approssimazione di Taylor del primo ordine, la matrice della struttura locale (secondo momento) \mathbf{M} diventa

\mathbf{M}=\sum_{\mathbf{x}\in W}w(\mathbf{x}) \begin{bmatrix}I_x^2&I_xI_y\\I_xI_y&I_y^2\end{bmatrix}

dove I_x,I_y sono i gradienti dell'immagine e w è un peso come una finestra gaussiana. Sia Gli autovalori di \mathbf{M} sono \lambda_1,\lambda_2; un punto è un angolo in cui anche l'autovalore più piccolo è grande. Su un bordo, dove il gradiente è grande solo in una direzione, un autovalore rimane piccolo. Nelle regioni piatte, entrambi rimangono piccoli. Il rilevatore di Harris non calcola esplicitamente gli autovalori per ogni pixel; seleziona invece i massimi locali del seguente valore di risposta:

R=\det(\mathbf{M})-k\,\mathrm{trace}(\mathbf{M})^2 =\lambda_1\lambda_2-k(\lambda_1+\lambda_2)^2

k è tipicamente intorno a 0,04-0,06. Harris è relativamente robusto alla rotazione, ma poiché analizza attraverso una finestra di dimensioni fisse, non ha un meccanismo per selezionare lo stesso punto quando il soggetto viene ingrandito o rimpicciolito significativamente. Anche \min(\lambda_1,\lambda_2) di Shi-Tomasi è ampiamente utilizzato come criterio pratico per selezionare angoli adatti al tracciamento.

Blob: Un "Blob", anche senza un angolo, Un indizio utile

Gli angoli da soli non sono sufficienti per rilevare loghi rotondi, punti, fori scuri o il centro di un riflesso luminoso. Pertanto, un rilevatore di blob individua zone di luminosità localmente distinte rispetto all'ambiente circostante, a una certa scala. Scriviamo lo spazio delle scale levigato con una gaussiana G(\mathbf{x};\sigma) come

L(\mathbf{x};\sigma)=G(\mathbf{x};\sigma)*I(\mathbf{x})

dove * è la convoluzione e \sigma rappresenta "la dimensione che stiamo osservando". La risposta normalizzata alla scala del Laplaciano di Gaussiana (LoG),

\sigma^2\nabla^2L=\sigma^2(L_{xx}+L_{yy})

reagisce fortemente a un cerchio scuro su uno sfondo luminoso, o a un cerchio luminoso su uno sfondo scuro. Trovare gli estremi non solo nella posizione ma anche nello spazio tridimensionale (x,y,\sigma) includendo simultaneamente la direzione \sigma Individua il centro di una macchia e la sua dimensione caratteristica. Questo può anche essere interpretato come la scala corrispondente a una macchia circolare il cui raggio è approssimativamente \sqrt{2}\sigma.

La LoG è un'ottima idea, ma calcolare la derivata seconda esatta a ogni scala è oneroso. Questa approssimazione e l'accelerazione ottenuta portano alla DoG, e da lì a SIFT.

DoG: Trovare candidati invarianti alla scala da una differenza di sfocature

La differenza di Gaussiane (DoG) è la differenza tra due immagini sfocate adiacenti:

D(\mathbf{x};\sigma)=L(\mathbf{x};k\sigma)-L(\mathbf{x};\sigma)

dove k>1 è il rapporto tra le scale adiacenti. A meno di un fattore costante, la DoG approssima la LoG normalizzata alla scala, quindi i candidati a macchia possono essere cercati con una sola convoluzione aggiuntiva. Nell'implementazione, si costruisce una piramide gaussiana sfocando progressivamente l'immagine e si confronta ogni pixel DoG con i suoi 8 vicini alla stessa scala più 9 vicini. ciascuno alla scala sopra e sotto — 26 in totale. Un massimo o un minimo lo rende un candidato.

I candidati non vengono utilizzati così come sono. Gli estremi deboli sono rumore e vengono scartati, così come gli estremi lungo i bordi allungati. L'interpolazione di una funzione quadratica 3D attorno a un estremo DoG fornisce posizione e scala subpixel. Per l'Hessiana

\mathbf{H}=\begin{bmatrix}D_{xx}&D_{xy}\\D_{xy}&D_{yy}\end{bmatrix}

un \mathrm{Tr}(\mathbf{H})^2/\det(\mathbf{H}) grande indica una risposta del bordo in cui solo una curvatura principale è forte e tali punti vengono esclusi. Questo risolve lo stesso problema del rilevamento degli angoli: un punto su un bordo appare simile anche quando spostato lungo il bordo, quindi la sua corrispondenza non può essere definita in modo univoco.

FAST: Valutazione rapida degli angoli guardando solo un cerchio

Features from Accelerated Segment Test (FAST) utilizza i 16 pixel su un cerchio di Bresenham di raggio 3 attorno al pixel p. Dato un valore di soglia t , se n pixel consecutivi (tipicamente 9 o 12) sono tutti più luminosi di I_p+t , o tutti più scuri di I_p-t , p viene considerato un angolo.

\exists\,S_n:\quad \forall q\in S_n,\quad I_q>I_p+t\quad\text{or}\quad I_q<I_p-t

Poiché non calcola gradienti o matrici, ma solo un piccolo numero di confronti tra pixel più un rifiuto anticipato, è estremamente veloce. Il design che controlla prima i pixel nelle posizioni delle ore 1, 5, 9 e 13 sul cerchio e si arresta immediatamente se non è possibile formare una sequenza continua di pixel luminosi/scuri, è fondamentale per la sua velocità. D'altra parte, il semplice FAST non fornisce né scala né orientamento e tende a rispondere a molti punti lungo i bordi. Solo dopo aver valutato la differenza di intensità rispetto all'ambiente circostante, applicando un'analisi non massima soppressione (NMS), e combinandolo con una piramide di immagini diventa un rilevatore multiscala pratico.

ORB: Non lasciare FAST come "Veloce ma difficile da usare"

ORB (Oriented FAST and Rotated BRIEF) è una costruzione che potenzia FAST e BRIEF, con l'obiettivo di effettuare la corrispondenza di immagini in tempo reale. Innanzitutto, esegue FAST su una piramide di immagini per ogni rapporto di riduzione s, mantenendo i punti più alti di ogni livello. Questo conferisce, se non una precisione assoluta, robustezza alle variazioni di scala.

Successivamente, calcola il centroide di intensità della patch attorno al punto p. Dai momenti

m_{pq}=\sum_{x,y}x^py^q I(x,y),\qquad \mathbf{c}=\left(\frac{m_{10}}{m_{00}},\frac{m_{01}}{m_{00}}\right)

l'angolo \theta=\operatorname{atan2}(m_{01},m_{10}) dal centro p al centroide \mathbf{c} diventa l'orientamento dominante. Il descrittore BRIEF è una stringa di bit che confronta coppie di pixel (\mathbf{a}_i,\mathbf{b}_i) all'interno della patch:

\tau_i=\begin{cases}1&I(\mathbf{a}_i)<I(\mathbf{b}_i)\\0&\text{otherwise}\end{cases}

disposto circa 256 volte. In ORB, le coordinate della coppia di punti vengono ruotate di \theta prima del confronto, quindi lo stesso schema di bit tende a risultare anche dopo la rotazione. rBRIEF, che impara a selezionare coppie di confronto a bassa correlazione, è un altro modo per preservare il contenuto informativo dei bit. La distanza tra stringhe binarie può essere calcolata rapidamente come la distanza di Hamming, ovvero il numero di bit impostati dopo l'operazione XOR.

Il punto di forza di ORB è la velocità e l'efficienza della memoria su CPU e dispositivi embedded, ed è ampiamente adottato in Visual SLAM. Tuttavia, in presenza di grandi differenze di scala, forte sfocatura o cambiamenti significativi del punto di vista, SIFT o caratteristiche basate sull'apprendimento con descrizioni del gradiente più ricche possono risultare vantaggiose.

SIFT: Normalizzazione coerente di scala, orientamento e descrizione

La Trasformazione di Caratteristiche Invarianti alla Scala (SIFT) rileva Il metodo elabora gli estremi di (x,y,\sigma) tramite DoG e rimuove i punti a basso contrasto e le risposte ai bordi. Intorno a ciascun punto, calcola l'ampiezza e la direzione del gradiente e costruisce un istogramma di orientamento ponderato gaussiano. Il picco più grande diventa l'orientamento dominante utilizzato per normalizzare la rotazione della patch, e anche ai picchi secondari che superano l'80% del massimo viene assegnato un proprio orientamento. Questo è il fulcro della sua robustezza alla rotazione.

Per il descrittore, una finestra normalizzata di circa 16\times16 viene divisa in 4\times4 celle, e a ciascuna cella viene assegnato un istogramma di gradiente a 8 direzioni. La dimensionalità è quindi 4\times4\times8=128. Il vettore \mathbf{d} è normalizzato L2 e gli elementi superiori a 0,2 vengono troncati e rinormalizzati, sopprimendo la sensibilità alle variazioni di illuminazione locale.

\hat{\mathbf{d}}=\frac{\mathbf{d}}{\|\mathbf{d}\|_2},\qquad d_i\leftarrow\min(\hat d_i,0.2),\qquad \mathbf{d}\leftarrow\frac{\mathbf{d}}{\|\mathbf{d}\|_2}

In altre parole, l'"invarianza" di SIFT non è magia. È una progettazione esplicita che affronta ogni fonte di variazione individualmente: selezione della scala tramite la piramide dell'immagine, rotazione del sistema di coordinate in base all'orientamento dominante e assorbimento del contrasto tramite normalizzazione. Non è completa contro la deformazione affine o grandi differenze di punto di vista, che richiedono comunque l'utilizzo di RANSAC o geometria multivista a valle.

Pseudocodice di implementazione minima

L'elaborazione dei punti caratteristici non dovrebbe fermarsi all'estrazione, ma dovrebbe essere implementata fino alla verifica della corrispondenza. Di seguito è riportato uno scheletro applicabile sia a ORB che a SIFT.

function match_images(imageA, imageB, method):
    grayA, grayB = to_gray(imageA), to_gray(imageB)
    detector = create(method)        # ORB: FAST+pyramid+rBRIEF / SIFT: DoG+gradient
    keyA, descA = detector.detect_and_compute(grayA)
    keyB, descB = detector.detect_and_compute(grayB)

    metric = HAMMING if method == ORB else L2
    tentative = []
    for each descriptor a in descA:
        b1, b2 = two_nearest(a, descB, metric)
        if distance(a, b1) < 0.75 * distance(a, b2):
            tentative.append((a.keypoint, b1.keypoint))

    H, inlier_mask = RANSAC_HOMOGRAPHY(tentative, reproj_threshold=3px)
    return tentative[inlier_mask], H

Considerare solo il singolo vicino più prossimo lascia punti ambigui, come cornici di finestre, griglie e pattern ripetitivi, nel risultato. Il test del rapporto di Lowe utilizza il rapporto tra la distanza migliore d_1 e la seconda migliore d_2, scartando candidati in cui il divario con il secondo classificato non è sufficientemente ampio. RANSAC stima quindi una matrice di omografia \mathbf{H} o matrice fondamentale da piccoli sottoinsiemi casuali di corrispondenze come ipotesi e sceglie l'ipotesi che spiega il maggior numero di corrispondenze (inlier) con un piccolo errore di riproiezione. Se l'oggetto è planare o la telecamera è semplicemente ruotata sul posto, la coerenza può essere verificata con la matrice di omografia

\tilde{\mathbf{x}}'\sim\mathbf{H}\tilde{\mathbf{x}}

Per una scena 3D generica, viene invece utilizzata la matrice fondamentale/essenziale. Il conteggio e il rapporto degli inlier che sopravvivono fino a questo punto rappresentano la quantità di caratteristiche effettivamente utilizzabili.

Cosa è robusto a illuminazione, scala e rotazione e in che misura

Contro le variazioni di illuminazione, un semplice offset di luminosità I'(x,y)=I(x,y)+b distrugge le differenze tra pixel, ma ha scarso effetto sulle relazioni relative nei gradienti o nei confronti binari. Anche una variazione uniforme del contrasto I'=aI+b è Gestito abbastanza bene dalla normalizzazione del descrittore SIFT. Ma quando la struttura locale stessa cambia (saturazione dell'esposizione, contorni delle ombre, riflessi, giorno contro notte), i metodi classici da soli non offrono garanzie. Durante l'acquisizione, è necessario fissare o gestire con precisione l'esposizione e, se necessario, applicare la correzione del contrasto locale come CLAHE nelle stesse condizioni per entrambe le immagini. Una correzione eccessiva rischia di trasformare il rumore in caratteristiche spurie, quindi è necessario prestare attenzione.

Harris o FAST a risoluzione singola sono intrinsecamente deboli rispetto ai cambiamenti di scala. ORB, che cerca i candidati su una piramide di immagini, ha una tolleranza pratica, sebbene non la stessa normalizzazione di SIFT, che seleziona gli estremi di scala continui tramite DoG. Se la texture scompare a scala ridotta, nessun metodo può trovare una corrispondenza. La risoluzione di input, la profondità della piramide e la dimensione minima della patch devono essere decise in base all'intervallo previsto di variazione della distanza di acquisizione.

Rispetto alla rotazione, la risposta di Harris stessa è relativamente stabile, ma la corrispondenza richiede anche la rotazione del sistema di coordinate del descrittore. ORB assegna l'orientamento tramite il centroide dell'intensità, SIFT tramite l'istogramma della direzione del gradiente. Tale angolo continuo La normalizzazione è più efficace di un descrittore che gestisce solo rotazioni di 90 gradi. Allo stesso tempo, una forte vista obliqua non è rotazione e scalatura, ma una deformazione affine/proiettiva, che richiede invece dati multivista, caratteristiche affini covarianti o caratteristiche basate sull'apprendimento combinate con la verifica geometrica.

Metriche di valutazione: misurare le corrispondenze utilizzabili, non il conteggio dei punti

Per una coppia di immagini con un'omografia nota H, proiettare il punto \mathbf{x}_i dall'immagine A all'immagine B e, se un punto entro la distanza \epsilon esiste nell'insieme di punti rilevati K_B, considerarlo come un nuovo rilevamento riuscito. La ripetibilità è concettualmente

\mathrm{Repeatability}=\frac{\#\{\mathbf{x}_i\in K_A: \min_{\mathbf{y}\in K_B}\|H\mathbf{x}_i-\mathbf{y}\|<\epsilon\}}{\min(|K_A|,|K_B|)}

Ma trovare la stessa posizione è inutile se i descrittori non riescono a distinguerla. Quindi si riporta anche la precisione di corrispondenza (frazione di corrispondenze corrette). Conteggio delle corrispondenze corrette, rapporto inlier post-RANSAC, errore di rotazione/traslazione della posa stimata, tempo di elaborazione e memoria. HPatches è un benchmark rappresentativo che separa il cambiamento di illuminazione dal cambiamento di punto di vista per valutare la corrispondenza delle patch, i rilevatori e la stima dell'omografia. A meno che non si effettuino misurazioni con dati che corrispondono alla geometria dell'applicazione (planare o 3D a base ampia), non si dovrebbe adottare la classifica di un singolo punteggio così com'è.

Metodo Nucleo di rilevamento Descrittore Scala/rotazione Distanza di corrispondenza Punti di forza Principali avvertenze

Harris + patch|Matrice di struttura|Patch grezza, ecc.|Scala ✕, rotazione separata|SSD/NCC|Principio chiaro|Debole rispetto a illuminazione/scala|

LoG / DoG|Estremi blob nello spazio di scala|Necessita di un descrittore separato|Scala ◎, rotazione separata|Dipende dal descrittore|Ottiene blob e scala|Richiede il calcolo della piramide|

|VELOCE + BREVE|Luminosità continua sul cerchio|Confronto binario|Nessuno dei due da solo|Hamming|Molto veloce|Debole rispetto al punto di vista/scala| |ORB|Piramide VELOCE|Ruotato rBRIEVE|Scala ○, rotazione ○|Hamming|Leggero, adatto al tempo reale|Limitato in caso di grandi deformazioni| |SIFT|Estremi DoG|Istogramma del gradiente a 128 dimensioni|Scala ◎, rotazione ◎|L2|Solido, ben validato|Richiede molta CPU/memoria|

Basato sull'apprendimento|Appreso tramite rete|Vettore appreso|Rafforzato tramite dati|L2 / appreso|Elevato tasso di corrispondenza in condizioni difficili|Richiede modello, GPU, gestione della riproducibilità|

I valori ○ e ◎ nella tabella non sono assoluti Le valutazioni sono parametri di riferimento relativi per implementazioni tipiche e intervalli previsti. Anche SIFT risulta ambiguo quando lo stesso schema a griglia riempie l'immagine, e persino ORB può ottenere un numero sufficiente di inlier in condizioni moderate.

Dove si colloca nelle librerie attuali e nei prodotti reali

Per un primo prototipo, cv::ORB::create(), cv::SIFT::create() e cv::FastFeatureDetector::create() di OpenCV sono facili da usare. ORB si abbina a BFMatcher(NORM_HAMMING); SIFT a un BFMatcher basato sulla distanza L2 o a un matcher basato su FLANN. Anche se si desidera separare rilevatore e descrittore, l'API Feature2D di OpenCV consente di mantenere lo stesso flusso di lavoro. Per la sperimentazione basata sull'apprendimento e l'elaborazione GPU, Kornia su PyTorch fornisce SIFT, ORB, DISK, KeyNet/HardNet, LightGlue e altro ancora come elementi costitutivi.

In Nell'ambito della fotogrammetria e della ricostruzione 3D, COLMAP è lo strumento rappresentativo; la sua documentazione ufficiale attuale supporta SIFT standard e ALIKED quando compilato con ONNX abilitato. Poiché sia SIFT che ALIKED possono connettersi a corrispondenze a forza bruta o a corrispondenze LightGlue, è facile confrontare gli approcci classici e quelli basati sull'apprendimento nel punto di ingresso della ricostruzione. Quando si sceglie un prodotto o una libreria, è meglio decidere prima se deve essere eseguito solo su CPU, il budget di latenza, se è accettabile una corrispondenza offline intensiva e se è richiesto un blocco di versione riproducibile, piuttosto che se il nome del modello suona nuovo.

Ricerca recente: ottimizzazione congiunta di rilevamento, descrizione e corrispondenza

Un punto di svolta per gli approcci basati sull'apprendimento è stato SuperPoint. Una rete completamente convoluzionale produce contemporaneamente una mappa di probabilità dei punti di interesse e una mappa descrittiva, imparando in modo auto-supervisionato, tramite l'adattamento omografico, a riprodurre i punti attraverso trasformazioni geometriche. Questa è l'idea di apprendere dai dati dove si trovano le posizioni utili per la corrispondenza, piuttosto che affidarsi esclusivamente a una nozione progettata manualmente. "Angolo".

DISK affronta il problema della selezione e dell'abbinamento di punti sparsi, operazioni discrete e difficili da differenziare, ottimizzando il rilevamento e la descrizione end-to-end con gradienti di policy che premiano il numero di corrispondenze corrette. ALIKED utilizza un descrittore deformabile sparso che apprende le posizioni di supporto deformabili attorno a ciascun punto chiave, con l'obiettivo di bilanciare espressività ed efficienza estraendo i descrittori da punti sparsi anziché dall'intera mappa di caratteristiche densa.

Anche gli algoritmi di abbinamento si stanno allontanando dalla ricerca indipendente del vicino più prossimo. LightGlue stima le corrispondenze tra due insiemi di caratteristiche locali utilizzando un meccanismo di attenzione, con un calcolo adattivo che si arresta precocemente quando una coppia di immagini è facile da abbinare. Questo non è un rilevatore di caratteristiche in sé, ma è un importante promemoria del fatto che una buona distanza del descrittore dal rilevatore da sola non garantisce buone corrispondenze finali. Attualmente, è pratico confrontare una configurazione che utilizza caratteristiche classiche con un algoritmo di abbinamento leggero con una configurazione che abbina caratteristiche apprese come SuperPoint/ALIKED con LightGlue, con le stesse impostazioni RANSAC sui dati di destinazione.

Selezione e ottimizzazione Lista di controllo

  • Innanzitutto, registrare il conteggio dei rilevamenti, il conteggio dei superamenti del test di rapporto, il conteggio degli inlier RANSAC, il rapporto degli inlier e il tempo di elaborazione su coppie di immagini reali. Aumentare solo il conteggio dei rilevamenti può essere controproducente se aumentano anche le discrepanze.

  • Per il tracciamento di breve durata vicino a una telecamera fissa, iniziare con FAST/ORB e regolare nfeatures, la soglia FAST e i livelli della piramide. In condizioni di bassa texture, verificare la sfocatura, l'esposizione e la messa a fuoco prima di abbassare la soglia.

  • Per la corrispondenza di immagini fisse con grandi variazioni di distanza di acquisizione o rotazione, utilizzare SIFT come riferimento. Se un metodo più veloce supera SIFT deve essere sempre verificato sugli stessi dati con la stessa verifica geometrica.

  • Di notte, in presenza di forte controluce, durante i cambiamenti stagionali o con ampie differenze di punto di vista, considerare anche le caratteristiche basate sull'apprendimento. Tuttavia, includere il divario tra i dati di addestramento e l'ambiente di destinazione, gli aggiornamenti del modello e la disponibilità della GPU nella valutazione delle prestazioni.

  • Pattern ripetitivi, superfici speculari, oggetti in movimento e sfocatura da movimento estrema sono meno un problema di rilevamento delle caratteristiche che un'osservazione Ambiguità. Compensare con mascheramento, tracciamento temporale, fusione di sensori e pianificazione dell'acquisizione.

Il rilevamento delle caratteristiche non è un classificatore universale per la comprensione delle immagini. Tuttavia, rimane una tecnologia fondamentale efficace per selezionare, con un basso carico computazionale, quali pixel possono supportare la geometria. Comprendere i concetti di angoli, blob, spazio di scala e normalizzazione dell'orientamento consente di individuare le cause degli errori dietro i numeri, sia che si stia ottimizzando il classico ORB/SIFT sia che si stiano valutando caratteristiche basate sull'apprendimento.

Verifica la tua comprensione
È facile tracciare ogni punto su un bordo ben definito?

Il movimento lungo un singolo bordo è ambiguo. Gli angoli forniscono variazioni di intensità in diverse direzioni, rendendo più facile identificare il movimento bidimensionale.

Riferimenti

Ruota un’immagine sintetica nel laboratorio di estrazione e confronta i rilevamenti Harris e Shi–Tomasi.

What to read next

Review the backgroundGuida introduttiva alla calibrazione della fotocamera: recupero della distorsione dell'obiettivo e dei parametri intrinseci.Continue the seriesLab di luminosità e luminanza — esposizione, gamma e clippingExplore another aspect of this fieldLaboratorio di estrazione dei punti — confrontare Harris e Shi–Tomasi