Aplikasi Scanner Kartu KTP Indonesia

By | July 30, 2024
3,547 Views

Project ini adalah sebagai modul untuk membaca NIK KTP Indonesia serta melakukan croping ROI (region of interest) foto KTP sesuai kebutuhan client yang fokus untuk mempermudah administrasi fintech-BI Checking. Setelah dipikir-pikir dari sekian bahasa pemrograman seperti C#, Matlab, Octave, C++, Python, Julia, dan Java, maka kami memilih bahasa Java karena lebih mengedepankan aplikasi yang bersifat applicable dibandingkan dengan Matlab/Octave, Julia, dan Python. Selain hal  tersebut untuk library Digital Image Processing seperti Accord.net/AForget.net tidak menjadi pilihan karena merupakan net framework, PIL Image processing Python juga tidak dipilih harus bisa jalan di java sehingga kami memilih OpenCV 4.4.0. Sedangkan urusan OCR Optical Character Recognition diserahkan kepada tesseract karena tingkat akurasinya yang tinggi.

Adapun bahasa Java menggunakan versi java version “1.8.0_251”; Java(TM) SE Runtime Environment (build 1.8.0_251-b08); Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode) dengan Netbeans Apache NetBeans IDE 12.0 sebagai IDE. Fokus utama dari project ini cukup mudah yaitu mencari lokasi NIK serta mengekstraknya menjadi sebuah informasi text (biasa disebut dengan teknologi Optical Character Recognition) serta melakukan deteksi lokasi wajah (face detection). Jadi 3 tugas utama tersebut punya batasan yaitu

  1. Tidak Adanya image rotasi atau deskewing
  2. Serta Scan KTP dalam kondisi bagus

Mengingat NIK sangat penting digunakan untuk pengajuan pada basis data Fintech yang sudah sangat terhubung dengan Disdukcapil maka hanya dengan mendapatkan NIK akan mempermudah proses administrasi / tarik data / serta BI Checking. Sebagai contoh scan gambar KTP, diambil dari google saja (jadi kami hanya comot saja, semoga tidak kena protes)

Fokus kami hanya pada membuat ketiga modul tersebut bekerja secara bersama-sama dan memang sifatnya applicable – pure business (bukan untuk kepentingan akademis yang lebih mengutamakan analisis algoritma), silahkan bagi kalian yang ingin meneliti algoritma tersebut disini

See also  Mengolah Data Tabular Java

Deteksi Text dan Wajah Otomatis

Adapun untuk meningkatkan akurasi pembacaan NIK ini menjadi sebuah tantangan sendiri karena sulitnya mendeteksi secara otomatis, namun berkat adanya library OpenCV, maka tugas tersebut jadi terasa lebih mudah. Berikut adalah contoh text detection yang dilakukan pada beberapa gambar.

Adapun untuk text detection di  KTP akan menghasilkan sebagai berikut, nampak  bahawa text detection berjalan dengan baik serta face detection nya pun berjalan dengan baik

Namun demikian perlu adanya akurasi yang lebih baik karena begitu banyak variasi yang terjadi, tapi kami yakin bila disempitkan case nya yaitu hanya mengolah data dari sebuah Scanner khusus, maka akurasinya akan semakin baik!

 

Waktu Proses Scanner KTP

Untuk waktu yang dibutuhkan masih cukup lama yaitu berkisar antar 3 – 4 detik

waktu yang dibutuhkan : 3.9021114

Jadi perlu ditingkatkan lagi mengingat waktu tersebut terlalu lambat, sehingga dengan waktu tersebut 1 menit hanya mampu proses sebanyak 20 KTP saja. Hal ini memang wajar karena KTP sengaja di resize dengan ukuran cukup besar yaitu tinggi: 637 dan lebar: 900 demi meningkatkan akurasi NIK yang cukup susah dideteksi dibanding dengan deteksi wajah di KTP yang cukup mudah dilakukan. Bahkan untuk NIK dibawah ini

hasil ketika tidak dilakukan tuning, akan terjadi kesalahan baca yaitu

3524271522553:3-

harus dilakukan beberapa tuning secara khusus agar bisa lebih ditingkatkan akurasinya

tuning dilakukan secara by code demi menghilangkan garis/semburat yang ada!

31740716025353001

Kami harus melakukan trade off antara time speed atau memilih accuracy, Oiya kami menggunakan komputer dengan spesifikasi cukup lama

Tentu akan berbeda jauh dengan komputer server yang akan digunakan kelak nantinya karena dengan membuat sendiri modul tersebut akan menghemat biaya administrasi dariapda harus berlangganan API untuk mengolah data tersebut

See also  Mengubah CSV menjadi ARFF WEKA

Tampilan Aplikasi Scanner Kartu KTP Indonesia

Bentuk dari aplikasi sebenarnya hanya API / backend saja, namun untuk memberikan gambaran kinerja modul, kami buat sederhana saja menggunakan SWING/AWT dengan hasil sebagai berikut dengan sisi kanan menampilkan informasi NIK serta hasil croping wajah