ในการสร้าง Haar-like Classifier จะต้องมีรูปภาพที่ใช้เป็นฐานข้อมูล Haar-like Classifier มี 2 ส่วนดังนี้
- positive images เป็นรูปภาพของวัตถุที่ต้องการนำมาสร้าง Haar-like Classifier เช่น ใบหน้า ตา และอื่น ๆ
- negatives images เป็นรูปภาพของวัตถุที่ไม่เกี่ยวข้องกับ positive images เช่น พื้นหลัง เป็นต้น
เรามาลงมือสร้าง Haar-like Classifie
1.ให้กับการโหลดไฟล์บีบอัดจาก
https://www.dropbox.com/s/yh4nloobe7a1qc3/haartraining2.zip?dl=0
2.แตกไฟล์แล้วเข้าไปในโฟลเลอร์ที่แตกไฟล์ออกมา ให้เข้าไปยังโฟลเลอร์ positive - > โฟลเลอร์ rawdata
3.เตรียมไฟล์ภาพโดยไฟล์ภาพต้องเป็นไฟล์ .bmp เท่านั้น
4.เสร็จแล้วให้กลับมายังโฟลเลอร์ positive ทำการรันโปรแกรม
objectmarker.exe (โปรแกรมนี้รันได้เฉพาะ 32 บิตเท่านั้น)
จะมีหน้าต่างขึ้นมาให้ทำการลากคุมวัตถุที่ต้องนำไปสร้าง Haar-like
Classifier
โดยกดปุ่ม Space Bar เพิ่มข้อมูลส่วนที่ทำการลากคุมวัตถุ
กดปุ่ม Enter เพิ่มบันทึกข้อมูลและโหลดข้อมูลถัดไป
ทำจนครบจะได้ไฟล์ info.txt
5.กลับยังโฟลเลอร์หลักที่แตกไฟล์ออกมา
ให้เข้าไปยังโฟลเลอร์ negative ทำการเพิ่มข้อมูลรูปภาพ .jpg
ที่ไม่เกี่ยวข้องกับข้อมูล positive images เช่น
ภาพพื้นหลังที่อยู่หลังภาพใบหน้าของเรา เป็นต้น แล้วทำการรันไฟล์
create_list.bat
โค้ดภายในไฟล์ create_list.bat
dir /b *.jpg >bg.txt
จะได้ไฟล์ bg.txt
6.กลับยังโฟลเลอร์หลักที่แตกไฟล์ออกมา ให้ทำการรันไฟล์
โค้ดภายในไฟล์ createsamples.bat
createsamples.exe -info positive/info.txt -vec vector/vector.vec -num 204 -w 24 -h 24
รอสักครู่ขึ้นอยู่กับปริมาณไฟล์ข้อมูลและประสิทธิภาพของเครื่องคอมพิวเตอร์ จะได้ไฟล์ vector.vec ในโฟลเลอร์ vector
7.ทำการรันไฟล์ haarTraining.bat
โค้ดภายในไฟล์ haarTraining.bat
haartraining.exe -data cascades -vec vector/vector.vec -bg negative/bg.txt -npos 200 -nneg
200 -nstages 15 -mem 1024 -mode ALL -w 24 -h 24
rem -nonsym
รอสักครู่ขึ้นอยู่กับปริมาณไฟล์ข้อมูลและประสิทธิภาพของเครื่องคอมพิวเตอร์ จะได้ข้อมูล Haar-like Classifier ในโฟลเลอร์ cascades
แต่ยังนำไปใช้งานไม่ได้นะครับ ต้องแปลงให้เป็นไฟล์ XML ก่อน
8.ทำการ
copy ลากคุมข้อมูลทั้งหมดในโฟลเลอร์ cascades แล้วนำไปวางในโฟลเลอร์
cascade2xml\data เสร็จกลับมาที่โฟลเลอร์ cascade2xml ทำการรันไฟล์
convert.bat
โค้ดภายในไฟล์ convert.bat
haarconv.exe data my.xml 24 24
เพียงเท่านี้ก็จะได้ไฟล์ my.xml ซึ่งเป็น Haar Cascade ไปไว้ใช้ opencv แล้ว