8

我有一个应用程序使用 Haar 级联来检测从摄像机捕获的图像中的眼睛。使用的方法是:

void CascadeClassifier::detectMultiScale(const Mat& image, vector<Rect>& objects, double scaleFactor=1.1, int minNeighbors=3, int flags=0, Size minSize=Size(), Size maxSize=Size())

scaleFactor这在默认值,下工作得很好minNeighborsflags但是有些人的眼睛无法被检测到。所以我想提高眼睛检测的准确性。似乎“级联分类器训练”并创建自定义级联分类器是一个很好的解决方案,但在这样做之前

是否可以通过调整方法中的一些参数来提高检测精度?请进一步解释 , 和 的含义,scaleFactor因为cascadeclassifier -detectmultiscale文档中的那些含义对我来说不是很清楚。谢谢你。minNeighborsflags

4

1 回答 1

24

scaleFactor 参数用于确定函数将寻找多少不同大小的眼睛。通常该值为 1.1 以获得最佳检测。将此参数设置为 1.2 或 1.3 将更快地检测眼睛,但不会经常发现它们,这意味着准确度会下降。

minNeighbors 用于告诉检测器在检测到眼睛时他应该有多确定。通常此值设置为 3,但如果您想要更高的可靠性,您可以将其设置得更高。更高的值意味着更低的准确性,但更高的可靠性

这些标志用于设置特定的偏好,例如寻找最大的对象或跳过区域。默认此值 = 0。设置此值可以使检测更快

于 2013-03-14T13:52:53.427 回答