自从Alex Krizhevsky、Geoff Hinton 和 Ilya Sutskever 在2012年赢得 ImageNet 挑战赛以来,卷积神经网络(CNN)已经成为图像分类的黄金标准。 事实上从那时起,CNN已经改善到现在在ImageNet挑战中胜过人类的程度!
CNN 现在在ImageNet挑战中胜过了人类。 上图 y 轴表示ImageNet上的错误率。
虽然这些结果令人印象深刻,但图像分类远比人类视觉理解的复杂性和多样性简单得多。
分类挑战中使用的图像示例。 注意图像构图良好且只有一个目标。
在分类中,通常有一个图像,其中有单个目标作为焦点,任务是说明该目标是什么。但是当我们观察周围的世界时我们会执行更复杂的任务。
现实生活中的景象通常由多种不同的,重叠的目标,背景和动作组成。
我们看到的景象有许多重叠的目标和不同的背景,我们不仅要对这些不同的目标分类,还要确定它们之间的界限,差异和关系。
在图像分割中,我们的目标是对图像中的不同目标进行分类,并识别它们的边界。 来源:Mask R-CNN 论文。
CNN 可以帮助我们完成这么复杂的任务吗? 也就是说,给定一个更复杂的图像,我们可以使用 CNN 来识别图像中的不同目标及其边界吗? 正如 Ross Girshick 和他的同事在过去几年所表明的那样,答案是肯定的。
本文目标
通过这篇文章,我们将介绍在目标检测和分割中使用的一些主要技术背后的原理,并了解它们是如何从一个实现发展到下一个的。 特别的,我们将介绍 R-CNN(Regional CNN),CNNs 的原始应用,以及它的后代 Fast R-CNN 和 Faster R-CNN。 最后,我们将介绍Facebook Research 发布的一篇文章 Mask R-CNN,该文章对这种目标检测技术进行了扩展以提供像素级的分割。 下面是本文中引用的论文:
Fast R-CNN: https://arxiv.org/abs/1504.08083
Faster R-CNN: https://arxiv.org/abs/1506.01497
Mask R-CNN: https://arxiv.org/abs/1703.06870
2014: R-CNN CNNs 在目标检测中的早期应用
诸如R-CNN的目标检测算法接收图像并识别图像中主要目标的位置和分类。 来源: https://arxiv.org/abs/1311.2524
受多伦多大学 Hinton 实验室研究的启发,由加州大学伯克利分校的 Jitendra Malik 教授领导的小团队开始探索一个在今天看来是一个不可避免的问题:
[Krizhevsky 等人的结果]可以在多大程度上推广到目标检测?
目标检测的任务是在图像中查找不同的目标并对其进行分类(如上图所示), 由 Ross Girshick ,Jeff Donahue 和 Trevor Darrel 组成的团队发现,Krizhevsky 的结果可以解决这个问题, 并通过 PASCAL VOC Challenge 的测试,这是一种类似于 ImageNet 的目标检测挑战。 他们写道:
本文首次表明,与基于简单 HOG 类功能的系统相比,CNN 可以在 PASCAL VOC 上实现更高的目标检测性能。
现在来了解他们的架构,Regions With CNNs(R-CNN)是怎样工作的。
理解 R-CNN
R-CNN 的目标是获取图像,并正确识别图像中主要目标(用边框(bounding box)表示)的位置。
输入: 图像
输出: 图像中每个目标的边界框(bounding box)和标签(label)。
但是我们如何找出这些边界框的位置? R-CNN 按照我们的直觉来做做 -- 首先在图像中标出许多边界框,然后判断每个边界框中是否实际对应一个目标。
Selective Search 通过查看多个比例的窗口,并查找相似纹理,颜色或强度的相邻像素。 图片来源: https://www.koen.me/research/pub/uijlings-ijcv2013-draft.pdf
R-CNN 使用称为选择性搜索(Selective Search)的方法创建这些边界框或候选区域。 在较高的层次上,选择性搜索(如上图所示)通过不同大小的窗口查看图像,并且对于每个尺寸,尝试通过纹理,颜色或强度将相邻像素组合在一起以识别目标。
在创建一组候选区域后,R-CNN 将图像传递给修改的 AlexNet 网络,以确定它是否是有效区域。 来源:https://arxiv.org/abs/1311.2524
一旦创建了一些候选区域,R-CNN 就会该区域变为标准的方形大小,并将其传递给修改过的 AlexNet(2012 年 ImageNet 的获奖提交),如上图所示。
在 CNN 的最后一层,R-CNN 增加了一个支持向量机(SVM),它简单地判断这是否是一个目标,如果是的话,是什么目标。 见上图中的第 4 步。
改进边框
现在,在边框内找到了这个目标,我们可以缩小边界框到目标的实际大小吗? 答案是可以,这就是 R-CNN 的最后一步。R-CNN 对候选区域进行简单的线性回归,生成更紧密的边界框坐标获得最终结果。 以下是这个回归模型的输入和输出:
输入: 图像相应目标的子区域
输出: 子区域中新的目标边界框
总结一下,R-CNN 有以下几个步骤:
生成一系列的候选边框。
将边框中的图像输入预先训练的 AlexNet,最后通过 SVM 确认边界框中是什么目标。
如果图像中有目标,就将边框中图像输入线性回归模型,输出更紧密的边界框坐标。
2015: Fast R-CNN - 更快更简单的 R-CNN
Ross Girshick 写了R-CNN 和 Fast R-CNN。他继续在Facebook Research 推动计算机视觉的发展。
作者:人工智能遇见磐创
链接:https://www.jianshu.com/p/26ae63d4fab8
共同学习,写下你的评论
评论加载中...
作者其他优质文章