各种目标检测方法介绍(懒人可以直接略过)
目标检测是一个老话题了,在很多算法当中都有它的身影。目标检测要做的就两件事:检测当前图片中有没有目标?如果有的话,在哪?按照先验知识和背景运动来划分的话,目标检测方法大概可以分为两大类:
第一,已知目标的先验知识。在这种情况下检测目标有两类方法,第一类方法是用目标的先验知识训练一堆弱分类器,然后这些弱分类器一起投票来检测目标,如boosting, random forest 都是这个思路,大家熟知的adaboost人脸检测也是如此,这一类方法我会在以后的文章中讨论。第二类方法是根据先验知识找到目标和非目标的最佳划分线,如SVM.这两类方法各成一家,各有所长,都有着不错的表现。
第二,未知目标的先验知识。此时不知道要检测的目标是什么,于是什么是目标就有了不同的定义。一种方法是检测场景中的显著目标,如通过一些特征表达出场景中每个像素的显著性概率,然后找到显著目标。另一种方法就是检测场景当中的运动目标了,这也是本文下面将要讨论的重点内容。
在检测运动目标时,如果背景是静止的,so easy,略过。当背景也跟随一起运动时就比较麻烦了,现如今大概有两种方法来处理。第一种方法是背景补偿,即通过平移,缩放,仿射变换等计算出背景的运动,然后补偿背景再做差分。不过这种方法有两个问题,一是仿射变换运算量巨大,二是即使求出背景补偿向量,背景中的远景和近景的向量也会有相对误差,所以这种方法几乎不可行。第二种方法就是传说中的optical flow(光流)了,下面进入正文。
正文