{"id":2551,"date":"2018-08-21T09:07:24","date_gmt":"2018-08-21T09:07:24","guid":{"rendered":"http:\/\/blog.docotel.com\/?p=2551"},"modified":"2019-10-29T05:08:00","modified_gmt":"2019-10-29T05:08:00","slug":"anpr-mendeteksi-lokasi-pelat-nomor","status":"publish","type":"post","link":"https:\/\/dti.amon.id\/blog\/anpr-mendeteksi-lokasi-pelat-nomor\/","title":{"rendered":"ANPR: Mendeteksi Lokasi Pelat Nomor"},"content":{"rendered":"<p><em>Artikel ini merupakan kelanjutan dari artikel sebelumnya mengenai automatic license plate recognition. Pada tulisan kali ini dibahas lebih detail mengenai tehnik yang kami gunakan untuk mendeteksi lokasi pelat nomor pada gambar ataupun video.<\/em><\/p>\n<p>Pada bulan Januari 2018, dalam <em>meeting<\/em> besar awal tahun group&nbsp;<a href=\"https:\/\/www.docotel.com\/\" target=\"_blank\" rel=\"noopener\">Docotel<\/a>&nbsp;(IT Solution and System Integrator; <em>funded by<\/em>&nbsp;<a href=\"http:\/\/www.indonusadwitama.com\/portfolio_investment\/information_technology_and_internet.html\" target=\"_blank\" rel=\"noopener\">Indonusa Dwitama<\/a>&nbsp;<em>as early investor of various startup such as<\/em> Tokopedia), saya mempresentasikan inisiasi project&nbsp;<em>computer vision<\/em>&nbsp;sebagai salah satu produk awal Mahapatih. Setelah presentasi selesai, ada&nbsp;<em>challenge<\/em>&nbsp;yang disampaikan oleh bos divisi Sales group Docotel mengenai inisiasi tersebut.<\/p>\n<p>Beliau menyampaikan bahwa teknologi&nbsp;<em>computer vision<\/em>&nbsp;sudah ada sejak lama. Produk-produk untuk&nbsp;<em>face recognition<\/em>,&nbsp;<em>license plate recognition<\/em>, dan&nbsp;<em>object detection<\/em>&nbsp;sudah menjamur. Pertanyaannya, kenapa kita harus membuat hal serupa? <em>Reinventing the wheels?!<\/em><\/p>\n<p>Ada beberapa alasan, salah satunya adalah Indonesia merupakan negara yang besar. Sangat kompleks. Apabila hanya mengandalkan produk-produk dari luar negeri maka hasilnya tidak akan optimal. Produk-produk tersebut dibuat diluar Indonesia dan umumnya dibuat dengan \u201casumsi\u201d. Contohnya dalam hal mengenali pelat nomor kendaraan, data-data yang digunakan adalah data-data dari luar Indonesia. Mulai dari jenis huruf (<em>font<\/em>), warna pelat nomor kendaraan, jarak antar karakter, hingga asumsi bahwa semua pelat nomor di Indonesia mengikuti aturan baku yang diberlakukan pemerintah.<\/p>\n<p>Pada kenyataannya asumsi-asumsi di atas banyak tidak tepat. Produk-produk tersebut masuk ke Indonesia sebagai produk jadi, tidak mudah untuk melakukan kustomisasi apabila ada hal-hal yang butuh penyesuaian dengan kondisi lokal di Indonesia. Meminta <em>developer<\/em> produk tersebut memodifikasi produk-nya agar sesuai dengan keinginan <em>client<\/em> di Indonesia biasanya bukan hal yang mudah. Akibatnya yang sering terjadi adalah saat PoC \/ demo akurasi produk-produk <em>computer vision<\/em> di atas 90% (karena menggunakan data yang diperuntukan demo) namun saat sudah di implementasikan dan berjalan akurasi yang sebenarnya hanya dibawah 50%.<\/p>\n<p>Ada banyak sekali pihak yang membutuhkan teknologi <em>computer vision<\/em> di Indonesia, mereka membutuhkan dukungan tim <em>developmet<\/em> yang mumpuni agar dapat menyesuaikan&nbsp;<em>requirement<\/em>&nbsp;setiap pihak yang membutuhkan.<\/p>\n<p>Untuk itulah kita harus memulai langkah untuk mengembangkan produk tersebut secara mandiri.<\/p>\n<p><strong>Lokasi Pelat&nbsp;Nomor<\/strong><\/p>\n<p>Ada dua sumber data yang umum digunakan oleh produk <em>computer vision<\/em>: gambar dan video.<\/p>\n<p>Video sebenarnya adalah kumpulan data gambar yang&nbsp;<em>sequential<\/em>, sehingga apabila kita bisa mengaplikasikan skenario&nbsp;<em>computer vision<\/em>&nbsp;pada sebuah <em>file<\/em> gambar maka tidak sulit untuk mengaplikasikan skenario tersebut pada <em>file<\/em> video.<\/p>\n<p>Pada kasus pengenalan pelat nomor kendaraan, secara garis besar ada 2 hal yang harus dilakukan oleh mesin (komputer):<\/p>\n<ol>\n<li>Mencari lokasi pelat nomor dalam gambar<\/li>\n<li>Mendeteksi \/ mengenali angka dan huruf pada pelat nomor tersebut<\/li>\n<\/ol>\n<p>Pada artikel ini kita akan bahas metode yang dipergunakan oleh poin no.1 di atas.<\/p>\n<p><strong><em>Cascading Classifiers<\/em><\/strong><\/p>\n<p>Coba perhatikan contoh gambar di bawah ini<\/p>\n<figure id=\"attachment_2558\" aria-describedby=\"caption-attachment-2558\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2558 size-full\" src=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-2.png\" alt=\"\" width=\"800\" height=\"462\" title=\"\" srcset=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-2.png 800w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-2-300x173.png 300w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-2-768x444.png 768w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-2-370x214.png 370w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-2-270x156.png 270w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-2-740x427.png 740w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-2558\" class=\"wp-caption-text\">Contoh gambar dengan pelat nomor kendaraan<\/figcaption><\/figure>\n<p>Bagi kita\u200a\u2014\u200amanusia, mudah saja untuk dengan cepat menunjukan bagian lokasi pelat nomor kendaraan pada gambar di atas. Namun bagaimana dengan komputer?<\/p>\n<p>Oh iya, manusia juga tau pelat nomor tersebut karena sudah \u201cdilatih\u201d untuk mengenali bagian pelat nomor kendaraan. Coba tanya pada anak kecil usia 5 tahun misalnya, di mana lokasi pelat nomor pada gambar tersebut, apabila dia belum diajarkan sebelumnya maka dia tidak akan tau bagian mana yang dimaksud.<\/p>\n<p>Proses yang sama harus diberikan kepada mesin \/ komputer. Struktur otak manusia berbeda dengan struktur \u201cotak\u201d komputer, oleh sebab itu cara mengajarkannya juga berbeda (walaupun pada beberapa metode seperti <em>neural network<\/em> memiliki kemiripan).<\/p>\n<p>Salah satu tehnik yang kami pergunakan pada Matadewa adalah&nbsp;<strong><em>Cascading Classifier<\/em>s<\/strong>. Informasi mengenai <em>Cascading classifiers<\/em> dapat dibaca pada wikipedia.<\/p>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Cascading_classifiers\" target=\"_blank\" rel=\"noopener\"><em>Cascading classifiers <\/em>&#8211; Wikipedia<br \/>\nCascading Classifiers are trained with several hundred &#8220;positive&#8221; sample views of a particular object and arbitrary\u2026en.wikipedia.org<\/a><\/p>\n<blockquote><p><em>Cascading Classifiers are trained with several hundred \u201cpositive\u201d sample views of a particular object and arbitrary \u201cnegative\u201d images of the same size. After the classifier is trained it can be applied to a region of an image and detect the object in question.<\/em><\/p><\/blockquote>\n<p>Penjelasan mengenai <em>cascading classifieres<\/em> bagi orang awam, anggap saja <em>cascading classifiers<\/em> itu merupakan salah satu bagian dari struktur \u201cotak\u201d komputer yang dapat dilatih untuk mengenali bentuk suatu objek. Jadi apabila kita tunjukan gambar pelat nomor seperti di bawah ini secara terus menerus,<\/p>\n<figure id=\"attachment_2557\" aria-describedby=\"caption-attachment-2557\" style=\"width: 266px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2557 size-full\" src=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-3.png\" alt=\"\" width=\"266\" height=\"148\" title=\"\"><figcaption id=\"caption-attachment-2557\" class=\"wp-caption-text\">Pelat nomor kendaraan<\/figcaption><\/figure>\n<p>Maka komputer akan belajar mengenali bentuk pelat nomor. Akan terbentuk suatu struktur \u201cotak\u201d yang dapat dipergunakan oleh komputer untuk kemudian mengenali objek pelat nomor kendaraan apabila berikutnya dia ditunjukan suatu gambar dengan pelat nomor.<\/p>\n<p><strong><em>Training Cascading Classifiers<\/em><\/strong><\/p>\n<p>Jadi bagaimana caranya melatih komputer untuk mengenali objek pelat nomor kendaraan? Kita harus men-<em>supply<\/em> komputer dengan ragam bentuk pelat nomor kendaraan. Pada proses <em>training<\/em> \/ pelatihan tersebut, kita harus men-<em>supply<\/em> 2 jenis sumber data: Positif, dan Negatif. Positif berarti objek pelat nomor kendaraan, sedangkan Negatif berarti objek lain di luar pelat nomor kendaraan.<\/p>\n<p>Komponen positif dan negatif dibutuhkan agar komputer dapat mengenali lebih tepat mana pelat nomor dan mana yang bukan.<\/p>\n<figure id=\"attachment_2556\" aria-describedby=\"caption-attachment-2556\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2556 size-full\" src=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-4.png\" alt=\"\" width=\"800\" height=\"545\" title=\"\" srcset=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-4.png 800w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-4-300x204.png 300w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-4-768x523.png 768w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-4-370x252.png 370w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-4-270x184.png 270w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-4-740x504.png 740w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-2556\" class=\"wp-caption-text\">Contoh data \u201cnegatif\u201d<\/figcaption><\/figure>\n<p>Untuk sumber data positif kita juga perlu melakukan proses yang disebut sintesisasi, yaitu merubah posisi objek pelat nomor kendaraan dengan cara merotasi 180\u00b0, melakukan <em>mirroring<\/em>, menambahkan efek blur, menambahkan beragam kotoran yang biasa disebut \u201c<em>noisy<\/em>\u201d, dsb.<\/p>\n<figure id=\"attachment_2555\" aria-describedby=\"caption-attachment-2555\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2555 size-full\" src=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-5.png\" alt=\"\" width=\"800\" height=\"541\" title=\"\" srcset=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-5.png 800w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-5-300x203.png 300w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-5-768x519.png 768w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-5-370x250.png 370w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-5-270x183.png 270w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-5-740x500.png 740w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-2555\" class=\"wp-caption-text\">Sintesisasi sumber data \u201cpositif\u201d<\/figcaption><\/figure>\n<p>Untuk apa melakukan sintesisasi data di atas? Untuk memperkaya referensi objek yang dapat dipelajari oleh komputer, sehingga apabila ada objek pelat nomor kendaraan di mana pada gambar tidak terlalu jelas karena blur misalnya, maka komputer tetap dapat mengenali bentuk objek tersebut sebagai objek pelat nomor kendaraan.<\/p>\n<p>Pada prakteknya, memproduksi sumber data yang dapat digunakan untuk proses <em>training<\/em> ini secara <em>programming<\/em> sangat mudah.<\/p>\n<figure id=\"attachment_2554\" aria-describedby=\"caption-attachment-2554\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2554 size-full\" src=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-6.png\" alt=\"\" width=\"800\" height=\"322\" title=\"\" srcset=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-6.png 800w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-6-300x121.png 300w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-6-768x309.png 768w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-6-370x149.png 370w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-6-270x109.png 270w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-6-740x298.png 740w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-2554\" class=\"wp-caption-text\">Flip<\/figcaption><\/figure>\n<figure id=\"attachment_2553\" aria-describedby=\"caption-attachment-2553\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2553\" src=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-7.png\" alt=\"\" width=\"800\" height=\"633\" title=\"\" srcset=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-7.png 800w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-7-300x237.png 300w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-7-768x608.png 768w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-7-370x293.png 370w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-7-270x214.png 270w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-7-740x586.png 740w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-2553\" class=\"wp-caption-text\">Rotate<\/figcaption><\/figure>\n<figure id=\"attachment_2552\" aria-describedby=\"caption-attachment-2552\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2552 size-full\" src=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-8.png\" alt=\"\" width=\"800\" height=\"355\" title=\"\" srcset=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-8.png 800w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-8-300x133.png 300w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-8-768x341.png 768w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-8-370x164.png 370w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-8-270x120.png 270w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-8-740x328.png 740w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-2552\" class=\"wp-caption-text\">Noise + Rotate +&nbsp;Flip<\/figcaption><\/figure>\n<p>Dari 50 sumber gambar pelat nomor kendaraan, misalnya, dengan proses sintesisasi dapat menghasilkan total variasi hingga 1,250. Proses sintesisasi ini sangat bergantung pada kreativitas masing-masing, dan juga disesuaikan dengan kondisi sebenarnya di lapangan.<\/p>\n<p>Pada tahap ini, kita sudah bisa melihat betapa pentingnya mengembangkan produk <em>computer vision<\/em> sesuai kondisi di Indonesia, bukan? Karena kita bisa memikirkan kemungkinan-kemungkinan apa saja yang mungkin terjadi pada pelat nomor kendaraan di Indonesia sehingga bisa kita tambahkan dalam proses <em>training<\/em> mesin (<em>Machine Learning<\/em>).<\/p>\n<p><strong>Viola-Jones<\/strong><\/p>\n<p>Apa itu algoritma Viola-Jones? Berikut ini informasi dari&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Viola%E2%80%93Jones_object_detection_framework\" target=\"_blank\" rel=\"noopener\">Wikipedia<\/a>,<\/p>\n<p><em>The Viola\u2013Jones object detection framework is the first object detection framework to provide competitive object detection rates in real-time proposed in 2001 by Paul Viola and Michael Jones.<\/em><\/p>\n<p>Algortima Viola-Jones awalnya dipergunakan sebagai pendeteksi objek wajah pada fitur&nbsp;<em>face recognition<\/em>, namun algoritma tersebut dapat dipergunakan pada objek selain wajah.<\/p>\n<p>Untuk <em>training<\/em> pelat nomor kendaraan, kita melatih <em>cascade classifier<\/em> menggunakan algoritma Viola-Jones dengan memasukan gambar-gambar \u201cpositif\u201d dan \u201cnegatif\u201d di atas sebagai data <em>sample<\/em>. Pada akhir proses, akan dihasilkan sebuah <em>output<\/em> yang disebut \u201ccascade_plates.xml\u201d. Sebelumnya saya sempat menyebutkan \u201cbagian struktur otak komputer\u201d yang memahami bentuk objek pelat nomor kendaraan, nah, \u201ccascade_plates.xml\u201d inilah yang saya maksud sebagai struktur otak komputer tersebut.<\/p>\n<p>Selanjutnya, kita akan <em>test<\/em> dengan memberikan gambar pelat nomor kendaraan sebagai uji coba dimana pelat nomornya tidak termasuk dalam pelat nomor yang dilatihkan sebelumnya (karena tujuan kita adalah mesin dapat mengenali \u201cbentuk\u201d pelat nomor kendaraan),<\/p>\n<figure id=\"attachment_2560\" aria-describedby=\"caption-attachment-2560\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2560\" src=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-9.png\" alt=\"\" width=\"800\" height=\"466\" title=\"\" srcset=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-9.png 800w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-9-300x175.png 300w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-9-768x447.png 768w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-9-370x216.png 370w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-9-270x157.png 270w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-9-740x431.png 740w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption id=\"caption-attachment-2560\" class=\"wp-caption-text\"><br \/>Uji coba pengenalan objek pelat nomor kendaraan<\/figcaption><\/figure>\n<p>Terlihat bahwa komputer dapat mengenali lokasi pelat nomor kendaraan. Namun ternyata ada tiga bagian yang terdeteksi sebagai pelat nomor kendaraan, dimana dua di antaranya salah. Istilah untuk kondisi ini biasa disebut sebagai \u201c<em>false positives<\/em>\u201d, yaitu terindikasi sebagai objek pelat nomor kendaraan (<em>positives<\/em>) padahal salah (<em>false<\/em>).<\/p>\n<p>Mengapa terjadi <em>false positives<\/em>? Ada beberapa alasan, namun yang perlu diperhatikan adalah kita harus menyaring (<em>filter<\/em>) <em>false-positives<\/em> tersebut sehingga komputer benar-benar menunjukan dengan tepat bagian pelat nomor kendaraan. Kesalahan pada <em>machine learning<\/em> adalah hal yang lumrah, penyelesaian umumnya ada dua: pertama, memperbaiki sumber data yang dipergunakan, ataupun memperbaiki proses pelatihan komputer-nya, dan yang kedua, mereduksi kesalahan tersebut melalui metode-metode yang lebih <em>advanced<\/em> dan \u201cmanual\u201d.<\/p>\n<p><strong><em>Filtering False&nbsp;Region<\/em><\/strong><\/p>\n<p>Untuk menyaring <em>false-positives<\/em> pada area pelat nomor kendaraan, maka secara garis besar dilakukan proses berikut ini:<\/p>\n<ul>\n<li>Gambar objek dikonversi ke ukuran standar<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2573\" src=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-10.png\" alt=\"\" width=\"586\" height=\"266\" title=\"\" srcset=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-10.png 586w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-10-300x136.png 300w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-10-370x168.png 370w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-10-585x266.png 585w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-10-270x123.png 270w\" sizes=\"auto, (max-width: 586px) 100vw, 586px\" \/><\/p>\n<ul>\n<li>Menentukan warna latar belakang (<em>background<\/em>) dari pelat nomor (kuning atau hitam)<\/li>\n<li>Gambar objek dikonversi ke dalam format&nbsp;<em>grayscale<\/em><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2572\" src=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-11.png\" alt=\"\" width=\"570\" height=\"260\" title=\"\" srcset=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-11.png 570w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-11-300x137.png 300w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-11-370x169.png 370w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-11-270x123.png 270w\" sizes=\"auto, (max-width: 570px) 100vw, 570px\" \/><\/p>\n<ul>\n<li>Mengaplikasikan&nbsp;<em>adaptive filtering<\/em><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2571\" src=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-12.png\" alt=\"\" width=\"568\" height=\"256\" title=\"\" srcset=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-12.png 568w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-12-300x135.png 300w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-12-370x167.png 370w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-12-270x122.png 270w\" sizes=\"auto, (max-width: 568px) 100vw, 568px\" \/><\/p>\n<ul>\n<li>Mencari kontur objek (kontur dari area berwarna putih pada gambar)<\/li>\n<li>Mencari area persegi dari objek-objek yang berwarna putih sesuai dengan parameter jarak tertentu dan rasio jarak tepi antar persegi. Apabila tes kontur tersebut hasilnya positif maka dapat dipastikan objek didalam persegi merupakan huruf atau angka<\/li>\n<li>Area di mana di dalamnya terdapat banyak deretan angka dapat disimpulkan merupakan objek pelat nomor, sisanya berarti bukan objek pelat nomor (<em>false positive<\/em>)<\/li>\n<li>Berikut ini contoh dari pemrosesan 3 area yang terindikasi sebagai objek pelat nomor setelah dilakukan <em>adaptive filtering<\/em> dan mencari bagian-bagian persegi dari objek-objek dalam area jarak tertentu<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2570\" src=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-13.png\" alt=\"\" width=\"1020\" height=\"178\" title=\"\" srcset=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-13.png 1020w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-13-300x52.png 300w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-13-768x134.png 768w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-13-370x65.png 370w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-13-270x47.png 270w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-13-740x129.png 740w\" sizes=\"auto, (max-width: 1020px) 100vw, 1020px\" \/><\/p>\n<p>Menyaring objek pelat nomor <em>false positive<\/em>. Satu merupakan objek pelat nomor, sisanya&nbsp;salah<\/p>\n<p>Setelah dilakukan algoritma untuk menyaring <em>false region<\/em> maka hasilnya sekarang menjadi jauh lebih akurat<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2569\" src=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-14.png\" alt=\"\" width=\"1033\" height=\"201\" title=\"\" srcset=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-14.png 1033w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-14-300x58.png 300w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-14-768x149.png 768w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-14-1024x199.png 1024w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-14-370x72.png 370w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-14-270x53.png 270w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-14-740x144.png 740w\" sizes=\"auto, (max-width: 1033px) 100vw, 1033px\" \/><\/p>\n<p>Akurasi deteksi lokasi pelat nomor pada gambar mendekati 99%<\/p>\n<p><strong><em>More and More Pre-Processing Technique<\/em><\/strong><\/p>\n<p>Setelah lokasi objek pelat nomor didapatkan maka proses dilanjutkan dengan pengenalan angka dan huruf, inilah proses inti dari&nbsp;<em>Automatic Number Plate Recognition<\/em>.<\/p>\n<p>Namun kita bisa lihat bahwa sebelum proses pembacaan angka dan huruf dimulai maka dibutuhkan beberapa proses lain (<em>pre-processing<\/em>) agar proses pengenalan menjadi lebih akurat.<\/p>\n<p>Bahkan sebelum proses pengenal angka dan huruf dimulai butuh beberapa <em>pre-processing<\/em> lainnya seperti membetulkan posisi pelat nomor kendaraan agar tidak miring dengan menggunakan metode histogram (horizontal dan vertikal).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2568\" src=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-15.png\" alt=\"\" width=\"800\" height=\"233\" title=\"\" srcset=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-15.png 800w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-15-300x87.png 300w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-15-768x224.png 768w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-15-370x108.png 370w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-15-270x79.png 270w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-15-740x216.png 740w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>Merotasi objek pelat nomor dan menghitung pixel histogram<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2567\" src=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-16.png\" alt=\"\" width=\"800\" height=\"220\" title=\"\" srcset=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-16.png 800w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-16-300x83.png 300w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-16-768x211.png 768w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-16-370x102.png 370w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-16-270x74.png 270w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-16-740x204.png 740w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>Meluruskan objek secara horizontal<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2566\" src=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-17.png\" alt=\"\" width=\"798\" height=\"800\" title=\"\" srcset=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-17.png 798w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-17-150x150.png 150w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-17-300x300.png 300w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-17-768x770.png 768w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-17-370x371.png 370w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-17-270x271.png 270w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-17-299x300.png 299w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-17-740x742.png 740w\" sizes=\"auto, (max-width: 798px) 100vw, 798px\" \/><\/p>\n<p>Meluruskan objek secara&nbsp;vertikal<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2565\" src=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-18.png\" alt=\"\" width=\"800\" height=\"256\" title=\"\" srcset=\"https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-18.png 800w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-18-300x96.png 300w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-18-768x246.png 768w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-18-370x118.png 370w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-18-270x86.png 270w, https:\/\/dti.amon.id\/blog\/wp-content\/uploads\/2018\/08\/Mahapatih-ANPR-18-740x237.png 740w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>Objek pelat nomor sudah tegak&nbsp;lurus<\/p>\n<p>Melalui <em>pre-processing<\/em> tersebut maka kondisi pelat nomor yang posisinya ketika ditangkap kamera tidak standar bisa dibuat menjadi lebih standar sehingga mudah untuk dibaca oleh proses pengenalan angka dan huruf nantinya.<\/p>\n<p><strong><em>Locating License Plate Object in&nbsp;Video<\/em><\/strong><\/p>\n<p>Berikut ini salah satu <em>showcase<\/em> di mana <em>prototype<\/em> Matadewa berusaha mendeteksi lokasi pelat nomor kendaraan berdasarkan video <em>stream<\/em> yang diambil dari kamera yang di <em>install<\/em> di depan kantor (Docotel World)<\/p>\n<p>&lt;iframe width=&#8221;560&#8243; height=&#8221;315&#8243; src=&#8221;https:\/\/www.youtube.com\/embed\/AAmtkbn_0Po&#8221; frameborder=&#8221;0&#8243; allow=&#8221;autoplay; encrypted-media&#8221; allowfullscreen&gt;&lt;\/iframe&gt;<\/p>\n<p>Bisa terlihat bahwa pelat nomor khususnya motor masih belum semua bisa dideteksi dengan baik. Hal ini disebabkan oleh cukup banyak alasan salah satunya karena pelat nomor motor ukurannya kecil secara pixel (dan banyak yang bengkok) sehingga lebih sulit untuk dideteksi.<\/p>\n<p>Ini merupakan salah satu tantangan bagi tim kami untuk memoles algoritma Matadewa sehingga menjadi lebih akurat lagi ?<\/p>\n<p><em>It\u2019s fun, really really fun<\/em> ?. Banyak sekali teknik yang dapat kita aplikasikan pada implementasi ANPR. Kondisi di Indonesia yang sangat kompleks pun menambah tantangan bagi kita terutama yang hobi sekali memecahkan masalah-masalah kompleks melalui <em>software engineering<\/em>.<\/p>\n<p>Kita belum masuk pada bagian pengenalan angka dan huruf namun sudah cukup banyak langkah-langkah yang harus dilakukan, dan pada perjalanannya nanti terutama ketika sudah di-<em>deploy<\/em> pada <em>client<\/em> tentu akan lebih banyak lagi <em>feedback<\/em> yang akan kita terima baik berupa <em>bugs<\/em> ataupun <em>change request<\/em>, tentu saja\u2026lagi-lagi kembali pada kebutuhan yang disesuaikan dengan kondisi lokal di negara Indonesia tercinta.<\/p>\n<p><em>Software<\/em> akan selalu butuh perubahan, perlu di-<em>tunning<\/em> agar akurasinya bisa semakin meningkat untuk ragam <em>use-case<\/em> di Indonesia.<\/p>\n<p><em>By end of the day<\/em>, <em>we would say that, our engineers are here for them. Sitting in Jakarta, or other area remotely, working together to support various needs of our customer.<\/em><\/p>\n<p>Artikel asli:&nbsp;<a href=\"https:\/\/medium.com\/mahapatih-sibernusa-teknologi\/anpr-mendeteksi-lokasi-plat-nomor-8f22f08edadd\" target=\"_blank\" rel=\"noopener\">https:\/\/medium.com\/mahapatih-sibernusa-teknologi\/anpr-mendeteksi-lokasi-plat-nomor-8f22f08edadd<\/a><\/p>\n<h2>Tentang Docotel<\/h2>\n<p>Docotel 4.0 meliputi tim yang berdedikasi, berpengalaman, dan ahli dalam menyediakan produk dan solusi yang bernilai tinggi di semua industri.<br \/>\nKami hadir dengan visi mengatasi permasalahan sehingga dapat menciptakan pengalaman terbaik bagi klien.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Artikel ini merupakan kelanjutan dari artikel sebelumnya mengenai automatic license plate recognition. Pada tulisan kali ini dibahas lebih detail mengenai tehnik yang kami gunakan untuk mendeteksi lokasi pelat nomor pada gambar ataupun video. Pada bulan Januari 2018, dalam meeting besar awal tahun group&nbsp;Docotel&nbsp;(IT Solution and System Integrator; funded by&nbsp;Indonusa Dwitama&nbsp;as early investor of various startup [&hellip;]<\/p>\n","protected":false},"author":75,"featured_media":2561,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[308,309,316],"coauthors":[785],"class_list":["post-2551","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-knowledge","tag-mahapatih","tag-mst","tag-securitysystem"],"_links":{"self":[{"href":"https:\/\/dti.amon.id\/blog\/wp-json\/wp\/v2\/posts\/2551","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dti.amon.id\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dti.amon.id\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dti.amon.id\/blog\/wp-json\/wp\/v2\/users\/75"}],"replies":[{"embeddable":true,"href":"https:\/\/dti.amon.id\/blog\/wp-json\/wp\/v2\/comments?post=2551"}],"version-history":[{"count":0,"href":"https:\/\/dti.amon.id\/blog\/wp-json\/wp\/v2\/posts\/2551\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dti.amon.id\/blog\/wp-json\/wp\/v2\/media\/2561"}],"wp:attachment":[{"href":"https:\/\/dti.amon.id\/blog\/wp-json\/wp\/v2\/media?parent=2551"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dti.amon.id\/blog\/wp-json\/wp\/v2\/categories?post=2551"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dti.amon.id\/blog\/wp-json\/wp\/v2\/tags?post=2551"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/dti.amon.id\/blog\/wp-json\/wp\/v2\/coauthors?post=2551"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}