BookTranslator
BookTranslator

OCR Teks Serong Jepun: Kekalkan Susunan Lajur dan Kendalikan Furigana

Ekstrak teks serong Jepun dengan tetapan susun atur yang betul, asingkan furigana daripada teks badan, dan semak output OCR sebenar berbanding sampel yang boleh dimuat turun.

BookTranslator

BookTranslator Team

12 min read

Untuk OCR teks serong Jepun, semak arah penulisan sebelum menukar penapis imej. Gunakan model Jepun dan tetapan segmentasi yang boleh mengendalikan teks serong, sahkan lajur dalam urutan yang sepatutnya, dan tentukan sama ada anda memerlukan teks utama sahaja atau furigana juga. Halaman yang penuh dengan aksara yang boleh dikenali masih boleh menjadi transkripsi yang tidak boleh digunakan jika urutannya salah.

Kami menjalankan eksperimen tempatan kecil yang boleh direplikasi untuk menjadikan keputusan tersebut konkrit. Konfigurasi melintang mengaburkan tiga lajur serong kami. Konfigurasi serong memulihkan teks badan biasa, tetapi menambah furigana mengubah dua tanda baca, dan memotong ruby tidak menghilangkan ralat tanda baca.

Itu adalah keputusan daripada sampel sintetik yang sengaja dikecilkan, bukan tuntutan ketepatan tentang semua buku Jepun. Pengajaran yang berguna adalah lebih sempit: nilai pengecaman aksara, urutan pembacaan, dan pengendalian anotasi secara berasingan. Jangan hantar hasil kepada terjemahan hanya kerana ia kelihatan seperti bahasa Jepun.

Pertama sekali kenal pasti teks yang anda sebenarnya mahukan

Dalam komposisi serong Jepun konvensional, aksara bergerak ke bawah satu baris dan baris bergerak dari kanan ke kiri. Ruby ialah teks lebih kecil yang dikaitkan dengan aksara asas; furigana lazimnya membekalkan sebutannya. W3C's Requirements for Japanese Text Layout menerangkan arah penulisan dan hubungan ruby ini.

Sebelum OCR, labelkan kawasan halaman yang bermakna:

  • lajur serong utama;
  • ruby kecil di sebelah badan;
  • tajuk melintang, kapsyen, atau jadual;
  • nombor halaman dan kepala yang berjalan;
  • nota tepi atau halaman bersebelahan yang tidak berkaitan.

Jangan anggap setiap jalur serong sebagai perenggan bebas. Jalur kana kecil di sebelah 図書館 mungkin merupakan bacaannya, としょかん, bukan ayat seterusnya.

Pilih dasar output sebelum menilai OCR:

Tugasan pembacaHasil yang diinginiApa yang dikira sebagai masalah
Cari atau terjemahkan teksTeks utama mengikut urutan; bacaan berguna disimpan secara berasinganRuby diselitkan ke dalam prosa, teks badan yang ditinggalkan, lajur disusun semula
Kaji sebutanTeks utama ditambah bacaan yang dikaitkan dengan betulRuby yang hilang atau bacaan yang dilampirkan pada perkataan yang salah
Hasilkan transkripsi yang setiaTeks utama, hubungan anotasi, and keputusan editorial dipeliharaPemadaman senyap atau penormalan bahan yang ingin anda kekalkan

Output yang sama boleh lulus satu tugasan dan gagal pada tugasan yang lain. Eksperimen kami menggunakan transkripsi khusus badan sebagai sasaran perbandingannya. Ia tidak menganggap furigana yang hilang sebagai boleh diterima untuk edisi kajian sebutan.

Eksperimen OCR tiga ayat sebenar

Sampel ini menggunakan ayat-ayat karangan sendiri:

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

Ia menerangkan tentang membaca di perpustakaan, melihat sungai pada peta lama, dan bertemu rakan di stesen. Terdapat 34 titik kod Unicode teks badan apabila pemisah baris dibuang, termasuk tiga tanda noktah penuh Jepun.

Kami merendernya dalam tiga bentuk:

  1. Teks mendatar.
  2. Tiga lajur menegak, dibaca dari kanan ke kiri.
  3. Lajur menegak yang sama dengan furigana di sebelah 図書館, 地図, 友人, dan 駅.

Sampel OCR bahasa Jepun sintetik dengan tiga lajur menegak yang dibaca dari kanan ke kiri dan furigana yang lebih kecil di sebelah kanan perkataan terpilih.

