-

hey viewer, we're moving!

We are currently transitioning to a new web system, so we are not updating this wikisite anymore.

The public part of the new web system is available at http://www.ira.disco.unimib.it


VisionBasedAutonomousDriving0910

From Irawiki

Jump to: navigation, search

Contents

Descrizione

Progetto per il corso di Visione Artificiale 2009-2010 (Laurea Magistrale). Il progetto ha toccato vari punti, sinteticamente elencati di seguito:

  • Verifica dei fondamenti teorici degli algoritmi di V-Disparity precedentemente implementati
  • Verifica della congruenza del codice e degli algoritmi con le equazioni e la teoria
  • Tuning dei parametri di setup e studio della loro influenza sulla qualità dei risultati
  • Implementazione di pre-processing al fine di migliorare i risultati
  • Test estensivi ed intensivi per la verifica dei risultati raggiunti
    • Parametri del software
    • Parametri dei filtri
    • Tecniche di scatto

Partecipanti

Activity Plan

  • 18/12/2009 - Verifica formule (7) (8) e (9) del paper
  • 04/03/2010 - Installazione e calibrazione camera
  • 08/03/2010 - Scatto fotografie alla strada
  • 28/03/2010 - Test := abbiamo provato ad utilizzare il filtro HighPass. Nessun aumento di precisione (allegato file excel)
  • 01/04/2010 - Pulizia del codice, ora le formule sono comprensibili ed utilizzate come sul paper Labayrade.
  • 08/04/2010 - Verifica formule (10) ed (11) del paper
  • 15/04/2010 - Task Sorrenti := Riverifica formule (con Axel), rimesso a fuoco camere, calibrazione, rettificazione, ricalibrazione con immagini rettificate
  • 23/04/2010 - Verifiche con nuovi dati
  • 26/04/2010 - Sperimentazione con le nuove immagini, aggiornamenti vari
  • 08/05/2011 - Riaggiornamento IRAWiki dopo crash cataclismico

Per ulteriori dettagli consultare il file Diario Computer Vision.

Scatto fotografie

Sono state scattate fotografie su due strade (set di fotografie strada1 e strada2), la via che porta verso il Bicocca Village e la via dietro l'U14. Sono state scattate immagini con inclinazione delle camere a 0° 10° 15° 20° e 45°. La pendenza di entrambe le strade è stata calcolata con un distometro laser sulla distanza di 20 metri circa; la strada1 presenta una pendenza di circa 4°, mentre la strada2 ha una pendenza trascurabile.

I dati calcolati di inclinazione camere ed altezza sono stati calcolati con le formule (10) ed (11); i dati relativi ad inclinazione camere si avvicinano alla reale inclinazione delle camere, mentre per ciò che concerne l'altezza individuata rileviamo una completa inesattezza del dato calcolato (altezza fissa a 120cm, rilevata tra 70cm e 90cm a seconda dell'inclinazione).

Calibrazione parametri svs

