"Klassisk OCR vs. dyplæringsbasert OCR på lesepennene B1, B2, F8, K7, KF1, L5, P2, Q6, Q8, T2 og Y6: analyse av nøyaktighet, latenstid, minne og OEM-avveininger."

Publisert: apr 12, 2024 - 39 Visninger

Reading Pen OCR-motor vs. dyplæringsbasert OCR: Klassisk pipeline, CNN- og Transformer-avveininger

Målgruppe: Denne artikkelen er for ML-ingeniører, firmware-ansvarlige og OEM-kjøpere som vurderer hvilken OCR-arkitektur de skal sende ut i B1, B2, F8, K7, KF1, L5, P2, Q6, Q8, T2 og Y6 lesepenner. Vi antar at du har lest minst én OCR-benchmarkartikkel, at du forstår Tesseract og CRNN, og at du ønsker konkrete tall fra en produksjonsdeployering av lesepenner heller enn en lab-demo.

Lesepenn-OCR er et avgrenset delsett av det generelle OCR-problemet. Teksten er alltid trykt (ikke håndskrevet), alltid latinsk eller CJK i våre referansebygg, alltid på en kjent papirtype, og alltid tatt på en fast arbeidsavstand på 0,5 mm til 1,2 mm med en fastfokuslinse. Disse begrensningene gjør at vi kan slå en generell OCR-motor på latens med 4x til 10x, samtidig som vi matcher eller overgår nøyaktigheten. Denne artikkelen går gjennom de tre generasjonene av OCR vi har sendt ut, nøyaktighets- og latenstall per modell, og hvordan du spesifiserer OCR i en OEM-kontrakt.

1. Tre generasjoner av OCR i lesepenner

Lesepennmarkedet har syklet gjennom tre OCR-arkitekturer siden 2015:

  • Generasjon 1 (før 2020): klassisk Tesseract-lignende pipeline med binarisering, connected-component-analyse og templatematching. Brukt i eldre penner. Våre nåværende B1, B2 og P2 sender ikke ut Tesseract; de sender ut vår proprietære G1-motor som er åndelig sett lik.
  • Generasjon 2 (2020 til 2024): CRNN (CNN + toveis LSTM + CTC). Vår G2-motor sendes ut på F8, K7, KF1, Q6 og Y6.
  • Generasjon 3 (2024 til nå): en hybrid pipeline med en lettvekts CNN-featureekstraktor og en liten transformer-enkoder for sekvensmodellering. Vår G3-motor sendes ut på L5, Q8 og T2.

Hver generasjon representerer en annen avveining mellom nøyaktighet, latens, modellstørrelse og vertsprosessor-krav. Riktig valg avhenger av hvilken lesepennmodell du sikter mot og hva slags tekst brukeren skanner.

2. G1-motoren: Klassisk pipeline på B1, B2 og P2

G1-motoren på B1, B2 og P2 er en klassisk pipeline i 5 trinn:

  1. Binarisering: Otsus metode på ISP-utgangen.
  2. Connected-component-analyse: ekstraherer kandidat-tegnblobber.
  3. Tegnsegmentering: deler blobber ved ligaturgrenser ved hjelp av en heuristisk strekbreddemodell.
  4. Featureekstraksjon: 64-bin retningsbestemt feature-histogram per tegn.
  5. Klassifisering: 96-klasses one-vs-all lineær SVM, én modell per støttet skript.

Den totale modellstørrelsen er 1,4 MB for latin (96 tegn x 14 KB per klasse), 2,8 MB for latin + utvidet, 3,5 MB for CJK-grunnleggende (3 500 tegn). P2 leveres kun med latin på 1,4 MB. B1 og B2 leveres kun med latin på 1,4 MB.

På et 12-tegns ord skannet fra en barnebok kjører G1-motoren på P2 på 65 ms totalt: 8 ms binarisering, 14 ms connected-component, 12 ms segmentering, 24 ms klassifisering, 7 ms ordboksoppslag. Ende-til-ende-latens fra penn-ned til første lyd er 95 ms til 120 ms.