Ini adalah imej pengajaran yang bersih, bukan halaman imbasan daripada buku. Perender menggunakan Noto Sans CJK JP, aksara badan 64 piksel, ruby 24 piksel, dan susun atur menegak glif demi glif yang dipermudahkan. Ia melukis titik noktah menegak sebagai bulatan garis luar kecil pada kedudukan yang dipilih secara manual daripada menggunakan kedudukan glif menegak fon yang betul; oleh itu, keputusan tanda baca tidak menentukan prestasi OCR pada buku yang ditaip dengan betul. Ia tidak menghasilkan semula setiap aturan tata huruf Jepun. Tiada kabur, condong, tekstur kertas, tulisan tangan, taip sejarah, atau halaman pelbagai arah dalam ujian ini.

Enjin, model, dan tetapan

Eksperimen ini dijalankan pada 7 September 2026, menggunakan Tesseract.js 7.0.0 dengan Tesseract.js-core 7.0.0 secara tempatan pada macOS ARM64. Semua panggilan yang berjaya menggunakan rasmi tessdata_fast model pada komit 87416418657359cb625c412a48b6e1d6d41c29bd, dengan OEM 1, mod enjin LSTM sahaja.

Repositori model rasmi Tesseract membekalkan secara berasingan jpn dan jpn_vert fail. Dokumentasinya menerangkan PSM 5 sebagai blok sejajar menegak seragam dan PSM 6 sebagai blok teks seragam; pilih andaian segmentasi yang sesuai dengan rantau yang sedang dikenali. Lihat dokumentasi segmentasi halaman.

Kes yang direkodkan kami menggunakan jpn dengan PSM 6 untuk teks melintang, jpn_vert dengan PSM 5 untuk teks menegak, dan salah padan yang sengaja jpn/PSM 6 kawalan menegak. Kedua-dua model dan segmentasi berubah antara dua konfigurasi menegak, jadi ini adalah perbandingan aliran kerja, bukan eksperimen yang mengasingkan kesan mana-mana tetapan sahaja.

Percubaan awal dengan tessdata_best dihentikan dalam teras WebAssembly yang tersedia sebelum menghasilkan teks OCR. Kami beralih kepada integer rasmi tessdata_fast model untuk keserasian dan merekodkan kegagalan itu. Tiada kesimpulan tentang ketepatan satu keluarga model yang terhasil daripada pertukaran itu.

Apa yang sebenarnya kembali

Perbandingan itu membuang ruang putih dan mengenakan normalisasi Unicode NFC. Ia tidak menggantikan tanda baca, membetulkan kanji, atau menyusun semula teks. Lengkap keluaran mentah dan cincangan versi/model, CSV perbandingan badan, dan anotasi ralat boleh dimuat turun.

Input dan konfigurasiKeputusan yang diperhatikan berbanding sasaran khusus badan
Melintang, jpn, PSM 6Kesemua 34 titik kod sepadan selepas penyingkiran ruang putih
Menegak, jpn, kawalan PSM 6Output berjalan merentasi kolum dan menyertakan penggantian aksara; bukan prosa yang boleh digunakan
Menegak, jpn_vert, PSM 5Kesemua 34 titik kod sepadan selepas penyingkiran ruang putih; susunan kolum adalah betul
Menegak dengan furigana, jpn_vert, PSM 5Teks utama kekal mengikut susunan, tetapi dua 。 tanda menjadi ASCII .; ruby tidak dikembalikan sebagai bacaan berasingan
Tiga keratan kolum badan daripada imej furigana, jpn_vert, PSM 5Kolum pertama berakhir dengan ., yang kedua dengan ,, yang ketiga dengan 。; pemotongan tidak mengalih keluar semua kecacatan tanda baca

Sebagai contoh, kes furigana mengembalikan baris pertama ini:

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

Ruang kosong diabaikan oleh peraturan perbandingan yang dinyatakan. Tanda baca akhir tidak diabaikan. Aliran kerja carian sahaja mungkin bertolak ansur dengan perbezaan itu, tetapi transkripsi yang setia harus merakam dan membetulkannya.

Kawalan menegak yang tidak sepadan bermula dengan 明 古 昌, melompat merentasi aksara teratas bagi lajur daripada mengikut ayat pertama yang dimaksudkan. Hasilnya menggambarkan mengapa mengecam simbol individu tidak sama dengan membina semula urutan bacaan.

Terdapat tujuh panggilan OCR yang lengkap: empat kes keseluruhan imej dan tiga keratan. Kami mengekalkan setiap output. Satu ejen membandingkan keputusan dengan kebenaran asas yang dikarang dan memeriksa imej secara visual; tiada ulasan manusia buta atau korpus penanda aras yang luas. Eksperimen ini tidak menetapkan enjin terbaik secara universal, kadar ketepatan peringkat buku, atau prestasi pada imbasan anda.

Gunakan aliran kerja utamakan rantau pada halaman anda sendiri

1. Kekalkan sumber dan pilih satu halaman yang sukar

