如何提高人臉檢測正確率

2021-08-18 21:15:14 字數 1545 閱讀 9728

級聯分類器的型別

xml檔名

1人臉檢測器(預設)

haarcascade_frontalface_default.xml

2人臉檢測器(快速的haar)

haarcascade_frontalface_alt2.xml

3人臉檢測器(快速的lbp)

lbpcascade_frontalface.xml

4人臉檢測器(tree)

haarcascade_frontalface_alt_tree.xml

5人臉檢測器(haar_1)

haarcascade_frontalface_alt.xml

haar_alt

haar_alt2

lbp複雜背景影象

2054

2309

948簡單背景影象

912964

326haar_alt

haar_alt2

lbp複雜背景影象

7070

69簡單背景影象

277283

292

void detectmultiscale(   

const mat& image,

cv_out vector

& objects,

double scalefactor = 1.1,

int minneighbors = 3,

int flags = 0,

size minsize = size(),

size maxsize = size()

);

引數1:image–待檢測,一般為灰度影象加快檢測速度; 

引數2:objects–被檢測物體的矩形框向量組; 

引數3:scalefactor–表示在前後兩次相繼的掃瞄中,搜尋視窗的比例係數。預設為1.1即每次搜尋視窗依次擴大10%; 

引數4:minneighbors–表示構成檢測目標的相鄰矩形的最小個數(預設為3個)。 如果組成檢測目標的小矩形的個數和小於 min_neighbors - 1 都會被排除。如果min_neighbors 為 0, 則函式不做任何操作就返回所有的被檢候選矩形框; 

引數5:flags–要麼使用預設值,要麼使用cv_haar_do_canny_pruning,函式將會使用canny邊緣檢測來排除邊緣過多或過少的區域, 因為這些區域通常不會是人臉所在區域; 

for (vector

::const_iterator r = faces.begin(); r != faces.end(); r++)

rectangle(img, cvpoint(r->x, r->y), cvpoint(r->x + r->width - 1, r->y + r->height - 1), scalar(255, 0, 255), 3, 8, 0);

//文字標註

puttext(imgforshow, p.first, point(bbox.x, bbox.y), font_hershey_plain, 2, scalar(255, 0, 0));

演算法優化二 如何提高人臉檢測正確率

序號 級聯分類器的型別 xml檔名 1人臉檢測器 預設 haarcascade frontalface default.xml 2人臉檢測器 快速的haar haarcascade frontalface alt2.xml 3人臉檢測器 快速的lbp lbpcascade frontalface.x...

演算法優化二 如何提高人臉檢測正確率

序號級聯分類器的型別 xml檔名 1人臉檢測器 預設 haarcascade frontalface default.xml 2人臉檢測器 快速的haar haarcascade frontalface alt2.xml 3人臉檢測器 快速的lbp lbpcascade frontalface.xm...

在語言模型檔案中更新詞彙以提高識別正確率

完成cmu sphinx toolkit到unicode的移植後,由於其自身支援的中文詞彙太少且過於簡單,實際生活中的很多詞彙無法識別,由於其缺少開發文件,只能在 跟蹤的過程裡心煩了。於是想,肯定需要在詞典檔案中增加新詞彙吧,如果其本身是按照ciphone序列進行識別的話,應該就能識別出新詞彙。後來...