Skip to content

Python wrapper untuk segmentasi lokasi data dari gambar scan ijazah sekolah indonesia.

Notifications You must be signed in to change notification settings

madeyoga/ijazahpy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ijazahpy

Discord Badge contributions welcome CodeFactor

Skripsi 2020 jurusan Informatika. Implementasi algoritma DotSegmentation. Python wrapper untuk segmentasi lokasi data dari gambar scan ijazah sekolah Indonesia.

Permasalahan

Ijazah merupakan sebuah dokumen yang di berikan kepada siswa yang telah menyelesaikan jenjang pendidikan tertentu. Ijazah memiliki jenis form yang beragam. Hal ini dapat diperhatikan seperti ijazah SMA dan ijazah SMK. Ijazah SMK memiliki baris data lebih banyak dibanding Ijazah SMA.

Ijazah SMA Ijazah SMK

Begitu juga dengan perbedaan tahun periode pelajaran. Setiap rilis form ijazah tahun ajaran baru, ada kemungkinan bentuk form tersebut berubah. Dapat diperhatikan Ijazah SMA tahun ajaran 2015/2016 berbeda dengan Ijazah tahun ajaran 2020/2021 dibawah. Ijazah 2016 memiliki jumlah baris data yang lebih sedikit bandingkan dengan Ijazah 2021.

Ijazah 2015/2016 Ijazah 2020/2021

Tidak hanya itu, pengisian data pada Ijazah juga masih dilakukan dengan tulisan tangan. Berbeda dengan tulisan komputer yang konsisten secara penulisan, tulisan tangan oleh manusia memiliki ukuran, ketebalan, dan bentuk yang beragam. Tulisan tangan setiap manusia memiliki keunikan masing-masing. Hal ini tentu menjadi tantangan dalam mendapatkan akurasi pengenalan tulisan tangan yang tinggi.

Oleh karena itu, otomatisasi pembacaan data pada ijazah menjadi sebuah tantangan, terutama banyak dilakukan dalam proses pendataan murid, contoh saat penerimaan murid baru atau mahasiswa baru. Penelitian ini dibuat untuk menyelesaikan permasalahan tersebut. Secara garis besar, tahapan program dalam penelitian ini ialah: Input program berupa sebuah gambar ijazah, diproses, dan menghasilkan output sebuah label dan text.

Tahapan Proses:

  1. Mendeteksi lokasi data pada gambar ijazah.
  2. Crop bagian lokasi data ijazah.
  3. Mengaplikasikan metode Handwritten Character Recognition atau Handwritten Text Recognition pada hasil crop.

Repositori ini berisi implementasi dari algoritma dot segmentation, yang merupakan hasil penelitian untuk mendeteksi lokasi data pada gambar ijazah (proses 1). Algoritma dot segmentation berkerja dengan mendeteksi lokasi dot atau titik titik pada gambar, dan menyambungkan semua titik titik tersebut, sehingga membentuk sebuah garis atau line. Garis tersebut lah yang kemudian di grow secara vertical sehingga di temukan data tulisan di atasnya.

Repositori proses ke 3: Handwritten Text Recognition dan Handwritten Character Recognition

Digital collection buku skripsi

Install

  • Clone project
  • Open the project directory in cmd
C:\...\ijazahpy-master> pip install -r requirements.txt
C:\...\ijazahpy-master> pip install .

Contoh visual segmentasi lokasi data ijazah

import cv2
from ijazahpy.preprocessing import crop_ijazah
from ijazahpy.segmentation import DotsSegmentation

# Initialize object
dot = DotsSegmentation(rlsa_val=47)

# Load gambar 'input' ijazah
img = crop_ijazah(cv2.imread('replace me', cv2.IMREAD_GRAYSCALE))
rects = dot.segment(img, min_width=64)
for box in rects:
    (x,y,w,h) = box
    # visualize
    cv2.rectangle(img, (x,y), (x+w,y+h), (0,0,0), 2)
# show output
cv2.imshow('visual', img)

Input

input_image

Output

output_image

Kesimpulan

Algoritma dot segmentation dapat digunakan untuk mendeteksi lokasi data pada Ijazah dengan benar. Algoritma ini tentu memiliki persyratan untuk dapat menghasilkan akurasi deteksi lokasi data yang tinggi, antara lain:

  1. Gambar Ijazah merupakan gambar scan
  2. Gambar Ijazah tidak memiliki perspective

Kekurangan yang dimiliki algoritma ialah:

Algoritma membutuhkan pre-proses gambar untuk menemukan region of interest.

Anda dapat lihat pada contoh code visual segmentasi di atas, fungsi crop_ijazah di gunakan untuk mengambil region of interest pada ijazah. Jika fungsi ini fail dalam menemukan region of interest, maka kemungkinan lokasi data tidak dapat ditemukan. Sehingga proses character recognition juga akan fail

Pembacaan pada gambar ijazah yang memiliki perspective

Pada gambar yang memiliki perspective atau bukan hasil scan, titik titik pada gambar kemungkinan tidak membentuk garis horizontal jika di hubungkan.

Pengembangan selanjutnya

Jika anda ingin melanjutkan penelitian ini (Skripsi berikutnya), anda dapat mulai dari mengatasi permasalahan pada algoritma dot segmentation.

Pengembangan 1

Agar algoritma dapat berkerja dengan menghilangkan penggunaan fungsi crop_ijazah. Fungsi tersebut merupakan pokok permasalahan yang di alami saat ini. Berikutnya, anda dapat test parameter pada algoritma dot segmentation, sehingga tanpa proses crop ijazah, lokasi data masih dapat di temukan.

Pengembangan 2

Temukan solusi dari masalah pendeteksian lokasi data pada gambar ijazah yang memiliki perspective atau rotasi. Tidak perlu mengembangkan algoritma dot segmentation, anda juga dapat mencoba membuat algoritma semantik anda sendiri. Atau mencoba algoritma object detection, seperti YoloV3, YoloV4, YoloV5, dan lain lain.


Repositori proses tahapan ke 3: Handwritten Text Recognition dan Handwritten Character Recognition

Link Digital collection buku skripsi

Semoga bermanfaat

About

Python wrapper untuk segmentasi lokasi data dari gambar scan ijazah sekolah indonesia.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages