Come selezionare le telecamere per un sistema di visione stereo?


18

Sto costruendo un sistema di visione stereo da utilizzare su un UGV. Il sistema è per un robot che verrà utilizzato in una competizione in cui il robot è teleoperato per trovare rocce colorate relativamente piccole in un grande campo all'aperto. Capisco come calibrare un tale sistema ed elaborare i dati per un sistema di visione stereo. Non so comunque come selezionare le telecamere per un tale sistema. Quali sono le migliori pratiche per scegliere le telecamere per un sistema di visione stereo?

Risposte:


11

Dalla parte superiore della mia testa andrei con i seguenti criteri di selezione

  • color / b & w - in genere b & w è migliore, poiché gli algoritmi stereo usano comunque solo un canale
  • linea di base - questo dipende davvero dalla scena. Con la linea di base controlli quanta precisione ottieni con la distanza. Una linea di base più ampia comporta valori di disparità più elevati e quindi meno rumore nella stima della distanza. Una linea di base più alta significa anche che avrai una sovrapposizione ridotta tra il tuo campo visivo. Ancora più importante, tuttavia, più ampia è la linea di base, più difficile sarà la corrispondenza tra le due viste. Quindi la qualità del risultato diminuisce.
  • otturatore: utilizzare sempre un otturatore globale per qualsiasi cosa con la visione del computer su robot mobili
  • risoluzione: la maggior parte degli algoritmi stereo sono computazionalmente costosi. E probabilmente non avrai bisogno di tanti punti 3d. Nel campo vicino la densità di campionamento è in genere sufficiente e nel campo lontano l'errore causato dalla bassa disparità è più un problema che la densità di campionamento. 640x480 va bene nella maggior parte dei casi. Alcuni chip hanno proporzioni più ampie, il che è favorevole per la sovrapposizione, ma puoi ottenere lo stesso usando una finestra secondaria del tuo chip.
  • obiettivi / campo visivo - per i robot mobili esterni preferisco un ampio campo visivo rispetto a obiettivi ristretti. Più o meno per gli stessi motivi della risoluzione. Assicurati che i tuoi obiettivi siano rigidi e disponga di un mezzo per fissare eventuali parti mobili, ad esempio la lunghezza focale regolabile. Nella maggior parte dei casi una lunghezza focale fissa va bene comunque, poiché si è limitati dalla selezione della linea di base.
  • trigger: quando crei il tuo impianto stereo, le tue telecamere dovrebbero supportare il trigger hardware e idealmente l'una dovrebbe attivare l'altra.
  • framerate - A mio avviso la considerazione meno importante. A meno che tu non abbia molta potenza di elaborazione, non otterrai comunque molto più di qualcosa come 5 Hz. Quindi il tuo algoritmo ha molte più probabilità di essere il collo di bottiglia, piuttosto che il chip o la connessione.
  • interfaccia: la maggior parte delle fotocamere sono dotate di Firewire / USB2 / USB3 / Ethernet. USB2 è inutile in quanto consuma molta CPU. Firewire è buono se hai una porta, ma penso che al momento sembra essere in declino a favore di USB3. Non ho ancora avuto molta esperienza con USB3. Ethernet è piuttosto carina perché al momento è più probabile trovare sistemi embedded con GigEthernet che USB3.
  • alloggiamento - il più rigido possibile. La ricalibrazione è una procedura fastidiosa.

6

Dovresti iniziare calcolando il numero di fotogrammi al secondo necessari e la risoluzione della fotocamera che puoi elaborare a quel framerate. Se non altro, ciò ti impedirà di spendere troppo o di acquistare una fotocamera che non soddisfi le tue esigenze.

