sensor de velocitat mitjançant visió per computador
DESCRIPTION
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”. - PowerPoint PPT PresentationTRANSCRIPT
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
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció
Sensor de velocitat mitjançant visió per computador
Conclusions Treball futur
- 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.
Antecedents:Objectius
Antecedents
Entorn de treball
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció
Sensor de velocitat mitjançant visió per computador
Conclusions
- Dotar a l’URIS i en un futur a en GARBI d’una primera implementació d’un sensor de velocitat basat en mosaicking.
- Llegir les dades d’una càmera connectada a una framegrabber.
- Emmagatzemar mosaics.
Objectius:
- 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.
Objectius
Antecedents
Entorn de treball
Treball futur
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció
Sensor de velocitat mitjançant visió per computador
Conclusions
- 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.
Objectius
Antecedents
Entorn de treball
Treball futur
Sensor de velocitat mitjançant visió per computador
V4L2
Mòdul visualitzador
Mòdul GMML
Introducció
Algorisme de mosaicking
Càlcul de la velocitat
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
- É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.
Treball futur
V4L2
Mòdul visualitzador
Mòdul GMML
Introducció
Algorisme de mosaicking
Sensor de velocitat mitjançant visió per computador
Càlcul de la velocitat
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
Nou standard per a l’obtenció de vídeo en màquines Linux.
Es comença a gestar a finals del 2002.
Treball futur
V4L2
Introducció
Algorisme de mosaicking
Detecció de corners
Detecció de
correspondències
Detecció d’outliers
Càlcul de l’homografia
Sensor de velocitat mitjançant visió per computador
Mòdul visualitzador
Mòdul GMML
Càlcul de la velocitat
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
- El MosaicEngine Jerry parteix del MosaicEngine.
- 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.
- S’ aprofiten càlculs d’iteracions anteriors.
- Es reutilitza la imatge de referència.
Treball futur
V4L2
Introducció
Algorisme de mosaicking
Detecció de corners
Detecció de
correspondències
Detecció d’outliers
Càlcul de l’homografia
Sensor de velocitat mitjançant visió per computador
Mòdul visualitzador
Mòdul GMML
Càlcul de la velocitat
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
- Primera iteració de l’algorisme mosaicking entre la imatge actual i la imatge de referència.
Treball futur
V4L2
Introducció
Algorisme de mosaicking
Detecció de corners
Detecció de
correspondències
Detecció d’outliers
Càlcul de l’homografia
Sensor de velocitat mitjançant visió per computador
Mòdul visualitzador
Mòdul GMML
Càlcul de la velocitat
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions Treball futur
- Nova iteració sense canviar la imatge de referència.
V4L2
Introducció
Algorisme de mosaicking
Detecció de corners
Detecció de
correspondències
Detecció d’outliers
Càlcul de l’homografia
Sensor de velocitat mitjançant visió per computador
Mòdul visualitzador
Mòdul GMML
Càlcul de la velocitat
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
- Nova iteració sense canviar la imatge de referència.
Treball futur
V4L2
Introducció
Algorisme de mosaicking
Detecció de corners
Detecció de
correspondències
Detecció d’outliers
Càlcul de l’homografia
Sensor de velocitat mitjançant visió per computador
Mòdul visualitzador
Mòdul GMML
Càlcul de la velocitat
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions Treball futur
- Nova iteració canviat la imatge de referència per la imatge actual de l’iteració anterior.
V4L2
Introducció
Algorisme de mosaicking
Detecció de corners
Detecció de
correspondències
Detecció d’outliers
Càlcul de l’homografia
Sensor de velocitat mitjançant visió per computador
Mòdul visualitzador
Mòdul GMML
Càlcul de la velocitat
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions Treball futur
- Nova iteració canviat la imatge de referència per la imatge actual de l’iteració anterior.
V4L2
Introducció
Algorisme de mosaicking
Detecció de corners
Detecció de
correspondències
Detecció d’outliers
Càlcul de l’homografia
Sensor de velocitat mitjançant visió per computador
Mòdul visualitzador
Mòdul GMML
Càlcul de la velocitat
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
- Nova iteració sense canviar la imatge de referència.
Treball futur
V4L2
Introducció
Algorisme de mosaicking
Detecció de corners
Detecció de
correspondències
Detecció d’outliers
Càlcul de l’homografia
Sensor de velocitat mitjançant visió per computador
Mòdul visualitzador
Mòdul GMML
Càlcul de la velocitat
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
- Nova iteració sense canviar la imatge de referència.
Treball futur
V4L2
Introducció
Algorisme de mosaicking
Detecció de corners
Detecció de
correspondències
Detecció d’outliers
Càlcul de l’homografia
Sensor de velocitat mitjançant visió per computador
Mòdul visualitzador
Mòdul GMML
Càlcul de la velocitat
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
La comparativa de la deriva acumulada en els algoritmes de mosaicking seria:
antic (canviant la imatge de referència a cada iteració)
nou (aprofitant la imatge de referència)
Treball futur
V4L2
Introducció
Algorisme de mosaicking
Detecció de corners
Detecció de
correspondències
Detecció d’outliers
Càlcul de l’homografia
Sensor de velocitat mitjançant visió per computador
Mòdul visualitzador
Mòdul GMML
Càlcul de la velocitat
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
Aquesta fase de l’algorisme de mosaicking s’encarrega de:
- 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.
- Buscar els punts a la imatge de referència que siguin fàcilment identificables en imatges successives.
- Aquests punts els anomenem corners.
Treball futur
V4L2
Introducció
Algorisme de mosaicking
Detecció de corners
Detecció de
correspondències
Detecció d’outliers
Càlcul de l’homografia
Sensor de velocitat mitjançant visió per computador
Mòdul visualitzador
Mòdul GMML
Càlcul de la velocitat
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
En el nostre cas implementem l’algorisme de Harris.
Treball futur
Imatge original Imatge amb els N
millors corners dibuixats
V4L2
Mòdul visualitzador
Mòdul GMML
Introducció
Algorisme de mosaicking
Detecció de corners
Detecció de
correspondències
Detecció d’outliers
Càlcul de l’homografia
Sensor de velocitat mitjançant visió per computador
Càlcul de la velocitat
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
S’intenta:
- Reduir el temps de càlcul.
- Aprofitar càlculs ja fets.
Treball futur
V4L2
Mòdul visualitzador
Mòdul GMML
Introducció
Algorisme de mosaicking
Detecció de corners
Detecció de
correspondències
Detecció d’outliers
Càlcul de l’homografia
Sensor de velocitat mitjançant visió per computador
Càlcul de la velocitat
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
Els outliers són falsos matchings. Aquests es poden donar per:
- Errors en la detecció de correspondències.
- 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).
Imatge amb outliers Imatge sense outliers
Treball futur
Implementat un algorisme d’estadística robusta (Least Median of Squares).
V4L2
Mòdul visualitzador
Mòdul GMML
Introducció
Algorisme de mosaicking
Detecció de corners
Detecció de
correspondències
Detecció d’outliers
Càlcul de l’homografia
Sensor de velocitat mitjançant visió per computador
Càlcul de la velocitat
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
bAx
S’ha de resoldre el sistema d’equacions:
El sistema es resol mitjançant SVD (Singular Value Decomposition).
100
tyab
txba
Homografia
sin
cos
)/(
3
3
2
2
1
1
*
10
01
1033
0133
1022
0122
1011
0111
1
b
a
abtg
NMy
NMx
My
Mx
My
Mx
My
Mx
ty
tx
b
a
CxNCyN
CyNCxN
CxCy
CyCx
CxCy
CyCx
CxCy
CyCx
Treball futur
V4L2
Introducció
Algorisme de mosaicking
Detecció de corners
Detecció de
correspondències
Detecció d’outliers
Càlcul de l’homografia
Sensor de velocitat mitjançant visió per computador
Mòdul visualitzador
Mòdul GMML
Càlcul de la velocitat
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
El mòdul visualitzador és l’encarregat de dibuixar la informació que ens va transmetent l’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.
Treball futur
V4L2
Introducció
Algorisme de mosaicking
Sensor de velocitat mitjançant visió per computador
Mòdul visualitzador
Mòdul GMML
Càlcul de la velocitat
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
Mode “traça” Mode “mosaic”
Treball futur
V4L2
Mòdul visualitzador
Mòdul GMML
Introducció
Algorisme de mosaicking
Sensor de velocitat mitjançant visió per computador
Càlcul de la velocitat
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
El mòdul GMML és l’encarregat de guardar les dades del mosaic resultant.
Aquest fitxer està creat amb un llenguatge de tags XML.
Treball futur
V4L2
Mòdul visualitzador
Mòdul GMML
Introducció
Algorisme de mosaicking
Sensor de velocitat mitjançant visió per computador
Càlcul de la velocitat
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
Per la implementació feta només necessitem conèixer tres dades :
- 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.
- Distància respecte al fons.
Treball futur
- Dades que ens proporciona el fabricant de la càmera.
Sensor de velocitat mitjançant visió per computador
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
- 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.
- Era complicat fer proves amb el robot contínuament.
- És multiplataforma.
Treball futur
Sensor de velocitat mitjançant visió per computador
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
- 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.
- Era complicat fer proves amb el robot contínuament.
- És multiplataforma.
Treball futur
Sensor de velocitat mitjançant visió per computador
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
- Ens proporciona molta flexibilitat per incorporar nous algorismes.
- Està desenvolupat utilitzant la filosofia Galadriel Framework amb la nostra particular implementació anomenada Galadriel Parts.
- Permet llegir fitxers gmmls generats pel mòdul de software “Jerry”.
- És multiplataforma.
Treball futur
- Pot implementar algorismes amb un alt cost computacional.
Sensor de velocitat mitjançant visió per computador
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
- Ens proporciona molta flexibilitat per incorporar nous algorismes.
- Està desenvolupat utilitzant la filosofia Galadriel Framework amb la nostra particular implementació anomenada Galadriel Parts.
- Permet llegir fitxers gmmls generats pel mòdul de software “Jerry”.
- És multiplataforma.
- Pot implementar algorismes amb un alt cost computacional.
Treball futur
Sensor de velocitat mitjançant visió per computador
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
Optimització de codi. Temps aproximats.
Comparacions de temps
020000400006000080000
100000120000140000160000180000
96 47 25 13 7
Finestra de cerca
Tem
ps
(ms)
Temps algorisme antic
Temps algorisme nou
Treball futur
Temps algorisme antic (ms) Temps algorisme nou (ms) Parametrització % millora163105 26357 96 618,83143246 12107 47 1183,17136166 5608 25 2428,07132801 3806 13 3489,25131509 2564 7 5129,06
Sensor de velocitat mitjançant visió per computador
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
Reducció de la deriva acumulada. Model similarity (377 imatges).
Canviant la imatge de referència a cada iteració (mètode antic).
Aprofitant la imatge de referència (mètode nou).
Treball futur
Sensor de velocitat mitjançant visió per computador
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
Derives acumulades a les rotacions
Treball futur
Sensor de velocitat mitjançant visió per computador
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
Frame rate en el processament
(imatges/segon)Piscina P-IV 377 29731 12,7Cercle 605 51232 11,8Escombrat 876 82952 10,6Quadrat 586 51079 11,5Recta 372 27953 13,3Volta 228 20336 11,2Vuit 561 56797 9,9Vuit2 962 81496 11,8
Nom de la seqüència Nº imatges
Temps en mil·lisegons
Dades aproximades del temps de càlcul del sensor de velocitat.
Càlculs generats a partir d’un Pentium IV a 2,6 GHz.
Treball futur
Sensor de velocitat mitjançant visió per computador
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
S’ha de millorar el comportament de l’algorisme de mosaicking amb imatges rotades.
Treball futur
Sensor de velocitat mitjançant visió per computador
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Introducció
Model euclidià vs similarity.
similarity euclidià
ConclusionsResultats experimentals
Treball futur
Sensor de velocitat mitjançant visió per computador
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
Encara no tenim un sistema que processi 25 imatges/segon.
Frame rate en el processament
(imatges/segon)Piscina P-IV 377 29731 12,7Cercle 605 51232 11,8Escombrat 876 82952 10,6Quadrat 586 51079 11,5Recta 372 27953 13,3Volta 228 20336 11,2Vuit 561 56797 9,9Vuit2 962 81496 11,8
Nom de la seqüència Nº imatges
Temps en mil·lisegons
Falta optimitzar els càlculs de l’algorisme.
Treball futur
Sensor de velocitat mitjançant visió per computador
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
Fusionar les dades dels diferents sensors amb l’algorisme de mosaicking.
- Reduirem deriva.
- Reduïm el temps de càlcul.
Crear un mòdul de comunicació amb els robots.
Treball futur
Sensor de velocitat mitjançant visió per computador
Mòdul de software “Jerry”
Mòdul de software “Jerry” (offline)
Mòdul de software “Tom”
Resultats experimentals
Introducció Conclusions
Canvi en l’implementació dels algorismes.
Canvi dels algorismes de l’algorisme de mosaicking.
Rotar la imatge de referència per corregir els problemes que tenim en zones amb alta rotació.
- Detecció de corners.
- Detecció de correspondències.
etc.
Treball futur
Sensor de velocitat mitjançant visió per computador
Fi de la presentació.
Sensor de velocitat mitjançant visió per computador
- 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ó crea uns buffers a memòria.
Aplicació Buffer 0 Buffer 1 ...
DriverAplicació Buffer 0 Buffer 1 ...
DriverAplicació Buffer 0 Buffer 1 ...
- L’aplicació va llegint els buffers i els marca com a buits.
El mètode d’obtenció de frames utilitzat és “Streaming I/O (memory mapping)”.
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.
2
píxelsenXenimatgetamanyX
píxels
metres