Pertama, Anda perlu mencari file setup yang cocok untuk sistem operasi yang Anda gunakan.
Saya merasakan menginstall OpenCV merupakan bagian tersulitnya. Jika Anda mengalami
error aneh atau yang tak dapat dijelaskan, itu mungkin karena kelas pustaka (library classes)
ada yang kurang/missing, perbedaan arsitektur 32/64bit, dll. Saya menemukan cara termudah
untuk menggunakan OpenCV adalah menggunakan Linux, baik langsung maupun
menggunakan virtual machine dan menginstall OpenCV dari awal.
Cara menginstall OpenCV untuk Python pada Linux berbasis Debian (Ubuntu / Raspbian)
pada Raspberry Pi misalnya, cukup gunakan perintah $ sudo apt-get install python-opencv
Setelah terinstall, Anda bisa mengetes apakah sudah mau atau tidak dengan membuka sesi
Python dan mengetik:
?
1$ python
2
import cv2
3>>>
>>>
4
Jika tidak menemukan pesan error, Anda bisa lanjut ke tahap berikutnya.
Mengertikan kodenya
Mari bahas satu persatu kodenya, yang mana dapat Anda unduh melalui repo. Ambil skrip
face_detec.py, gambar abba.png, dan file cascade haarcascade_frontalface_default.xml.
Taruh dalam satu folder.
?
1# Get user supplied values
2imagePath = sys.argv[1]
3cascPath = sys.argv[2]
Pertama Anda lewatkan nama file gambar dan cascade ke program
face_detec.py menggunakan command-line argument. Kita akan menggunakan gambar Abba
begitu juga dengan cascade untuk mendeteksi wajah yang disediakan oleh OpenCV.
?
1# Create the haar cascade
2faceCascade = cv2.CascadeClassifier(cascPath)
Sekarang kita membuat cascade-nya dan menginisialisasinya dengan cascade wajah kita. Ini
akan memuat cascade wajah ke dalam memori sehingga siap digunakan. Ingat, cascade hanya
sebuah file XML yang berisi data untuk mendeteksi wajah.
?
Fungsi ini mereturn 4 nilai: lokasi x dan y dari segi empat, dan lebar dan tinggi dari segi
empat (w, h).
Kita menggunakan nilai tersebut untuk menggambar segi empat menggunakan fungsi built-in
rectangle().
Memeriksa hasilnya
Mari kita coba dengan gambar Abba yang telah diunduh tadi:
?
1$ python face_detect.py abba.png haarcascade_frontalface_default.xml
Nahh... itu bukan wajah. Mari kita coba lagi. Saya mengganti parameternya dan menemukan
bahwa mengubah scaleFactor nya menjadi 1.2 dapat menyingkirkan wajah yang salah.
Apa yang terjadi ? Baik, foto yang pertama diambil cukup dekat dengan kamera berkualitas
tinggi. Yang kedua terlihat seperti diambil dari jarak jauh dan kemungkinan menggunakan
kamera HP. Inilah mengapa scaleFactor nya mesti dimodifikasi. Seperti yang saya katakan,
Anda perlu men-setup algoritmanya pada kasus per kasus untuk menghindari false positif.
Berhati-hatilah karena ini berdasarkan pada pembelajaran oleh mesin, hasilnya tidak akan
pernah 100% akurat. Anda akan mendapat hasil yang cukup bagus pada kebanyakan kasus,
tapi kadang-kadang algoritmanya juga mengidentifikasi obyek yang salah sebagai wajah.
Baik, demikian ulasan singkatnya. Kode finalnya dapat diambil disini. Selamat mencoba dan
semoga bermanfaat.