G1 tegnnivå-nøyaktighet på ICDAR 2015 lesepenn-delsettet (en benchmark på 1 200 bilder vi kuraterte fra offentlige + private utvalg):

  • Ren trykt tekst: 97,6 %.
  • Tekst på farget bakgrunn: 89,4 %.
  • Tekst på glanset papir: 91,2 %.
  • Små skrifttyper (under 8 pt): 78,3 %.
  • Blandede skript i samme linje: 72,1 %.

Små skrifttyper og blandede skriftsystemer er de svake punktene. For en ordbok beregnet på 5–7-åringer er den trykte teksten vanligvis 16 pt til 24 pt og ren, så G1-nøyaktigheten er akseptabel. For en lærebok beregnet på eldre elever trekker tilfellet med liten skrift G1-nøyaktigheten under 80 %, og det er derfor vi ikke anbefaler B1, B2 eller P2 til dette bruksområdet.

3. G2-motoren: CRNN på F8, K7, KF1, Q6 og Y6

G2-motoren bruker en 7-lags CNN etterfulgt av en 2-lags toveis LSTM og en CTC-dekoder. Arkitekturen er standard CRNN fra Shi et al.-artikkelen i 2015, med to modifikasjoner: (1) vi bruker dybdevis-separable konvolusjoner for å redusere parameterantallet med 4x, og (2) vi erstatter batch norm med group norm for bedre på-enhets-stabilitet.

Modellstørrelsen er:

  • Latinsk: 4,6 MB (float32), 1,4 MB (int8).
  • Latinsk + utvidet: 9,2 MB (float32), 2,7 MB (int8).
  • CJK grunnleggende: 18,4 MB (float32), 5,4 MB (int8).

På K7, KF1, Q6 og Y6 kjører int8-modellen på Cortex-A53-CPU ved 38 ms per 12-tegns ord. F8 sender kun float32 fordi verts-MCUen mangler int8-akselerasjon; F8-latensen er 64 ms.

G2 tegnnivå-nøyaktighet på det samme ICDAR 2015 lesepenn-delsettet:

  • Ren trykt tekst: 98,7 %.
  • Tekst på farget bakgrunn: 95,2 %.
  • Tekst på glanset papir: 96,0 %.
  • Små skrifttyper (under 8 pt): 92,4 %.
  • Blandede skript i samme linje: 88,9 %.

G2 lukker gapet på liten skrift og blandede skript betydelig sammenlignet med G1. De 92,4 % på liten skrift er akseptabelt for lærebokbruk. De 88,9 % på blandede skript er akseptabelt for tospråklige ordbøker der to skript vises på samme linje.

4. G3-motoren: Hybrid CNN + Transformer på L5, Q8 og T2

G3-motoren er en hybrid. CNN-frontenden ekstraherer en feature-sekvens på 64 steg ved 128 kanaler per steg. En 4-lags transformer-enkoder med 4 oppmerksomhetshoder og 256 skjulte enheter modellerer sekvensen. CTC-dekoderen ligger på toppen, lik som i G2.

Modellstørrelse:

  • Latinsk: 7,8 MB (float32), 2,3 MB (int8).
  • Latinsk + utvidet: 15,6 MB (float32), 4,6 MB (int8).
  • CJK grunnleggende: 31,2 MB (float32), 9,1 MB (int8).

På L5 kjører int8-modellen på CPU ved 32 ms per 12-tegns ord. På Q8 og T2 kjører int8-modellen på NPU ved henholdsvis 18 ms og 11 ms.

G3 tegnnivå-nøyaktighet på ICDAR 2015 lesepenn-delsettet:

  • Ren trykt tekst: 99,2 %.
  • Tekst på farget bakgrunn: 97,4 %.
  • Tekst på glanset papir: 97,8 %.
  • Små skrifttyper (under 8 pt): 95,9 %.
  • Blandede skript i samme linje: 94,6 %.

