Yai*_*air 15 python opencv machine-learning computer-vision face-detection
我在python中使用opencv的har cascade face detector(cv.HaarDetectObjects).
例如:
faces = cv.HaarDetectObjects(grayscale, cascade, storage, 1.2, 2,
cv.CV_HAAR_DO_CANNY_PRUNING, (50,50))
for f in faces:
print(f)
Run Code Online (Sandbox Code Playgroud)
这将以此形式打印检测列表:
((174, 54, 114, 114), 53)
((22, 51, 121, 121), 36)
((321, 56, 114, 114), 21)
((173, 263, 125, 125), 51)
((323, 272, 114, 114), 20)
((26, 271, 121, 121), 36)
Run Code Online (Sandbox Code Playgroud)
每条线代表一个检测.前4个数字是左上角的x,y位置,以及边界框的高度和宽度.最后一个数字是(引用openCV文档)邻居的数量.
我想我有两个问题:
1)最后一个数字是什么意思?谷歌搜索时我找不到任何参考.
2)(更重要)有没有办法获得每次检测的置信度分数?面部分类器确定检测对应真实面部多少钱?
谢谢
1)检测代码为对象产生多个检测 - 例如,在不同的尺度,稍微移位等.然后对检测进行分组,并且这样的组中的邻居的数量是返回的数量.另见Viola Jones论文第5.6段(http://research.microsoft.com/en-us/um/people/viola/Pubs/Detect/violaJones_IJCV.pdf)和OpenCV源代码.
2)您可以使用邻居的数量作为一定程度的置信度.