BookTranslator
BookTranslator

Japán függőleges szöveg OCR: Oszloprend megőrzése és furigana kezelése

Japán függőleges szöveg kinyerése a megfelelő elrendezési beállításokkal, furigana elkülönítése a törzsszövegtől, valamint valós OCR-kimenetek ellenőrzése letölthető minták alapján.

BookTranslator

BookTranslator Team

12 min read

Japán függőleges szöveg OCR esetén a képfüggönyök módosítása előtt ellenőrizze az írásirányt. Használjon olyan japán modellt és szegmentálási beállítást, amely képes kezelni a függőleges szöveget, ellenőrizze az oszlopokat a kívánt sorrendben, és döntse el, hogy csak a főszövegre vagy a furiganára is szüksége van-e. Az felismerhető karakterekkel teli oldal is lehet használhatatlan átirat, ha a sorrendjük helytelen.

Végeztünk egy apró, reprodukálható helyi kísérletet, hogy ezeket a döntéseket kézzelfoghatóvá tegyük. Egy vízszintes konfiguráció összekeverte a három függőleges oszlopunkat. Egy függőleges konfiguráció helyreállította az egyszerű törzsszöveget, de a furigana hozzáadása megváltoztatott két írásjelet, a rubi körbevágása pedig nem szüntette meg az írásjelek hibáit.

Ezek egy szándékosan kicsi szintetikus minta eredményei, nem pedig pontossági állítás az összes japán könyv vonatkozásában. A hasznos tanulság szűkebb: a karakterfelismerést, az olvasási sorrendet és a jegyzetkezelést külön-külön értékelje. Ne küldje az eredményt fordításra csak azért, mert japánnak tűnik.

Először azonosítsa be a ténylegesen kívánt szöveget

A hagyományos japán függőleges szerkesztésben a karakterek lefelé haladnak egy sorban, a sorok pedig jobbról balra haladnak. A rubi az alapszöveghez kapcsolódó kisebb szöveg; a furigana gyakran a kiejtésüket adja meg. A W3C Requirements for Japanese Text Layout című dokumentuma leírja ezeket az írásirányokat és rubikapcsolatokat.

OCR előtt címkézze fel az oldal jelentős tartományait:

  • fő függőleges oszlopok;
  • kis méretű rubi a törzs mellett;
  • vízszintes címek, feliratok vagy táblázatok;
  • oldalszámok és élőfejek;
  • margójegyzetek vagy nem kapcsolódó szomszédos oldalak.

Ne kezeljen minden függőleges sávot független bekezdésként. A kis kana sáv a 図書館 mellett lehet a olvasata, としょかん, nem pedig a következő mondat.

Válassza ki a kimeneti irányelvet az OCR megítélése előtt:

Olvasói feladatKívánt eredményMi számít problémának
Keresés vagy a szöveg fordításaFőszöveg sorrendben; a hasznos olvasatok külön mentvePrózába illesztett rubin, kihagyott szövegrészek, átrendezett oszlopok
Kiejtés tanulásaFőszöveg plusz a helyesen hozzárendelt olvasatokHiányzó rubin vagy a rossz szóhoz csatolt olvasat
Hű transzkripció készítéseMegőrzött főszöveg, annotációs kapcsolatok és szerkesztői döntésekA megtartani szánt anyag csendes törlése vagy normalizálása

Ugyanaz a kimenet megfelelelhet az egyik feladatnak, míg a másikon elbukhat. A kísérletünk kizárólag szöveges transzkripciót használ összehasonlítási alapként. Ez nem tekinti elfogadhatónak a hiányzó furiganát egy kiejtés-tanulási kiadásban.

Valódi hárommondatos OCR-kísérlet

A minta ezeket a saját szerzésű mondatokat használja:

朝の図書館で本を読む。
古い地図には川が見える。
明日は友人と駅で会う。

Ezek könyvtári olvasásról, egy régi térképen látható folyóról és egy állomásbeli baráttal való találkozásról szólnak. A sortörések eltávolítása után 34 főszöveges Unicode-kódpont van, beleértve a három japán pontot is.