Kekalkan imej asal atau PDF tidak berubah. Bekerja pada salinan, dan rekodkan nombor halaman. Pilih halaman yang mengandungi masalah yang cuba anda selesaikan: rubi tegap, longkang sempit, tajuk mendatar di atas teks menegak, atau jenis yang terlalu kecil.

Halaman tajuk yang bersih bukanlah ujian penerimaan yang berguna untuk buku yang halaman isinya mempunyai susun atur yang berbeza. Jika sumbernya ialah PDF, ekstrak atau render halaman yang dipilih menggunakan alat yang anda percayai sebelum menjalankan aliran kerja OCR imej sahaja. Skrip artikel ini menerima fail PNG; ia tidak memproses PDF atau membina lapisan PDF boleh cari.

Untuk proses penyediaan dan terjemahan dokumen imbasan penuh, gunakan yang lebih luas aliran kerja PDF imbasan. Panduan ini memberi tumpuan kepada arah, segmentasi, rubi, dan keputusan transkripsi Jepun.

2. Betulkan kecacatan tangkapan tanpa merosakkan teks kecil

Periksa aksara sebenar pada tahap zum yang berguna. Betulkan senget yang tidak disengajakan, buang sempadan halaman yang tidak berkaitan, dan kekalkan kontras yang mencukupi untuk membezakan kana kecil dan tanda baca. Elakkan daripada menganggap ambang agresif atau penajaman sebagai peningkatan automatik: bandingkan imej yang terhasil dengan yang asal sebelum mempercayai OCR.

Tesseract panduan kualiti imej merangkumi resolusi, hingar, senget, dan sempadan. Perkara tersebut adalah berasingan daripada arah penulisan. Menyahsenget halaman yang difoto pada sudut bukanlah operasi yang sama seperti memutar teks Jepun menegak tegak ke sisi.

Fail sampel membawa metadata 300 dpi, tetapi nombor itu tidak mencipta butiran yang hilang. Saiz glif badan sebenar mereka ialah 64 piksel. Foto resolusi rendah yang dilabel semula sebagai “300 dpi” tetap foto resolusi rendah yang sama.

3. Asingkan rantau apabila halaman melanggar satu andaian susun atur

Cuba blok menegak utama sendiri sebelum meminta satu panggilan OCR mengendalikan tajuk mendatar, prosa menegak, ilustrasi, dan nombor halaman. Simpan rekod rantau ringkas seperti “halaman 12, badan, lajur 1 dari kanan.” Rekod tersebut menjadikan pemasangan kemudian boleh diaudit.

Untuk bahan arah bercampur, kenali rantau mendatar dengan tetapan mendatar yang sesuai dan rantau menegak dengan tetapan menegak, kemudian pasangkannya mengikut urutan yang dimaksudkan oleh dokumen. Ini adalah cadangan aliran kerja untuk diuji pada fail anda, bukan keupayaan susun atur bercampur yang diukur oleh tiga imej sampel kami.

Eksperimen keratan kami menggunakan koordinat tepat yang diketahui untuk mengecualikan jalur rubi di sebelah setiap lajur sintetik sambil mengekalkan teks badan dan jidar putihnya. Ia adalah demonstrasi pemilihan rantau manual, bukan algoritma penyingkiran furigana automatik. Jangan gunakan koordinatnya pada halaman buku sebenar.

4. Semak lajur sebelum menyemak aksara individu

Bandingkan aksara badan pertama dan terakhir bagi setiap lajur, bekerja ke arah yang dimaksudkan. Sahkan bahawa tiada lajur yang hilang, diduplikasi, diterbalikkan, atau dicampur dengan jiran. Kemudian periksa ayat di sempadan lajur.

Hanya selepas itu anda harus membetulkan kanji individu, kana, tanda baca, nombor, dan nama. Jika tidak, anda boleh menghabiskan masa menggilap serpihan yang dipasang ke dalam perenggan yang salah.

Semakan tiga laluan yang berguna ialah:

  1. Kawasan dan urutan: setiap kawasan badan yang dimaksudkan hadir sekali dan mengikut urutan.
  2. Aksara: bandingkan imej sebenar dengan teks, termasuk tanda baca kecil dan tanda kana.
  3. Anotasi: tentukan sama ada setiap item ruby, nota, atau label pinggir dikehendaki, diasingkan, atau dikecualikan secara sengaja.

Nilai keyakinan enjin bukanlah pengganti untuk semakan ini. Kawalan bercelaru kami masih mengembalikan nombor keyakinan yang dilaporkan enjin; itu tidak menjadikan urutan bacaannya boleh diterima.

Jangan alih keluar furigana sehingga anda tahu sebabnya

