Tanpa unggah, 100% lokal, tanpa akun

Artikel

Tingkatkan akurasi OCR: perbaiki gambar sebelum mengenali teks

OCR hanya sebaik gambar yang Anda masukkan. Pemindaian yang miring, kontras rendah, dan banyak noise menghasilkan teks berantakan, tidak peduli seberapa baik mesinnya. Berikut hal-hal yang benar-benar membuat perbedaan, dalam urutan yang harus dilakukan, semuanya berjalan secara lokal di browser Anda.

Mengapa OCR kesulitan dengan pemindaian nyata

Mesin OCR seperti Tesseract dilatih pada teks yang bersih, horizontal, dan berkontras tinggi. Mesin ini membagi halaman menjadi baris, baris menjadi kata, dan kata menjadi bentuk karakter, lalu mencocokkan setiap bentuk dengan model terlatihnya. Pemindaian dunia nyata melanggar asumsi-asumsi tersebut: halaman miring beberapa derajat, pencahayaan tidak merata, resolusi rendah, dan tepi meja pemindai atau halaman sebelah menambahkan noise gelap. Setiap masalah ini membuat langkah segmentasi baris dan karakter menghasilkan tebakan yang salah, dan segmentasi yang salah berlanjut ke karakter yang salah. Solusinya jarang berupa mesin yang berbeda: yang diperlukan adalah menyiapkan gambar agar asumsi mesin terpenuhi. Dalam praktiknya, praproses meningkatkan akurasi lebih banyak daripada pilihan mesin OCR.

Diagram alur pra-pemrosesan OCR: sebuah hasil pindaian melewati tahap orientasi, koreksi kemiringan, pemotongan, dan skala abu-abu sebelum mencapai mesin pengenalan.

Mulai dari resolusi: targetkan 300 DPI

Tesseract bekerja paling baik pada sekitar 300 DPI untuk teks isi normal. Di bawah sekitar 200 DPI, goresan setiap glyph menyatu dengan tetangganya dan akurasi turun tajam. Jika Anda yang mengontrol pemindaian, atur pemindai ke 300 DPI sebelum yang lain, karena ini adalah pilihan dengan dampak tertinggi. Jika Anda hanya memiliki gambar beresolusi rendah, memperbesar gambar tidak menciptakan detail yang tidak pernah terekam, tetapi pembesaran sedang masih dapat membantu mesin memisahkan karakter yang saling bersentuhan dengan memberikan segmentasi lebih banyak piksel untuk digunakan. Cetakan yang sangat kecil mendapat manfaat dari 400 hingga 600 DPI; di luar itu Anda hanya memperbesar file tanpa peningkatan akurasi. Jika sumbernya adalah PDF, rasterisasi setiap halaman ke gambar pada DPI target terlebih dahulu, lalu jalankan OCR pada gambar tersebut.

Pastikan orientasi sudah benar

Jika halaman diputar 90, 180, atau 270 derajat, mesin membaca miring atau terbalik dan menghasilkan omong kosong. Tesseract memiliki langkah deteksi orientasi dan skrip (OSD) yang dapat menebak rotasi, tetapi tidak andal pada teks jarang, formulir, atau halaman yang didominasi gambar. Memutar halaman sendiri ke posisi tegak menghilangkan unsur tebakan. Langkah ini tanpa kerugian dan instan: memutar sebesar kelipatan 90 derajat hanya memindahkan piksel yang ada ke posisi baru, tanpa biaya kualitas dan tanpa resampling. Lakukan ini sebelum meluruskan, karena pelurusan mengasumsikan teks sudah kurang lebih horizontal.

Pelurusan: koreksi kemiringan kecil

Kemiringan 2 hingga 3 derajat pun, seperti yang terjadi saat halaman dimasukkan sedikit miring, merusak OCR: langkah pencarian garis horizontal membelah satu baris teks menjadi dua, atau menggabungkan dua baris menjadi satu. Pelurusan mengukur sudut dominan baris teks (umumnya dengan analisis profil proyeksi atau analisis transformasi Hough) dan memutar halaman kembali ke posisi horizontal. Berbeda dengan rotasi 90 derajat, pelurusan adalah rotasi sudut kecil yang sembarang, sehingga meresample piksel dan menambahkan sedikit keburaman. Pertukaran ini hampir selalu sepadan, karena baris yang lurus tersegmentasi dengan bersih dan peningkatan akurasi jauh melebihi sedikit pelunakan. Luruskan setelah memperbaiki orientasi dan sebelum memotong.

Sebelum dan sesudah koreksi kemiringan: halaman teks yang miring beberapa derajat di sebelah kiri, diluruskan menjadi horizontal di sebelah kanan sehingga baris-barisnya mendatar.

Potong ke area teks dan buang noise

