Segmentació i descodificació de text en una imatge

En el món de la visió per computador és molt comú trobar-se amb imatges on entre altres objectes o ambients, també apareix text. De vegades, és d’especial interès poder llegir-lo, pel que la seva segmentació de la resta de la imatge és de gran importància.

El grau de dificultat de la detecció del text varia molt segons l’ambient. És a dir, no és el mateix detectar text de una imatge en un “ambient controlat” on se sap on és el text i aquest està clarament diferenciat de la resta de la imatge, que en un “natural environment”. En aquest últim interfereixen una sèrie de factors que dificulten en gran manera la segmentació del text, com pot ser el soroll de la càmera amb el qual s’obté la imatge, la mala il·luminació de l’escena o els frames borrosos que es donen, per exemple , si la càmera no té estabilitat.

A més dels problemes ja comentats, també està present la dificultat de localitzar el text dins de la imatge, ja que pot aparèixer en diferents posicions i orientacions. Un cop localitzat, cada caràcter ha de ser segmentat acuradament per així poder obtenir una lectura correcta del text.

 

Detecció de text en una imatge

Com ja s’ha comentat anteriorment, la primera dificultat a què enfrontar-se en la segmentació de text és la localització del mateix. D’entre els diferents possibles mètodes per aconseguir aquest objectiu, en aquest article es farà servir el EAST Detector.

 

Toma de datos de alcantarillado

El EAST Detector és capaç de detectar text pràcticament en real time (13 fps) tant en imatges com en vídeos ja sigui en text horitzontal o rotat fent servir una convolutional neural network.

Pel que fa a altres possibles algoritmes, el EAST Detector ha suprimit passos intermedis innecessaris de manera que únicament compta amb dues etapes. La primera d’elles és la predicció de línies de text o paraules usant la xarxa neuronal i la segona és el processament de les prediccions.

A la Figura superior es pot veure un exemple de les diferents regions amb text que han estat detectades per l’algoritme, cadascuna d’ella marcada amb un requadre verd.

 

Segmentació de la imatge

La segmentació de la imatge ens permet dividir una imatge en parts o regions. L’objectiu de la segmentació és simplificar la representació d’una imatge en una cosa més fàcil d’analitzar. Aquesta s’utilitza normalment per a localitzar objectes i límits en imatges.

 

Descodificar text de la imatge

Un cop s’ha detectat la localització del text es procedeix a la descodificació de la mateixa. Per a això, és important poder aïllar de la millor manera possible els caràcters de fons de la imatge, de manera que s’han d’aplicar diferents operacions morfològiques per aconseguir-ho. Aquestes operacions per a detectar text en imatge, depenen de l’ambient amb el qual s’està treballant i el millor és avaluar individualment cada cas per decidir quines han de ser aplicades. La Figura inferior presenta un exemple d’aquest pas.

 

Decodificación de texto

Un cop el text ha estat aïllat de fons de la imatge, hi ha diferents mètodes per poder realitzar la seva lectura. En aquest cas s’ha optat per usar la llibreria Tesseract OCR, la qual és un motor per al reconeixement òptic de caràcters.

 

Així doncs, la combinació de l’EAST Detector juntament amb la llibreria Tesseract proporcionen un mètode bastant robust mitjançant el qual es pot detectar la posició  del text i fer una lectura de la mateixa per al posterior tractament d’aquestes dades.

Hi ha diferents opcions que permeten afinar més el reconeixement de caràcters. Per exemple, és possible indicar l’idioma en què es troba el text o si es tracta de caràcters alfanumèrics o de nombres o lletres en exclusiva.

 

Esperem que t’hagi estat útil aquest article. Si tens entre mans algun projecte d’enginyeria i creus que podem ajudar-te, aquí et deixo l’enllaç on ens podràs contactar i explicar-nos més a prop d’això.