Ugyanezt a szöveget három formában jelenítettük meg:

  1. Vízszintes szöveg.
  2. Három függőleges oszlop, jobbról balra olvasva.
  3. Ugyanezek a függőleges oszlopok furiganával mellett 図書館, 地図, 友人, valamint 駅.

Szintetikus japán OCR-minta három, jobbról balra olvasandó függőleges oszloppal és a kiválasztott szavak mellett található kisebb furiganával.

Ezek tiszta oktatási képek, nem egy könyv beolvasott oldalai. A renderelő Noto Sans CJK JP betűtípust, 64 pixeles törzskaraktereket, 24 pixeles rubint és egyszerűsített, glifánkénti függőleges elhelyezést használ. A függőleges pontokat kézzel kiválasztott pozíciókban lévő, kis kontúros körökként rajzolja ki, ahelyett hogy a betűtípus megfelelő függőleges glifaelhelyezését használná; az írásjelek eredményei ezért nem mutatják be, hogyan teljesít az OCR egy megfelelően szedett könyvön. Nem reprodukál minden japán tördelési szabályt. A tesztben nincsenek elmosódások, ferdeségek, papírtextúrák, kézírások, történelmi betűtípusok vagy vegyes irányú oldalak.

Motor, modelek és beállítások

A kísérlet 2026. szeptember 7-én futott, a Tesseract.js 7.0.0-s és a Tesseract.js-core 7.0.0-s verziójával, helyileg macOS ARM64-en. Minden sikeres hívás a hivatalos tessdata_fast modelleket használta a(z) 87416418657359cb625c412a48b6e1d6d41c29bd commiton, OEM 1-gyel, azaz a kizárólag LSTM motormódban.

A Tesseract hivatalos modell-tárolója különálló jpn és jpn_vert fájlokat biztosít. A dokumentációja a PSM 5-öt egységesen függőlegesen igazított blokként, a PSM 6-ot pedig egységes szövegblokként írja le; válassza ki a felismerendő régiónak megfelelő szegmentálási feltételezést. Lásd a oldalszegmentálási dokumentációt.

Rögzített eseteink a következőket használták: jpn PSM 6-tal a vízszintes szöveghez, jpn_vert PSM 5-tel a függőleges szöveghez, valamint egy szándékosan eltérő jpn/PSM 6 függőleges kontrollt. Mind a modell, mind a szegmentálás megváltozik a két függőleges konfiguráció között, így ez egy munkafolyamat-összehasonlítás, nem pedig az egyes beállítások hatását önmagában izoláló kísérlet.

Egy kezdeti kísérlet a(z) tessdata_best használatával megszakadt a rendelkezésre álló WebAssembly magban, mielőtt OCR-szöveget hozhatott volna létre. A kompatibilitás érdekében áttértünk a hivatalos egész számú tessdata_fast modellekre, és rögzítettük ezt a hibát. Ebből a váltásból nem vonható le következtetés egyik modellcsalád pontosságára vonatkozóan sem.

Mi is érkezett vissza valójában

Az összehasonlítás eltávolítja a szóközöket, és Unicode NFC normalizálást alkalmaz. Ez nem cseréli ki a írásjeleket, nem javítja a kandzsikat, és nem rendezi át a szöveget. A teljes nyers kimenetet és a verzió-/modell-hasheket, törzs-összehasonlítási CSV, valamint hibaannotációkat letölthetők.

Bemenet és konfigurációMegfigyelt eredmény a csak törzsre vonatkozó célnál
Vízszintes, jpn, PSM 6Mind a 34 kódpont egyezett a szóközök eltávolítása után
Függőleges, jpn, PSM 6 vezérlésA kimenet átnyúlt az oszlopokon és karakterhelyettesítéseket tartalmazott; nem használható szöveg
Függőleges, jpn_vert, PSM 5Mind a 34 kódpont egyezett a szóközök eltávolítása után; az oszlopok sorrendje helyes volt
Függőleges furiganával, jpn_vert, PSM 5A fő szöveg sorrendben maradt, de két 。 jel ASCII .-vé vált; a ruby olvasatok nem különállóként lettek visszaadva
Három törzsoszlop-kivágás a furigana képből, jpn_vert, PSM 5Az első oszlop ezzel végződött: ., a második ezzel: ,, a harmadik ezzel: 。; a cropolás nem távolította el az összes írásjelekkel kapcsolatos hibát

