Yukihiro "Matz" Matsumoto

Often people, especially computer engineers, focus on the machines. They think, "By doing this, the machine will run fast. By doing this, the machine will run more effectively. By doing this, the machine will something something something." They are focusing on machines. But in fact we need to focus on humans, on how humans care about doing programming or operating the application of the machines. We are the masters. They are the slaves.
Yukihiro "Matz" Matsumoto, Creator of Ruby

Kamis, 09 Oktober 2014

Membaca Gambar CAPTCHA Menggunakan Gem Tesseract-OCR

Bagi anda yang ingin membaca gambar CAPTCHA, yaitu gambar yang didalamnya berisikan teks yang biasa digunakan untuk verfikasi login ke website, saya memiliki tips yang dapat anda gunakan untuk membacanya menggunakan salah satu gems ruby yang bernama Tesseract-OCR yang berbasis pada program Tesseract.

Untuk menggunakan gems ini, terlebih dahulu anda membutuhkan menginstall program Tesseract pada sistem operasi anda, untuk anda yang menggunakan OS X dapat menggunakan Homebrew untuk melakukan instalasi. Untuk anda yang belum menginstall Homebrew pada Mac anda dapat mengikuti langkah dibawah ini untuk menginstall Homebrew, Tesseract, dan gem Tesseract-OCR
  1. Buka program Terminal.
  2. Paste syntax berikut pada command line, 
  3. ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  4. Setelah installasi selesai, ketik brew install tesseract
  5. Setelah installasi selesai, ketik gem install tesseract-ocr
Setelah semua selesai terinstall anda dapat menggunakan tesseract pada program Ruby anda. Berikut ini, gambar yang akan digunakan untuk membacanya kedalam tulisan dapat dilihat di bawah ini.


Saya akan menggunakan irb untuk membaca gambar diatas kedalam bentuk teks. Pertama, kita akan mengimport gem tesseract-ocr dengan menggunakan syntax require 'tesseract-ocr'. Berikutnya kita akan menggunakan kelas Tesseract::Engine untuk membuat objek baru yang akan digunakan dalam membaca image. Di dalam blok kita melakukan setting pada atribut objek ini. Berikutnya menggunakan method text_for dengan argumen berupa path file image yang akan kita baca. Saya melakukan chainning method strip yang ada dibelakang untuk menghilangkan whitespace atau newline yang ada dibelakang karakter yang dibaca. Dapat dilihat hasilnya berupa 9053.


Perlu anda ingat bahwa program Tesseract ini tidak sepenuhnya akurat dalam menerjemahkan gambar kedalam teks, keakuratan juga bergantung pada tingkat kompleksitas gambar yang diterjemahkan dengan algoritma Tesseract.

Tidak ada komentar:

Posting Komentar