Work in progress

Bab ini menyajikan informasi mengenai metodologi penelitian yang digunakan pada penelitian untuk menentukan model dengan parameter terbaik.

Garis Besar Metodologi Penelitian

Untuk menyelesaikan rumusan masalah dan mencapai tujuan yang dijelaskan pada Bab 1, dibutuhkan beberapa tahapan dalam prosesnya. Tahapan tersebut digambarkan melalui diagram yang ditunjukkan pada Gambar x.

Alur metodologi penelitian

Pengumpulan dan Pelabelan Data

Dalam penelitian ini, data yang digunakan berupa gambar plat nomor kendaraan komersial yang diambil dari berbagai sumber di kota Semarang. Pengumpulan data dilakukan dengan memanfaatkan dua metode, yaitu melalui rekaman video dari YouTube serta foto kendaraan di jalanan Semarang. Kedua sumber ini dipilih untuk mendapatkan variasi plat nomor, terutama dari kendaraan niaga yang memiliki karakteristik plat nomor yang cenderung lebih kotor dan rusak.

Data yang digunakan dalam penelitian ini terdiri dari sekitar 800 gambar plat nomor kendaraaan. Proses pengambilan data dilakukan dengan langkah-langkah berikut:

  1. Pengambilan video
    • Beberapa video dari YouTube yang menampilkan kendaraan niaga diambil dan diekstrasi untuk mendapatkan frame yang menunjukkan plat nomor kendaraan.
  2. Pengambilan foto langsung
    • Beberapa gambar plat nomor kendaraan komersial diambil di beberapa lokasi di kota Semarang. Lokasi-lokasi ini dipilih berdasarkan tingginya frekuensi kendaraan niaga, seperti jalan raya utama.
  3. Praseleksi gambar
    • Gambar yang diperoleh diseleksi dan dipotong berdasarkan kualitas dan kejelasan plat nomor, memastikan bahwa setiap gambar memiliki plat nomor yang dapat diidentifikasi meskipun terdapat noise seperti kotoran atau kerusakan. Gambar plat nomor yang dipilih juga tidak boleh tertutup oleh objek lain, seperti kendaraan lain, tangan, atau benda lainnya yang dapat mengganggu proses pengenalan karakter.

Setelah data terkumpul, langkah selanjutnya adalah pelabelan. Proses pelabelan dilakukan secara manual dengan menggunakan perangkat lunak RectLabel. Setiap plat nomor dalam gambar diberi label dengan karakter yang sesuai, sehingga setiap gambar memiliki pasangan label yang berisi urutan huruf dan angka pada plat nomor tersebut.

Proses Cropping Plat Nomor

Update gambar di atas jadi SVG, skala besar, background transparan

Pelabelan dilakukan menggunakan RectLabel, yang menghasilkan file-file XML berisi koordinat bounding box plat nomor pada setiap gambar atau frame. Setelah itu, setiap gambar di-crop berdasarkan bounding box tersebut, dan hasil crop disimpan dalam format JPG dengan nama file sesuai dengan nomor plat yang dilabeli. Gambar x memvisualisasikan proses cropping plat nomor, di mana kolom kiri merupakan frame asli, kolom tengah merupakan label dari RectLabel, dan kolom kanan merupakan hasil crop.

Data yang sudah dilabeli kemudian dibagi menjadi tiga subset, yaitu train (80%), validation (10%), dan test (10%). Pembagian ini bertujuan untuk memastikan model memiliki data yang cukup untuk pelatihan serta evaluasi yang seimbang selama proses pengujian.

Lingkungan Pelatihan

Penelitian ini dilakukan menggunakan layanan cloud dengan akses SSH yang dilengkapi akselerasi GPU. Pemanfaatan lingkungan pelatihan berbasis cloud ini memungkinkan pelatihan model dalam skala besar dengan pemrosesan yang lebih cepat dan efisien. Tabel x menunjukkan spesifikasi perangkat keras dan lunak yang digunakan.

PerangkatSpesifikasi
Model GPUNVIDIA® RTX™ A4500
Nvidia Driver Version550.90.07
CUDA Version12.4
Memori GPU20470MB
Model CPUIntel® Core™ i5-6400 CPU @ 2.70GHz
Core CPU4
RAM32029MB

Dalam penelitian ini, penggunaan GPU NVIDIA® RTX™ A4500 sangat krusial karena mendukung akselerasi komputasi yang signifikan selama pelatihan model deep learning, terutama dalam mempercepat operasi matriks pada lapisan konvolusi yang memerlukan daya komputasi tinggi. Penelitian ini memanfaatkan media penyimpanan cloud storage Cloudflare R2 sebagai tempat penyimpanan dataset. Penyimpanan berbasis cloud memberikan fleksibilitas dalam mengelola dan menduplikasi data jika diperlukan pembuatan mesin pelatihan baru.

Pelatihan Model

Proses pelatihan model dilakukan dalam beberapa tahap penting yang terdiri dari penentuan arsitektur model, augmentasi data, dan iterasi training. Setiap tahapan dijelaskan lebih rinci sebagai berikut:

Arsitektur Model

Model didasarkan pada arsitektur LPRNet yang memanfaatkan lapisan konvolusional lebar tanpa memerlukan Recurrent Neural Network (RNN) dalam proses dekoding urutan karakter. Arsitektur ini terdiri dari tiga bagian, yaitu Spatial Transformer Network (STN), backbone, dan Global Context (GC).

STN berfungsi untuk mengoreksi distorsi pada plat nomor yang mungkin muncul selama proses pengambilan gambar, seperti kemiringan atau bentuk yang tidak proporsional. Dengan STN, plat nomor yang memiliki orientasi miring atau tidak sejajar dapat distandarisasi agar lebih mudah diidentifikasi. Jaringan lokalisasi untuk STN yang digunakan pada penelitian ini dijelaskan pada Gambar x.

