OpenCV:如何使用Haar级联分类器提高眼睛检测的准确性

OpenCV: How to improve accuracy of eyes detection using Haar Classifier Cascade?

本文关键字:眼睛 检测 准确性 高眼睛 何使用 Haar 分类器 级联 OpenCV      更新时间:2023-10-16

我有一个应用程序使用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, minNeighbors, flags的含义,因为我对cascadecclassifier -detectmultiscale文档的含义不是很清楚。谢谢你。

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

minNeighbors用于告诉检测器在检测到眼睛时应该有多确定。通常这个值被设置为3,但如果你想要更高的可靠性,你可以把它设置得更高。值越高,精度越低,但可靠性越高

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