10年后再看Robust Real-Time Face Detection(二) 之积分图

   我们知道, 如果采用Naive 的方法去计算矩形特征值是相当的麻烦和不现实的。 所以论文中作者引用了积分图的概念, 那么这样我们只需要常数的时间内就可以计算任何一个矩形区域覆盖的像素灰度值之和。 那么什么是积分图(Integral Image)呢?

   积分, 故名思议, 在离散域中就是求和之意。 对一幅图像而言,  该图像在(x, y)处的积分值就是该位置处左上方所有的像素求和,得到的值在赋给这一位置处(注意, 对图像而言, 坐标原点是在图像的最左上角处, 水平位x轴, 竖直方向为y 轴)。数学表达式如下:


其中, ii (x, y) 是积分图在(x, y)处的值。 i (x, y) 是原始图像。 该公式说明, 给定图像i (x, y), 我们可以计算与此幅图像对应的唯一的积分图ii (x, y)。 注意积分图存在的意义就在于允许我们快速的计算出某一矩形覆盖的所有元素之和。




上面只是给出了积分图的定义。 实际上在编程计算积分图的时候, 我们用到了如下的递归公式(建议一定要理解, 画图表示一下就明白了):




其中, s(x, y)的含义是对原图像按行累加和(cumulative row sum), 注意我们定义边界条件s(x,−1) =0, ii (−1, y) = 0)。也就是说, 我们只需要在原始图像上一轮循环就可以计算出原始图像的积分图, 非常高效。


一旦我们求出了积分图, 我们 就可以快速求出任何一个矩形匡覆盖的像素值之和, 当然我们也就可以快速的求出矩形特征值(只是矩形的元素求和后, 再相加减, 就可以求出相应的矩形特征值):



 为了更好的理解计算的过程, 下面给出找到的一个具体的例子(注意积分图边界上补0):


上图中, 左边的为原始图像, 右边的图像为从左边原始图像计算得到积分图像(只需对原始图像A先行求和(逐行累加)的B, 在对得到的B图像逐列累加即可得到积分图像)。 注意积分图左边界和上边界上补的0值。

不难求出, 上面那个矩形的面积为: 15 + 0 - 10 - 0 = 5

下面那个矩形面积: 30 + 0 - 0 - 17 = 13(具体分析方法如下):






    

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值