Apa pun yang bukan teks yang Anda inginkan adalah noise yang dapat dibaca salah oleh mesin: tepi gelap meja pemindai, bagian halaman sebelah, sudut yang distaples, jari, atau lubang jilid. Memotong ke blok teks saja menghilangkan target palsu tersebut, yang sekaligus meningkatkan akurasi dan mempercepat pengenalan karena mesin memiliki area yang lebih sedikit untuk dianalisis. Untuk dokumen multi-kolom, pemotongan (atau menjalankan OCR satu kolom sekaligus) juga mencegah mesin membaca lurus melintasi lekukan dan mencampur dua kolom menjadi satu baris berantakan. Potong setelah meluruskan, sehingga konten duduk rata dalam bingkai.

Kontras, grayscale, dan cara binarisasi sebenarnya bekerja

OCR pada akhirnya berjalan pada gambar biner: setiap piksel ditentukan sebagai tinta atau kertas. Tesseract melakukan ini secara internal menggunakan metode Otsu, yang memilih satu ambang batas global dari histogram gambar. Cara ini berfungsi baik ketika halaman memiliki pencahayaan merata dan kontras yang baik, dan gagal ketika bayangan atau latar belakang berwarna membuat satu sudut lebih gelap dari yang diharapkan ambang batas. Keuntungan yang dapat diandalkan adalah mengonversi ke grayscale agar warna yang tidak diinginkan tidak mengacaukan ambang batas, dan meratakan pencahayaan sehingga seluruh halaman berada di satu sisi ambang batas tersebut. Mendorong kontras secara sedang membantu teks yang pudar. Yang biasanya berbalik arah adalah binarisasi manual yang keras: jika Anda mengambang sendiri ke hitam putih murni dengan cutoff yang salah, Anda menghapus goresan pudar yang akan dipertahankan oleh proses mesin sendiri. Biarkan mesin yang melakukan binarisasi, dan berikan gambar grayscale yang merata sebagai titik awal. Sunasty menyediakan grayscale untuk PDF; untuk penyesuaian kontras halus editor desktop masih lebih baik, tetapi pencahayaan yang merata saat pemindaian lebih berpengaruh daripada penggeser mana pun.

Pilih bahasa yang tepat dan verifikasi hasilnya

Tesseract memuat file data terlatih yang terpisah per bahasa dan skrip. Menjalankan model bahasa Inggris pada teks Prancis atau Yunani menghasilkan kesalahan yang bisa dihindari, terutama pada karakter beraksen atau non-Latin, jadi pilih bahasa yang sesuai dengan dokumen. Terakhir, perlakukan hasil OCR sebagai draf, bukan jawaban akhir: mesin tidak memiliki cara untuk mengetahui bahwa suatu nama dieja dengan benar atau bahwa 0 bukanlah O. Periksa angka, kata benda yang tepat, dan apa pun yang penting secara hukum atau finansial. Untuk tabel dan tata letak multi-kolom, bersiaplah untuk memperbaiki struktur secara manual, karena OCR menghasilkan aliran teks yang dikenali, bukan tata letak yang direkonstruksi.

Alat dalam artikel ini

Pertanyaan yang sering diajukan

Apakah memperbesar pemindaian yang buram meningkatkan OCR?

Tidak banyak sendiri. Pembesaran tidak dapat memulihkan detail yang tidak pernah terekam dalam pemindaian, sehingga gambar 100 DPI yang buram tetap buram. Pembesaran sedang dapat membantu mesin memisahkan karakter yang saling bersentuhan dengan memberikan segmentasi lebih banyak piksel, tetapi memindai ulang pada 300 DPI jauh lebih efektif daripada pembesaran sebesar apa pun.

Haruskah saya mengonversi gambar ke hitam putih murni sendiri terlebih dahulu?

Biasanya tidak. Tesseract melakukan binarisasi secara internal dengan metode Otsu, dan ambang batas keras manual dengan cutoff yang salah menghapus goresan pudar yang akan dipertahankan oleh mesin. Sebaiknya konversi ke grayscale dan ratakan pencahayaan, lalu biarkan mesin memilih ambang batasnya sendiri.

Teks saya miring ke samping. Apakah OCR akan memutarnya secara otomatis?

Kadang-kadang. Tesseract memiliki langkah deteksi orientasi, tetapi tidak andal pada formulir, teks jarang, atau halaman yang banyak gambar. Memutar halaman sendiri ke posisi tegak sebesar 90, 180, atau 270 derajat adalah tanpa kerugian dan menghilangkan unsur tebakan, sehingga ini adalah pilihan yang lebih aman.

Apakah ada dari semua ini yang mengunggah dokumen saya?

Tidak. Memutar, meluruskan, memotong, mengonversi ke grayscale, dan OCR itu sendiri semuanya berjalan di browser Anda. OCR menggunakan build WebAssembly dari Tesseract, dan data bahasa terlatih diunduh sekali dan disimpan dalam cache. File Anda tidak pernah meninggalkan perangkat.

Sumber