比較Opencv自帶的frontface檢測器
CascadeClassifier*haarcascade_frontalface_alt = new CascadeClassifier("./xml/haarcascade_frontalface_alt.xml");
CascadeClassifier*haarcascade_frontalface_alt_tree = new CascadeClassifier("./xml/haarcascade_frontalface_alt_tree.xml");
CascadeClassifier*haarcascade_frontalface_alt2 = new CascadeClassifier("./xml/haarcascade_frontalface_alt2.xml");
CascadeClassifier*haarcascade_frontalface_default = new CascadeClassifier("./xml/haarcascade_frontalface_default.xml");
CascadeClassifier*lbpcascade_frontalface = new CascadeClassifier("./xml/lbpcascade_frontalface.xml");
檢測時間上對比,其中1為下圖中的複雜背景影象(1580*1110),2為簡單背景影象(846*826)
ms |
Haar_alt |
Haar_alt_tree |
Haar_alt2 |
Haar_default |
lbp |
1 |
2054 |
1350 |
2309 |
1651 |
948 |
2 |
912 |
700 |
964 |
623 |
326 |
從上面的檢測時間可見,LBP的時間最短
對於檢測結果矩陣的對比,由於LBP和alt_tree只檢出了兩張人臉,因此只對這兩個矩陣進行對比
Haar_alt |
Haar_alt_tree |
Haar_alt2 |
Haar_default |
lbp |
|
1 |
70 |
74 |
70 |
72 |
69 |
1 |
82 |
88 |
91 |
83 |
82 |
2 |
277 |
302 |
283 |
296 |
292 |
2 |
266 |
278 |
254 |
263 |
271 |
從上面的檢測矩形可見,alt_tree的檢測結果相對較大,lbp的檢測結果相對較小,但是不是每次都最小。
檢測結果的排列順序與表格相同,從上面的檢測結果可見,對於複雜背景下,alt_tree和LBP的檢測結果都是一致的,但是LBP的用時要短很多,因此LBP相對來說實時性更強。