OpenCV:如何使用Haar级联分类器提高眼睛检测的准确性
OpenCV: How to improve accuracy of eyes detection using Haar Classifier Cascade?
我有一个应用程序使用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
, minNeighbors
和flags
下工作得很好,但有些人的眼睛无法被检测到。所以我想提高眼睛检测的准确性。似乎"级联分类器训练"和创建自定义级联分类器是一个很好的解决方案,但在此之前
是否有可能通过调整方法中的一些参数来提高检测精度?请多解释一下scaleFactor
, minNeighbors
, flags
的含义,因为我对cascadecclassifier -detectmultiscale文档的含义不是很清楚。谢谢你。
scaleFactor参数用于确定函数将查找多少个不同大小的眼睛。通常这个值为1.1是最好的检测。将此参数设置为1.2或1.3会更快地检测到眼睛,但不会经常发现它们,这意味着准确性下降。
minNeighbors用于告诉检测器在检测到眼睛时应该有多确定。通常这个值被设置为3,但如果你想要更高的可靠性,你可以把它设置得更高。值越高,精度越低,但可靠性越高
标志用于设置特定的首选项,例如查找最大的对象或跳过区域。默认值= 0。设置此值可以使检测更快
相关文章:
- 使用CMake检测支持的C++标准
- 当套接字连接断开时检测C/C++Unix
- C/C++预处理器是否可以检测一些编译器选项
- WMI检测进程创建事件-c++
- 基于树莓pi的tensorflow lite量化ssd目标检测
- 下面是我为检测链接列表中的循环而制作的代码
- 落砂模拟碰撞检测C++和SFML
- 我可以检测和更改 gcc/g++ 中结构的当前数据对齐设置吗?
- 为什么C++编译器没有检测到正确声明的类?
- 检测win32服务创建和删除的最佳方法
- 正在LLVM中检测整数比较条件
- 如何在鼠标挂钩过程中检测拖动
- 位移操作和位掩码未检测到重复字符
- Opencv cascade.detectMultiScale 不检测眼睛
- 矩形不在检测到的眼睛对周围
- 面部和眼睛检测工作不正常
- 如何检测并在眼睛的虹膜区域周围画一个圆圈
- Roi检测眼睛区域
- OpenCV:如何使用Haar级联分类器提高眼睛检测的准确性
- 用于面部和眼睛检测的最佳opencv版本