Cara Mengekstrak Teks dari Gambar atau PDF yang Dipindai dengan OCR, Langsung di Browser Anda
Oleh Tim FileTinkerWaktu baca 7 mnt
Anda memiliki foto dokumen, tangkapan layar, atau PDF yang dipindai, dan Anda membutuhkan kata-kata di dalamnya sebagai teks sebenarnya yang dapat diedit, dicari, atau ditempelkan di tempat lain. Pekerjaan itu disebut OCR, pengenalan karakter optik, dan Anda tidak lagi memerlukan perangkat lunak desktop atau situs web unggah-berkas untuk melakukannya: browser modern dapat menjalankan mesin OCR penuh secara lokal. Tetapi OCR bukanlah sihir. Pada hasil pindai yang bersih, ia mendapatkan hampir setiap karakter dengan benar; pada foto ponsel buram, ia menghasilkan sampah, dan perbedaannya hampir seluruhnya tentang masukan yang Anda berikan. Panduan ini menjelaskan apa yang sebenarnya dilakukan OCR, bagaimana cara mengetahui kapan Anda bahkan tidak membutuhkannya, apa yang merusaknya, mengapa pengaturan bahasa lebih penting daripada yang dipikirkan orang, dan apa yang sebenarnya dilakukan dan tidak dikirimkan alat dalam-browser melalui jaringan.
OCR dalam satu paragraf: piksel masuk, tebakan keluar
Halaman yang dipindai tidak berisi teks. Bagi komputer, itu hanyalah kisi-kisi piksel berwarna, sama seperti foto pantai. OCR adalah perangkat lunak yang memindai kisi-kisi itu, menemukan bentuk yang terlihat seperti huruf, dan menghasilkan tebakan terbaiknya sebagai karakter nyata. Kata 'tebakan' penting: mesin mencocokkan pola piksel dengan apa yang telah dipelajarinya tentang tampilan teks cetak, sehingga keluarannya adalah rekonstruksi statistik, bukan salinan.
Itulah mengapa alat yang sama dapat hampir sempurna pada satu berkas dan tidak berguna pada berkas lain. Berikan hasil pindai yang datar, tajam, kontras tinggi dari teks cetak dan mesin yang baik membacanya hanya dengan kesalahan sesekali. Berikan foto ponsel miring, redup dari teks kecil dan setiap tahap alur kerja memburuk: ia menemukan garis di tempat yang tidak ada, membagi karakter di tempat yang salah, dan dengan percaya diri menghasilkan huruf yang salah. Perlakukan keluaran OCR sebagai draf cepat yang perlu diperiksa ulang, bukan sebagai kebenaran mutlak, terutama untuk angka.
Pertama, periksa apakah Anda memerlukan OCR sama sekali
Ada dua jenis PDF, dan keduanya terlihat identik di layar. PDF digital asli, yang diekspor dari Word, Google Docs, atau situs web, menyimpan teksnya sebagai karakter. Buka di pemutar PDF mana pun dan Anda dapat memilih teks dengan kursor, mencarinya, dan menyalinnya. Salinan itu instan dan 100% akurat, yang tidak akan pernah dicocokkan oleh OCR. PDF yang dipindai berbeda: setiap halaman adalah foto kertas, dan tidak ada karakter di dalamnya untuk dipilih.
Jadi sebelum Anda melakukan OCR pada PDF, coba pilih kata di dalamnya atau cari kata tersebut. Jika itu berhasil, cukup salin teks secara langsung dan lewati OCR sepenuhnya. Menjalankan OCR pada PDF digital asli berarti merasterisasi teks yang sempurna menjadi gambar dan kemudian menebaknya kembali, yang lebih lambat dan secara ketat kurang akurat daripada teks yang sudah ada. OCR adalah untuk kasus di mana pemilihan gagal: hasil pindai, faks, foto kertas, dan tangkapan layar.
Apa yang membuat OCR akurat, dan apa yang diam-diam merusaknya
Mesin OCR dilatih pada teks cetak yang bersih, sehingga akurasi menurun seiring dengan jarak dari ideal tersebut: halaman datar, fokus tajam, teks gelap pada latar belakang terang, font normal. Faktor tunggal terbesar adalah resolusi. Aturan praktis yang sudah lama ada adalah memindai pada 300 DPI, yang untuk foto atau tangkapan layar diterjemahkan menjadi huruf setinggi sekitar 20 piksel atau lebih. Di bawah itu, goresan yang membedakan 8 dari B atau e dari c hanya selebar satu atau dua piksel, dan informasi yang dibutuhkan mesin tidak ada dalam gambar. Memperbesar gambar resolusi rendah setelahnya tidak akan mengembalikannya.
Penyebab umum kerusakan ini sebaiknya diketahui namanya, karena masing-masing dapat dihindari saat pengambilan gambar:
- Buram dan goyangan kamera: tepi yang tidak jelas membuat bentuk huruf menjadi ambigu.
- Miring: teks yang difoto atau dipindai pada sudut tertentu merusak deteksi baris.
- Teks kecil: tangkapan layar teks UI kecil atau cetakan halus berada di bawah batas ~20-pixel.
- Kontras rendah: teks abu-abu di atas abu-abu, atau teks di atas foto dan latar belakang berwarna.
- Silau dan bayangan: foto ponsel dengan bayangan Anda di halaman menghilangkan seluruh area.
- Tulisan tangan: mesin OCR standar dibuat untuk cetakan; tulisan kursif menghasilkan noise.
- Font dekoratif: jenis huruf yang sangat bergaya atau terkondensasi menyimpang terlalu jauh dari data latih.
- Tata letak kompleks: halaman multi-kolom dan tabel dapat menghasilkan urutan baca yang kacau.
Cara mengambil sumber yang benar-benar dapat dibaca oleh OCR
Lima menit perhatian saat pengambilan gambar menghemat tiga puluh menit untuk memperbaiki output yang rusak. Jika Anda memiliki pemindai, pindai dokumen teks pada 300 DPI; skala abu-abu sudah cukup dan membuat ukuran file lebih kecil daripada warna. Jika Anda menggunakan ponsel, letakkan halaman di permukaan datar dengan pencahayaan yang merata, pegang kamera langsung di atasnya daripada dari sudut, isi bingkai dengan halaman, dan pastikan bayangan Anda tidak menghalangi teks. Ketuk untuk memfokuskan pada teks sebelum mengambil gambar.
Kemudian potong. Jika teks yang Anda inginkan berbagi bingkai dengan tepi tabel, tangan, atau latar belakang yang ramai, potong gambar menjadi hanya wilayah teks sebelum menjalankan OCR. Semuanya di bingkai adalah sesuatu yang dapat salah dibaca oleh mesin sebagai teks. Setiap langkah ini sesuai langsung dengan salah satu mode kegagalan di atas: resolusi, kemiringan, kontras, dan kekacauan.
Bahasa: pengaturan yang sering dilewati orang
Mesin OCR menggunakan model terlatih terpisah untuk setiap bahasa, karena model tersebut mengenkode baik bentuk huruf maupun statistik bahasa, urutan karakter mana yang merupakan kata yang masuk akal. Pilih bahasa yang salah dan Anda tidak mendapatkan hasil yang sedikit lebih buruk, Anda mendapatkan omong kosong: model bahasa Inggris yang melihat teks Cina akan dengan setia menghasilkan huruf Latin yang paling menyerupai goresan tersebut. Jika output OCR Anda terlihat seperti karakter acak, pengaturan bahasa adalah hal pertama yang harus diperiksa, sebelum Anda menyalahkan kualitas gambar.
OCR FileTinker menawarkan 17 bahasa: Inggris, Cina Tradisional dan Sederhana, Prancis, Jerman, Spanyol, Italia, Portugis, Belanda, Rusia, Jepang, Korea, Arab, Hindi, Polandia, Turki, dan Vietnam, ditambah mode Inggris + Cina gabungan untuk dokumen yang benar-benar mencampur keduanya, yang umum dalam tanda terima dan formulir dari Taiwan dan Hong Kong. Data setiap bahasa hanya diunduh saat Anda pertama kali menggunakannya. Gunakan mode gabungan hanya untuk halaman yang benar-benar tercampur: memberikan mesin dua alfabet untuk dipertimbangkan pada halaman satu bahasa hanya menambah cara untuk salah.
Apa yang sebenarnya dilakukan alat OCR dalam browser dengan file Anda
Alat Image to Text FileTinker menjalankan mesin Tesseract sumber terbuka, dikompilasi ke WebAssembly, di dalam pekerja di tab browser Anda. Anda memilih bahasa, menjatuhkan file, dan melihat bilah kemajuan saat membacanya. Ia menerima format gambar umum, JPG, PNG, WebP dan lainnya, serta PDF. Gambar langsung masuk ke mesin.
PDF yang dipindai mengambil langkah ekstra: alat tersebut pertama-tama merender setiap halaman ke gambar pada resolusi nominal gandanya menggunakan pdf.js, kemudian memasukkan halaman ke mesin satu per satu, menampilkan kemajuan gaya 'halaman 2 dari 5' saat berjalan. Halaman yang dikenali digabungkan dengan baris kosong di antaranya menjadi satu hasil. Perhatikan bahwa ini terjadi pada setiap PDF, termasuk yang lahir digital, yang merupakan alasan mengapa pemeriksaan pilih dan salin sebelumnya layak dilakukan terlebih dahulu.
Hasilnya muncul di kotak teks yang dapat diedit, sehingga Anda dapat memperbaiki kesalahan pengenalan segera, lalu menyalinnya atau mengunduhnya sebagai file .txt. Jika mesin tidak menemukan apa pun, ia akan mengatakannya daripada mengarang teks. Dan jika Anda membutuhkan teks yang telah dibersihkan sebagai dokumen lagi, alat text-to-PDF FileTinker akan mengubah .txt menjadi PDF dengan teks yang dapat dipilih, yang biasanya merupakan tujuan akhir dari pemindaian sejak awal.
Cetakan kecil privasi, dinyatakan dengan jelas
'Berjalan di browser' Anda memang benar, tetapi itu tidak berarti 'tidak ada aktivitas jaringan sama sekali,' dan penting untuk menjelaskan perbedaannya. Gambar atau PDF Anda tidak pernah diunggah: gambar tersebut didekode, dirender, dan dikenali sepenuhnya di mesin Anda sendiri, dan tidak ada server yang menerimanya. Yang dikirim melalui jaringan adalah perangkat lunaknya. Saat pertama kali digunakan, alat ini mengunduh mesin OCR (pekerja dan inti WebAssembly-nya, disajikan dari CDN jsDelivr) dan data terlatih untuk bahasa yang Anda pilih (disajikan dari host data Tesseract standar). Itu adalah unduhan satu kali — beberapa MB untuk mesin, ditambah model bahasa, yang berkisar dari beberapa MB untuk bahasa Inggris hingga puluhan MB untuk bahasa seperti Cina atau Jepang — dan browser Anda menyimpannya dalam cache, sehingga penggunaan berikutnya dimulai lebih cepat.
Singkatnya: kode diunduh, file Anda tidak pernah diunggah. Perbedaan itulah yang membuat OCR di browser masuk akal untuk materi sensitif seperti kontrak, ID, dan surat medis, di mana mengirimkan dokumen itu sendiri ke server orang asing adalah hal yang ingin Anda hindari. Pengamat jaringan dapat mengetahui bahwa Anda mengambil perangkat lunak OCR; mereka tidak dapat melihat apa yang Anda jalankan di atasnya.
Membersihkan hasil OCR
Bahkan hasil yang bagus pun membutuhkan pemeriksaan. OCR memiliki kebingungan klasik: huruf l kecil, angka 1, dan huruf I kapital; O dan 0; 'rn' dibaca sebagai 'm'. Periksa angka dengan sangat hati-hati, karena angka yang salah dalam nomor telepon atau total faktur kemungkinan besar terjadi dan tidak terlihat oleh pemeriksa ejaan. Keanehan struktural juga normal: Anda sering mendapatkan jeda baris di akhir setiap baris cetak daripada setiap paragraf, dan kata-kata yang dipisah dengan tanda hubung di baris tetap terpisah.
Karena kotak output dapat diedit, lakukan pembersihan ini sebelum Anda menyalin atau mengunduh. Untuk surat satu halaman, dibutuhkan waktu satu menit. Satu menit itu, ditambah pengambilan gambar yang layak, adalah satu-satunya perbedaan antara OCR menjadi trik pesta dan menjadi cara tercepat untuk memasukkan kertas ke dalam dokumen yang benar-benar dapat Anda gunakan.