Untuk pengekstrakan khusus badan, ruby tidak seharusnya secara tidak sengaja menjadi lapisan prose kedua. Tetapi memadamkan setiap rentetan kana kecil bukanlah peraturan umum yang selamat. Bacaan boleh membantu menjelaskan nama, mengekalkan sebutan pilihan pengarang, atau menyokong tugasan pembelajaran pembaca.

Dalam imej furigana kami, output OCR mengandungi kanji utama tetapi tidak mengembalikan empat bacaan sebagai set anotasi yang berasingan. Itu mungkin mencukupi selepas pembetulan tanda baca untuk tugasan carian khusus badan. Ia tidak mencukupi jika bahan serahan menjanjikan maklumat sebutan.

Simpan bacaan penting secara berasingan dan kaitkan dengan kemunculan yang betul. Contohnya:

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

Sampel transkripsi ruby yang berasingan menjadikan polisi itu jelas. Ia adalah kebenaran asas yang dihasilkan bersama imej, bukan tuntutan kejayaan OCR.

Jika OCR mencampurkan kana ke dalam perkataan atau kehilangan kaitannya, bandingkan dengan imej dan baiki transkripsi tersebut. Jangan minta model bahasa meneka sumber dan membentangkan tekaan itu sebagai teks yang dipulihkan. Sebaliknya, tandakan bacaan yang tidak pasti untuk disemak.

Keputusan keratan itu juga menentang peraturan ringkas “alih keluar ruby dan semuanya menjadi lebih baik”: dua perbezaan tanda baca kekal, dan penamat ayat yang terjejas berubah. Pemerhatian itu tergolong dalam lekapan bersih tertentu ini. Ia memberitahu kita untuk mengesahkan keputusan selepas segmentasi, bukan bahawa keratan secara amnya membantu atau merosakkan OCR.

Ulangi ujian atau simpan log semakan

Muat turun README eksperimen untuk model yang dipaku dan sumber fon, versi pergantungan, penerangan fail, dan arahan. penjana sampel, pelari OCR, dan skrip perbandingan pengasingan penciptaan imej, pengecaman, dan penilaian.

Pengendali menggunakan dokumentasi API pekerja Tesseract.js. Bagi rantau menegak, tetapan pentingnya ialah:

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 mesti mengandungi yang telah dimuat turun dan dinyahkompres jpn_vert.traineddata fail. Ini adalah petikan, bukan program lengkap; pengendali yang dibekalkan juga menyimpan keputusan mentah dan menamatkan pekerja.

Jika anda menggunakan aplikasi OCR lain, kekalkan bukti yang sama walaupun nama tetapan berbeza: rantau sumber, fail asal, versi model atau alat, arah, pilihan segmentasi, output sebenar, teks yang betul, dan aksara yang belum diselesaikan. Templat log semakan adalah kosong supaya ia tidak membayangkan halaman anda telah pun lulus.

Jangan tukar keputusan padanan tepat kecil kami kepada peratusan yang dijanjikan untuk keseluruhan novel. Font yang berbeza, lajur yang sesak, bentuk sejarah, imbasan berkualiti rendah, dan buih pertuturan manga memerlukan ujian perwakilan mereka sendiri. Susun atur manga dan pengecaman tulisan tangan berada di luar eksperimen ini.

Terjemah hanya apabila sumber yang pulih boleh dipercayai

Jika matlamat anda adalah carian, menyalin petikan, atau rujukan kamus, teks Jepun yang disahkan mungkin merupakan hasil akhir. Anda tidak perlu menterjemahkan keseluruhan dokumen semata-mata kerana OCR terlibat.

Jika halangan bahasa masih menghalang pembacaan dan anda mempunyai fail boleh guna yang boleh anda muat naik, teruskan dengan aliran kerja terjemahan PDF. Kekalkan imbasan asal dan transkripsi yang disemak supaya anda boleh membezakan ralat pengecaman daripada ralat terjemahan. Pengendali sampel menghasilkan fail teks dan TSV, bukan PDF yang sedia untuk dimuat naik secara automatik; sediakan format input sebenar yang diperlukan oleh alat anda seterusnya.

Mod OCR BookTranslator membina semula kandungan terjemahan berbanding menjamin susun atur menegak asal. Jangan anggap ia akan mengekalkan setiap kaitan ruby atau membaiki kesilapan pengecaman yang belum disahkan. Semak susunan bacaan dokumen akhir dan pemformatan menggunakan panduan pengekalan format PDF dan senarai semak QA PDF akhir.

Penyerahan yang boleh dipercayai bukanlah “OCR selesai.” Ia adalah “teks Jepun yang dimaksudkan ada, urusannya telah disemak, dan rawatan anotasi didokumenkan.”

Catatan Berkaitan