Model Deep Learning untuk Deteksi NIK KTP Indonesia

By | November 23, 2024
725 Views

Aplikasi scanner untuk membaca informasi dari KTP Indonesia sebenarnya sudah sangat banyak dan sudah terhubung ke API. Pada postingan kali ini, kita akan sedikit membahas mengenai model deep learning yang bisa kita gunakan untuk mendeteksi lokasi sebuah NIK berbentuk bounding box. Model deep learning yang robust untuk tugas tersebut yaitu RCNN.

RCNN (Regional Convolutional Neural Network) adalah salah satu pendekatan dalam deep learning yang digunakan untuk mendeteksi objek dalam sebuah gambar. Tujuannya adalah menemukan dan mengidentifikasi objek dengan akurasi tinggi. Saat ini ada 2 jenis improvement dari RCNN standar  yaitu  Fast RCNN dan Faster RCNN

Untuk mengatasi kelemahan RCNN, dikembangkan varian yang lebih cepat:

  1. Fast RCNN: Memproses seluruh gambar dengan CNN terlebih dahulu, lalu mengekstrak fitur untuk semua region proposal sekaligus.
  2. Faster RCNN: Menggunakan Region Proposal Network (RPN) untuk menghasilkan region proposal secara lebih efisien.

RCNN sendiri sudah ada di pytorch dengan beragam model https://pytorch.org/vision/main/models/faster_rcnn.html yaitu

Namun bila kalian masih bingung untuk cara pelatihannya, kalian bisa menggunakan versi mudah nya yaitu lightning yang merupakan versi turunan dari pytorch yang lebih mudah untuk pemula. https://lightning.ai/lightning-ai/studios/object-detection-with-pytorch-lightning

Font KTP Indonesia

Contents

See also  Mempercepat dan mengurangi penggunaan memori tanpa mengorbankan akurasi model

Sekedar info saja mengenai jenis FONT KTP yang digunakan agak unik yaitu dengan nama OCR A Extended Font, kalian bisa download di https://cooltext.com/download-font-ocr+a+extended#google_vignette. Tujuan dari penggunaan jenis font tersebut sebenarnya untuk mempermudah dalam proses OCR karena sering dalam pada jenis font tertentu antar karakater angka 0 huruf O itu hampir mirip sehingga untuk jenis font OCR A Extended Font itu dapat dibedakan dengan mudah. Perhatikan tampilan font OCR A Extended berikut terhadap huruf latin

Perhatikan

  • huruf 0 kecil dengan
  • O besar, dan
  • angka 0 mempunyai tampilan yang berbeda-beda

Biasanya jenis font diatas digunakan juga pada ID pasport internasional.

Model Deep Learning

Seperti yang sudah saya jelaskan kita butuh model deep learning untuk object detection sehingga kita bisa memilih fasterrcnn_resnet50_fpn. Model ini sangat robust bahkan untuk objek yang kecil-kecil dan mempunyai ukuran gambar input berbeda-beda. Hal ini sangat berbeda dengan YOLO yang mengharuskan input gambar harus berupa square biasanya minimal 600×600. Dataset yang akan kita gunakan nanti menggunakan format YOLO ya Belajar mengenai Format YOLO, Pascal VOC, dan COCO serta Trimap pada Dataset Deep Learning

Sebelum melangkah lebih jauh, kita perjelas disini yaitu

  1. Deteksi NIK yang dimaksud disini yaitu hanya mendeteksi bounding box nya tanpa ada proses OCR. Karena kalau udah ketemu NIK nya maka akan lebih mudah memproses khusus NIK tersebut via OCR dan menarik datanya via API.
  2. Database KTP  saya comot dari https://github.com/YukaLangbuana/KTP-OCR

Tool Annotation

Untuk tools annotation nya menggunakan CVAT  Tools Canggih Buat Anotasi Objek CVAT  Computer Vision Annotation Tool – Deteksi NIK KTP Indonesia seperti berikut tampilan CVAT nya atau kalian bisa menggunakan roboflow

Format dataset di export dalam format YOLO

See also  Pengertian inbalance dataset dan Solusinya SMOTE Synthetic Minority Oversampling Technique

Proses Pelatihan Model Deep Learning untuk Deteksi NIK KTP Indonesia

Berikut hasil deteksi Bounding Box nya pada proses training nya dengan loss semakin turun.

Berikut ketika kita coba untuk melakukan prediksi lokasi NIK KTP

pada proses pelatihan juga menggunakan teknik augmentasi sehingga untuk gambar seperti berikut masih bisa dikenali

Selanjutnya OCR NIK  Membuat Model OCR untuk membaca No KTP