G3 er den første generasjonen som passerer 95 % på alle 5 kategorier. Transformer-oppmerksomheten hjelper til med å disambiguere blandede skript-linjer der LSTM-en i G2 sliter.


OCR Engine Comparison — Accuracy vs Latency on Latin 12-Char Word

5. Latens og minne: Alle tre generasjoner sammenlignet

Ende-til-ende-latens fra penn-ned til første dekodede lyd på et 12-tegns ord:

Generasjon Modellstørrelse (int8) Vert Latens RAM
G1 (B1/B2/P2) 1,4 MB Cortex-M4 95–120 ms 2,1 MB
G2 (F8) 4,6 MB (float32) Cortex-A7 64 ms 6,8 MB
G2 (K7/KF1/Q6/Y6) 1,4 MB (int8) Cortex-A53 38 ms 4,2 MB
G3 (L5) 2,3 MB Cortex-A53 CPU 32 ms 5,1 MB
G3 (Q8) 2,3 MB 0,5 TOPS NPU 18 ms 5,1 MB
G3 (T2) 2,3 MB 1,2 TOPS NPU 11 ms 5,1 MB

G3 på T2 er den raskeste med 11 ms, men koster $14,50 per enhet. G1 på B1 er den billigste med $3,80 per enhet, men med 120 ms latens. Riktig valg avhenger av bruksområdet ditt, ikke av hvilken motor som er "bedre".

6. Hvorfor ikke bare kjøre Tesseract?

Kjøpere spør noen ganger hvorfor vi ikke leverer Tesseract. Tre grunner:

  1. Tesseract er laget for skannede dokumenter, ikke for penne-spissbilder i videohastighet. Dens binarisering og layoutanalyse er tilpasset 300 DPI-sideskanninger, ikke 60 fps penne-spissstrømmer. Å kjøre Tesseract på F8 tar 320 ms per ord, som er 8x tregere enn G2.
  2. Tesseracts LSTM-modell er 33 MB for latin. G2-modellen er 1,4 MB int8. På K7 sitt 8 MB flash-budsjett får ikke Tesseract plass.
  3. Tesseracts nøyaktighet på ICDAR-delsettet for lesepenn er 95,1 % ren tekst, 86,3 % små fonter. G2 er 98,7 % og 92,4 %. Tesseract er dårligere på alle målinger som betyr noe for en lesepenn.

Hvis OEM-kravet ditt er "må kjøre Tesseract", spesifiserer du feil produkt. 11-modellutvalget finnes fordi én motor ikke passer alle brukstilfeller.

7. Hvorfor ikke alltid kjøre den største modellen?

Et naturlig spørsmål: hvis G3 er mer nøyaktig, hvorfor ikke plassere den i hver modell? Svaret er vertsprosessor og flash-budsjett.

  • B1 og B2 leveres med en Cortex-M4-klasse MCU på 80 MHz. G3 ville ikke kjørt med akseptabel latens.
  • P2 leveres med 4 MB flash. G3 latin int8 er 2,3 MB pluss 0,8 MB ordbok og 0,4 MB firmware, totalt 3,5 MB. Med lydressurser er flash full.
  • F8 leveres med en Cortex-A7 på 800 MHz. G3 int8 ville kjørt på 180 ms, som er over den menneskelige persepsjonsterskelen.

Så G3 er forbeholdt L5, Q8 og T2, der vertens SoC har både CPU- og flash-kapasitet. De andre 8 modellene bruker G1 eller G2.

8. Effekt på hele lydpipeline

OCR er ett trinn i en 5-trinns pipeline: ISP → tekstdeteksjon (TC-128) → segmentering → OCR → oppslag i ordbok → TTS → lyd ut. OCR-latens er vanligvis ikke flaskehalsen. Lydbuffer-fylling, TTS-syntese og DAC-oppstart legger til sammen 30 ms til 60 ms. Så en OCR-motor som tar 38 ms versus 32 ms endrer ikke brukeropplevelsen. Det som betyr mer er halen i latens: en 99-persentil-spike fra 38 ms til 280 ms får lyden til å føles hakkete.

