BING算法——思路整理(目标检测算法)
2015-12-19 11:57
405 查看
BING 算法最终是帮忙找到图像当中的候选的物体区域, Box表示为:Get potential bounding boxes, each of which isrepresented by a Vec4i for (minX, minY, maxX, maxY).将图像归一化到一个相同的尺度(例如:8*8)上,一般对象的封闭轮廓和梯度范数之间具有强联系。能够在识别一个对象之前察觉它,非常接近自底向上的视觉显著性。
大致的操作:
1. 对整张图像求梯度,然后由线性SVM训练得到一个BING特征;
2. 计算每一个候选区域的得分:sl
sl =<w,gl> (1)
l=(i,x,y) (2)
其中,sl代表过滤器得分,gl代表NG特征,l表示坐标,i表示尺度,(x,y)表示窗口位置。所以(1)表示:在训练好的模型w上面,特征gl
的一个得分值。运用非极大值抑制(NMS),我们为每个尺度提供一些建议窗口。相对于其他窗口(例如:100*100),一些尺度(例如:10*500)的窗口包含对象的可能性是很小的。因此我们定义对象状态得分(校准过滤器得分):
ol = vi*sl+ti (3)
其中vi,ti∈ R,是针对不同尺度i的窗口,学习到的一个参数。我们由这些得分值就得到各个窗口。
具体的操作:
1. 输入一张图象,其中红框是物体,绿框不是物体
2.首先将输入图像重置为不同尺度的,在不同的尺度下计算梯度。然后再隔点取8*8大小的框,作为一个对应图像的64维的NG特征(该特征优势:1.归一化了支持域,所以无论对象窗口如何改变位置,尺度以及纵横比,它对应的NG特征基本不会改变。也就是说,NG特征是对于位置,尺度,纵横比是不敏感的;2.
NG特征的紧凑性,使得计算和核实更加有效率,而且能够很好的应用在实时应用程序中)
3. 使用线性SVM分类器,在NG特征上训练一个64维的分类器
而在训练的过程当中,最最核心的就是 这个64位的特征就直接用一个64位的数表示,那对特征的操作表示为对位的操作。大大的降低了时间复杂度。
使用作者的代码已经训练好了一个特征模型,接下来使用它进行检测。我简化了整个代码框架,使得可以直接用到工程上,大家可以下载:http://download.csdn.net/detail/u012192662/9367779。整个工程在VS2013
X64工程上完成,需要Opencv库进行读入操作。
相关文章推荐
- 摩托罗拉(Motorola) MC2180条码采集器 .NET开发 接入条码组件
- UVa 12108 Extraordinarily Tired Students(特别困的学生)
- Unity中的Serializable
- AIX5.3中将Oracle SGA PIN在内存中的步骤
- 如何使cmd窗口正确显示utf-8编码的文字
- apache2.2 搭载本地中转服务器
- 《linux命令行与shell脚本编程大全》学习笔记(2)
- 二分查找的两种写法
- mysql5.7修改root密码
- 新装ubuntu使用vi时方向键不起作用
- 如何使用pdb调试python程序
- tomcat如何以debug模式启动
- A1.0.2 离线瓦片用ol3显示多功能地图
- Python Tornado 使用经验
- wince的一些对sdk封装成c runtime库的实现
- 图像开运算
- hdu3294 girl‘s research
- 整理下iOS常用的三方库,以备查阅
- Phaser 开发之智能提示
- vi