Egy print screenből szeretnék betűket felismerni. A lehetséges fontok adottak, antialias nincs, tehát előre tudom renderelni az összes lehetséges betűt. Ki tud jó és gyors algoritmusokat arra, hogy megtaláljam és felismerjem a betűket? Jó és gyors alatt azt értem, hogy nem akarok minden lehetséges pozícióba minden lehetséges betűt beilleszteni. Szerintem vektorozgatni, alakzatokat felismerni sem kell, inkább pixel szinten lenne érdemes dolgozni, tehát nem kell arra építeni, hogy ezek betűk, hanem tetszőleges random pixelek is lehetnének akár. Nem kell implementáció, és hacsak nincs valakinek világmegváltó ötlete, akkor brainstorming helyett inkább kidolgozott szakirodalomra történő utalást fogadnék legszívesebben.
- 5006 megtekintés
Hozzászólások
Annó az egyetem ennek egy része volt az egyik tárgyból (talán mest. int.) a kötelező megoldandó feladat: ott minden kép egy kézzel írt nyomtatott nagybetűt tartalmazott (a mintákat is az egyetemisták szolgáltatták). Voltak tanulási képek, amiken a programok tanulhattak és ez után kaptak felismerendő képeket. Ha jól emlékszem egy neurális hálós lett a legjobb megoldás, de majdnem azonos eredményt hozott egy sokkal egyszerűbb algoritmus:
- volt egy tisztító fázis: kép szürkeárnyalatossá alakít, izolált pontok és bizonyos küszöbnél halványabb pontok törlése
- a tanulás során a képet felosztotta mondjuk 9 egyenlő téglalapra és minden téglalapra megszámolta a nem fehér pixelek számát. Így készített egy átlagolt mintát A betűre, B betűre stb.
Felismeréskor egyszerűen kiszámolta melyik betű átlagolt mintájához van legközelebb. Ez olyan ~90%-os pontossággal működött. Ha nem kézzel írt nagybetűkről van szó, akkor ez csak jobb lehet.
- A hozzászóláshoz be kell jelentkezni
mit szeretnél? megoldani vagy algoritmus tippeket?
- tesseract vagy más ocr, fel vannak ezek készítve ilyen feladatra is
- amit írtál hogy nem szeretnél, egyenként végigvizsgálni a betűket, az nagyon jó módszer, csaj jól kell kivitelezni, sok aprólékos részlet, "kódernek" való feladat, nincs ezzel semmi baj, lehet hatékony még a kódolási időt is beleszámítva akár :) *
- egy nagyon egyszerű, tényleg nagyon gyorsan kivitelezhető módszer: pl deconvolution-el (imagej-ben: process/fft/fdmath/deconvolve-val gyorsan ki tudod próbálni hogy tényleg működik) egy-egy betűhoz a pozícióját megkapod, aztán már csak ezeket az xy koordinátákból kell szöveget gyártani (a legnagyobb problémát az okozza hogy viszonylag lassú ha nagy (képernyőtől nagyobb képet kell így felismerni az fft miatt, és hogy a "kettős" betűkhöz, mint az ékezetes, megkapod az ékezet nélküli koordinátáját is)
*ps: g://xor-convolution (pl 2.találat)
- A hozzászóláshoz be kell jelentkezni