【重磅】Facebook 开源计算机视觉系统,从像素水平理解图像(附论文及代码)

“蓝色字”

限时干货下载:关注我们“机器视觉”,回复“资料”获取机器视觉教程,行业报告等资源。持续更新中。。。

1新智元编译1

 来源:Facebook 等

译者:张冬君

【新智元导读】今天 Facebook 宣布开源计算机视觉系统,称该系统能“从像素水平理解物体”,Facebook 希望开源能加速计算机视觉的发展。不过,Facebook 并没有在自家产品中使用这些工具,像这样落实到具体应用前就开源,跟通常所说的“开源”有些不同。对此,Facebook 人工智能团队 FAIR 的负责人 Yann LeCun 曾表示,正是因为 FAIR 做基础的、不受制于公司短期效益的研究,才能真正推进人工智能技术发展。无论如何,开源将加速技术发展,当然,也将让系统变得更好,让 Facebook 开发更好的图像、视频乃至增强现实产品。以下是 FAIR 宣布开源的博客全文及代码。在公众号后台回复“160826”,下载相关论文。

(文/Piotr Dollar,FAIR 研究员)计算机能像人一样高效地分辨一张照片中的多个物体吗?

人看到一张照片时,能一直追踪到最后一个像素,并对物体进行区分。在Facebook AI 实验室 (FAIR),研究者把计算机视觉推进到了下一个发展阶段,他们的目标是让机器像人一样,以像素级的水平理解图像和物体。

过去几年中,随着深度卷积神经网络的进步和计算架构变得前所未有的强大,机器视觉系统也在准确性和能力上也迎来了飞速的进步。我们看到,图片分类(比如,图上都有谁)和物体感知(物体在哪)上,都有着显著的提升。可参见下图:

但这只是理解图像或者视频中最重要的视觉内容这一方向的开始。最近,FAIR 开发了一项用于发现和切割单张图像中的每个物体的新技术,如上图显示(c),这是一项关键的能力,将能用于开发全新的应用。

这一技术的主要驱动算法是DeepMask——一个新的图像分割框架,以及新的SharpMask ——一个图像分割修饰模型。二者的结合,使得FAIR的机器视觉系统能够感知并且精确地描绘一张图片中任何物体的轮廓。识别管道中的最后一步,研究院使用了一个特殊的卷积网络,称为MultiPathNet,为图片中的物体添加标签(比如,人、狗或是羊)。

现在,FAIR把DeepMask、SharpMask、MultiPathNet的代码,以研究论文以及Demo全部开源,希望能促进机器视觉领域的飞速发展。FAIR将会继续改进这些核心技术,并且持续发布最新研究成果、向社区更新开源工具。

这些工具到底有什么用?

在像素中找出规律

来看一看这些算法中的构建模块。

看一眼下面这张图片,你看到了什么?

一个摄影师正在使用他的旧式相机、一片草地、背景中的建筑……也许你还注意到了别的许多细节。但是,机器是看不到这些的。在机器的世界里,一张图像是由一连串的数字组成,这些数字代表了每一个像素中的颜色值,正如右边的图像显示的那样。那么,我们该如何让机器视觉从超越像素,发展出对图像更深层次的理解呢?

由于真实的世界中,物体和场景的变化几乎是无穷尽的,所以这一问题并不容易解决。物体是多变的,形状、外观、尺寸、位置、纹理和颜色等等都有很大的不一样,此外,加上真实场景几乎无穷尽复杂性,比如多变的背景、光线条件以及世界本身的多样性,你可以看到,这一问题有多难。

进入深度卷积神经网络。在物体感知中,与编程式地定义基于规则的系统不一样,深度网络是一个相对简单的架构,拥有数千万参数,通过训练而不是设定来发挥作用。这些网络自动地从数百万注释样本中学习模型,在见到足够多的样本后,网络能够开始对新的图像进行分类。深度特别善于回答YES/NO的问题,这可以用于分类,比如,图片中包含绵羊吗?

物体分割