Vi måler hale-latens over 10 000 sammenhengende gjenkjenninger. G3 på L5 har en 99-persentil-latens på 64 ms (mot 32 ms median). G3 på T2 har en 99-persentil på 22 ms (mot 11 ms median). Halen drives av DRAM-cache-miss og DMA-konflikter med lydmotoren; T2 har mer RAM-båndbredde, så halen er strammere.

9. Treningsdata og kontinuerlig forbedring

G3-modellen er trent på et korpus på 6,2 millioner skannede linjer innsamlet fra 38 000 lesepennbrukere i 47 land (akkumulert siden 2023). Linjene spenner over 14 språk, 12 papirtyper og 9 fontfamilier. Vi augmenterer med syntetiske forvrengninger: perspektivforvrengning, uskarphet, papirstruktur, trykt bakgrunn, JPEG-lignende kompresjonsartefakter.

Modellen trenes på nytt kvartalsvis. Hver utgivelse er styrt av en regresjonstest på det utelatte ICDAR 2015-delsettet og på en 200 000-linjers produksjonsprøve fra forrige kvartal. En utgivelse sendes kun hvis den forbedrer nøyaktigheten med ≥ 0,2 prosentpoeng uten å forringe noen av de 14 støttede språkene.

Kjøpers tips: Spør leverandøren hvor ofte OCR-modellen trenes på nytt og hvordan regresjonstestkorpuset ser ut. En leverandør som trener på nytt "når vi har tid" leverer en utdatert modell. Vår kvartalsvise kadens er dokumentert i firmware-versjonsnotatene.

10. Spesifisere OCR i en OEM-kontrakt

En forsvarlig OCR-spesifikasjon inkluderer:

  • Motorgenerasjon og modellfilstørrelse.
  • Tegnnivå-nøyaktighet på et navngitt testsett (vi leverer ICDAR 2015 lesepenn-delsettet på forespørsel).
  • Median- og 99-persentil-latens på et 12-tegns ord.
  • Minnebudsjett (flash + RAM).
  • Støttede skrifter.
  • Kadens for gjenopplæring og regresjonstestmetodikk.
  • Per-modell kalibreringsrapport fra produksjonslinjen.

For mer informasjon om hvordan tekst registreres før OCR, se Leksepenn – tekstdeteksjon og segmentering. For hvordan bilde signalprosessoren mater OCR-motoren, se Leksepennekamera – ISP og bilde signalprosessor. For hvordan YUV-utgangen knyttes til OCR-inndata, se Leksepenn – YUV vs RGB og fargerom. For håndskriftgjenkjenningsmotoren, se Leksepenn – håndskriftgjenkjenningsmotor. For å be om en benchmark-rapport som sammenligner innholdet ditt med vår ICDAR-delsett, se /request-a-quote.

OCR Engine Generations Compared

Relatert lesing

Be om tilbud – få raskt svar fra fabrikken

Tilleggslesing: OCR for høyre-til-venstre og vertikale skrifter

OCR for arabisk, hebraisk og persisk krever høyre-til-venstre-håndtering på språkmodellnivå, som G2- og G3-motorene støtter naturlig. OCR-motoren sender ut tegnsekvensen fra venstre til høyre i den visuelle rekkefølgen fra bildet, og språkmodellen reverserer og omformer sekvensen til riktig logisk rekkefølge. Nøyaktigheten på et arabisk test sett på 50 000 linjer er 94,8 % på G3 T2 og 91,6 % på G2 K7. Den lavere nøyaktigheten sammenlignet med latin skyldes sammenkoblede bokstavformer (initial, medial, final, isolert) som firedobler det effektive klasseantallet.

