420 likes | 517 Views
Sensor de velocitat mitjançant visió per computador. Alumne: Marc Revenga Esquinas. Tutor: Rafael García Campos. Grup de Visió per Computador i Robòtica. Estructura:. - Introducció. - Mòdul de software “Jerry”. - Mòdul de software “Jerry” (offline). - Mòdul de software “Tom”.
E N D
Sensor de velocitat mitjançant visió per computador Alumne: Marc Revenga Esquinas Tutor: Rafael García Campos Grup de Visió per Computador i Robòtica
Estructura: - Introducció - Mòdul de software “Jerry” - Mòdul de software “Jerry” (offline) - Mòdul de software “Tom” - Resultats experimentals - Conclusions - Treball futur
Antecedents Objectius Entorn de treball Sensor de velocitat mitjançant visió per computador Antecedents: - Aquest projecte s’emmarca en els treballs de robòtica submarina i construcció de fotomosaics. - Disposem d’uns robots amb sensors i una càmera subaquàtica que enfoca el fons marí. - Disposem d’un software capaç de generar a partir d’una seqüència d’imatges un mosaic. Aquest software no pot funcionar en temps real degut al seu elevat cost computacional. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador Objectius: Antecedents - Dotar a l’URIS i en un futur a en GARBI d’una primera implementació d’un sensor de velocitat basat en mosaicking. Objectius Entorn de treball - Llegir les dades d’una càmera connectada a una framegrabber. - Emmagatzemar mosaics. - Adaptar al MosaicEngine per treballar lo més a prop possible a temps real. - Fusionar les homografies que ens podia donar el MosaicEngine amb els diferents sensors disponibles en el robot que podien ser accedits mitjançant una arquitectura de comunicació existent desenvolupada sobre un sistema operatiu QNX. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador Antecedents Entorn de treball: Objectius - Es va treballar amb el robot URIS. Entorn de treball - Es un treball en grup. Això fa que diferents mòduls de software en que s’ha de treballar es desenvolupin en paral·lel. - Han sorgit problemes i s’ha hagut que canviar la idea inicial. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Introducció V4L2 Algorisme de mosaicking Mòdul visualitzador Mòdul GMML Càlcul de la velocitat Sensor de velocitat mitjançant visió per computador - És el mòdul de software encarregat d’implementar el sensor de velocitat fent servir algorismes de mosaicking. - Ens proporciona velocitat en X i en Y de la càmera. - Va equipat amb un visualitzador que ens permetrà veure la bonança dels càlculs. - Crea un fitxer GMML que guarda tota la informació del mosaic. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador Introducció V4L2 Algorisme de mosaicking Mòdul visualitzador Nou standard per a l’obtenció de vídeo en màquines Linux. Mòdul GMML Càlcul de la velocitat Es comença a gestar a finals del 2002. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Detecció de corners Detecció de correspondències Detecció d’outliers Càlcul de l’homografia Mòdul visualitzador Mòdul GMML Càlcul de la velocitat Sensor de velocitat mitjançant visió per computador Introducció - El MosaicEngine Jerry parteix del MosaicEngine. V4L2 Algorisme de mosaicking - En aquest algorisme s’ha pensat en optimitzar els càlculs per a que la construcció d’un mosaic sigui tot lo ràpid que es pugui acumulant el mínim error possible. - Es reutilitza la imatge de referència. - S’ aprofiten càlculs d’iteracions anteriors. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Detecció de corners Detecció de correspondències Detecció d’outliers Càlcul de l’homografia Mòdul visualitzador Mòdul GMML Càlcul de la velocitat Sensor de velocitat mitjançant visió per computador Introducció V4L2 Algorisme de mosaicking - Primera iteració de l’algorisme mosaicking entre la imatge actual i la imatge de referència. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Detecció de corners Detecció de correspondències Detecció d’outliers Càlcul de l’homografia Mòdul visualitzador Mòdul GMML Càlcul de la velocitat Sensor de velocitat mitjançant visió per computador Introducció V4L2 Algorisme de mosaicking - Nova iteració sense canviar la imatge de referència. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Detecció de corners Detecció de correspondències Detecció d’outliers Càlcul de l’homografia Mòdul visualitzador Mòdul GMML Càlcul de la velocitat Sensor de velocitat mitjançant visió per computador Introducció V4L2 Algorisme de mosaicking - Nova iteració sense canviar la imatge de referència. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Detecció de corners Detecció de correspondències Detecció d’outliers Càlcul de l’homografia Mòdul visualitzador Mòdul GMML Càlcul de la velocitat Sensor de velocitat mitjançant visió per computador Introducció V4L2 Algorisme de mosaicking - Nova iteració canviat la imatge de referència per la imatge actual de l’iteració anterior. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Detecció de corners Detecció de correspondències Detecció d’outliers Càlcul de l’homografia Mòdul visualitzador Mòdul GMML Càlcul de la velocitat Sensor de velocitat mitjançant visió per computador Introducció V4L2 Algorisme de mosaicking - Nova iteració canviat la imatge de referència per la imatge actual de l’iteració anterior. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Detecció de corners Detecció de correspondències Detecció d’outliers Càlcul de l’homografia Mòdul visualitzador Mòdul GMML Càlcul de la velocitat Sensor de velocitat mitjançant visió per computador Introducció V4L2 Algorisme de mosaicking - Nova iteració sense canviar la imatge de referència. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Detecció de corners Detecció de correspondències Detecció d’outliers Càlcul de l’homografia Mòdul visualitzador Mòdul GMML Càlcul de la velocitat Sensor de velocitat mitjançant visió per computador Introducció V4L2 Algorisme de mosaicking - Nova iteració sense canviar la imatge de referència. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Detecció de corners Detecció de correspondències Detecció d’outliers Càlcul de l’homografia Mòdul visualitzador Mòdul GMML Càlcul de la velocitat Sensor de velocitat mitjançant visió per computador Introducció V4L2 La comparativa de la deriva acumulada en els algoritmes de mosaicking seria: Algorisme de mosaicking antic (canviant la imatge de referència a cada iteració) nou (aprofitant la imatge de referència) Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Mòdul visualitzador Mòdul GMML Càlcul de la velocitat Sensor de velocitat mitjançant visió per computador Introducció V4L2 Aquesta fase de l’algorisme de mosaicking s’encarrega de: Algorisme de mosaicking Detecció de corners - Buscar els punts a la imatge de referència que siguin fàcilment identificables en imatges successives. Detecció de correspondències Detecció d’outliers - Aquests punts han de ser identificables encara que les condicions d’il·luminació canviïn força sense problemes de redundància o ambigüitat. Càlcul de l’homografia - Aquests punts els anomenem corners. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Mòdul visualitzador Mòdul GMML Càlcul de la velocitat Sensor de velocitat mitjançant visió per computador Introducció V4L2 Algorisme de mosaicking En el nostre cas implementem l’algorisme de Harris. Detecció de corners Detecció de correspondències Detecció d’outliers Càlcul de l’homografia Imatge original Imatge amb els N millors corners dibuixats Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador Introducció V4L2 S’intenta: Algorisme de mosaicking - Reduir el temps de càlcul. Detecció de corners Detecció de correspondències - Aprofitar càlculs ja fets. Detecció d’outliers Càlcul de l’homografia Mòdul visualitzador Mòdul GMML Càlcul de la velocitat Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador Introducció Els outliers són falsos matchings. Aquests es poden donar per: V4L2 Algorisme de mosaicking - Errors en la detecció de correspondències. Detecció de corners - Hi ha una part de la imatge que no segueix el mateix moviment que la resta de la imatge (un peix que passa per sota la càmera). Detecció de correspondències Detecció d’outliers Càlcul de l’homografia Mòdul visualitzador Mòdul GMML Imatge amb outliers Imatge sense outliers Càlcul de la velocitat Implementat un algorisme d’estadística robusta (Least Median of Squares). Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador Introducció V4L2 Algorisme de mosaicking S’ha de resoldre el sistema d’equacions: Detecció de corners Detecció de correspondències El sistema es resol mitjançant SVD (Singular Value Decomposition). Detecció d’outliers Càlcul de l’homografia Mòdul visualitzador Mòdul GMML Càlcul de la velocitat Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Detecció de corners Detecció de correspondències Detecció d’outliers Càlcul de l’homografia Mòdul visualitzador Mòdul GMML Càlcul de la velocitat Sensor de velocitat mitjançant visió per computador Introducció V4L2 El mòdul visualitzador és l’encarregat de dibuixar la informació que ens va transmetent l’algorisme de mosaicking. Algorisme de mosaicking Modes de funcionament: - Mosaic: Construeix el mosaic resultant. - Traça: Dibuixa uns quadrats que representen el centre de la imatge. Representa el moviment de la càmera. - Debug: Serveix per debuggar. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Mòdul visualitzador Mòdul GMML Càlcul de la velocitat Sensor de velocitat mitjançant visió per computador Introducció V4L2 Mode “traça” Mode “mosaic” Algorisme de mosaicking Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador Introducció V4L2 El mòdul GMML és l’encarregat de guardar les dades del mosaic resultant. Algorisme de mosaicking Aquest fitxer està creat amb un llenguatge de tags XML. Mòdul visualitzador Mòdul GMML Càlcul de la velocitat Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador Introducció V4L2 Per la implementació feta només necessitem conèixer tres dades : Algorisme de mosaicking Mòdul visualitzador - Saber quants píxels ens hem desplaçat en X i en Y. Aquesta dada ens la proporciona el MosaicEngine Jerry amb l’homografia resultant dels seus càlculs. Mòdul GMML Càlcul de la velocitat - Distància respecte al fons. - Dades que ens proporciona el fabricant de la càmera. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador - Era complicat fer proves amb el robot contínuament. - Va sorgir com a necessitat de provar l’algorisme MosaicEngine Jerry sobre una seqüència d’imatges coneguda de la forma més simple possible. - Està desenvolupat utilitzant la filosofia Galadriel Framework amb la nostra particular implementació anomenada Galadriel Parts. - És multiplataforma. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador - Era complicat fer proves amb el robot contínuament. - Va sorgir com a necessitat de provar l’algorisme MosaicEngine Jerry sobre una seqüència d’imatges coneguda de la forma més simple possible. - Està desenvolupat utilitzant la filosofia Galadriel Framework amb la nostra particular implementació anomenada Galadriel Parts. - És multiplataforma. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador - Permet llegir fitxers gmmls generats pel mòdul de software “Jerry”. - Pot implementar algorismes amb un alt cost computacional. - Ens proporciona molta flexibilitat per incorporar nous algorismes. - Està desenvolupat utilitzant la filosofia Galadriel Framework amb la nostra particular implementació anomenada Galadriel Parts. - És multiplataforma. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador - Permet llegir fitxers gmmls generats pel mòdul de software “Jerry”. - Pot implementar algorismes amb un alt cost computacional. - Ens proporciona molta flexibilitat per incorporar nous algorismes. - Està desenvolupat utilitzant la filosofia Galadriel Framework amb la nostra particular implementació anomenada Galadriel Parts. - És multiplataforma. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador Optimització de codi. Temps aproximats. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador Reducció de la deriva acumulada. Model similarity (377 imatges). Aprofitant la imatge de referència (mètode nou). Canviant la imatge de referència a cada iteració (mètode antic). Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador Derives acumulades a les rotacions Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador Dades aproximades del temps de càlcul del sensor de velocitat. Càlculs generats a partir d’un Pentium IV a 2,6 GHz. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador S’ha de millorar el comportament de l’algorisme de mosaicking amb imatges rotades. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador Model euclidià vs similarity. euclidià similarity Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador Encara no tenim un sistema que processi 25 imatges/segon. Falta optimitzar els càlculs de l’algorisme. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador Crear un mòdul de comunicació amb els robots. Fusionar les dades dels diferents sensors amb l’algorisme de mosaicking. - Reduirem deriva. - Reduïm el temps de càlcul. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador Canvi dels algorismes de l’algorisme de mosaicking. - Detecció de corners. - Detecció de correspondències. etc. Canvi en l’implementació dels algorismes. Rotar la imatge de referència per corregir els problemes que tenim en zones amb alta rotació. Mòdul de software “Jerry” Mòdul de software “Tom” Resultats experimentals Treball futur Mòdul de software “Jerry” (offline) Introducció Conclusions
Sensor de velocitat mitjançant visió per computador Fi de la presentació.
Aplicació Aplicació Aplicació Buffer 0 Buffer 1 ... Buffer 0 Buffer 1 ... Buffer 0 Buffer 1 ... Driver Driver Sensor de velocitat mitjançant visió per computador El mètode d’obtenció de frames utilitzat és “Streaming I/O (memory mapping)”. - L’aplicació crea uns buffers a memòria. - Compartició de buffers de memòria entre el programa i el driver. - El driver emplena els buffers un a un amb un frame. - L’aplicació va llegint els buffers i els marca com a buits.
Sensor de velocitat mitjançant visió per computador Exemple simple del funcionament de l’algorisme: Punts reals respecte els punts ideals
Sensor de velocitat mitjançant visió per computador Partim de les dades que ens proporciona el fabricant de la càmera: En el nostre cas el fabricant ens facilita l’angle en X de la càmera.