c - 打开简历中的人脸检测代码

  • 本文关键字:代码 opencv
  • 更新时间 :
  • 英文 :


在我的程序中,我正在检测一个人的面部,我的代码运行良好,但我担心这段代码,至于眼睛检测"cascade.detectMultiScale()"有很多参数,而对于人脸检测,我正在使用这几个参数,以及它如何检测面部,我们是否尚未初始化"cascade.detectMultiScale()"中检测对象的大小

 cascade.detectMultiScale(gray, faces, 1.2, 2);
for (int i = 0; i < faces.size(); i++)
{
    Rect r = faces[i];
    rectangle(src, Point(r.x, r.y), Point(r.x + r.width, r.y + r.height), CV_RGB(0,0,255));
}

您可能应该阅读一些有关集成 Open CV 功能(Open CV 级联分类器)的手册。最后2个参数是"最小大小"和"最大大小",可以设置检测到对象的最小和最大大小。对于我的项目,我正在一些 1080p HDTV 频道上检测叙述者的脸,所以我的配置是这样的:

face_cascade.detectMultiScale( frame_gray, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, Size(500, 500) );

。这意味着我的比例因子 = 1.1,只检测到 1 张可能的人脸。 CV_HAAR_SCALE_IMAGE意味着算法负责缩放图像,而不是检测器(一般来说,检测器更慢)。如果您想提取所有候选项中最大的对象,也可以使用 0|CV_HAAR_FIND_BIGGEST_OBJECT 之类的内容。就我而言,我还强制检测器搜索不小于 500x500 像素的对象,这也加快了我的实时处理速度并防止检测器进行错误检测。您还应该记住,集成检测器是从一些预定义的参数派生的(特别是在训练阶段)。如果您真的有兴趣为您的应用制造更好的检测器(以及更好的检测精度和/或性能),您应该考虑定制分类器。但请注意:虽然修改了参数(训练迭代次数、训练模式、对象属性、对象对齐等)可以使事情变得更好,但需要对它们中的每一个(以及它们之间和最终结果的影响)以及微调进行良好的理解,以便进行一些合理的改进。

相关内容

  • 没有找到相关文章

最新更新