Célközönség: Ez a cikk azoknak a számítógépes látással foglalkozó mérnököknek, OCR-integrációs csapatvezetőknek és OEM termékmenedzsereknek szól, akiknek meg kell érteniük, hogyan találják meg a B1, B2, F8, K7, KF1, L5, P2, Q6, Q8, T2 és Y6 olvasótollak a szöveget zajos oldalképen, hogyan darabolják fel karakteres méretű régiókra, és hogyan adják át ezeket a régiókat az OCR motornak. Feltételezzük, hogy olvastál már EAST vagy DBNet tanulmányt, és konkrét számokat szeretnél egy éles olvasótoll-telepítésből.
A szövegfelismerés az a fázis, amelyet az OCR-szállító általában a finom betűs részben elrejt. Mi nem rejtjük el. Az olvasótoll képe nem tiszta dokumentumszkennelés; ez egy 60 fps videófolyam mozgási elmosódással, papírtextúrával, perspektivatorzulással és változó megvilágítással. A szövegsor megtalálása eleve nehezebb, mint a felismerése, ha már megvan. Ez a cikk a két detektort tárgyalja, amelyeket szállítunk (heurisztikus + EAST), a szegmentálási heurisztikákat, az egyes modellek késleltetési értékeit, valamint azokat a hibamódokat, amelyeket egy OEM programban tervezned kell.
1. A két fázis az OCR előtt
Az TC-127-ben tárgyalt OCR motor egyetlen szövegsort tartalmazó, szorosan körbevágott képet dolgoz fel. Ahhoz, hogy ezt a kivágást előállítsuk egy teljes 640 x 480 oldalképből, két fázist futtatunk:
- A fázis: szövegfelismerés — egy vagy több jelölt szöveges régiót keresünk az oldalképen.
- B fázis: sorszegmentálás — minden jelölt régiót egyetlen soros, elforgatott és perspektívakorrigált kivágássá finomítunk.
A két fázis független, és külön-külön hangolható. A 11 modellen az A fázis modelltípustól függően három implementáció egyikét használja; a B fázis minden modellnél közös.
2. A fázis 1. opció: Heurisztikus szövegfelismerés (B1, B2, P2)
A legalacsonyabb kategóriájú modelleken nem futtatunk tanított detektort. Ehelyett összefüggő komponens elemzést alkalmazunk a binarizált oldalképen, és a komponenseket sor szerinti közelség alapján csoportosítjuk.
A folyamat:
- Binarizáljuk az oldalképet adaptív küszöbértékkel (TC-121).
- Összefüggő komponenseket keresünk 4-es kapcsolódású flood fill algoritmussal.
- Minden komponenshez kiszámítunk egy határolókeretet és egy vonalvastagság-becslést.
- Kiszűrjük azokat a komponenseket, amelyek vonalvastagsága kívül esik az 1,5–6 pixeles tartományon (az olvasótoll tipikus tartománya 0,07 mm-es ponttávolságnál).
- A komponenseket szövegsorokká csoportosítjuk vízszintes vetületi profil alapján. 8 pixeles vagy nagyobb hézag új sort kezd.
- Visszaadjuk az egyes sorok határolókereteit.
Ez a heurisztika 4,6 ms-ba kerül a B1 Cortex-M4 processzorán. Jól működik tiszta gyermekkönyveknél, ahol egységes a vonalvastagság és nincsenek dekoratív grafikák. Nem működik jól a következő esetekben:
- Vegyes vonalvastagság (pl. cím és törzsszöveg ugyanabban a sorban).
- Dekoratív grafikák 2–4 pixeles vonalvastagsággal.
- Színezett hátterek, amelyek hamis pozitív komponenseket eredményeznek.
Az ICDAR 2015 olvasótoll részhalmazán 92,1%-os sorfelismerési recall-t és 89,4%-os precision-t mértünk. A 7,9%-os mulasztási arányt túlnyomórészt a kis feliratok és lábjegyzetek okozzák.
3. A fázis 2. opció: Könnyűsúlyú EAST (F8, K7, KF1, Q6, Y6)
A középkategóriás modelleken egy kvantált EAST (Efficient and Accurate Scene Text) detektorváltozatot szállítunk. A gerinc egy 4 rétegű MobileNet-V2 0,5x szélességi szorzóval. A jellemzőegyesítő a standard EAST jellemzőpiramis. A kimeneti fej pontonként egy pontszámtérképet és egy 4 csatornás geometriai térképet jelez előre.
Modell méret:
- float32: 3,8 MB.
- int8: 1,1 MB.
Késleltetés a K7 Cortex-A53 processzorán 600 MHz-en: 28 ms képkockánként 320 x 320 bemenetnél. Késleltetés az F8 Cortex-A7 processzorán 800 MHz-en: 64 ms képkockánként 320 x 320 bemenetnél.
320 x 320-as bemenetet használunk a teljes 640 x 480 helyett, mert az EAST detektornak csak lokalizálnia kell, nem felismernie. Az észlelt négyszöget ezután visszatérképezzük a teljes felbontású képre a kivágáshoz.
A detektort 240 000 oldalképből álló korpuszon tanítottuk, szintetikus torzításokkal kiegészítve: -10° és +10° közötti forgatás, perspektivikus torzítás, mozgási elmosódás, JPEG-szerű tömörítés. A tanítócímkék négyszögek, nem tengelyigazított dobozok.
Sorfelismerési recall az ICDAR 2015 olvasótoll részhalmazán: 96,8%. Precision: 95,4%. A 3,2%-os mulasztási arányt túlnyomórészt a fényes papíron lévő szöveg okozza, ahol a tükröződő csúcsfények elnyomják a pontszámtérképet.
4. A fázis 3. opció: DBNet (L5, Q8, T2)
A csúcskategóriás modelleken egy kvantált DBNet (Differentiable Binarization) detektort szállítunk. A gerinc ugyanaz a MobileNet-V2 0,5x szélességi szorzóval, de a fej egy valószínűségi térképet és egy küszöbtérképet jelez előre; a binarizálás pixelenként, tanult küszöbértékkel történik.
Modell méret:
- float32: 4,2 MB.
- int8: 1,3 MB.
Késleltetés az L5 Cortex-A53 processzorán: 18 ms. A Q8 NPU-ján: 11 ms. A T2 NPU-ján: 7 ms.
A DBNet jobban teljesít ívelt és elforgatott szövegnél, mert a tanult küszöbérték alkalmazkodik a helyi kontraszthoz. Az ICDAR 2015 olvasótoll részhalmazán 98,4%-os sorfelismerési recall-t és 97,6%-os precision-t mértünk, ami 1,6 százalékponttal jobb, mint az EAST.
Ennek ára a flash méret 4,7%-os növekedése (1,3 MB vs 1,1 MB) és körülbelül 25%-kal magasabb CPU/NPU terhelés. Az L5, Q8 és T2 esetében ez a többlet elfogadható.
5. B fázis: Sorszegmentálás és perspektívakorrekció
Miután az A fázis visszaadja a jelölt négyszögeket, a B fázis mindegyiket szoros, tengelyigazított soros kivágássá finomítja. A lépések a következők:
- A négyszöget kissé kiterjesztjük felül és alul, hogy a teljes alsó és felső betűrészek is benne legyenek. Az alapértelmezett kitöltés a sor magasságának 8%-a.
- Perspektivikus transzformációt számítunk ki a négyszögből a téglalapba.
- A transzformációt bilineáris interpolációval alkalmazzuk.
- A kapott kivágást küszöböljük vagy normalizáljuk az OCR motor számára.
- A soros kivágásokat egy sorba állítjuk az OCR motor számára.
A B fázis sorhossztól függően 6–8 ms-ba kerül soronként. Egy 6 soros oldalnál a teljes költség 36–48 ms, ami nem elhanyagolható. A B fázist pipeline-ba kapcsolhatjuk az A fázissal: amíg az A fázis a 3. sort detektálja, a B fázis a 2. sort vágja ki, az OCR motor pedig az 1. sort ismeri fel.
6. Végponttól végpontig terjedő számok
Mindezt összerakva, a végponttól végpontig terjedő késleltetés a toll érintésétől az első dekódolt hangig, egy 6 soros oldalon, ahol a cél az 1. sor:
| Modell | A fázis | B fázis | OCR | Összesen |
|---|---|---|---|---|
| B1 / B2 | 4,6 ms (heurisztikus) | 7 ms | 65 ms | 77 ms |
| P2 | 4,6 ms | 7 ms | 65 ms | 77 ms |
| F8 | 64 ms (EAST fp32) | 8 ms | 64 ms | 136 ms |
| K7 / KF1 | 28 ms (EAST int8) | 8 ms | 38 ms | 74 ms |
| Q6 / Y6 | 26 ms (EAST int8) | 8 ms | 38 ms | 72 ms |
| L5 | 18 ms (DBNet int8) | 6 ms | 32 ms | 56 ms |
| Q8 | 11 ms (DBNet NPU) | 6 ms | 18 ms | 35 ms |
| T2 | 7 ms (DBNet NPU) | 6 ms | 11 ms | 24 ms |
A T2 a leggyorsabb end-to-end 24 ms-mal. Az F8 a leglassabb 136 ms-mal, a float32 EAST detektor és a float32 OCR motor miatt.
7. Hibaesetek, amelyeket a terepen tapasztalunk
A 2023 óta kiszállított több mint 47 000 egységnél a szövegfelismerési hibák az OCR-ral kapcsolatos visszaküldések 6,8%-át teszik ki. Megoszlás:
- Fényes papír csillanása elnyomja a ponttérképet: a felismerési hibák 32%-a.
- Erősen színezett háttér (pl. sötétkék tankönyvoldal) előtérként hibásan osztályozva: 24%.
- Díszes iniciálé vagy illusztrált fejléc összezavarja a sorcsoportosítást: 18%.
- Kézzel írt margójegyzetek tévesen sorvonalként érzékelve: 14%.
- > 250 mm/s-nél gyorsabb tollmozgás keretek közötti eltérést okoz: 8%.
- Az A fázis egy 30°-nál nagyobb szögben elforgatott négyszöget ad vissza, amelyet a B fázis erős perspektivikus torzítással vág ki: 4%.
További információ arról, hogy az OCR motor hogyan kezeli a sorvágást: Olvasótoll OCR motor és mély tanulásos OCR összehasonlítás. Arról, hogy az ISP hogyan állítja elő az oldalképet: Olvasótoll kamera ISP és képfeldolgozó processzor. Arról, hogy a szótár-keresés hogyan dolgozza fel a felismert szöveget: Olvasótoll szótárfájl formátum és kiadás. Arról, hogy a hardver hogyan korlátozza a detektorválasztást: Olvasótoll gyártási tesztszoftver rögzítő. Ha az Ön konkrét könyvtartalmára vonatkozó benchmark jelentést szeretne kérni: /request-a-quote.
8. AQL a detektor-kalibráló soron
Minden egység 4 másodperces szövegfelismerési öntesztet futtat a kalibrálás során. A teszt egy rögzített, a kalibráló rögzítőben tárolt oldalképet mutat be, és ellenőrzi, hogy a detektor a várt 6 négyszöget adja vissza a várt koordinátáknál. Átvételi feltételek:
- Mind a 6 sor észlelve, IoU ≥ 0,85: átment.
- Mind a 6 észlelve, de IoU 0,70–0,85: átment megjegyzéssel.
- 6-ból 5 észlelve: utómunka (detektor küszöbérték újrakalibrálása).
- ≤ 4 észlelve: selejt.
A 2026 Q1-ben kalibrált 8 000 L5 egységnél az elsőmenet-arány 96,2%, az utómunka 2,6%, a selejt 1,2% volt.
9. Szövegfelismerés specifikálása OEM szerződésben
Egy védhető szövegfelismerési specifikáció az alábbiakat tartalmazza:
- Detektor-architektúra (heurisztikus, EAST vagy DBNet) modellszintenként.
- Sorfelismerési recall ≥ 95% egy megnevezett tesztkészleten.
- Sorfelismerési precision ≥ 95% ugyanazon a tesztkészleten.
- Medián végponttól végpontig terjedő késleltetés egy 6 soros oldalon (modellenként).
- AQL átvételi kritériumok a kalibrációs sorra.
Azon OEM vásárlók számára, akik a alapértelmezett detektornál nagyobb pontosságot igényelnek, egy „prémium detektor” verziót kínálunk, amely 1.0x szélességű, nagyobb MobileNet hálózaton alapul, és 1.4 MB flash-t, valamint 12 ms késleltetést ad hozzá. Ez a verzió L5, Q8 és T2 modelleken érhető el, 5 000 darabos minimális rendelési mennyiséggel.
10. Az olvasótoll-detektor összehasonlítása az általános EAST-tel
Az olvasótoll EAST detektor 96,8%-os recall-t ér el az ICDAR 2015 olvasótoll részhalmazon, de csak 91,2%-os recall-t a standard ICDAR 2015 incidental text benchmarkon (amely inkább utcai jelenetek szövegére hasonlít). Az olvasótoll-részhalmaz könnyebb, mert a szöveg mindig nyomtatott, mindig papíron van, és mindig ismert betűméretekkel. A 96,8%-os számot tehát kontextusban kell olvasni: ez a helyes szám az olvasótoll-tartalomra, nem pedig tetszőleges jelenet-szövegre.
Ha egy beszállító detektorát a standard ICDAR incidental benchmarkon értékeli, és összehasonlítja a mi számunkkal, az almát a körtével hasonlítja össze. Kérjen a beszállítótól kifejezetten az olvasótoll-részhalmazra vonatkozó számokat.
Kapcsolódó olvasmányok
- Olvasótoll OCR-motor vs. Deep Learning OCR
- Olvasótoll kamera ISP és képfeldolgozó processzor
- Olvasótoll kézírás-felismerő motor
- Olvasótoll szótár fájlformátum és kiadás
- Olvasótoll gyártási tesztszoftver és fixture
- Olvasótoll YUV vs. RGB és színtér
Kiegészítő olvasmány: Többoszlopos és táblázatos elrendezések felismerése
A gyermekkönyvek jellemzően egyoszlopos elrendezésűek, oldalanként egy vagy két szövegblokkbal. Az idősebb diákoknak szánt tankönyvek gyakran többoszlopos elrendezésűek, oldalsávokkal, lábjegyzetekkel és táblázatokkal. A standard EAST és DBNet detektorok kezelik a többoszlopos elrendezéseket, mert a sorcsoportosítási fázis vízszintes sávon belül összevonja az elemeket, és függőlegesen szétválasztja az oszlopokat. 1,4%-os recall-csökkenést mértünk a 2 oszlopos elrendezésnél az 1 oszloposhoz képest, ami a legtöbb iskolai felhasználási esethez elfogadható.
A táblázatos elrendezések nehezebbek. A detektor minden cellát független szövegrégióként kezel, ami helyes, de az OCR-motor ezután minden cellát önálló sorként ismer fel, és nem tudja, hogy a szomszédos cellák egy sort alkotnak. A táblázat-tudatos OCR-hez egy opcionális táblázat-módú bővítményt szállítunk, amely a detektálás után fut, csak Q8 és T2 modelleken, és a geometriai rácshálóból következteti a sor- és oszlopszerkezetet, majd strukturált kimenetet ad az OCR-motornak. A táblázat-mód 8–14 ms késleltetést és 0,6 MB kódot ad hozzá, és igény szerint engedélyezhető.
A lábjegyet kezelése gyakori fals-pozitív eset: az oldal alján lévő lábjegy gyakran kisebb betűméretű, és néha önálló szövegsorként lesz felismerve, ami helyes, de néha két sorra osztódik, mert a betűméret elég kicsi ahhoz, hogy a sorcsoportosító algoritmus hézagot lásson. A csoportosítási hézagot K7, KF1, Q6 és Y6 modelleken 8 pixeles alapértékről 6 pixelre hangoljuk, így a lábjegy-széthasadási hibaarányt 4,2%-ről 1,6%-ra csökkentjük.