那么,要怎么在感知和分割中使用深度网络?DeepMask中使用的技巧是,把分割看成是一个海量的二进制分类问题。

第一,对于一张图像中的每一个(重叠的)图像块(patch),我们要问:这个图像块包含一个物体吗?第二,如果第一个问题的答案是肯定,那么对于一个图像块中的每一个像素,我们要问:这个像素是图像块中心物体的一部分吗?我们用深度网络来回答每一个Yes/No的问题,并且通过巧妙设计我们的网络,使每个图像块和像素都能被计算,从而我们可以快速发现并分割一张图像上的所有物体。

DeepMask采用传统的前馈深度网络设计。在这种网络中,随着网络阶段的逐步深入,信息会更加抽象、在语义上更有意义。例如,在一个深度网络中的底层可以捕获边缘和斑点,而上层倾向于获取更多的语义概念,如动物的面部或肢体的存在。通过设计,这些上层功能以相当低的空间分辨率计算(既是出于计算的原因,也是为了保持不因像素位置的小位移而改变)。这为mask预测带来一个问题:上层特征可以用来预测mask,mask能捕捉一个物体大致外形,但不能准确捕捉物体的边界。

这就要使用SharpMask了。 SharpMask优化DeepMask的输出,产生具有更高保真度的能精确框定物体边界的musk。在DeepMask预测前馈的初始mask通过网络时,SharpMask反转信息在深度网络的流向,并通过使用逐步较早层网络(progressively earlier layers)的特性来优化DeepMask做的预测。可以这样理解:要捕捉物体的总体外形,你必须高度理解你正在看的是什么(DeepMask);但要准确地框定出边界,你需要使用低层次的特性一直到像素(SharpMask)。基本上,我们的目标是要以最小的成本利用从网络的所有层获得的信息。

下面是由DeepMask产生并由SharpMask优化后的一些示例。为了简单展现可视化,我们只展示与图像中的物体最佳对齐的mask。但是系统还不完善,红色轮廓标出的是那些人类识别出来但是DeepMask没有的物体。

物体分类

DeepMask完全不知道具体的对象类型,因此,尽管它能框定狗和羊,它也不能区分它们。此外,DeepMask没有什么选择性,会为不是很有趣的图像区域生成mask。那么,我们如何缩小相关mask的范围,并识别图像中实际存在的物体呢?

正如你预期的一样,我们要再次转向深度神经网络。鉴于DeepMask产生的mask,我们训练一个单独的深度网络来对每一个mask的物体类型进行分类(“无”也是一个有效的答案)。我们采用区域卷积神经网络(Region-CNN),或者简称RCNN,这是ROSS Girshick(现在是FAIR的成员)首创的。RCNN有两个阶段:第一阶段是用来让计算机关注特定的图像区域;第二阶段用来识别区域中存在的物体。在开发RCNN时,可处理的第一阶段是相当原始的。通过使用DeepMask作为RCNN的第一阶段和利用深度网络,我们得到的检测精度显著提升,也获得了分割物体的能力。

为了进一步提高性能,我们还使用一个专门的网络架构来对每一个mask进行分类(RCNN的第二阶段)。正如我们所讨论的,真实世界的照片包含多种尺寸的物体,有的藏在背景中,有的杂乱一群,而且还经常被遮挡。标准深度网络在这种情况下就会遭遇困难。为了解决这个问题,我们提出了一种改进的网络,我们称之为MultiPathNet。正如它名字暗示的那样,MultiPathNet允许信息以多种路径通过网络,从而使其能够在多种图像尺寸和图像的背景中挖掘信息。

总之,我们的物体检测系统遵循一个三阶段的过程:(1)DeepMask生成初始物体mask, (2)SharpMask优化这些mask, (3)MultiPathNet识别每个mask框定的物体。这是我们整个系统的一些示例输出:

结果并不完美,但考虑到这种技术才诞生了几年而已,这样的结果也不差。

更加广泛的应用

来源:https://code.facebook.com/posts/561187904071636/segmenting-and-refining-images-with-sharpmask/?ref=mybridge.co

(0)

相关推荐