联系我们
- 地 址:北京市海淀区北四环西路9号 ,主 营:人脸识别,活体检测,身份证识别,银行卡识别,名片识别,车牌识别,OCR识别等及智能识别技术。
- 电 话:13146317170 廖经理
- 传 真:
- 邮 箱:398017534@qq.com
深度学习中的目标检测定位
深度学习中的目标检测定位
在计算机视觉范畴,目的检测主要盘绕两个中心问题:其一是目的在哪里?(定位),其二是目的是什么?(辨认)。
辨认的范畴相对来说容易了解,即 提取特征->辨认特征->综合辨认物体(分类)。
定位的问题由于之前没有太多接触过,不太好了解。毕竟神经网络都是对像素值停止处置,这其中如何开展到关联像素点的位置?在阅读材料的同时写下这篇博客,梳理下学问。
传统的深度学习目的检测中,定位的任务并非交给神经网络来处置,而是直接用一些传统算法(原则与颜色,纹理,梯度相关)提取很多候选区域,然后基于一些过滤算法或者说过滤原则,将大局部无用区域过滤或者兼并掉。之后再将这些候选区域resize到图像大小,投入网络之中去辨认。
提取候选区域->过滤&兼并->神经网络辨认分类
提取候选区域有selected search算法等,其根据是颜色,纹理等,有一定的缺陷:鲁棒性不够。
过滤和兼并普通用NMS算法,舍弃小于面积阈值的框,超出图像边境的框,兼并交集超越一定比例的框。
此类算法有RCNN之类。
后续呈现的sppnet,主要对RCNN停止了两方面的改良,第一是舍弃掉本来的的wrap操作,由于RCNN最后一层是FC层,神经元是预设的,故而其输入的大小必需是固定的,原先RCNN的wrap操作会让图片中的物体变形,影响辨认率。
从上图能够看出,crop和wrap操作的结果。
sppnet是用不同尺度的pool组合来到达匹配FC层神经元个数的条件。
以上是截取自论文中图片,比方说FC层固定为21,则设置三个不同的pool,其不断接对整张图做max_pool,其二将原图分割位四个局部,再停止pool,其三分为十六个小块再停止pool,最后得到16+4+1正好21个特征。这里有个疑惑就是这样的pool如何保证ss得到的框位置信息不丧失呢?其实这里很多博客省略掉了,金字塔pool自身就不是对整个feature maps做pool,在这一步之前应用了sppnet的第二个特性:将ss算法在原图中算出的(x,y,w,h)停止投影映射到做过一系列卷积pool的feature maps上,这个举措的根据就是位置的相对不变性。然后金字塔pool对各个proposal停止上述的提取兼并,投入到FC层。
sppnet这样改良以后,速度加快了很多倍,由于本来RCNN还需求一个个的提取proposal投入net之中,sppnet直接在用金字塔提取一切proposal,一张图可能会有2k个proposal,能够看出两者之间速度的差距。
上一条:人脸比对验证机
下一条:深度学习中的图像分类和图像分割