
Kenapa foto muka surat buku gagal OCR (dan bagaimana beberapa darjah kemiringan merosakkan ketepatan)
Diterbitkan pada 24 Jul 2026
Jika anda pernah cuba menukar foto muka surat buku kepada teks dalam talian dan mendapat kembali dinding karut yang kacau, anda mungkin menyalahkan perkara yang salah. Mudah untuk menganggap kertas lama yang menguning atau pencahayaan buruk sebagai puncanya — tetapi dalam ujian, kedua-duanya langsung tidak banyak mengubah keadaan. Punca sebenar hampir selalu sesuatu yang anda tidak boleh nampak hanya dengan melihat foto itu: kemiringan kamera yang kecil.
Ujian: muka surat yang sama, empat keadaan
Untuk mengetahui apa yang sebenarnya merosakkan OCR (pengecaman aksara optik) pada foto buku dunia sebenar, kami menjalankan blok teks yang sama melalui Tesseract — enjin OCR sumber terbuka — di bawah empat keadaan: imbasan rata bersih, muka surat menguning/pudar, foto dimiringkan kira-kira 12 darjah, dan foto dimiringkan dengan sorotan silau ditambah.
| Keadaan | Ketepatan perkataan |
|---|---|
| Imbasan bersih, rata | 100% |
| Muka surat menguning, pudar (tiada kemiringan) | 100% |
| Dimiringkan ~12° (tiada perubahan warna) | 67.7% |
| Dimiringkan ~8° + silau | 71.0% |
Muka surat yang menguning mendapat markah sama seperti yang tulen — markah penuh. Sebaik sahaja kemiringan diperkenalkan, ketepatan runtuh sebanyak satu pertiga, menghasilkan tepat jenis output yang pernah dilihat oleh sesiapa yang cuba alat “imbas buku teks ke perkataan”: "brow," dan bukannya “brown”, "Chapte,." dan bukannya “Chapter.”, "hidde,," dan bukannya “hidden”.
Kenapa kemiringan kecil menyebabkan kerosakan sebanyak ini
Enjin OCR membaca teks dengan mengimbas baris imej mencari jalur mendatar berterusan dakwat — itulah mekanisme yang mereka gunakan untuk membezakan satu baris teks daripada baris seterusnya. Pada imbasan yang benar-benar rata, setiap baris teks duduk dalam jalur mendatar yang kemas, dan enjin memisahkan dengan bersih baris 1 daripada baris 2 daripada baris 3.
Miringkan muka surat itu walaupun 10 darjah, dan jalur mendatar yang bersih itu menjadi kesan pudar pepenjuru merentasi berpuluh-puluh baris piksel. Logik segmentasi baris enjin itu mula menggabungkan aksara daripada apa yang sepatutnya dua baris berasingan, atau memisahkan satu aksara merentasi apa yang ia sangka dua baris berbeza. Hasilnya bukan “sedikit kurang tepat” — ia output yang secara kategorinya berbeza, kerana unit asas yang dibaca oleh enjin itu (satu baris) tidak lagi sepadan dengan apa yang sebenarnya ada dalam imej itu.
Inilah juga sebabnya foto yang kelihatan sepenuhnya boleh dibaca kepada anda masih boleh menghasilkan output OCR yang tidak boleh dibaca. Sistem visual anda mengimbangi kemiringan 10 darjah tanpa sebarang usaha sedar — anda tidak sedar pun ia miring. Saluran paip OCR yang naif tiada pengimbangan sebegitu terbina di dalamnya, dan ia membaca tepat piksel yang diberikan kepadanya.
Pembaikan: luruskan sebelum mengecam, bukan selepas
Petua praktikal bukanlah “pegang telefon anda dengan lebih berhati-hati” — sedikit kemiringan semasa memotret buku terbuka hampir tidak dapat dielakkan, kerana anda tidak menekan muka surat itu rata terhadap pengimbas. Pembaikannya adalah automatik: kesan sudut kemiringan dan betulkannya sebelum menjalankan pengecaman teks, bukan selepas.
Satu cara boleh dipercayai untuk mengesan sudut itu tanpa sebarang model pembelajaran mesin yang berat ialah kaedah profil unjuran (projection profile): putarkan imej melalui julat sudut calon, dan bagi setiap satu, ukur betapa “tajam” taburan dakwat baris demi baris itu. Pada sudut yang betul, baris teks berjajar menjadi jalur tajam (varians tinggi antara baris); pada mana-mana sudut lain, dakwat pudar merentasi baris (varians rendah). Sudut yang menghasilkan varians tertinggi ialah sudut deskew.
Menjalankan pembetulan ini dahulu dan kemudian mengecam teks membawa setiap kes ujian condong kami kembali kepada ketepatan 100% — muka surat yang sama, enjin OCR yang sama, satu-satunya perbezaan ialah meluruskannya dahulu.
Apa maksudnya jika anda mendigitalkan buku
- Jangan risau tentang keadaan kertas. Menguning, kepudaran ringan, dan kehilangan kontras sedikit daripada kertas lama hampir tidak mengubah ketepatan dengan sendirinya. Buku poket lama mendigitalkan hampir sama baiknya dengan yang baharu.
- Risaukan sudutnya. Malah kemiringan yang anda tidak perasan dengan mata boleh menjadi keseluruhan perbezaan antara teks yang boleh digunakan dan karut.
- Silau daripada denyar (flash) kurang penting berbanding kemiringan, tetapi masih merosakkan. Titik terang pada kertas mengilat boleh mengosongkan apa sahaja teks di bawahnya — pembetulan sudut tidak akan membaiki tempat di mana tiada dakwat yang boleh dibaca untuk dibaca pada mulanya.
- Alat yang membetulkan kemiringan secara automatik menyelesaikan masalah sebenar. Alat muka surat buku ke teks kami menjalankan langkah pengesanan-dan-pembetulan yang tepat ini dalam pelayar anda sebelum mengecam — tiada muat naik, tiada pelayan, dan ia dibina khusus di sekeliling masalah kemiringan dan bukan menganggap anda memberikannya imbasan rata.
Jika anda pernah mencuba OCR pada foto buku sebelum ini dan berputus asa kerana hasilnya tidak boleh dibaca, muka surat itu mungkin bukan masalahnya — beberapa darjah sudut kamera hampir pasti puncanya.