Euphrates: Algorithm-SoC Co-Design for Low-Power Mobile Continuous Vision

11 篇文章 0 订阅
3 篇文章 0 订阅

(这篇博客不设计文中的硬件部分)

这篇文章同样也讲述了如何在live video中应用motion estimation的算法,通过应用上下帧之间的相似信息来加速detection并且维持较高的accuracy。

文中列了一张不同的object detection算法的效率和准确率的比较的图。

在通常的live video的处理当中,大致的一个模块分布如下图所示:

其中的imge sensing部件就是用来就收从摄像头传来的图像流;IPS模块用来对得到的原始的摄像头图像做一些处理;后端的部分就需要从加工过的图片中提取出有用的信息。

在这篇文章中,ISP处理图像得到的motion的信息不像其他的一些算法一样使用过之后就简单的丢弃,Eupharates会保存下来进一步提升整个motion estimation的准确性。

同样的这篇文章使用的motion estimation的算法也是block matching。将整张image分成若干个L\times{L}个mrcroblocks,然后衡量匹配差距的标准被定义为:Sum of Absolute Differences(SAD)。对于每个MB,搜索的范围就是水平和垂直方向上的2d+1的范围,如下图所示。

这个算法的时间复杂度很好计算,每个L\times{L}的MB需要L^2(2d+1)^2次计算;但是文中指出了另外一个更快的近似算法叫做TSS(Three Step Search),对于每个MB只需要做L^2(1+8\log_2(d+1))的复杂度。

最终BM算法会为每个MB生成一个motion vector,代表MB之间的位移和其与前一帧之间最接近的block。

算法将video的帧分为两类:Inference frameExtracpolation frame。前者经过完整的CNN网络,后者则是通过motion estimation来估计物体的位置。

在一个视野当中所有pixel的唯一的平均值在一定程度上能够代表这个感受野当中物体的全局位移,所以算法的第一步就是对于一个给定的POI,计算像素层的平均位移(式1),正如上文所提到的,这些位移都是MB-based的位移计算而来的。平均的位移很容易受到物体变形(肢体活动)的影响,所以需要增加除躁的步骤。

对于每个MV,计算其置信值,这个置信值的是高度依赖于SAD的,原因非常直观啦。式2给出了置信值的计算方式,限制在了[0,1]的范围内,最后对于每个ROI的置信值,只需要计算其所包含的MV的置信值的均值即可。

最终可以对置信度高的位移施加更大的权重,如式3所示,我们发现是应用到了之前位移的效应。

最后为了更好地解决物体形变(跑步运动员的摆手等)的问题,将每个ROI拆分成若干个sub-ROI,然后每个sub-ROI使用上述相同的方法,最后计算能够将所有sub-ROI都涵盖的最小的bounding box就好了。

就如何选择I-frame提出了两种方案,一种是简单的constant方案,每隔一定的帧数选择一张作为I-frame;还有一种自适应的方案,对哪个两帧之间的差距超过一定的threshold的时候减小中间的间隔,否则增大间隔。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值