Deteksi Obyek Menggunakan Haar Cascade Classifier
Pendahuluan
Menghitung Jumlah Kendaraan
Pada bagian ini, dijelaskan algoritma proses perhitungan obyek kendaraan:
Pendeteksian obyek sangat mudah dilakukan oleh manusia tetapi merupakan tantangan tersendiri oleh sistem berbasis computer vision. Pada dasarnya pengembangan keilmuan computer vision adalah meniru bagaimana manusia melihat (human vision). Akan tetapi proses peniruan ini melibatkan studi yang sangat komplek. Manusia melihat melalui mata yang kemudian dibawa ke otak untuk diterjemahkan atau dikenali (Pambudi & Simorangkir, 2012). Telah cukup banyak penelitian yang membahas mengenai sistem berbasis computer vision diantaranya pengolahan citra, neural network, statistik, pengenalan pola, anthropometry dan computer vision (Padilla, Filho, & Costa, 2002). Hasil pendeteksi ini dapat dikembangkan pada aplikasi-aplikasi yang lain. Sebagai contoh pengenalan wajah atau pola, menghitung jumlah pengunjung atau penghitung jumlah kendaraan di jalan raya yang kemudian dapat dilanjutkan sebagai pendukung keputusan terkait prosedur standar yang akan diterapkan.
Pada awalnya deteksi obyek dilakukan menggunakan metode-metode deteksi tepi seperti Sobel, Prewitts atau Canni. Deteksi tepi dengan metode-metode tersebut sangat menguras sumber daya karena tingginya komputasi yang dilakukan picture element (pixel) demi pixel (Sajati & Astuti, 2013). Penggunaan deteksi tepi untuk pendeteksian obyek tidak efektif pada obyek bergerak seperti dalam format video dimana pergerakan frame dalam sebuah video dapat mencapai 20 frame per detik (fps). Metode deteksi tepi juga tidak efektif untuk diterapkan sebagai sistem pendeteksian obyek pada object tracking atau fast object tracking.
Haar-Like Feature
Haar like Feature merupakan metode yang lazim digunakan dalam pendeteksian obyek. Nama Haar sendiri mengacu pada Haar Wavelet, sebuah fungsi matematika yang berbentuk kotak dan memiliki prinsip seperti pada fungsi Fourier. (Purwanto, Dirgantoro, & Jati, 2015). Haar-like features merupakan rectangular features (fungsi persegi), yang memberikan indikasi secara spesifik pada sebuah gambar atau image. Prinsip Haar-like features adalah mengenali obyek berdasarkan nilai sederhana dari fitur tetapi bukan merupakan nilai piksel dari image obyek tersebut. Metode ini memiliki kelebihan yaitu komputasinya sangat cepat, karena hanya bergantung pada jumlah piksel dalam persegi bukan setiap nilai piksel dari sebuah image (Viola, Paul, & Jones, 2001).
Deteksi obyek kendaraan pada penelitian ini merupakan pemodifikasian sistem Haar-like features dari deteksi wajah yang pertama kali dilakukan oleh Viola dan Jones kemudian dikembangkan oleh Lienhart (Viola, Paul, & Jones, 2001) (Lienhart, Rainer, & Maydt, 2002). Metode yang diusulkan Viola dan Jones menggabungkan empat kunci utama untuk mendeteksi sebuah obyek (Viola, Paul, & Jones, 2001):
Deteksi obyek kendaraan pada penelitian ini merupakan pemodifikasian sistem Haar-like features dari deteksi wajah yang pertama kali dilakukan oleh Viola dan Jones kemudian dikembangkan oleh Lienhart (Viola, Paul, & Jones, 2001) (Lienhart, Rainer, & Maydt, 2002). Metode yang diusulkan Viola dan Jones menggabungkan empat kunci utama untuk mendeteksi sebuah obyek (Viola, Paul, & Jones, 2001):
- Fitur persegi sederhana, disebut fitur Haar
- Integral image untuk pendeteksian fitur dengan cepat
- Metoda AdaBoost machine-learning
- Cascade classifier untuk mengkombinasikan banyak fitur
Haar like feature memproses citra dalam sebuah kotak persegi dengan ukuran tertentu misalnya 24 x 24 pixel seperti ditunjukkan pada gambar 1 sebagai berikut:
Gambar 1. Rectangular Feature Haar Cascade
Di dalam kotak inilah proses filtering obyek
dilakukan untuk diketahui apakah ada atau tidak obyek yang akan dideteksi.
Proses filterisasi ini dilakukan secara bertingkat yang menyebabkan metode ini
nantinya disebut sebagai Haar Cascade Classifier seperti ditunjukkan pada skema
filter di gambar 2 sebagai berikut:
Gambar 2. Skema Pendeteksi Obyek
Hasil deteksi Haar-like Feature kurang akurat jika
hanya menggunakan satu fungsi saja. Semakin tinggi tingkatan filter
pendeteksian maka semakin tepat pula sebuah obyek dideteksi akan tetapi akan
semakin lama proses pendeteksiannya. Pemrosesan Haar-like feature yang banyak
tersebut diatur dalam classifier cascade.
Haar-Wavelet (Wave = Gelombang)
merupakan gelombang persegi (interval gelap dan interval terang) yang kemudian
dibandingkan nilai rata-rata pixel
keduanya. Apabila perbandingan nilai rata-rata intensitas tersebut berada di
atas threshold (ambang batas), maka
dikatakan memenuhi syarat fitur Haar. Untuk gambar bergerak seperti video,
proses ini dilakukan secara diskrit dengan mencuplik video pada frame rate
tertentu. Macam-macam variasi Haar-like feature
ditunjukkan pada gambar 3 sebagai berikut (Pavani, Delgadoa, & Frangia, 2010):
Gambar 3 Berbagai variasi persegi Haar dengan Bobot Standar Persegi Panjang
Keterangan gambar 3 (Pavani, Delgadoa, & Frangia, 2010):
a,
b : Fitur
Haar yang diusulkan Papageogiou dkk.
c : Fitur
Haar yang diusulkan Viola dan James
d,
e, f : Variasi
fitur Haar yang diusulkan Leinhardt
g,
h : Penguraian
Lietal terhadap Fitur Haar-like
i : Fitur Haar-like Viola dan James untuk
menangkap struktur diagonal dalam penampilan obyek
Perhitungan nilai fitur Gambar 3 di atas ditunjukkan
pada Gambar 4 dan formula (1) sebagai berikut:
Gambar 4. Fitur Persegi Haar-like
NilaiFitur(ABFE) = JumlahNilaiPixel(ABDC)-JumlahNilaiPixel(CDFE) ....... (1)
Apabila
NilaiFitur(ABFE) memiliki nilai di atas threshold
maka dikatakan memenuhi syarat. Seperti dijelaskan pada gambar 2, apabila
sebuah fitur dikatakan tidak memenuhi syarat, maka area ABFE tidak terdapat
obyek yang dideteksi dan area perseginya berpindah lokasi akan tetapi jika
persegi ABFE memenuhi fitur, maka aturan fitur berikutnya dilakukan. Jika semua
syarat fitur dipenuhi dikatakan pada persegi ABFE dikatakan terdapat obyek.
Proses pendeteksian
mobil menggunakan Haar-like feature
ditunjukkan pada Gambar 5 sebagai berikut:
Gambar 5. Pendeteksian Kendaraan dengan Haar-like Feature
Integral image
Sebuah citra digital
memiliki komponen nilai RGB (kombinasi dari warna merah, hijau dan biru). Dari
nilai RGB tersebut dapat diketahui nilai grayscale (derajat keabu-abuan) yang
dihitung menggunakan formula (2) sebagai berikut:
Grayscale_pixel = 0.2989R + 0.5870G + 0.1140B ....................................................... (2)
Sebagai contoh sebuah pixel memiliki kombinasi warna R=100,
B=100 dan G=100 maka nilai grayscale menurut formula 2 di atas sama dengan
99.99. Sebuah citra yang dirubah menjadi grayscale ditunjukkan pada gambar 6
sebagai berikut:
Gambar 6. Perbedaan Citra Asli dengan Grayscale
Proses pendeteksian obyek ditunjukkan pada
diagram alir di Gambar 7 sebagai berikut:
Gambar 7. Pendeteksian Obyek dengan Haar Cascade Clasifier
Pertama, ditentukan terlebih dahulu area yang akan dideteksi apakah terdapat obyek atau tidak. Proses berikutnya adalah melakukan pendeteksian obyek menggunakan Haar Cascade Clasifier dengan langkah-langkah yang akan dijelaskan sebagai berikut.
Citra integral adalah sebuah citra yang nilai tiap pixel-nya merupakan penjumlahan nilai pixel atas dan kirinya. Sebagai contoh pada gambar 5 (c) sebuah daerah persegi yang akan di-scan menggunakan persegi gelap terang memiliki nilai sebagai berikut:
Citra integral adalah sebuah citra yang nilai tiap pixel-nya merupakan penjumlahan nilai pixel atas dan kirinya. Sebagai contoh pada gambar 5 (c) sebuah daerah persegi yang akan di-scan menggunakan persegi gelap terang memiliki nilai sebagai berikut:
Gambar 8 Citra Masukan
Pada citra masukan yang diberi persegi pada gambar 5 (c) terlihat pada gambar 9 sebagai berikut:
Gambar 9 Persegi Haar Like Pada Citra masukan
Proses perhitungan nilai gelap dan nilai terang di formula 1 menghasilkan nilai Fitur Haar sama dengan 22. Untuk menghitung Fitur nilai Haar menggunakan Summed Area Table atau yang dikenal sebagai Integral image, pertama dibentuk matriks nilai integral image.
Proses integral image matriks citra ditentukan menggunakan formula (3) sebagai berikut:
s(x,y)=i(x,y)+s(x-1,y)+s(x,y-1)-s(x-1,y-1) ...................................................................... (3)
Dimana x-1 dan y-1 adalah pixel tetangga dari pixel yang akan dihitung seperti terlihat pada gambar 10 sebagai berikut:
Gambar 10 Pixel Tetangga pada Proses Integral image
Menggunakan formula 3 di atas, integral image dari citra masukan di Gambar 6 terlihat pada gambar 11 sebagai berikut:
Gambar 11 Matriks Integral Image dari Citra Masukan
Nilai fitur Haar dari area matriks di gambar 11 dihitung menggunakan formula (4) sebagai berikut:
i(x',y')=s(A)+s(D)-s(B)-s(C) .......................................................................................... (4)
Sehingga:
fitur nilai Haar = (32+2-16-5)-(49+5-32-6)+(77+6-49-9) = 22
fitur nilai Haar = (32+2-16-5)-(49+5-32-6)+(77+6-49-9) = 22
Hasil ini sesuai dengan perhitungan secara manual menggunakan formula 1. Nilai 22 tersebut kemudian dibandingkan dengan threshold yang sudah ditentukan sebagai pendeteksian obyek. Apabila nilai fitur Haar lebih tinggi daripada threshold, maka dapat dikatakan pada area tersebut memenuhi filter Haar. Sesuai flowchart pada gambar 2, proses ini akan dilanjutkan untuk menguji kembali area tersebut dengan filter Haar yang lain dan apabila seluruh filter Haar terpenuhi maka dikatakan pada area tersebut terdapat obyek yang diamati.
Implementasi
Implementasi
Deklarasi Global Variable
Pada bagian ini ditentukan file XML beserta lokasi dari Cascade Classifier. Tata tulis (syntax) deklarasi Cascade Classifier adalah sebagai berikut:
Pada bagian ini ditentukan file XML beserta lokasi dari Cascade Classifier. Tata tulis (syntax) deklarasi Cascade Classifier adalah sebagai berikut:
CascadeClassifier::CascadeClassifier(const string& filename)
Berikut petikan programnya:
String cars_cascade_name = "E:/master/opencv/sources/data/haarcascades/cars3.xml";
CascadeClassifier cars_cascade;
String cars_cascade_name = "E:/master/opencv/sources/data/haarcascades/cars3.xml";
CascadeClassifier cars_cascade;
File cars3.xml ini ditulis oleh Tomas Uktveris (Uktveris, 2012).
Fungsi Pendeteksian Dan Penampil Obyek
Fungsi ini digunakan untuk mendeteksi dan menampilkan obyek kendaraan dari setiap frame yang ditangkap oleh IP Camera menggunakan cascade classifier yang telah dideklarasikan sebelumnya. Syntax pendeteksian obyek adalah sebagai berikut:
Fungsi Pendeteksian Dan Penampil Obyek
Fungsi ini digunakan untuk mendeteksi dan menampilkan obyek kendaraan dari setiap frame yang ditangkap oleh IP Camera menggunakan cascade classifier yang telah dideklarasikan sebelumnya. Syntax pendeteksian obyek adalah sebagai berikut:
void CascadeClassifier::detectMultiScale(const Mat& image, vector<Rect>& objects, double scaleFactor=1.1, int minNeighbors=3, int flags=0, Size minSize=Size(), Size maxSize=Size())
dimana:
cascade : Merupakan Haar Cascade Classifier. Classifier yang dipanggil dari XML atau YAML menggunakan fungsi “load”.
Image : Berisi citra yang akan dideteksi obyeknya
Object : Sebuah vektor persegi dimana sebuah obyek yang terdeteksi akan ditandai
dimana:
cascade : Merupakan Haar Cascade Classifier. Classifier yang dipanggil dari XML atau YAML menggunakan fungsi “load”.
Image : Berisi citra yang akan dideteksi obyeknya
Object : Sebuah vektor persegi dimana sebuah obyek yang terdeteksi akan ditandai
scaleFactor : Parameter yang menspesifikasikan rasio pengurangan citra
minNeighbors : Parameter yang menspesifikasikan jumlah tetangga persegi yang dipertahankan
minSize : Nilai minimal ukuran obyek. Obyek-obyek dengan ukuran lebih kecil dari nilai ini, akan diabaikan.
maxSize : Nilai maksimal ukuran obyek. Obyek-obyek dengan ukuran lebih besar dari nilai ini akan diabaikan.
minSize : Nilai minimal ukuran obyek. Obyek-obyek dengan ukuran lebih kecil dari nilai ini, akan diabaikan.
maxSize : Nilai maksimal ukuran obyek. Obyek-obyek dengan ukuran lebih besar dari nilai ini akan diabaikan.
Fungsi deteksi dan penampil adalah sebagai berikut: void detectAndDisplay( Mat frame )
{
std::vector<Rect> cars;
cv::Mat frame_gray;
cvtColor( frame, frame_gray, CV_BGR2GRAY );
equalizeHist( frame_gray, frame_gray );
cars_cascade.detectMultiScale( frame_gray, cars, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, Size(30, 30));
for( size_t i = 0; i < cars.size(); i++ )
{
Point center( cars[i].x + cars[i].width*0.5, cars[i].y + cars[i].height*0.5 );
ellipse( frame, center, Size( cars[i].width*0.5, cars[i].height*0.5), 0, 0, 360, Scalar( 255, 0, 255 ), 4, 8, 0 );
}
cv::imshow( window_name, frame );
}
Fungsi ini nantinya akan dipanggil di setiap stream frame yang telah di-parsing dari IP Camera.
Membuka Koneksi Dengan IP Camera
{
std::vector<Rect> cars;
cv::Mat frame_gray;
cvtColor( frame, frame_gray, CV_BGR2GRAY );
equalizeHist( frame_gray, frame_gray );
cars_cascade.detectMultiScale( frame_gray, cars, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, Size(30, 30));
for( size_t i = 0; i < cars.size(); i++ )
{
Point center( cars[i].x + cars[i].width*0.5, cars[i].y + cars[i].height*0.5 );
ellipse( frame, center, Size( cars[i].width*0.5, cars[i].height*0.5), 0, 0, 360, Scalar( 255, 0, 255 ), 4, 8, 0 );
}
cv::imshow( window_name, frame );
}
Fungsi ini nantinya akan dipanggil di setiap stream frame yang telah di-parsing dari IP Camera.
Membuka Koneksi Dengan IP Camera
Tahapan pertama dalam proses deteksi kendaraan adalah membuka koneksi ke IP camera. Protokol yang digunakan adalah Real Time Streaming Protocol (RTSP). Petikan kode program berikut adalah proses inisialisasi IP Camera menggunakan protokol RTSP:
CvCapture* capture = cvCaptureFromFile("rtsp://192.168.1.1/MJPG?Q=50&BR=3000000");
Pada bagian ini dapat dilengkapi dengan pengujian apakah IP Camera sudah siap atau belum.
CvCapture* capture = cvCaptureFromFile("rtsp://192.168.1.1/MJPG?Q=50&BR=3000000");
Pada bagian ini dapat dilengkapi dengan pengujian apakah IP Camera sudah siap atau belum.
if (capture==NULL) {
printf("video is not ok\n");
system("PAUSE");
}
else
printf("video is ready\n");
Memanggil Cascade Classifier
Bagian ini digunakan untuk memanggil file cascade classifier yang telah dideklarasikan pada global variable. Berikut petikan programnya:
printf("video is not ok\n");
system("PAUSE");
}
else
printf("video is ready\n");
Memanggil Cascade Classifier
Bagian ini digunakan untuk memanggil file cascade classifier yang telah dideklarasikan pada global variable. Berikut petikan programnya:
if( !cars_cascade.load( cars_cascade_name ) )
{
printf("--(!)Error loading\n"); system("PAUSE");
return -1;
};
Baca Video Stream IP Camera
{
printf("--(!)Error loading\n"); system("PAUSE");
return -1;
};
Baca Video Stream IP Camera
Proses berikutnya adalah membaca stream dari video yang ditangkap oleh IP Camera. Berikut adalah petikan programnya:
if( capture )
{
while( true )
{
frame = cvQueryFrame( capture );
if( !frame.empty() ) {
detectAndDisplay( frame );
}
else {
printf(" --(!) Tidak ada frame yang terbaca -- Break!");
break; }
int c = waitKey(10);
if( (char)c == 'c' ) { break; }
}
}
{
while( true )
{
frame = cvQueryFrame( capture );
if( !frame.empty() ) {
detectAndDisplay( frame );
}
else {
printf(" --(!) Tidak ada frame yang terbaca -- Break!");
break; }
int c = waitKey(10);
if( (char)c == 'c' ) { break; }
}
}
Menghitung Jumlah Kendaraan
Pada bagian ini, dijelaskan algoritma proses perhitungan obyek kendaraan:
- Tentukan center point dari obyek yang berhasil dideteksi oleh cascade classifier
- Tentukan area perhitungan. Area perhitungan adalah sebuah area semu yang menjadi area perhitungan setiap obyek yang melewatinya.
- Apabila terdapat center point yang berada di area tersebut maka object counter akan bertambah satu (increment).
- Apabila frame video sudah habis, pindahkan nilai perhitungan tersebut ke dalam sebuah file teks untuk kemudian diproses oleh penentu keputusan perhitungan.
Berikut adalah petikan program perhitungan obyek kendaraannya:
Point center( cars[i].x + cars[i].width*0.5, cars[i].y + cars[i].height*0.5 );
cv::line( frame, Point(0,100), Point(400,100), Scalar(255,0,0), 2, 8, 0);
//cout << "Point y : " << cars[i].y << endl;
if (cars[i].y > 90 && cars[i].y < 115)
{
cv::ellipse( frame, center, Size( cars[i].width*0.5, cars[i].height*0.5), 0, 0, 360, Scalar( 255, 0, 255 ), 4, 8, 0 );
jumlah++;
cout << "Hitung ke : "<< jumlah << endl;
}
Pada potongan kode di atas, area semu (area perhitungan) berada pada sumbu y > 90 dan sumbu y <= 115 seperti terlihat pada gambar 12 sebagai berikut:
cv::line( frame, Point(0,100), Point(400,100), Scalar(255,0,0), 2, 8, 0);
//cout << "Point y : " << cars[i].y << endl;
if (cars[i].y > 90 && cars[i].y < 115)
{
cv::ellipse( frame, center, Size( cars[i].width*0.5, cars[i].height*0.5), 0, 0, 360, Scalar( 255, 0, 255 ), 4, 8, 0 );
jumlah++;
cout << "Hitung ke : "<< jumlah << endl;
}
Pada potongan kode di atas, area semu (area perhitungan) berada pada sumbu y > 90 dan sumbu y <= 115 seperti terlihat pada gambar 12 sebagai berikut:
Gambar 12 Proses Perhitungan Kendaraan
Pada gambar 12 di atas, dapat dihitung jumlah kendaraan yang melewati area pendeteksian. Tutorial berikutnya akan kita pelajari bagaimana membuat classifier kita sendiri.
DAFTAR PUSTAKA
Lienhart, Rainer, & Maydt, J. (2002). An extended set of haar-like features for rapid object detection. In: IEEE ICIP 2002, Vol.1, (pp. 900-903).
Padilla, R., Filho, C. F., & Costa, M. G. (2002). Evaluation of Haar Cascade Classifiers Designed for Face Detection. World Academy of Science, Engineering and Technology Vol:6 2012-04-22 .
Pambudi, W. S., & Simorangkir, B. M. (2012). Facetracker Menggunakan Metode Haar Like Feature Dan PID Pada Model Simulasi. Jurnal Teknologi dan Informatika (TEKNOMATIKA) .
Pavani, S.-K., Delgadoa, D., & Frangia, A. F. (2010). Haar-like Features with Optimally Weighted Rectangles for Rapid Object Detection. The Journal of the Pattern Recognition Society , 160-172.
Purwanto, P., Dirgantoro, B., & Jati, A. N. (2015). Implementasi Face Identification Dan Face Recognition Pada Kamera Pengawas Sebagai Pendeteksi Bahaya. Universitas Telkom .
Sajati, H., & Astuti, Y. (2013). Analisis dan Perancangan Software untuk Menentukan Kendaraan Gelap dan Terang . Jurnal Angkasa STTA Vol V / No. 2 / November 2013 ISSN: 2085-9503 .
Santoso, H., & Harjoko, A. (2013). Haar Cascade Classifier dan Algoritma Adaboost untuk Deteksi Banyak Wajah dalam Ruang Kelas. Jurnal Teknologi IST AKPRIND Volume 6, Number 2 , 108-115.
Uktveris, T. (2012). opencv-lane-vehicle-track. https://code.google.com/p/opencv-lane-vehicle-track/.
Viola, Paul, & Jones, M. (2001). Rapid object detection using boosted cascade of simple features. In: Proceedings IEEE Conf. on Computer Vision and Pattern Recognition.
DAFTAR PUSTAKA
Lienhart, Rainer, & Maydt, J. (2002). An extended set of haar-like features for rapid object detection. In: IEEE ICIP 2002, Vol.1, (pp. 900-903).
Padilla, R., Filho, C. F., & Costa, M. G. (2002). Evaluation of Haar Cascade Classifiers Designed for Face Detection. World Academy of Science, Engineering and Technology Vol:6 2012-04-22 .
Pambudi, W. S., & Simorangkir, B. M. (2012). Facetracker Menggunakan Metode Haar Like Feature Dan PID Pada Model Simulasi. Jurnal Teknologi dan Informatika (TEKNOMATIKA) .
Pavani, S.-K., Delgadoa, D., & Frangia, A. F. (2010). Haar-like Features with Optimally Weighted Rectangles for Rapid Object Detection. The Journal of the Pattern Recognition Society , 160-172.
Purwanto, P., Dirgantoro, B., & Jati, A. N. (2015). Implementasi Face Identification Dan Face Recognition Pada Kamera Pengawas Sebagai Pendeteksi Bahaya. Universitas Telkom .
Sajati, H., & Astuti, Y. (2013). Analisis dan Perancangan Software untuk Menentukan Kendaraan Gelap dan Terang . Jurnal Angkasa STTA Vol V / No. 2 / November 2013 ISSN: 2085-9503 .
Santoso, H., & Harjoko, A. (2013). Haar Cascade Classifier dan Algoritma Adaboost untuk Deteksi Banyak Wajah dalam Ruang Kelas. Jurnal Teknologi IST AKPRIND Volume 6, Number 2 , 108-115.
Uktveris, T. (2012). opencv-lane-vehicle-track. https://code.google.com/p/opencv-lane-vehicle-track/.
Viola, Paul, & Jones, M. (2001). Rapid object detection using boosted cascade of simple features. In: Proceedings IEEE Conf. on Computer Vision and Pattern Recognition.
Terima kasih (y)
Pak Bisa minta project fullnya pak. mau sy jadikan bahan pembelajaran. terima kasih.
inf.jasmin@gmail.com
pak bisa minta project fullnya ? untuk saya jadikan bahan penelitian saya mengenai pengenalan kendaraan dan tracking kendaraan. terima kasih
e-mail:ahmadalifaizin@gmail.com
Pak bisa minta project full nya ? saya mau jadikan salah satu referensi saya pada penelitian saya. terimakasih
guhputera@gmail.com
selamat malam,pak bisa minta project fullnya?saya ingin jadikan sebagai refrensi penelitian ilmiah saya tentang face detection menggunakan metode haar cascade,terimakasih
yogiyopintaril@gmail.com
permisi Pak, bisakah saya mendapatkan project programnya. Saya inginn menggunakannya sebagai bahan acuan tugas penelitian saya.
fahmiauliarahmat24@gmail.com
Terimakasih
bagaimana contoh implementasi haar like feature, integral image, ada boost learning, dan cascade clasifier ?
selamat siang, pak bisa minta project full nya ? :) saya ingin menjadikan penelitian anda sebagai salah satu referensi penelitian tugas akhir saya, terima kasih pak .
erik_14@kharisma.ac.id
selamat malam, pak bisa minta project full nya ? saya ingin menjadikan sebagai sumber referensi di penelitian saya
email : maifaldafikadarma@gmail.com
selamat siang, pak bisa minta project full nya ? :) saya ingin menjadikan penelitian anda sebagai salah satu referensi penelitian tugas akhir saya, terima kasih pak .
iqbalsila08@gmail.com
Penulisan yang menarik, boleh saya minta project fullnya beserta penulisannya ? saya ingin menjadikan penulisan bapak sebagai referensi untuk penulisan saya. Thanks :)
ramadhannuzul.7x@gmail.com
Best Regards,
Nuzul
ntaps lur
Canggih
lengkap bgt penjelasannya. Pak, apakah boleh minta proeject full beserta penulisannya. saya mau jadikan referensi untuk Tugas Akhir saya. sebelumnya terimakasih pak
lani.achria@gmail.com
Assalamu'alaikum pakkk. Ini sangat lengkap penjelasannya. Apakah boleh minta proeject full beserta penulisannya? Untuk dijadikan sebagai referensi Tugas Akhir saya. Sebelumnya terimakasih banyak pak.
Ini email saya pak kusumaindah767@gmail.com
selamat malam pak, sangat hebat penjelasanya
bolehkah saya meminta kode full nya, jika boleh mohon kirimkan ke email saya terimakasih
adieron97@gmail.com
pak apakah saya bisa mendapatkan project fullnya pak untuk menjadi bahan acuan pembelajaran saya pak?
berikut email saya ananditariski.7@gmail.com