【问题标题】:Accuracy of face detection with haarcascade使用 haarcascade 进行人脸检测的准确性
【发布时间】:2014-03-19 00:06:27
【问题描述】:

最近我在使用“haarcascade_frontalface_alt2.xml”进行人脸检测时发生了一些奇怪的事情

假设在网络摄像头拍摄的视频中检测到我的脸时,虽然我的脸和相机都没有移动,但返回的人脸坐标和大小会发生一点变化。为什么会发生这种情况?有什么办法可以改善吗?

谢谢

【问题讨论】:

    标签: opencv face-detection


    【解决方案1】:

    一点是多少?只要检测到的人脸的坐标和大小值不会乱跳,您就可以使用低通滤波器(即运行平均值)来平滑处理。

    我不知道您使用的是什么语言,但在 Python 中,它看起来像这样:

    filterSize = 3
    m = []
    
    while True:
       x, y, sizex, sizey = <getThisFramesFaceParams()> ## Your function here
       m.append([x,y,sizex,sizey])
       if len(m) > filterSize:
          m.pop
    
       x, y, sizex, sizey = 0, 0, 0, 0
       for i in m:
          x += i[0]
          y += i[1] 
          sizex += i[2] 
          sizey += i[3]   
    
       # less variation in these values:
       x /= len(m)
       y /= len(m)
       sizeX /= len(m)
       sizeY /= len(m)
    

    您将 filterSize 设置得越大,您就越能抑制噪声/变化(因此值的随机变化越少)。但是,随着该值变大,您也会注意到更多的滞后。例如,当您移动脸部时,您可能会发现您脸部的“检测到”位置滞后于您脸部的当前位置。您需要根据您遇到的噪音量和应用程序所需的速度做出权衡。

    【讨论】:

      猜你喜欢
      • 2017-12-14
      • 2013-09-02
      • 2013-03-23
      • 2017-10-02
      • 2012-01-27
      • 2019-08-01
      • 2017-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多