Például a furigana eset ezt az első sors adta vissza:

Expected: 朝の図書館で本を読む。
Observed: 朝 の 図書 館 で 本 を 読む .

A szóközöket a megállapított összehasonlítási szabályunk figyelmen kívül hagyja. A záró írásjelet nem. Egy kizárólag keresésre szolgáló munkafolyamat elnézhet egy ilyen eltérést, de egy hű átiratnak rögzítenie és ki kell javítania azt.

Az eltérő függőleges vezérlés itt kezdődött: 明 古 昌, átugrarka az oszlopok felső karaktereit ahelyett, hogy követte volna a szánt első mondatot. Eredménye jól szemlélteti, miért nem azonos az egyes szimbólumok felismerése az olvasási sorrend rekonstruálásával.

Hét befejezett OCR-hívás történt: négy teljes képes eset és három kivágás. Minden kimenetet megtartottunk. Az egyik ügynök összehasonlította az eredményeket a szerzői alapadatokkal, és szemrevételezéssel megvizsgálta a képeket; nem történt vak emberi felülvizsgálat vagy széles körű benchmark-korpusz. A kísérlet nem határoz meg univerzálisan legjobb motort, könyvszintű pontossági arányt vagy az Ön szkennelésén elért teljesítményt.

Használjon régiónkénti munkafolyamatot a saját oldalán

1. Őrizze meg a forrást, és válasszon ki egy nehéz oldalt

Hagyja változatlanul az eredeti képet vagy PDF-et. Dolgozzon egy másolaton, és jegyezze fel az oldalszámot. Válasszon olyan oldalt, amely tartalmazza a megoldani kívánt problémát: sűrű rubiszköveget, keskeny margóközt, a függőleges szöveg feletti vízszintes címet vagy szokatlanul apró betűtípust.

A tiszta címoldal nem hasznos elfogadási teszt egy olyan könyv esetében, amelynek törzsszöveges oldalai eltérő elrendezésűek. Ha a forrás egy PDF, az image-only OCR munkafolyamat futtatása előtt egy megbízható eszközzel bontsa ki vagy renderelje ki a kiválasztott oldalt. A cikk szkriptjei PNG-fájlokat fogadnak; nem dolgoznak fel PDF-eket, és nem hoznak létre kereshető PDF-rétegeket.

A teljes szkennelt dokumentum-előkészítési és fordítási folyamathoz használja a tágabb szkennelt PDF-munkafolyamatot. Ez az útmutató a japán irányra, a szegmentálásra, a rubira és az átírási döntésekre fókuszál.

2. Javítsa ki a rögzítési hibákat a kis méretű szöveg elpusztítása nélkül

Vizsgálja meg a tényleges karaktereket hasznos nagyítási szinten. Egyenesítse ki a nem szándékos elforgatást, távolítsa el a nem kapcsolódó oldalhatárokat, és őrizzen meg elegendő kontrasztot a kis kana és írásjelek megkülönböztetéséhez. Kerülje az agresszív küszöbölés vagy élesítés automatikus javításként való kezelését: mielőtt megbízna az OCR-ben, hasonlítsa össze az eredetivel az eredményül kapott képet.

A Tesseract képminőségi útmutatója kitér a felbontásra, a zajra, a ferdeségre és a margókra. Ezek függetlenek az írásiránytól. A ferdén lefotózott oldal deszkewingje (egyenesbe hozása) nem ugyanaz a művelet, mint az álló függőleges japán szöveg oldalra forgatása.

A mintafájlok 300 dpi-s metaadatokat hordoznak, de ez a szám nem teremt hiányzó részleteket. A tényleges törzs-glifméretük 64 képpont. Egy alacsony felbontású, „300 dpi”-nek átcímkézett fotó továbbra is ugyanaz az alacsony felbontású fotó marad.

3. Különítse el a régiókat, ha az oldal megsért egy elrendezési feltételezést

