利用CNN实现实时抓取检测
作者:Joseph Redmon, Anelia Angelova
全文下载,公众号回复:20180524
作者简介:Joseph Redmon
标志性:YOLO算法的作者,YOLO是到目前为止,速度和精度最均衡的目标检测网络
履历:华盛顿大学计算机科学博士在读,曾参加创业项目ZeroCarter,毕业后曾作为电台DJ、自由职业网站开发者,曾在IBM实习、国家标准与技术研究院(NIST)实习,米德尔伯里学院计算机学院助教。
荣誉:曾获Timothy T. Huang学术成就奖
个人主页(也是YOLO成果的发布地):https://pjreddie.com/
研究方向:计算机科学家,主要从事机器学习、数据分析、计算机视觉、“初级”程序设计和实现
作者简历附上:
特别说明
YOLO是到目前为止,速度和精度最均衡的目标检测网络。目前已经进化到V3版本,可以实现毫秒级的反应速度,以及高精度的识别能力。我们就从2015年作者的第一篇论文开始,看看YOLO是如何产生与进化的。
作者在TED关于YOLO的演讲视频
https://www.bilibili.com/video/av13783238/
YOLO3效果演示视频
http://flv.bn.netease.com/videolib3/1803/27/EDCVO7BJA/SD/EDCVO7BJA-mobile.mp4
摘要
我们提出了一种精确的、实时的方法来实现基于CNN的自动抓取检测。我们的网络通过单步回归来抓取边框,而不是传统技术中的标准边框或区域。模型表现出了顶级(2015年)的水准,在一个GPU上88%的精度和每秒识别13个框。我们的网络可以同步实现分类,单步识别中可以识别目标并找到一个合适的矩形。模型的一种升级版(多抓取检测模型)可以通过使用一个局部约束预测机制实现对单个目标多个抓取的预测。局部约束模型表现的效果更加显著,尤其是在多目标抓取方面。
文章结构
精华内容
1.核心思想:使用单个网络一次抓取整个图片
不同于当时流行的固定方框遍历整个图片的方式,作者提出了一次性用单个网络直接抓取整个图片,虽然网络本身变得更加庞大了,但是由于只需要运行一次,使得效率大大加速。而且使用全局信息的方式大幅提升了网络精度。
2.使用五维向量定义目标
使用矩形中心位置做坐标、与水平方向的角度、高度和宽度五维向量来定义目标的抓取表示,定义如下。
3.网络结构
以AlexNet为基础设计了网络结构,5层卷积层 3层全连接层,如图所示。全连接层最终输出有6个神经元,其中4个神经元输出位置和高度,2个神经元输出方位,即2倍角度的sin函数和cosin函数。该方法有一个局限性,就是必须符合假设条件:图中只有一个可抓取目标。
该模型还有一个特点就是目标分类和抓取所使用的特征是共享卷积层所提取的图像特征。
第三种提出的模型是多目标抓取模型,将图像分为N*N的网格,假设每个网格中最多有一个目标,然后用同样的网络对图像进行一次性识别,输出网络中是否有目标的信息。
4.训练过程
4.1 抓取检测
衡量指标选择了矩形指标:1)抓取角度在真值的30度以内;2)预测抓取值和真值的Jaccard指数大于25%。同时满足的时候认为抓取成功。Jaccard指数如下:
为了充分验证试验效果,我们将数据做了两种分离:图像维度分离和目标维度分离。
4.2 目标分类
我们将数据集分为了16类,如瓶子、鞋、运动装备等
4.3 预训练
我们在ImageNet数据集中做了预训练,实际效果表明,在其他数据集中的预训练显著提升了模型的训练速度,而且避免了过拟合问题。
4.4 训练
每个模型训练了25轮,学习率设定为0.0005,权重递减0.001,使用了cuda-convnet2包进行了训练,运行在英伟达Tesla K20 GPU。
4.5 数据预处理
数据做了最小化的预处理。深度信息被替换到图像的蓝色通道中。数据准备好之后,通过随机翻转和旋转图像进行了数据扩充。
5.结果对比
最终的试验是在Cornell Grasping数据集中进行的,包括了885张图片,240个目标,均做了真值标注。如图所示。
如下表所示,与常用方法相比,新的全局识别与抓取方法实现了图片分离和目标分离两种情况下的精度大幅提升,尤其以多抓取检测模型的精度最高,反应时间实现了显著提升,从13.5s提升到了76ms。示意图中可以看出,上面两幅中识别精度按照精度计算公式为识别成功,下面两行的图片则为识别失败的情况。
如下图所示,多抓取检测模型与回归 分类模型进行对比的效果,多抓取检测模型显著优于回归模型。上面一行为多抓取检测模型的识别效果,下一行则为回归模型的识别效果。
6.未来讨论
数据的预训练作用在ImageNet数据集上表现的很明显,没有预训练的模型很快就过拟合了。有趣的是,预训练对于领域和特征类别都很有效。