Oltre a ciò, ci sono una varietà di funzioni che rendono la scelta più difficile / interessante. Telecamere diverse (in particolare telecamere di rete come Axis) consentono di modificare la qualità dell'immagine o di specificare un bitrate massimo per il flusso di immagini. Alcune fotocamere offrono anche opzioni sulla velocità dell'otturatore, consentendo di favorire un tempo di esposizione costante o un'illuminazione media costante nell'immagine. Alcune fotocamere sono più sensibili di altre (l'ultima volta che ho lavorato con questo è stato nel 2009 e abbiamo notato che PS3 Eye ha funzionato davvero bene in condizioni di scarsa illuminazione).

Probabilmente la cosa migliore che puoi fare sarebbe eseguire i tuoi algoritmi di elaborazione delle immagini su alcune immagini statiche acquisite con una DSLR, quindi tentare di ridurre le dimensioni e la qualità del frame per vedere dove le cose iniziano a rompersi.


6

Alcune cose che dovresti cercare:

  • Fondamentalmente l' otturatore globale significa che tutti i pixel vengono catturati contemporaneamente, al contrario dell'otturatore rotante dove vengono catturati in sequenza in modo scansione di linea. Poiché il tuo UGV si sposterà ed eseguirà algoritmi stereo sulle immagini acquisite, potrebbe essere importante evitare le aberrazioni che si verificano quando si sposta la fotocamera, come quelle viste nelle immagini seguenti (tratte da Wikipedia ):

L'auto in movimento scattata con il telefono con fotocamera CMOS mostra un'inclinazione Una foto che mostra un'esposizione parziale.  Le condizioni di illuminazione sono cambiate tra l'esposizione delle parti superiore e inferiore della foto. Un colpo di un'elica a turboelica

  • La sincronizzazione delle telecamere nell'hardware è realizzabile da alcune telecamere, in particolare le telecamere firewire AFAIK. Ciò può migliorare notevolmente i risultati dello stereo quando le cose si muovono.

  • Il montaggio dovrebbe essere fatto in modo che le modifiche nei parametri estrinseci (la posa relativa tra le telecamere) per la coppia stereo non cambieranno dopo la calibrazione. Nel tuo impianto potrebbe essere più importante, dal momento che l'UGV potrebbe affrontare terreni irregolari all'aperto e le cose vibreranno.

  • L'hardware stereo dedicato consente di acquisire immagini di disparità direttamente come output del sistema di visione stereo, che semplifica il carico dell'elaborazione integrata. Inoltre, tende ad essere molto più veloce rispetto all'esecuzione degli stessi algoritmi nel software.

Come al solito, più sei disposto a pagare, migliori saranno i risultati. Ad essere onesti, se sei in grado di acquistare una fotocamera stereo in piena regola come la Bumblebee2 , è quello che farei. Altrimenti, se sei più economico, andrei semplicemente con un Kinect : è improbabile che tu sia in grado di ottenere un sistema che lo superi allo stesso prezzo.


La domanda era per un sistema esterno. Questo esclude efficacemente Kinect. Inoltre, abbiamo trovato che gli algoritmi forniti con Bumblebee sono tutt'altro che ottimali.
Jakob,

Sono con te sul commento di Kinect, ma gli algoritmi stereo forniti con Bumblebee non possono essere sostituiti con il tuo codice? Il più grande vantaggio che stavo sottolineando era nell'hardware reale, non nel software che è in bundle con esso.
georgebrindeiro,

sì è vero. Puoi usarlo come due normali fotocamere e ha il vantaggio di un alloggiamento rigido.
Jakob,

non solo, ma otturatore globale, buoni obiettivi e altre chicche
georgebrindeiro,

4

Questo è un argomento interessante e non molto facile da ottenere al primo tentativo. Dall'esperienza con questo, ecco le cose più importanti.

  • Sincronizzazione . La videocamera deve essere sincronizzata al 100%. Ad esempio, supponiamo che l'UGV stia guidando a una modesta velocità di 36 km / ora (10 m / s) e stia registrando frame a 30 frame al secondo. Cioè, ad ogni frame l'UGV coprirebbe 3m. Ora, supponiamo che la sincronizzazione sia disattivata di 1 ms, una delle telecamere sarà spenta di ~ 0,3 m, il che è male [appena sopra la mia testa]. I problemi di sincronizzazione sono molto difficili da rilevare.

  • δZ=Z2BfδdδZBfδZδdδd1/2δd

  • Si sovrappongono . Vuoi avere una sovrapposizione tra le telecamere per ottenere lo stereo. Pertanto, è necessario scegliere una combinazione di lunghezza focale dell'obiettivo (campo visivo) e linea di base in modo da avere una sovrapposizione sufficiente per l'applicazione. Fondamentalmente, la trigonometria funziona sulla lavagna, o uno script rapido matlab / python.

Per gli UGV, ci sono due usi per lo stereo.

  1. Navigazione e stima della posa In questo caso molto probabilmente è necessaria una linea di base ampia + una lunghezza focale lunga. Ciò consente allo stereo di vedere e risolvere la profondità in modo migliore e con una portata maggiore.

  2. Rilevamento ed elusione degli ostacoli Probabilmente avrai bisogno di una linea di base più corta e di un obiettivo più ampio (lunghezza focale più piccola) in modo da poterti concentrare su cose molto vicine a te.

Alcuni UGV potrebbero avere entrambe le configurazioni stereo, l'ampio campo visivo di base di base per la navigazione e un altro uno o due per evitare gli ostacoli.

Fai molta attenzione a ciò che acquisti. Alcune aziende offrono configurazioni stereo già integrate. Questi sono grandi dal punto di vista della robustezza, non perdono facilmente la calibrazione e sono sempre sincronizzati. Il problema è che quelli disponibili in commercio hanno una base di base ridotta. Se vuoi costruirne uno tuo. Immagino che finirai per farlo, assicurati che la fotocamera sia sincronizzabile . Firewire è perfetto per questo, due telecamere sullo stesso bus si sincronizzeranno con una precisione di 125 microsecondi pronta all'uso! Le videocamere USB e Gige sono dolorose da sincronizzare. Quando metti tutto insieme, vuoi assicurarti che le lenti non si muovano affatto e che la linea di base sia rigida, molto rigida per l'applicazione.

Fai anche attenzione nella selezione dell'obiettivo. Non tutti gli obiettivi funzionano con tutte le fotocamere. Anche le lenti hanno una risoluzione. Questo è un altro argomento, ecco un breve articolo su questo http://www.qualitymag.com/articles/90642-qa--selecting-lenses-for-machine-vision-systems


4
Il calcolo della sincronizzazione è errato. 30 FPS a 10 m / s forniscono una distanza di 33 cm (non 3 m) per fotogramma. Anche 1 ms a questa velocità indica una distanza di 1 cm (indipendentemente dall'FPS). Quindi la sincronizzazione a livello di ms è in realtà un super risultato per tali velocità!
Kozuch,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.