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.
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:
- Pengambilan video
- Beberapa video dari YouTube yang menampilkan kendaraan niaga diambil dan diekstrasi untuk mendapatkan frame yang menunjukkan plat nomor kendaraan.
- 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.
- 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.
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.
Perangkat | Spesifikasi |
---|---|
Model GPU | NVIDIA® RTX™ A4500 |
Nvidia Driver Version | 550.90.07 |
CUDA Version | 12.4 |
Memori GPU | 20470MB |
Model CPU | Intel® Core™ i5-6400 CPU @ 2.70GHz |
Core CPU | 4 |
RAM | 32029MB |
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.
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.
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.
Tipe | Parameter |
---|---|
Rotation | -5º hingga 5º |
Translation | x axis max = 7% width; y axis max = 5% height |
Scaling | min 70%; max 100% |
Shear | x-axis min = -10; x-axis max = 10 |
Perspective | Scale = 30% |
Resize | Ukuran 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.
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
Parameter | Nilai | Deskripsi |
---|---|---|
Learning Rate | Min: 0.002; Max: 0.0005 | Besar langkah pembaruan bobot. |
Batch Size | 16, 32, 64 | Jumlah data per batch. |
Epoch | Min: 500; Max: 1000 | Jumlah iterasi pelatihan. |
Learning Rate Scheduler Step | Min: 600; Max: 900 | Penyesuaian learning rate dengan faktor 0.1 setelah epoch tertentu. |
STN Enabled Epoch | Min: 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).