Próbálja ki a fő függőleges blokkot önmagában, mielőtt tőle kérné egyetlen OCR-hívástól, hogy kezeljen egy vízszintes címet, egy függőleges prózát, egy illusztrációt és egy oldalszámot. Tartson meg egy egyszerű régiónaplót, például: „12. oldal, törzsszöveg, jobbról az 1. oszlop”. Ez a feljegyzés auditálhatóvá teszi a későbbi összeállítást.

Kevert irányú anyagok esetén ismerje fel a vízszintes régiót a megfelelő vízszintes beállítással, a függőleges régiót pedig függőleges beállítással, majd illessze össze őket abban a sorrendben, ahogyan a dokumentum szánta. Ez egy ajánlott munkafolyamat, amelyet érdemes tesztelni a fájlján, és nem a három mintaképünk által mért vegyes elrendezési képesség.

A kivágási kísérletünk pontos, ismert koordinátákat használt az egyes szintetikus oszlopok melletti rubisáv kizárására, miközben megtartotta a törzsszöveget és a fehér margót. Ez egy manuális régiókiválasztási demonstráció volt, nem pedig egy automatikus furigana-eltávolítási algoritmus. Ne alkalmazza a koordinátáit egy igazi könyvoldalra.

4. Ellenőrizze az oszlopokat az egyes karakterek lektorálása előtt

Hasonlítsa össze az egyes oszlopok első és utolsó törzsszöveg-karakterét a szánt irányban haladva. Győződjön meg arról, hogy egyetlen oszlop sem hiányzik, nincs duplikálva, felcserélve vagy összefonódva a szomszédjával. Ezután vizsgálja meg a mondatokat az oszlopok határainál.

Csak ezután szabad kijavítani az egyes kanzsikat, kánákat, írásjeleket, számokat és neveket. Ellenkező esetben olyan töredékek csiszolásával töltheti az időt, amelyek rossz bekezdésbe kerülnek.

Egy hasznos, háromlépéses áttekintési folyamat a következő:

  1. Régiók és sorrend: minden kívánt szövegrész jelen van, mégpedig egyszer és sorrendben.
  2. Karakterek: vessze össze a tényleges képet a szöveggel, ideértve a kis írásjeleket és kána jeleket is.
  3. Magyarázatok: döntse el, hogy az egyes rubi elemeket, jegyzeteket vagy széljegyzeteket megőrzi-e, különválasztja-e vagy szándékosan kizárja-e.

A motor megbízhatósági értéke nem helyettesíti ezeket az ellenőrzéseket. A megkevert vezérlésünk továbbra is a motor által jelentett megbízhatósági számot adta vissza, ami önmagában még nem tette elfogadhatóvá az olvasási sorrendet.

Ne távolítsa el a furiganát anélkül, hogy tudná az okát

Kizárólag szöveget tartalmazó kinyerés esetén a rubi nem válhat véletlenül a próza második rétegévé. Azonban az összes kis kánasztring törlése nem biztonságos általános szabály. Egy olvasat segíthet egy név egyértelművé tételében, megőrizheti a szerző által választott kiejtést, vagy támogathatja az olvasó tanulási feladatát.

A furigana-képünkön az OCR kimenet tartalmazta a fő kanzsit, de a négy olvasatot nem adta vissza külön megjegyzéskészletként. Ez egy kizárólag szöveges keresési feladat esetében az írásjelek kijavítása után elegendő lehetne. Nem elegendő azonban akkor, ha az eredmény kiejtési információkat ígér.

Tárolja a fontos olvasatokat külön, és rendelje hozzá őket a megfelelő előforduláshoz. Például:

Page: sample 1
Column: 1 from the right
Base text: 図書館
Reading shown: としょかん
Decision: retain body text; save reading in the annotation record

A minta különálló rubi átirata explicit módon kifejezi ezt a házirendet. Ez a képpel együtt készült alapadat, nem pedig egy sikeres OCR-művelet állítása.

Ha az OCR kána jeleket kever egy szóba, vagy elveszíti a kapcsolatot, vessze össze a képpel, és javítsa ki az átiratot. Ne kérje meg a nyelvi modellt arra, hogy találja ki a forrást, és helyreállított szövegként tüntesse fel a tippet. Ehelyett jelölje meg a bizonytalan olvasatot áttekintésre.