I parametri di SVS (Correlation Window Size, Confidence threshold, Unique threshold, Specklesize, Number of pixel disparities to search, Horopter X-offset) *non* erano impostati da codice ma caricati "predefiniti"). Abbiamo provato ad impostare valori di confidence=22, disparoty=64, unique=0, windows=17, speckle=400, x=0 cercando di ottenere una immagine di disparità sul programma ./smallv ottimale. Abbiamo poi eseguito il test con il filtro highpass sui due set di immagini (con e senza l'applicazione dei parametri). I risultati sono sul file excel disponibile qui

L'attività di calibrazione è stata effettuata sia sui set di immagini denominati "strada1" e "strada2" sia sui corrispettivi set "strada1_task_sorrenti" e "strada2_task_sorrenti" (24/4/2010) calcolati applicando l'highpass filter descritto nel paragrafo successivo (file parametri)


Test HighPass Filter (alias task_sorrenti)

Per cercare di aumentare il dettagli sulle immagini abbiamo provato ad utilizzare un filtro passa-alto. Il filtro è stato applicato sulle singole immagini utilizzando Gimp impostato con diverse ampiezze della finestra di azione del filtro (da 0 a 20 pixels), quindi i valori di altezza ed inclinazione delle telecamere sono stati ricalcolati. Purtroppo i valori dei parametri altezza e inclinazione camere restano costanti: aumentando l'ampiezza della finestra del filtro non si sono registrati miglioramenti, quindi riteniamo che applicare questo tipo di filtro, sulle immagini generate da queste telecamere non sia necessario.

Update: abbiamo riscontrato che la "maschera di unsharp" era attiva nel codice fornito da Meregalli (nonostante nella relazione è scritto il contrario (pagina 4, paragrafo 2 "Unsharp mask"). Abbiamo quindi rieseguito i test con la "maschera di unsharp" sempre disattivata, con il filtro highpass applicato con finestra da 1px a 20px, e con i parametri SVS "standard" e quelli ottimizzati utilizzando ./smallv

Non si riscontano miglioramenti neppure in questo modo.

Verifica formule paper

Le formule (7) (8) e (9) del paper sono state verificate in questo allegato.

Le formule utilizzate per il calcolo dell'inclinazione e dell'altezza delle camere sono state verificate. Riportiamo i passaggi necessari per arrivare a queste formule, aventi come base l'equazione della disparità, in questo allegato.

Bibliografia

Real Time Obstacle Detection on Non Flat Road Geometry through `V-Disparity' Representation di Labayrade, Aubert, Tarel



Ultimi aggiornamenti (Ballardini)

--Ballardini Augusto Luis 15:31, 11 May 2010 (UTC) In data 11/maggio, dopo i suggerimenti di Daniele/Axel/Sorrenti ho provveduto a modificare il parametro "max_disparity". La disparità che veniva calcolata infatti era maggiore della larghezza massima delle immagini (questo in tutti i progetti fino ad ora svolti), e questo è dovuto al fatto che le librerie SVS calcolano una disparità interpolata a 1/16 di pixel. Dal manuale dell'SVS Disparities are interpolated to 1/16 pixel, so a search range of 16 means that there are 256 integral disparity values, ranging from 0 (no disparity) to 255 (maximum disparity of 15 15/16 pixels). La disparità viene calcolata nel codice subito sotto la rettifica delle immagini e appena prima del calcolo della v-disparity.

max_disp = max(disp_gen->GetDisparity(), img_height * img_width); // ricerca massimo disparity

Questo è il valore da dividere per 16.

Inoltre Daniele sostiene che le formule per il calcolo dell'altezza siano errate, in particolare che la formula giusta per l'altezza sia

h = b * cos(θ) * m

Provando ad eseguire il programma con divisione per 16 e con m moltiplicato (*m) al posto di m diviso (/m) nella formula dell'altezza, i valori si avvicinano di più a quelli reali. Ho provato a lasciare inalterato il valore di max_disparity e dividere il valore di m/16 ed i risultati sono migliorati leggermente.

Il prossimo step sarebbe quello di verificare, nuovamente, la formula dell'altezza del paper, che dai calcoli effettuati in iralab con l'aiuto di Axel sembrano corretti (e magari coordinarsi con Daniele per la verifica di questa formula).

Inoltre analizzando il codice, che oramai ha una buona parte disabilitata e necessiterebbe di una buona pulizia, ho finalmente trovato la funzione che assegna i parametri dell'SVS. La funzione si chiama è:

    //*****************************************************//
    //************** ASSEGNAMENTO PARAMETRI ***************//
    //*****************************************************//
    void assign_disp_params(svsDisparityParams* disp_params)
    {
    	disp_params -> lr=true;
     	disp_params -> ndisp=64;	// num disparities
     	disp_params -> corrsize=11;
     	disp_params -> thresh=12;
     	disp_params -> unique=10;// uniqueness filter
    	disp_params -> offx=0;
    	disp_params -> offy=0;
    }

mentre i parametri che avevo precedentemente utilizzato erano nel file DisparityGen.cpp

    stImagesRect->dp.lr=dp.lr;
    stImagesRect->dp.ndisp = 64;	// num disparities
    stImagesRect->dp.corrsize = 17;
    stImagesRect->dp.thresh = 22;
    stImagesRect->dp.unique = 0;// uniqueness filter
    stImagesRect->dp.offx=0;
    stImagesRect->dp.offy=dp.offy;
    stImagesRect->haveDisparity=false;
    stImagesRect->dp.specklesize=400;



Contributo di Beretta Claudio

piano di lavoro (20 - 30 ore)

inserire fotografia in pagina personale ottenere accesso sf dafne acquisire delle stereo immagini dal cart USAD, con l'aiuto di Fermi Roberto, acquisendo anche la GT (Ground Truth) di altezza, pitch e roll rispetto alla camera left; per fare ciò usare pure livella, goniometro, laser meter, etc. effettuare esecuzione software DAFNE e vecchio SVS per ogni coppia stereo per cui sia disponibile la GT calcolare media e varianza errore su altezza, pitch e roll sia per DAFNE che per SVS

Personal tools