For vertikale skrifter (tradisjonell kinesisk, japansk, mongolsk) leverer vi en separat modell for vertikal tekst med roterte ankerbokser. Arkitekturen er identisk med G3, men treningssettet bruker vertikale linjeutsnitt. Modellen er 1,2x større enn den horisontale modellen på 2,8 MB int8. Vi leverer ikke vertikal tekst på L5, fordi verts-CPU-en ikke oppfyller latensmålet på 35 ms; Q8 og T2 håndterer vertikal tekst på henholdsvis 22 ms og 14 ms.

Sider med blandet retning (en lærebok med ett horisontalt avsnitt og ett vertikalt sidefelt) håndteres ved først å kjøre den horisontale modellen på hele siden, og deretter kjøre den vertikale modellen kun på områdene der den horisontale modellen returnerte lav konfidens. Denne selektive tilnærmingen holder gjennomsnittlig latens på 19 ms på Q8, mot 36 ms hvis begge modellene kjøres på hele siden.

Frequently Asked Questions

Hvilke lesepenn-modeller bruker dyplæring-OCR?
F8, K7, KF1, Q6 og Y6 bruker en CRNN-basert dyplæring-OCR-motor kalt G2. L5, Q8 og T2 bruker en CNN plus transformator-motor kalt G3. B1, B2 og P2 bruker en klassisk pipeline kalt G1 fordi deres Cortex-M4-klasse MCU-er ikke kan kjøre et nevralt nettverk med akseptabel ventetid. G3 er den mest nøyaktige med 99,2 % på ren tekst; G2 oppnår 98,7 %; G1 oppnår 97,6 %.
Hva er den minste skriftstørrelsen som lesepenn-OCR kan gjenkjenne?
På G3-motoren på T2 gjenkjennes skrift ned til 6 pt med 0,18 mm høyde på versaler med 91,4 % tegnnøyaktighet. På G2 på K7 faller samme 6 pt-tekst til 86,2 % nøyaktighet. På G1 på B1 er 6 pt-teksten 71,8 % nøyaktig. For skolebøker med 8 pt brødtekst anbefaler vi kun L5, Q8 og T2 med G3-motoren.
Hvor ofte blir OCR-modellen trent på nytt?
G3- og G2-modellene trenes på nytt kvartalsvis på et korpus på 6,2 millioner linjer fra 47 land. Hver utgivelse må forbedre den samlede nøyaktigheten med minst 0,2 prosentpoeng på det holdt-tilbake ICDAR 2015 lesepenn-delsettet og må ikke regressere noen av de 14 støttede språkene. Frekvensen for gjenopplæring og regresjonstestmetodikken er dokumentert i hver firmware-utgivelsesnotat.
Hvorfor varierer OCR-modellstørrelsen mellom modellene?
Den int8 G3 latinske modellen er 2,3 MB på disk, den int8 G2 latinske modellen er 1,4 MB, og den int8 G1 latinske pipelinen er 1,4 MB. Flash-budsjettet på hver modell begrenser de støttede skriftene. B1, B2 og P2 leveres kun med latin. K7, KF1, Q6 og Y6 leveres med latin pluss 6 utvidede latinske skrifter. L5, Q8 og T2 leveres med latin pluss CJK grunnleggende pluss arabisk pluss kyrillisk.
Kan en tilpasset OCR-modell trenes for en OEM-ordbok?
Ja. Vi tar imot kundekorpus og er fornøyde med så få som 50 000 skannede linjer og finjusterer G2- eller G3-modellen på 8 timer på en enkelt A100-GPU. Den finjusterte modellen leveres som en signert binærfil og erstatter den generelle modellen i fastvaren. Minimum OEM-bestilling er 5 000 enheter; trenings-SLA er 15 virkedager inkludert 3 dager med QA-gjennomgang og kundesignoff.
Din handlekurv
Din opplevelse på dette nettstedet blir bedre hvis du tillater informasjonskapsler. Informasjonskapselpolitikk
Chat on WhatsApp