A kivágási eredmények szintén ellentmondanak az olyan leegyszerűsítő szabályoknak, mint a „távolítsuk el a rubit, és minden javulni fog”: két írásbeli eltérés megmaradt, és az érintett mondatvégek megváltoztak. Ez a megfigyelés erre az adott tiszta mintára vonatkozik, és azt üzeni, hogy az eredményt a szegmentálás után ellenőrizni kell, nem pedig azt, hogy a kivágás általában segít vagy árt az OCR-nek.

Ismételje meg a tesztet, vagy vezessen áttekintési naplót

Töltse le a(z) kísérleti README fájlt a rögzített modell- és fontforrásokért, a függőségi verziókért, a fájlleírásokért és a parancsokért. A(z) mintagenerátor, OCR-futtató, és összehasonlító szkript külön kezeli a képalkotást, a felismerést és az értékelést.

A futtató a dokumentált Tesseract.js worker API-t használja. Függőleges régió esetén a alapvető beállításai a következők:

const worker = await createWorker("jpn_vert", 1, {
  langPath: modelDirectory,
  gzip: false,
  cacheMethod: "none",
});
await worker.setParameters({
  tessedit_pageseg_mode: "5",
  user_defined_dpi: "300",
});

modelDirectory tartalmaznia kell a letöltött, tömörítetlen jpn_vert.traineddata fájlt. Ez egy részlet, nem a teljes program; a mellékelt futtató ráadásul elmenti a nyers eredményeket és leállítja a feldolgozókat.

Ha másik OCR-alkalmazást használ, őrizze meg ugyanazt a bizonyítékot még akkor is, ha a beállítások nevei eltérnek: forrásrégió, eredeti fájl, modell- vagy eszközverzió, irány, szegmentálási választás, tényleges kimenet, javított szöveg és fel nem oldott karakterek. A felülvizsgálati napló sablonja üres, így nem sugallja, hogy az oldalai már megfeleltek.

Ne alakítsa át a apró, pontos illeszkedési eredményünket egy egész regényre vonatkozó ígért százalékká. A különböző betűtípusok, a zsúfolt oszlopok, a történelmi formák, az alacsony minőségű szkennelések és a mangák beszéd buborékjai megkövetelik a saját reprezentatív tesztjeiket. A manga-elrendezés és a kézírás-felismerés kívül esik ezen a kísérleten.

Csak akkor fordítson, ha a visszanyert forrás megbízható

Ha a célja a keresés, az idézetek másolása vagy a szótári keresés, az ellenőrzött japán szöveg lehet a kész eredmény. Nem kell egy egész dokumentumot lefordítania pusztán azért, mert OCR szerepelt benne.

Ha a nyelvi akadály továbbra is gátolja az olvasást, és rendelkezik egy használható fájllal, amelyet feltölthet, folytassa a PDF-fordítási munkafolyamattal. Őrizze meg az eredeti szkennelést és az ellenőrzött átírást, hogy meg tudja különböztetni a felismerési hibákat a fordítási hibáktól. A mintafuttató szöveges és TSV-fájlokat hoz létre, nem pedig egy automatikus feltöltésre kész PDF-et; készítse elő azt a tényleges bemeneti formátumot, amelyet a következő eszköze igényel.

A BookTranslator OCR módja a lefordított tartalmat építi újjá ahelyett, hogy garantálná az eredeti függőleges elrendezést. Ne feltételezze, hogy megőrzi az összes rubin-hozzárendelést vagy kijavítja az ellenőrizetlen felismerési hibákat. Tekintse át a végleges dokumentum olvasási sorrendjét és formázását a PDF formátummegőrzési útmutató és a végső PDF minőségellenőrzési ellenőrzőlista.

segítségével. A megbízható átadás nem az, hogy „Az OCR elkészült.” Hanem az, hogy „a kívánt japán szöveg jelen van, a sorrendjét ellenőrizték, és a magyarázatok kezelése dokumentálva van.”

Kapcsolódó bejegyzések