Ini bagian dari weekend project atau #codingforfun project. Awalnya saya nggak mau tulis di blog karena hasilnya masih berantakan (not for production purpose). Tapi saya berpikir mungkin ini bisa berguna untuk adik-adik yang mencari ide untuk bahan tugas akhir atau penelitian begitu. Ide dan cara berpikirnya yang ingin saya share. Mohon maaf untuk pembaca blog saya karena bahasan ini sangat teknis dan terkesan bahasa dari planet sebelah hehehe…
Awal mulanya begini, saya punya buku tafsir Al-Lubab karangan Prof. Quraish Shihab, kado ultah dari istri. Prof. Quraish sudah bilang bahwa buku tsb adalah tafsir yang sudah diperas yang ditujukan untuk mereka yang tidak punya banyak waktu untuk membaca tafsir berat seperti Al-Mishbah. Malasnya saya, bahkan yang katanya singkat itu belum saya baca. Bahkan satu surat pun belum selesai kecuali Al-Fatihah. Buku ini begitu tidak populer untuk saya dan selalu kalah prioritas dibanding buku-buku lainnya.
Saya kemudian mencanangkan gerakan membaca satu hari satu halaman. Supaya praktis, saya foto halamannya dengan handphone. Di situ lah idenya muncul. Kenapa tidak sekalian didigitalisasi dengan software OCR (Optical Character Recognition)? OCR adalah software yang bisa mengenali karakter di file gambar menjadi teks yang bisa dicopy-paste. Tentu saja karena hak cipta ada di Ustad Habib Quraish Shihab, saya tidak akan share teks hasil digitalisasinya.
Tapi saya tidak mau ribet. Saya tidak mau setelah memotret halaman di handphone, transfer dulu ke laptop, baru menjalankan software OCR-nya. Saya maunya praktis, semua bisa dilakukan di handphone. Karena belum ada aplikasi OCR di handphone, saya menggunakan pendekatan client-server dengan memanfaatkan Raspberry Pi. Berikut alur kerjanya:
- Potret halaman buku dengan kamera handphone
- Kirimkan file tersebut melalui email (sebagai attachment) ke server Raspberry Pi. Saya tidak mau ribet pakai FTP atau protokol lain.
- Server Raspberry Pi selalu monitor email tersebut, jika ada email yang diterima, ia akan download attachment-nya.
- Raspberry Pi menjalankan software OCR.
- Hasil OCR yang berupa teks dikirimkan balik melalui email ke si pengirim. Selesai.
Untuk bahasa, saya menggunakan Python dengan library imaplib. Email yang saya pakai adalah GMail. Ini adalah potongan kode untuk membaca email dari GMail, membaca attachment-nya dan disimpan ke temporary file.
Untuk urusan OCR, saya pakai Tesseract OCR, software OCR yang populer. Di Raspberry Pi (Raspbian), instalasinya cukup dengan apt-get install tesseract. Untuk memanggil tesseract dari Python, saya pakai library pytesseract. Hasil teks dikembalikan ke pengirim melalui email dengan library smtplib.
Kinerja OCR
Hasil OCR akan sangat tergantung kualitas input. Dengan input seperti gambar di bawah ini yang masih asli, hasilnya akan tidak akurat. Jadi saya harus melakukan editing manual dengan memotong bagian teksnya saja menjadi tiga bagian (paragraf utama, teks dalam kotak, dan catatan kaki).
Teks berikut ini jika saya hanya melakukan cropping di satu halaman saja:
TEMA DAN TUJUAN UTAMA SURAH Tema utama surah im' adalah tentang tatakrama, y akm' tatakrama terhadap (1) Allah swt., (2] Rasul saw., (3) Sesama Muslim yang taat, [4) terhadap yang durhaka, dan (5) terhadap sesama manusia. Karena itu, terdapat lima kali panggilan Ya ayyuha al—ladzina ’Amana yang terulang pada surah ini, masing—masing untuk kelima macam objek tersebut. Dalam konteks uraian tentang tema itu, maka ditemukan dalam surah ini banyak nilaj luhur yang dipaparkan, seperti tentang kesatuan kemanusiaan, substansi iman, demikian juga tuntunan menghadapi perbedaaan dan perselisihan, serta urajan tentang cara menghindal‘inya. Dengan memperhatikan dan menerapkan nilai-nilai itu, akan tercipta kehidupan bahagia bagi setiap individu sekaligus wujud dan mantap sistem ke- masyarakatan yang sejahtera. Tujuan utama surah ini adalah mendidik setiap umat Islam bagaimana seharusnya berprilaku sehingga tercipta lingkungan yang bersih dan sejahtera yang dihiasi dengan sopan santun terhadap Allah swt., Rasul saW., diri sendiri, dan orang lain. Sopan santun, bukan saja berkaitan dengan sikap lahiriah, tetapi berkaitan juga dengan bisikan hati dan gejolak—gejolaknya. INTI SARI KANDUNGAN AYAT AYAT 1-5 Akhir surah yang lalu, al-Fath, berbicara tentang sifat-sifat terpuji orang-orang ben’man yang mengikuti Nabi Muhammad :::::2:: 23:22:: W Wm man u m s . an _ ‘ sesuatu ketetapan apa p:3:u}:::i:::::g€:§:r;menetapkan masyarakat, sebelum atau bertentangan denganl:6:2:;::r—l Nya. Setelah pesan khusus itu, ayat ini melanjutkan dengan pesan umum yakni: Bertakwalah kepada Allah swt. dengan melaksanakan—sepanjang kemampuan—sernua perintah-Nya
Hasilnya akan lebih akurat jika saya meng-cropping bagian yang spesifik seperti misalnya begini:
untuk menemui mereka, maka pastilah penantian itu baik atau ‘ lebih baik bagi mereka. Tetapi sayang, mereka tidak bersabar, . sehingga mereka tidak memperoleh yang balk atau yang lebm baik. Namun demikjan. Allah swt. tidak menyiksa mereka. Allah swt. Maha Penyantun dan Allah swt. Maha Pengampun bagi yang bertaubat, lagi Maha Pengasih kepada hamba-hamba-Nya yang taat [5].2
Beberapa kata yang melenceng dikarenakan ada bagian yang menggelembung di kertasnya sehingga tulisannya tidak lurus. Ada satu hal lagi yang baru saya sadari, setiap baris selalu diberi karakter ganti baris sehingga harus secara manual dihapus supaya bisa menjadi satu paragraf utuh.
Saya berharap nanti bisa menulis kode untuk melakukan pre-processing gambar dengan mendeteksi blok-blok teks sehingga saya tidak perlu melakukan cropping manual. Ini bahasan teknis yang sulit yang melibatkan teknik manipulasi citra (image). Sesuatu yang sangat mudah dilakukan manusia tapi sangat sulit dilakukan oleh komputer.
Entahlah, namanya juga coding for fun hehehe…
OCR nya keren euy. Aseli. Jd inget dulu waktu kuliah perlu scan dulu sebelum pake software ocr.
Sekali lg ini kereeeen
Waduh…foto halaman tafsir ada diapers-nya tuh hehehe…