Jaringan lokalisasi (LocNet) pada STN.

Arsitektur LPRNet memiliki backbone yang terdiri dari beberapa lapisan konvolusi yang berfungsi mengekstraksi fitur visual dari plat nomor kendaraan. Setiap lapisan konvolusi dirancang untuk mengidentifikasi fitur-fitur yang relevan, seperti bentuk karakter, garis tepi, dan pola lainnya yang muncul pada plat nomor.

Arsitektur Backbone pada LPRNet
Modul SmallBasicBlock

Untuk mempertahankan fitur penting yang dihasilkan dari backbone, jaringan Global Context (GC) diaplikasikan. GC berfungsi untuk menggabungkan informasi dari berbagai lapisan konvolusi, mulai dari lapisan awal (Conv1), hingga lapisan akhir (ConvOut). Proses ini memungkinkan model untuk mempertahankan konteks global dari fitur visual yang diproses.

Untuk menyesuaikan kedalaman feature map dengan banyaknya kelas karakter, konvolusi tambahan dengan kernel berukuran diterapkan. Dilakukan juga rata-rata pada dimensi ke-2 untuk mendapatkan logits model berdimensi , di mana merupakan ukuran batch, merupakan banyaknya karakter, dan merupakan time-step sequence probability.

Todo

Insert gambar global context yang inputnya ada 4, outputnya hasil concat, dikonvolusi 1x1.

Fitur-fitur ini kemudian diproses menggunakan Connnectionist Temporal Classification (CTC), sebuah algoritma yang memungkinkan model mendekode urutan karakter tanpa perlu segmentasi eksplisit. Proses pelatihan ini difokuskan pada optimasi fungsi loss CTC untuk mengurangi kesalahan prediksi terhadap urutan karakter plat nomor.

Augmentasi Data

Augmentasi data dilakukan agar model dapat mengenali plat nomor dengan berbagai orientasi. Proses ini bertujuan meningkatkan variasi data pelatihan yang diharapkan dapat memperluas kemampuan generalisasi model. Teknik augmentasi yang digunakan dalam penelitian ini ditampilkan pada Tabel x.

TipeParameter
Rotation-5º hingga 5º
Translationx axis max = 7% width; y axis max = 5% height
Scalingmin 70%; max 100%
Shearx-axis min = -10; x-axis max = 10
PerspectiveScale = 30%
ResizeUkuran akhir piksel

Augmentasi membantu model untuk lebih adaptif dalam mengenali karakter pada plat nomor kendaraan yang sering kali ditemui dalam kondisi kurang ideal. Augmentasi juga bertujuan untuk mensimulasikan kondisi nyata seperti rotasi, translasi, skala, dan distorsi perspektif yang mungkin terjadi pada pengambilan gambar dan deteksi plat nomor kendaraan.

Contoh Hasil Proses Augmentasi

Update gambar di atas jadi SVG, skala besar, background transparan

Proses augmentasi ini dilakukan pada setiap iterasi epoch, sehingga model akan mendapatkan gambar unik pada setiap epoch. Dengan demikian, model akan menjadi lebih robust dalam menghadapi variasi gambar plat nomor yang belum pernah dilihat sebelumnya selama pelatihan.

Iterasi Latih

Todo

Work in progress. Tanya dosbing:

  • Perlu atau tidak?
  • Bagaimana penulisannya? Iterasinya?

Pemilihan Hyperparameter

Proses pelatihan model mencakup berbagai konfigurasi dan hyperparameter yang memengaruhi kinerja dan akurasi model. Bayesian Optimization digunakan untuk melakukan pencarian hyperparameter terbaik. Bayesian Optimization memungkinkan model melakukan eksplorasi lebih cerdas terhadap ruang pencarian hyperparameter dengan memanfaatkan informasi dari percobaan sebelumnya. Beberapa hyperparameter penting yang diuji selama pelatihan dijabarkan pada Tabel x.

Update hyperparameter values

ParameterNilaiDeskripsi
Learning RateMin: 0.002;
Max: 0.0005
Besar langkah pembaruan bobot.
Batch Size16, 32, 64Jumlah data per batch.
EpochMin: 500;
Max: 1000
Jumlah iterasi pelatihan.
Learning Rate Scheduler StepMin: 600;
Max: 900
Penyesuaian learning rate dengan faktor 0.1 setelah epoch tertentu.
STN Enabled EpochMin: 0;
Max: 500
Pada epoch berapa STN diaktifkan selama pelatihan.

Model dengan konfigurasi hyperparameter terbaik, yang memberikan akurasi tertinggi pada subset validation, akan dipilih sebagai model akhir yang akan dievaluasi lebih lanjut. Pemilihan ini didasarkan pada performa model selama pelatihan dan validasi, di mana model yang memiliki loss paling rendah serta stabilitas performa terbaik akan dipertimbangkan. Dengan menggunakan Bayesian Optimization, proses pencarian hyperparameter menjadi lebih efisien karena metode ini tidak hanya fokus pada eksplorasi ruang pencarian tetapi juga memanfaatkan informasi dari percobaan sebelumnya untuk mempercepat proses konvergensi ke solusi optimal.

Evaluasi

Work in Progress

Terdapat dua metode evaluasi dalam penelitian ini, masing-masing memberikan representasi ukuran performa model dalam mengenali karakter pada plat nomor. Dua metode yang dimaksud adalah Letter Number Recognition Rate (RLN) dan Character Error Rate (CER).