Full text
TREBALL DE FI DE CARRERA Títol: Servei de detecció, reconeixement i localització de senyals de trànsit per terminals mòbils: Software de tractament d'imatges TITULACIÓ: Enginyeria Tècnica de Telecomunicacions, especialitat Sistemes de Telecomunicacions Autor: Jordi Cornellà i Calsina Director: Francesc Tarrés Ruiz Data: 22 de febrer de 2012
Resum Aquest projecte s'ha ideat, dissenyat i programat per solucionar un problema de la vida quotidiana. La solució permet assistir al conductor per evitar possibles accidents de trànsit. Consisteix en una aplicació per smartphones que mostra per pantalla els senyals de trànsit. El senyals mostrats són els que el conductor es trobarà metres més endavant. S'ha tingut en consideració que els senyals poden canviar al llarg del temps. Per aquest motiu, s'ha desenvolupat una base de dades dinàmica. Aquest dinamisme ve determinat per dos processos. El primer és que l'aplicació és capaç de realitzar fotografies de la carretera i enviar-les. Tot això sense la intervenció de l'usuari. El segon procés s'encarrega de recollir les fotografies, analitzar-les i actualitzar la base de dades. Totes les comunicacions necessàries són processades per un servidor intermediari. Aquest enllaça els smartphones amb la base de dades i gestiona l'enviament de les fotografies. Degut a que aquest projecte abasta diferents matèries es decideix separar-les en tres volums. Aquest volum desenvolupa com s'ha dissenyat i programat el servidor de processat d'imatge. La seva funció més important és la de mantenir actualitzada la base de dades de senyals. El seu funcionament es basa en filtrar, detectar i reconèixer les imatges enviades pel dispositius mòbils. El filtratge discrimina els colors no rellevants de la imatge. Els colors que es deixen passar són els vermells i els blaus. Aquests colors són els que contenen la gran majoria de senyals de trànsit. Per fer la detecció es necessita aconseguir la imatge processada en format binari. D'aquesta manera es poden detectar objectes en la imatge. Els objectes s'analitzen per buscar possibles formes geomètriques descartant els objectes no desitjats. El reconeixement utilitza el mètode de la correlació. Es calcula comparant uns patrons predefinits amb els objectes que provenen de la detecció. A partir del càlcul s'obté quin senyal és i s'actualitza la base de dades. Sense aquesta part no seria possible l'actualització automàtica de la base de dades.
Title: Detection, recognition and location of traffic signs for smartphones service: Image Processing Software Author: Jordi Cornellà i Calsina Director: Francesc Tarrés Ruiz Date: February, 22nd 2012 Overview This project has been conceived, designed and developed as solution for a problem. The solution helps the driver to avoid car crashes. It’s an application for smartphones. It can show the traffic sign on screen. The driver can see the traffic signs beyond his/her visibility. We thought about the traffic signs life. It can be changed over time. For this reason, we have developed a dynamic database. This dynamism is determined by two processes. The first one, the application can take photos of the road and send it without human intervention. The second one, picks up the photos, makes analyze and makes a database update. All communications are processed by the proxy server. The proxy connects the smartphones with database. Also, the images are managed by the proxy. As a big project, with different subjects, we choose split the project into three reports. This report explains how the image processing server has been designed and developed. The main function is keep the traffic sign database updated. Its work is based on filtering, detection and recognition of send image from mobile devices. The filtering tries to discriminate the less important colors of the image. For the project, the most important colors are red and blue. These colors are the most used on traffic signs. The detection needs a binary image from the original image for processing. This way, the objects can be detected into the image. The objects are analyzed looking for geometric shapes. The shapeless objects are deleted. The recognition uses the correlation method. It’s calculated comparing preset patterns with the objects from the detection block. From the calculus, the traffic sign is found and the database updated. Without this part of the project, it wouldn’t be possible the database updates.
ÍNDEX INTRODUCCIÓ .................................................................................................. 1 CAPÍTOL 1. TRAFFIC SIGNS DETECTION & RECOGNITION (TSDR) ........... 3 1.1. Dificultats del conductor. .................................................................................................. 3 1.2. Sistema TSDR ..................................................................................................................... 4 1.3. Visió Global ........................................................................................................................ 4 1.4. Mercat Actual ...................................................................................................................... 5 1.5. Objectius ............................................................................................................................. 6 1.5.1. Objectius Principals ................................................................................................. 6 1.5.1. Altres Objectius ....................................................................................................... 8 1.6. Resum del capítol .............................................................................................................. 8 CAPÍTOL 2. IMAGE PROCESSING SERVER (IPS) .......................................... 9 2.1. Introducció .......................................................................................................................... 9 2.2. Desenvolupament ........................................................................................................... 10 2.2.1. Llibreries externes ................................................................................................. 10 2.2.2. Llibreries desenvolupades pel servidor IPS .......................................................... 11 2.3. Resum del capítol ............................................................................................................ 11 CAPÍTOL 3. PROCESSAT D'IMATGE ............................................................ 12 3.1. Introducció ........................................................................................................................ 12 3.1.1. Model de color HSV .............................................................................................. 12 3.2. Filtratge ............................................................................................................................ 14 3.2.1. Introducció ............................................................................................................. 14 3.2.2. Llibreries desenvolupades pel filtratge ................................................................. 14 3.3. Detecció ............................................................................................................................ 16 3.3.1. Introducció ............................................................................................................. 16 3.2.2. Llibreries desenvolupades per la detecció ............................................................ 16 3.4. Reconeixement ................................................................................................................. 20 3.4.1. Introducció ............................................................................................................. 20 3.4.2. Llibreries desenvolupades per la detecció ............................................................ 21 3.4.3. Patrons predefinits ................................................................................................ 21 3.4.4. Codificació dels senyals utilitzats pel reconeixement .......................................... 21 3.5. Exemples........................................................................................................................... 24 3.5.1. Escenari 1: Fotografia d'un carrer amb tres senyals detectables ......................... 24 3.5.2. Escenari 2: Fotografia de baixa qualitat amb un senyal detectable ..................... 29 3.6. Resum del capítol ............................................................................................................ 32
CAPÍTOL 4. CONNEXIONS ENTRE SERVIDORS .......................................... 33 4.1. Introducció ........................................................................................................................ 33 4.2. Configuració del servidor ............................................................................................... 33 4.3. Connexió entre servidor FTP i servidor IPS .................................................................. 34 4.3.1. Gestió de fitxers .................................................................................................... 34 4.4. Connexió entre servidor IPS i servidor Base de Dades ............................................... 35 4.5. Resum del capítol ............................................................................................................ 36 CAPÍTOL 5. CONCLUSIONS........................................................................... 37 5.1. Ambientalització ............................................................................................................... 39 5.2. Línies Futures .................................................................................................................. 39 BIBLIOGRAFIA ............................................................................................... 41
Introducció 1 INTRODUCCIÓ Els perills es presenten de diverses formes en la carretera per a un conductor; des de condicions meteorològiques adverses, passant pel mal manteniment de les vies fins la conducció nocturna. Tots aquests escenaris tenen un risc en comú: la falta de visibilitat que provoca que el conductor no es pugui anticipar. Com a conductors ens hem trobat amb aquesta problemàtica i partint d'un treball dissenyat per nosaltres en l'optativa de Sistemes Audiovisuals va sorgir una possible solució. La idea consisteix en mostrar al conductor, per mitjà d'algun dispositiu, els senyals de trànsit que es troben més endavant. Facilitant així la conducció. Com que actualment els smartphones disposen de GPS, connexió a Internet i a més es troben a l’abast de tothom, es decideix utilitzar aquest dispositiu per implementar la nostra idea. Tot i haver-hi moltes aplicacions pels smartphones no hi ha cap aplicació que ofereixi quelcom semblant a la nostra idea. És per això que hem dissenyat i programat una aplicació des de zero. Al no disposar d'accés a una possible base de dades governamental, on estiguin enregistrats tots els punts en que es troben els senyals de trànsit, decidim crear la nostra pròpia base de dades. Per evitar que l'aplicació tingui un pes considerable es decideix externalitzar la base de dades. Els senyals poden ser variants al llarg del temps, per això es pensa en una base de dades dinàmica que s’actualitza automàticament. Un mètode d'actualitzar la base de dades és utilitzant els propis usuaris de l'aplicació. Com més usuaris hi hagi, més fiable serà la informació proporcionada, ja que aquesta s'obté de fotografiar la carretera. A partir d'aquí s'envien a un servidor que analitzarà la fotografia en busca de possibles senyals. Així aconseguim la idea d'una base de dades dinàmica. Aquest projecte no és només això, sinó que té una perspectiva de futur de millora continua. Es pot adaptar a dispositius implementats a dins del vehicle, com per exemple, el GPS. Es podria fer servir en un futur en vehicles amb conducció automàtica. La finalitat del projecte és per tant, desenvolupar un sistema mitjançant una aplicació que faciliti la conducció vial. Aquest sistema tracta d’adquirir, detectar, reconèixer, localitzar i gestionar els senyals de trànsit. El sistema està basat en una aplicació Android que mostrarà les properes senyals de trànsit que el conductor es trobarà. L’aplicació captura, de forma periòdica, imatges de la carretera que s’envien a un servidor. L’anàlisi consisteix en identificar els nous possibles senyals, modificacions dels senyals anteriors o confirmació de les localitzacions de les existents. Aquestes imatges s’utilitzaran per actualitzar la base de dades dinàmica del servidor. A més, a partir de la posició GPS del terminal mòbil, el servidor proporcionarà informació
2 Software de tractament d'imatges dels propers senyals de trànsit. Opcionalment també es pot activar avisos per radars fixos. Aquest treball ha estat dissenyat i realitzat per tres persones. S’ha dividit la memòria en tres volums per explicar en detall cada bloc. Volum 1: Software de terminal mòbil. Desenvolupa la interfície gràfica, la funcionalitat interna de l’aplicació i les diferents connexions necessàries per tal que l’aplicació compleixi amb les expectatives proposades. Volum 2: Software del servidor Desenvolupa com establir les connexions entre el terminal mòbil, les bases de dades i el tractament d’imatges. A més de com s’ha dissenyat la base de dades dinàmica. Volum 3: Software de tractament de imatges Desenvolupa el processament i tractament d’imatge. Detecció i reconeixement de senyals de trànsit. En resum, és un projecte que té com a finalitat ajudar als conductors a poder anticipar-se a les indicacions dels senyals de trànsit. El nostre objectiu és intentar reduir el nombre d'accidents, com també el de promoure la filosofia de compartir la informació entre tots els usuaris per el bé de tots. Creiem en aquest projecte perquè ha sorgit d'una petita idea nostra que ens ha permès dissenyar i programar aquest sistema des de zero.
Traffic Signs Detection & Recognition (TSDR) 3 CAPÍTOL 1. TRAFFIC SIGNS DETECTION & RECOGNITION (TSDR) 1.1 Dificultats del conductor Els conductors han de ser responsables i tenir en compte molts factors. Cal estar pendent del què passa fora del vehicle, com per exemple aturar-nos als senyals de STOP, respectar els vianants. Alhora, també el què passa dins del vehicle, com per exemple estar al corrent dels menors o de l’acompanyant. Però hi ha molts factors que són difícils de controlar i/o preveure. El factor meteorològic, és el menys previsible, en el cas de boira, neu o pluja dificulten la visibilitat de la via per la qual s’està circulant. Malgrat que es redueixi la velocitat i es prenguin les mesures adequades no es podrà evitar la mala visibilitat. Un altre factor, són les carreteres secundàries que es troben en mal estat i tenen els senyals descuidats. També ho són els accidents, el 42% dels accidents mortals es produeixen per la nit. Malgrat que en aquestes hores existeix un 60% menys de trànsit que durant el dia. La conducció nocturna implica un risc tres vegades major que la conducció diürna. Algunes característiques de la visió nocturna són: • Existeix una limitació de la percepció. Es produeix una disminució de l’agudesa visual, s’aprecien pitjor els obstacles i es pertorba el sentit cromàtic. • Existeix una limitació del camp visual ajustant-se a la zona il·luminada. Els llums del vehicle il·luminen eficaçment una zona de 100m mínims amb el llum de carretera, i de 40m amb el llum d'encreuament. • Existeixen factors que influeixen en la capacitat visual nocturna tal com: l’edat, la fatiga, l’alcohol, les drogues, les malalties, les limitacions visuals concretes, i altres. Cal destacar que l’any 2011 van morir a Espanya com a conseqüència d’accidents en carretera 1479 persones, 14.5% menys que l’any 2010. Cada any els accidents es van reduint. Per els motius anteriors esmentats, la intenció del sistema TSDR és augmentar la seguretat en el trànsit ajudant al conductor.
10 Software de tractament d'imatges 2.2 Desenvolupament El servidor s'ha programat en llenguatge C# perquè aquest incorpora tot el necessari per desenvolupar una interfície gràfica. Tot i que la versió final no té una interfície gràfica, per fer les proves és necessari disposar d'aquesta per anar visualitzant els resultats. A més, com que el servidor proxy i el sistema de gestió de base de dades estan programats en C#, s'ha utilitzat el mateix llenguatge per facilitar la implementació. 2.2.1 Llibreries externes Un dels inconvenients d'utilitzar C# és la falta de llibreries dedicades al processament d'imatge dins del paquet Visual Studio 2010. No obstant això, existeixen llibreries de processament d'imatge compatibles amb C#. • Emgu CV: És una llibreria de processat d'imatge per C# basada en OpenCV. OpenCV només suporta llenguatges de programació C++, C i Python. Emgu CV és una interfície entre OpenCV i C#. Les crides a OpenCV es fan a través de Emgu CV. [20] De Emgu CV s'utilitzen les rutines de conversió de color, conversió del tipus de dades de les imatges, redimensionament i carga d'imatges en variables. Aquestes rutines s'apliquen al filtratge i al condicionament de la imatge pel reconeixement. • AForge: És una llibreria dissenyada per desenvolupadors i investigadors en els camps de Visió Artificial i Intel·ligència Artificial. A diferència de OpenCV, el llenguatge natiu de AForge és C#. [29] La rutina que s'utilitza de AForge és la separació d'objectes d'una imatge. Aquesta rutina s'aplica en la detecció dels possibles senyals de trànsit. Per comparar entre senyals detectats i els patrons predefinits s'utilitza una llibreria matemàtica externa: • Alglib: És una llibreria de processat de dades i càlcul numèric compatible amb C#. La funció matemàtica que s'utilitza és la correlació creuada, aplicada als càlculs de reconeixement. Al necessitar accés a la base de dades, el IPS requereix d'una altra llibreria externa. • Oracle.Data.Access: Es tracta d’una llibreria externa proporcionada per Oracle i compatible amb C#. Aquesta llibreria permet l’accés a les bases de dades d’Oracle mitjançant un protocol propietari anomenat Transparent Network Substrate (TNS). S’encarrega d’obrir les connexions, enviar el comandament SQL, rebre la resposta i finalment tancar la connexió.
Image Processing Server (IPS) 11 2.2.2 Llibreries desenvolupades pel servidor IPS Aquestes llibreries s'han creat específicament pel projecte. El nom assignat a cada llibreria està relacionat amb l'algoritme que implementa. Això facilita l'entorn de programació. La taula 2.1 mostra les llibreries programades i el seu propòsit. Aquestes llibreries són detallades en capítols posteriors. Taula 2.1 Llibreries pròpies específiques del projecte Nom Propòsit FTP2Filter.dll Traspassar fitxers entre servidors. ImageLoader.dll Convertir formats d'imatge. NetDetection.dll Validar IPv4. RedFilter.dll Filtrar el color vermell. BlueFilter.dll Filtrar el color blau. Labeling.dll Buscar objectes en la imatge ShapeDetection.dll Detectar la forma geomètrica dels objectes. Decision-maker.dll Decidir a quina forma geomètrica s'assembla. ExtractRois.dll Extreure els objectes de la imatge. Normalization.dll Normalitzar els valors de la imatge. 2D-2-1D.dll Convertir la matriu a vector. Patterns.dll Comparar els objectes amb patrons. Sign2DB.dll Insertar informació a la base de dades. 2.3 Resum del Capítol En aquest capítol s'ha vist que el servidor IPS s'encarrega de recollir les imatges del servidor FTP, processar-les i escriure la informació a la base de dades.
12 Software de tractament d'imatges CAPÍTOL 3. PROCESSAT D'IMATGE 3.1 Introducció En aquest capítol s'explica en detall com està dissenyat el bloc del filtratge, el bloc de detecció i el bloc de reconeixement. En la figura 3.1 es mostra la interconnexió dels blocs amb les seves llibreries. Fig. 3.1 Diagrama dels blocs del processat d'imatge amb les llibreries desenvolupades per cada bloc. 3.1.1 Model de color HSV Les fotografies són rebudes en model de color RGB (Red, Green & Blue). Amb aquest model de color no és pràctic realitzar el filtratge perquè el valor del píxel es pot interpretar erròniament. Un exemple és quan els valors RGB són molt alts. Malgrat que el valor vermell superi el valor de verd i de blau, la combinació de tots tres dona com a resultat el color blanc.
Processat d'imatge 13 Per aquest motiu s'utilitza el model HSV (Hue, Saturation & Value) que separa el píxel en matís (color), saturació i valor. Com es mostra en la figura 3.2 i 3.3. D'aquesta manera és més fàcil l'extracció del color perquè és més proper a la percepció de l'ull humà. El model HSV defineix un model de color en termes dels seus components constituents en coordenades cilíndriques: • Matís: El tipus de color (com vermell, blau o groc). Es representa com un grau d'angle els valors possibles del qual van de 0° a 360°. Cada valor correspon a un color. Exemples: 0° és vermell, 60° és groc i 120° és verd. • Saturació: Es representa com la distància a l'eix de brillantor negre-blanc. Els valors possibles són del 0 al 100%. Quan disminueix la saturació d'un color, augmenta la tonalitat grisenca i s'atenua el color. • Valor: La brillantor del color. Representa l'altura a l'eix blanc-negre. Els valors possibles són del 0 al 100%. 0 sempre és negre. Depenent de la saturació, 100 pot ser blanc o un color més o menys saturat. Fig. 3.2 Cilindre HSV Fig. 3.3 Distribució del matís i percentatge de valor (brillantor)
14 Software de tractament d'imatges Fig. 3.5 Sortida del filtre vermell Fig . 3.6 Sortida del filtre blau 3.2 Filtratge 3.2.1 Introducció És el bloc encarregat de la discriminació de colors. Utilitzant la llibreria externa Emgu CV, s'aconsegueix que en la imatge de la figura 3.4 només resti en blanc els píxels de color que volem obtenir. La resta de la imatge en negre. Fig. 3.4 Imatge de prova abans de passar pels filtres. El sistema TSDR reconeix 40 senyals. Els colors a filtrar són el vermell i el blau. Per això, s'ha programat dos filtratges, un per destacar els píxels vermells, figura 3.5 i l'altre per destacar els píxels blaus, figura 3.6. Per poder discriminar els colors no desitjats s'estableixen uns llindars, un pel blau i un pel vermell.
Processat d'imatge 15 En els dos casos s'ha fet servir la mateixa estructura. Primer, s'obté la imatge en format BGR (Blue, Green i Red). Aquesta imatge es transforma a un format del model de color HSV amb l'ajuda de la llibreria externa Emgu CV i es separa per Hue, Saturation i Value. Per cada component es comprova que el valor del píxel està per sobre del llindar establert. Si supera el llindar, el píxel manté el seu valor, si no s’assigna com a negre. Amb el resultat dels tres components es realitza una operació AND per assegurar que el píxel supera els tres llindars. D’aquesta manera es pot seleccionar els colors desitjats. Finalment, es binaritza la imatge resultant, figura 3.7. Fig. 3.7 Diagrama del bloc de filtratge 3.2.2 Llibreries desenvolupades pel filtratge • RedFilter.dll: És la llibreria encarregada de filtrar el color vermell. El primer pas és convertir el model de color RGB a model HSV. Tot seguit s'aplica la separació per components i es comprova que els valors dels píxels estiguin per damunt dels llindars establerts. La imatge resultant és una imatge en blanc i negre. El color blanc representa tot el que s'ha trobat de color vermell dins dels llindars del filtre. • BlueFilter.dll: És la llibreria encarregada de filtrar el color blau. El primer pas és convertir el model de color RGB a model HSV. Tot seguit s'aplica la separació per components i es comprova que els valors dels píxels estiguin per damunt dels llindars establerts. La imatge resultant és una imatge en blanc i negre. El color blanc representa tot el que s'ha trobat de color blau dins dels llindars del filtre.
16 Software de tractament d'imatges 3.3 Detecció 3.3.1 Introducció És el bloc encarregat de trobar en quina posició de la imatge hi ha un possible senyal i extreure'l a una imatge nova. Quan el procés del filtratge finalitza, la imatge es recull en el bloc de detecció. Les dades obtingudes es converteixen al format Bitmap (Image Data Conversion). Aquest format és natiu de C# i és el que utilitza la llibreria AForge. Aquesta llibreria facilita la recerca d'objectes en la imatge. Un cop detectat tots els objectes de la imatge (Connected-Component Labeling) es discriminen per la seva mida (Cleaner). Tot seguit, s'analitza el contingut dels objectes (Shape Detection) i es decideix a quina forma geomètrica pertanyen (Shape Decisor). Finalment, s'obté la posició de l'objecte per extreure la regió d'interès de la imatge original (ROI Extraction) i aquesta s'envia al bloc de reconeixement. El diagrama de la figura 3.8 reflecteix els passos esmentats. Fig. 3.8 Diagrama del bloc de detecció Dos conceptes bàsics a tenir en compte per entendre com funciona el bloc de detecció són: • Connected-component: Conjunt de píxels del mateix valor contigus en una imatge binaria, figura 3.9 i 3.10. [37] • Object: Cadascun dels connected-components etiquetats. Inclouen la informació per la localització en la imatge, figura 3.11. • ROI: Extracció d'una part de la imatge en la que es vol realitzar alguna operació amb ella, figures 3.16 i 3.17. 3.3.2 Llibreries desenvolupades per la detecció • Labeling.dll: És la llibreria encarregada de cercar els components connectats entre si com en la figura 3.9. Aquests components connectats són un conjunt de píxels que estan contigus en una imatge binaria
Processat d'imatge 17 (connected-component). Identifica cada component connectat assignant a cadascú una etiqueta única, com mostra la figura 3.10. A més a més, introdueix la informació necessària per poder situar el Object en la imatge com són la posició, el centre i el rectangle que forma el Object. La figura 3.11 mostra un exemple de Object. De tots els possibles Objects es descarten aquells que són menors de 30x30 píxels i els que estan dins d'un altre Object. Fig. 3.11 Exemple de Object • ShapeDetection.dll: S'encarrega de detectar la forma geomètrica del Object. S'aprofita que el fons té un valor zero i la possible figura un valor diferent a zero. A partir del centre del Object, es calcula la distància horitzontal en píxels des del centre fins que troba un valor diferent a zero. Això es realitza tant a la dreta com a l'esquerra. Finalitzat el càlcul de la distància d'aquesta posició, es repeteix el mateix procés fins arribar al punt més alt de la figura. Un cop assolit, es torna al centre i es repeteix el procés fins arribar el punt més baix de la figura. Fig . 3. 10 Components connectats i etiquetats Fig . 3. 9 Components connectats
18 Software de tractament d'imatges Conclòs el procés s'obté la figura escanejada horitzontalment com en la figura 3.12. Les distàncies calculades formen una representació gràfica. Fig. 3.12 Formes geomètriques escanejades • Decision-maker.dll: S'encarrega de decidir si la gràfica obtinguda en el ShapeDetection correspon: a un cercle, a un triangle o a un triangle invertit. Aquestes es comparen amb les gràfiques ideals i si no s'ajusta a cap, és definida com a desconeguda. Fig. 3.13 Gràfica ideal d'un cercle En la gràfica de la figura 3.13 s'observa que del semicercle superior s'obté la primera corba fins el valor mínim. El valor inicial és el diàmetre del cercle. A mesura que s'escaneja cap el punt més alt de la figura, la gràfica va decreixent fins arribar al punt mínim. Després d'arribar al punt mínim, es torna el valor inicial perquè es repeteix el procés en el semicercle inferior. Degut a la perspectiva de la imatge no s'aconsegueix cercles perfectes. Això comporta que els valors mínims no siguin iguals. Per això, s'adapta la gràfica per compensar les possibles diferències entre ideal i real.
Processat d'imatge 19 Fig. 3.14 Gràfica ideal d'un triangle En la gràfica de la figura 3.14, la primera recta decreixent representa l'anàlisi de la figura des del centre fins el vèrtex superior del triangle. A mesura que s'apropa al vèrtex, la distància va disminuint. El punt mínim de la gràfica és representat pel vèrtex superior del triangle. En la segona part de la gràfica s'aprecia el salt que es produeix al tornar al centre. La recta va creixent fins arribar al punt màxim que és la base del triangle. Degut a la perspectiva de la imatge no s'aconsegueix triangles perfectes. Això comporta que el valor màxim no se situï a l'últim valor de la gràfica. Per això, s'adapta la gràfica per compensar les possibles diferències entre ideal i real. Fig. 3.15 Gràfica ideal d'un triangle invertit La recta creixent de la gràfica, figura 3.15, representa l'anàlisi del centre cap al catet superior. En la segona part de la gràfica s'aprecia el salt que es produeix al tornar al centre. L'anàlisi del centre cap al vèrtex inferior és representat amb la recta decreixent. El punt mínim de la gràfica s'identifica amb el vèrtex inferior del triangle. Aquesta gràfica és un identificador únic d'aquest senyal, per això no es necessari la correlació creuada amb el patró del "cedeixi el pas". En el cas que la gràfica obtinguda no correspongui a cap de les anteriors, com potser la gràfica generada pel soroll, es designa com a figura desconeguda.
26 Software de tractament d'imatges Fig. 3.22 Representació gràfica d'un Object sense forma geomètrica Fig. 3.23 Representació gràfica d'un Object amb forma geomètrica desconeguda Aquests Objects són detectats com a forma desconeguda, això significa que es passen a comparar amb el grup de patrons particulars. El centre dels Objects de la figura 3.22 no conté part analitzable, per això és una constant. El centre del Object de la figura 3.23 al tenir espais per escanejar, dona com a resultat una gràfica no predefinida. Fig. 3.24 Representació gràfica d'un Object amb forma de triangle
Processat d'imatge 27 Fig. 3.25 Representació gràfica d'un Object amb forma de cercle En aquests dos últims Objects, figures 3.24 i 3.25, s'observa que les gràfiques s'ajusten a les gràfiques ideals. Per aquest motiu, passen a ser reconegudes al grup de triangles i cercles vermells respectivament. Tot seguit, a partir de la informació dels Objects i en funció del grup, s'extreu els ROIs de la imatge original en escala de grisos o en blanc i negre. Es redimensionen a 30x30 píxels i es passen al bloc del reconeixement. Taula 3.2 Resultats del reconeixement dels Objects obtinguts ROIs d'entrada Codi sortida NS NS 03 25 NS NS NS Com a resultat, en la taula 3.2, es pot comprovar que els codis obtinguts pel IPS es corresponen amb la codificació dels senyals de trànsit de l'aplicació mòbil, taula 3.1.
28 Software de tractament d'imatges Segon pas: Filtrar la imatge pel filtre blau on s'obté la figura 3.26. Fig. 3.26 Sortida del filtre blau La imatge resultant mostra en blanc tots els píxels que es troben dins dels llindars establerts pel filtre. Tot i que els senyals en la imatge original no són de color blau pur, el filtre és capaç de captar-los. A continuació es traspassa la imatge filtrada al bloc de detecció. En aquest bloc es neteja la imatge filtrada i es marquen els diferents Objects. Aquests Objects es poden identificar perquè cadascú té un color diferent com mostra la figura 3.27. Fig. 3.27 Objects identificats Els senyals blaus que el servidor reconeix són sempre rodones. Per aquest motiu no és necessari analitzar la forma geomètrica dels Objects obtinguts, figura 3.28.
Processat d'imatge 29 Fig. 3.28 Objects a reconèixer Tot seguit, a partir de la informació dels Objects, s'extreu els ROIs de la imatge original en escala de grisos i es redimensionen a 30x30 píxels. Es passen al bloc del reconeixement. Taula 3.3 Resultats del reconeixement dels Objects obtinguts ROIs d'entrada Codi sortida NS NS 35 NS Com a resultat, en la taula 3.3, es pot comprovar que els codis obtinguts pel IPS es corresponen amb la codificació dels senyals de trànsit de l'aplicació mòbil, taula 3.1. Aquest anàlisi s'ha dut a terme en un temps inferior a 1500 ms. amb un processador Intel i5 2430M a 2.4 GHz. 3.5.2 Escenari 2: Fotografia de baixa qualitat amb un senyal detectable. El següent exemple demostra com funciona el servidor IPS amb senyals del grup de senyals particulars.
30 Software de tractament d'imatges Fig. 3.29 Imatge original a l'entrada del IPS En la imatge de la figura 3.29 s'observa que hi ha un possible senyal a obtenir pel servidor IPS. Primer pas: Filtrar la imatge pel filtre vermell on s'obté la figura 3.30. Fig. 3.30 Sortida del filtre vermell La imatge resultant mostra en blanc tots els píxels que es troben dins dels llindars establerts pel filtre. Tot i que el senyal en la imatge original no és de color vermell pur, el filtre és capaç de captar-ho. A continuació es traspassa la imatge filtrada al bloc de detecció. En aquest bloc es neteja la imatge filtrada i es marquen els diferents Objects. Aquests Objects
Processat d'imatge 31 es poden identificar perquè cadascú té un color diferent com es mostra en la figura 3.31. Fig. 3.31 Objects identificats S'analitza el Object en busca de possibles formes geomètriques reconegudes pel sistema. Per analitzar el Object, s'aplica els algoritmes explicats en la llibreria ShapeDetection. Fig. 3.32 Representació gràfica d'un Object amb forma geomètrica desconeguda Com que el resultat del Object no s'ajusta a cap gràfica predefinida, figura 3.32, s'identifica com a grup de senyals particulars. A diferència dels altres grups de senyals s'extreu el ROI de la imatge filtrada, es redimensiona a 30x30 píxels i es passa al bloc del reconeixement.
32 Software de tractament d'imatges Taula 3.4 Resultats del reconeixement dels Objects obtinguts ROIs d'entrada Codi sortida 30 Com a resultat, en la taula 3.4, es pot comprovar que el codi obtingut pel IPS es correspon amb la codificació dels senyals de trànsit de l'aplicació mòbil, taula 3.1. Segon pas: Filtrar la imatge pel filtre blau. Aquest pas no es considera oportú representar-lo perquè la imatge a la sortida del filtre és completament negre. No hi ha res a detectar. Aquest anàlisi s'ha dut a terme en un temps inferior a 1000 ms. amb un processador Intel i5 2430M a 2.4 GHz. 3.6 Resum del capítol En aquest capítol s'ha vist que el processat d'imatge és un bloc important del sistema TSDR perquè és l'encarregat de mantenir actualitzada la base de dades. S'ha demostrat que és capaç de filtrar una imatge deixant passar el conjunt de colors que tenen els senyals. A partir de la imatge filtrada, el bloc de detecció té l'habilitat de trobar les regions on es troben els senyals. Aquestes regions són analitzades mitjançant un algoritme propi per decidir a quin grup de senyals pertany. Arribat a aquest punt, s'extreu la regió d'interès i es traspassa al bloc de reconeixement. El bloc reconeixement identifica el codi del senyal mitjançant la correlació creuada amb patrons.
Connexions entre servidors 33 CAPÍTOL 4. CONNEXIONS ENTRE SERVIDORS 4.1 Introducció Pel bon funcionament del servidor IPS és necessari que estigui en comunicació directa amb els servidors FTP i base de dades. El primer alimenta el servidor IPS amb les fotografies i el segon s'actualitza amb les informacions dels senyals que aporta el servidor IPS, figura 4.1. Fig. 4.1 Connexions entre servidors 4.2 Configuració del servidor El servidor permet configurar, figura 4.2, la carpeta d'entrada de les fotografies (FTP Folder) i el directori de treball del servidor IPS (IPS Folder). També obliga a omplir les dades necessàries per poder accedir a la base de dades com són: la IP, el port, el SID, l'usuari i la contrasenya de la taula de la base de dades. Fig. 4.2 Configuració del servidor IPS
34 Software de tractament d'imatges En el moment de posar en marxa el servidor, l'aplicació comprova que no hi ha cap error en els camps. Un cop en marxa la configuració no es pot modificar. Per canviar-la s'ha de reiniciar el servidor. 4.3 Connexió entre servidor FTP i servidor IPS El servidor IPS s'alimenta de les fotografies enviades per l'aplicació mòbil. És per això que es connecta directament amb el servidor FTP. El servidor IPS es pot configurar de dues maneres per accedir a les fotografies. Opció 1: Sense el sistema de backup, totes les imatges són emmagatzemades en un directori dins el servidor FTP. El servidor IPS accedeix a aquest directori i mou la imatge més antiga al seu directori de treball. Per tant, cada imatge moguda per processar, desapareix del FTP deixant espai en disc per una altra imatge. Opció 2: Quan el sistema de backup està activat, les imatges són emmagatzemades directament en un directori comú i compartit dins del servidor IPS. En aquest cas, el servidor FTP no utilitza el seu disc per guardar les imatges. La informació que recull el servidor IPS és la fotografia i el fitxer de dades enviats pel telèfon mòbil, figura 4.3. El fitxer de dades aporta la informació de la latitud, la longitud, el rumb i la velocitat. Tota aquesta informació és captada en el moment que es realitza la fotografia. Fig. 4.3 Connexió servidor FTPservidor IPS 4.3.1 Gestió de fitxers Per gestionar quina imatge es processa abans que una altra, s'ha desenvolupat la llibreria FTP2Filter.dll. Aquesta s'encarrega de moure la imatge a processar del directori configurat al FTP Folder cap el directori de treball del IPS Folder, aquests directoris són seleccionats a la figura 4.2. Selecciona la imatge més antiga segons la data i l'hora, tot això de manera automatitzada, figura 4.4.
Connexions entre servidors 35 Quan el servidor finalitza de processar la imatge, l'esborra. Aleshores, automàticament mou una altra imatge per processar. Si no hi ha cap, es queda en espera fins que arriba alguna. En el directori de treball del IPS s'emmagatzema la imatge que s'està processant. D'aquesta manera, si hi ha alguna incidència amb el servidor, la imatge es pot recuperar. Fig. 4.4 Diagrama de flux de gestió de fitxers 4.4 Connexió servidor IPS a servidor Base de Dades Quan es reconeixen els senyals s'ha d'actualitzar la base de dades. La informació que s'emmagatzema és el codi resultant del reconeixement més les dades que acompanya la fotografia, com es mostra en la figura 4.5. Tota aquesta informació s'escriu en la taula Buffer de la base de dades. Per poder inserir la informació a la base de dades s'ha desenvolupat la llibreria Sign2DB.dll. Aquesta s'encarrega d'interpretar el fitxer de dades de cada fotografia. D'aquí extreu la latitud, la longitud, el rumb i la velocitat. Un cop obtinguda tota la informació, la insereix a la base de dades.
42 Software de tractament d'imatges [8] Institut Géographique National, France, A. Arlicot, B. Soheilian and N. Paparoditis, Circular road Sign Extraction From Street Level Images Using Colour Shape and Texture Database Maps, September 2009. [9] International Conference on Theory and Applications of Mathematics and Informatics Thessaloniki, Greece, John Hatzidimos, Automatic Traffic Sign Recognition In Digital Images, 2004. [10] Department of Science and Technology, Uva Wellassa University, Badulla and Department of Physics, University of Colombo, Colombo, W.K.I.L. Wanniarachchi, D.U.J. Sonnadara and M.K. Jayananda. Detection and Extraction of Road Traffic Signs, 2008. [11] Hassan Shojania, Real-time Traffic Sign Detection, 2008. • Referències [12] Web Oficial de programadors de Android de Google. URL: http://developer.android.com [13] Web Blobs. URL: http://opencv.willowgarage.com/wiki/cvBlobsLib [14] Web Base de Dades Oracle. URL: http://docs.oracle.com/cd/E17781_01/admin.112/e18585/toc.htm [15] Web SQL Developer. URL: http://st-curriculum.oracle.com/tutorial/SQLDeveloper/index.htm [16] Web Google Maps Android. URL: http://mobiforge.com/developing/story/using-google-maps-android [17] Web GPS and MapView Android. URL: http://stufffromjim.blogspot.com/2008/11/gps-and-mapview-inandroid.html [18] Web Google Driving Directions URL: http://www.anddev.org/google_driving_directions_-_mapview_overlayedt826.html [19] Web Apache URL: http://commons.apache.org/net/ [20] Web Oracle for Beginners URL: http://www.oracle.com/technetwork/topics/dotnet/for-beginners/index.html [21] Web Emgu Tutorial URL: http://www.emgu.com/wiki/index.php/Tutorial
Bibliografia 43 [22] Web Emgu Files URL: http://www.emgu.com/wiki/files/2.2.1/document/Index.html [23] Web Oracle Database XE Introduction URL: http://www.getyourcontent.com/1/6565-0/Oracle-Database-XE---- SQL.aspx [24] Web VirtualBox URL: https://www.virtualbox.org/ [25] Web XmlWriter Tutorial URL: http://www.dotnetperls.com/xmlwriter [26] Web Cryptography Microsoft URL: http://support.microsoft.com/kb/307010 [27] Web System Security Cryptography URL: http://msdn.microsoft.com/enus/library/system.security.cryptography.rijndaelmanaged.aspx [28] Web Traffic Sign Detection URL: https://sites.google.com/site/trafficsigndetection/home [29] Web AForge Library URL:http://www.aforgenet.com/ [30] Web Library Microsoft URL: http://msdn.microsoft.com/en-us/library/ [31] Web Xlightftp URL: http://www.xlightftpd.com/ [32] Web HTC Drivers URL: http://driver-pro.com/related/english/hardware-drivers/?a=12226&hit=1 [33] Web HTC especificacions URL: http://www.htc.com/es/smartphones/htc-desire-hd/#specs [34] Web OS Mobile URL: http://es.wikipedia.org/wiki/Sistema_operativo_m%C3%B3vil [35] Comparativa Sistemes Mòbils URL: http://es.engadget.com/2009/03/19/la-gran-comparacion-de-los-sistemasoperativos-moviles/ [36] Web MySQL community URL: http://dev.mysql.com/doc/refman/5.0/es/features.html
44 Software de tractament d'imatges [37] Web Oracle XE URL: http://www.oracle.com/technetwork/database/expressedition/overview/index.html [38] Web Connected-Component URL: http://en.wikipedia.org/wiki/Connected-component_labeling