Facebook最新开源工具——不费吹灰之力识别图片中的对象

简介:

联合编译:高斐,Blake 

Facebook最新开源工具——不费吹灰之力识别图片中的对象

雷锋网注:Piotr Dollar于2014年成为FAIR研究科学家,主要研究领域为计算机视觉和机器学习,曾在MSR任职三年,并建立Anchovi Labs(于2012年被Dropbox收购)。2011年在加州理工大学获得计算机视觉实验室博士后学位,2007年于UCSD获得博士学位。在计算机视觉和机器学习方面已发表的最新论文有:Learning to Refine Object Segments (2016), A MultiPath Network for Object Detection (2016), Unsupervised Learning of Edges (2016), Metric Learning with Adaptive Density Discrimination (2016)等。本文着重介绍计算机图像分割技术及其应用,并对与本文密切相关的三篇论文的主要内容做简要概括。

计算机能否像人眼一样不费吹灰之力地识别一张照片包含的许多对象吗?

面对一个图像,人们能够轻松识别其中的对象,甚至能够识别图像中对象像素高低。在FAIR过程中,我们正在将机器视觉领域的研究推向一个新的发展阶段——我们的目标是使机器能够像人一样在像素层面理解图像和物体。

在过去几年里,深度卷积神经网络研究领域取得的进展和更为强大的计算架构的出现为机器视觉系统的精度和性能带来了突破性的提升与发展。我们目睹了图像分类(图像中的内容)与对象检测(对象的位置)两种技术取得的巨大进步(见下方图像中的a,b两个图片)。然而,这两种技术的发展仅仅是理解任意一幅图像或一段视频中最相关视觉内容的小小开端。近来,我们正在研发设计能够识别并分割一幅图像中的每个对象的技术,见下方图像右侧c图片,这种技术体现出机器视觉系统的一种关键性能,并将带来全新的应用。

Facebook最新开源工具——不费吹灰之力识别图片中的对象

促进我们在图像分割技术方面取得进步的主要新算法是与我们的Sharpmask 分割微调模块搭配运用的Deepmask分割框架。两种图像分割技术的结合使得FAIR的机器视觉系统具备检测与精确描述一幅图像中每一个物体的能力。在图像识别技术发展的最后阶段,我们运用一种专业化卷积网络,称之为MultiPathNet(多路径网络),旨在依照对象所属的类别(例如,人,狗,羊)为每一个物体标记掩码。稍后,我们将具体介绍这种专业化卷积网络的具体应用。

当前,我们正在为DeepMask+SharpMask和MultiPathNet编码,我们的研究论文和与研究相关的样本都对大众开放,希望我们的努力能够加速机器视觉领域的研究发展。我们将不断改善这些核心技术,与此同时,也将继续发表最新研究成果,更新向该研究领域开放的开源工具。

在像素中寻找模式

下面我们一起来看一下如何为这些算法建模。

大致瞥一眼下方的第一张照片,左边的一张,你看到了什么?一位摄影师正在操作他的老式相机。一块绿草地。图片背景里的建筑物。你也可能注意到其他无数细节。不过,一台机器可没有看到你描述的图片中的这些人和物,一幅图像被编码成为代表每一个像素颜色值的数组,如第二张照片,右边的一张。因而,我们该如何使机器视觉能够深度理解一幅图像,而不仅仅基于像素层面?

Facebook最新开源工具——不费吹灰之力识别图片中的对象

这可不是一项轻松的任务,因为在实物背景中,对象和场景都趋向无穷变化,对象的形状、外观、尺寸、位置、纹理与颜色无时无刻不在变化。综合考虑上述变化因素和实物场景的内在复杂性、变化的背景、光线条件、世界万物的多姿多彩,我们不难理解要使机器像人一样深度理解每一幅图像该是多么困难。

我们来了解一下深度卷积神经网络。深度网络的架构相对简单,包含经过训练的而非设计出的数以千万计的参数,而不是试图为对象检测技术程序化地定义基于规则的系统。这些深度卷积神经网络能够自动从成百上千万标注过的实例学习模型,当看过足够数量类似的例子,这类网络开始将学习所得的模式套用到新的图像中。深度网络被专门训练以便能够回答关于图像(分类)简单的“是/否”问答式问题,例如,一幅图像中是否有一头羊?

分割物体

我们应当如何将深度网络应用于对象检测与图像分割?我们在DeepMask中运用的技术是将分割看作大量两分法分类问题。首先,对于一幅图像中每一(重叠)部分,我们会问:“这个部分中是否包含一个对象”?其次,倘若对于一个特定的部分,第一个问题的答案为“是”,那么我们对该部分的每一个像素提问:“这个像素是该部分内中心物体的组成成分吗”?我们运用深度网络来回答这类简单问答式问题,通过把我们的网络设计得更为智能化,使计算方法能够适用于每一部分和每一个像素,我们能够快速发现并分割一幅图像中的所有对象。

DeepMask运用一种极为传统的前馈式深度网络设计方法。在此类网络中,随着网络层级逐渐加深,信息将变得愈来愈抽象,所包含的语义信息也将愈来愈丰富。例如,一个深层网络的初始层可能捕获边缘与斑点,而高级层将捕获更多的语义概念,如动物的脸或四肢。在设计过程中,这些高级层捕获的特征将在相当低的空间分辨率条件下(由于计算原因及为了保证这些特征不随一些像素位置的微小变化而变化)进行计算。这一点呈现出掩码预测的问题:高级层特征可以被用于预测那些用于捕获一个对象基本形状的掩码,但是不能精确地捕获对象的边缘信息。

我们为什么运用SharpMask模块?SharpMask对DeepMask的输出信息进行微调,生成能够更为精确地描绘对象边缘信息的高逼真掩码。DeepMask在网络的前馈式通道中粗略预测对象掩码,SharpMask在深层网络中使信息反向流通,并对DeepMask通过运用网络中初始层捕获的特征预测所得的信息进行微调。我们可以如此看待该过程:为了捕获对象的基本形状,需要对所观察的对象有高层次的理解(DeepMask),但是为了精确地捕获对象的边缘信息,需要依照像素高低反观低层次特征(SharpMask)。从本质上来讲,运用一个网络中所有层捕获的信息,同时监管小型额外的信息,这是我们的目标。

下方是由DeepMask生成,SharpMask微调得到的一些实例输出信息。为了保持所得对象形象的简洁性,我们只展示与图像中实际对象(人为标注)相一致的预测所得的掩码。需要注意的是,这一系统目前还不够完备,图像中呈现红色轮廓的对象是人为标注出的,而被DeepMask漏掉的信息。

Facebook最新开源工具——不费吹灰之力识别图片中的对象

给对象分类

DeepMask只能识别具体对象的类型,因而,尽管该框架能够详尽描述一条狗和一头羊,却不能对两者的差异进行区分。此外,DeepMask的性能并不是那么优越,生成的图像区域掩码可能不会太有趣。因而,我们应当如何缩小相关掩码集,进而识别那些实际存在的对象?

正如你可能预料到的,我们将再次运用深度神经网络。给定一个由DeepMask生成的掩码,我们训练一个独立的深度网络,以对每一个掩码的对象类型进行分类(且“任意一种分类”都不是有效地答案)。我们运用一个由Ross Girshick率先提出的基本参数——区域卷积神经网络,或缩写为RCNN。RCNN由两个阶段构成,第一个阶段用于注意某些图像区域,第二个阶段运用一个深度网络识别呈现出的对象。在研发RCNN的过程中,第一个处理阶段是极为原始的,通过在RCNN第一阶段运用DeepMask,并利用深度网络的力量,我们在对象检测精度方面得到了很大的提升,同时也具备了分割图像的能力。

为了进一步提高深度神经网络的性能,我们也聚焦于使用一种专业化的网络架构对每一种掩码进行分类处理(在RCNN的第二阶段)。正如我们前面提到的,现实世界的照片所包含的对象具有尺度多,背景多,分布混乱,经常被遮挡的特点。对于这样的情况,标准的深度网络将会出现技术上的难题,为了解决这一难题,我们提出了一种经过改进的网络,将其命名为多路径网络(MultiPathNet)。由其名字可以得知,多路径网络允许信息在网络中沿多条路径流通,允许这种网络在多图像尺度下和周围的图像背景下利用流通的信息。

总之,我们的对象检测系统是一个由三个阶段构成的检测过程:(1)DeepMask生成初始对象掩码,(2)SharpMask对这些掩码进行微调,(3)MultiPathNet识别每一个掩码描述的对象。以下为我们的完整系统生成的一些实例输出结果:

Facebook最新开源工具——不费吹灰之力识别图片中的对象

由于几年前尚未产生能够执行该简单操作的技术,我们的对象检测系统虽然不甚完美,却也不至于低劣。

广泛应用

视觉识别技术具有广泛的潜在应用前景。研发这一现有的计算机视觉技术,使得计算机能够识别照片中的物体,例如,不通过给每一张照片直接添加标签来搜索具体图像将会变得更为简单。即使不考虑图像字幕,盲人群体也能够了解他们朋友分享的图片信息,因为该系统能够向他们传递这些信息。

前不久,我们已经验证过为盲人研发的技术,盲人群体能够借助这种技术评估照片,并描述照片的内容。目前,当有视觉障碍的用户在其信息流中遇到图像时,仅通过听取分享照片的人的名字和“照片”两字,便能够轻松浏览Facebook中的照片。我们的目的是为盲人用户提供更为丰富的图片信息,例如“照片中包含沙滩,树和三个面带笑容的人”。此外,利用我们研发的分割技术,我们设定的目标是为盲人用户提供身临其境的体验,即用户用手指点击图像中的任意位置,系统将描述其点击的内容,如此用户便能够“看”照片。

随着我们所研发的技术的进步,我们将继续改善检测算法与分割算法。你可以想象:有一天,图像检测、分割与识别技术将用于增强现实,例如在商业、医疗卫生及其他领域的应用。

Facebook最新开源工具——不费吹灰之力识别图片中的对象

此外,视频中的物体是即时移动,交互变化的,如何将这些技术应用于视频中,这将成为我们面临的第二个挑战。在运用计算机视觉技术看视频,理解视频内的即时内容,并对这些内容进行分类三个方面,我们已经取得了一定的进展。实时分类技术有助于挑选出Facebook中一些相关且重要的直播视频,而将这些精准的技术应用于在时间和空间内检测场景,物体和动作,终有一天将会实现实时解说。能够继续推动这种最优技术的发展,为Facebook用户提供更好地体验,我们为此感到兴奋。

以下是对与本文内容密切相关的三篇论文主要内容的简要概括:

 Facebook最新开源工具——不费吹灰之力识别图片中的对象

学习分割候选对象(Learning to Segment Object Candidates)

摘要

近期以来对象检测系统主要倚靠于两个关键步骤:1.尽可能高效地被预测出一系列对象检测提议,2.这一系列候选提议随即被传递到对象分类器中。这些方法被证实在实现当下最好的检测表现的同时还能保持极快的速度。在本文中我们提出了一种新的方式来生成对象提议,介绍一种基于识别卷积网络的方法。我们的模型结合了两个目标一起训练:给定一个图像部分,系统输出的第一部分是不知类别的分割掩码,而系统输出的第二部分是整个对象里面可能是中心的区块部分。在测试中,模型被有效应用到整个测试图像中并且生成一系列的分割掩码,它们中每一个都被分配了相应的对象相似分值。测试表明我们的模型在对象检测提议算法中实现了超过当下最佳的表现结果。特别是与之前的方式对比,我们的模型使用更少的建议获得了更好的对象检测表现。另外我们的结果也表明我们的模型能推论出未知的类别(在训练中未曾见过的)。与之前的所有生成对象掩码方式不同,我们并不倚靠边缘、超像素或者其他任何形式的低阶分割技术。

 Facebook最新开源工具——不费吹灰之力识别图片中的对象


学习改善对象分割技术(Learning to Refine Object Segments)

摘要

对象分割要求对象层面的信息和低阶的像素数据。对于前馈网络来说这提出了一个挑战:卷积网络中的较低层能捕获丰富的空间信息,网络中的高层对于对象级别的知识进行编码,但是存在姿势和外观等不变的因素。在本文中我们提出了增加前馈网络(与一种自上而下的细化方法)来进行对象分割。这种自下而上/自上而下的架构能够有效地生成高保真的对象掩码。与跳跃连接类似的是,我们的方法利用了所有网络层的特征。与跳跃连接不同的是,我们的方法不会试图在每一层输出独立的预测。相反,我们在前馈传递中首先输出一个初步的“掩码”,然后在自上而下的传递过程中改进掩码(使用低阶成功层级中的特征)。本方法十分简单、迅速、有效。基于近期的DeepMask网络来生成对象提议,我们实现了平均10-20%的准确率提升。另外通过优化整体的网络架构,我们的方法SharpMask比原本的DeepMask快了50%。

Facebook最新开源工具——不费吹灰之力识别图片中的对象


用于对象检测的多路径网络(A MultiPath Network for Object Detection)

摘要

最近的COCO对象检测数据集提出了几个新的挑战,特别是它包含了广泛尺度范围的对象,更少的原型图片,同时要求更精准的定位。为了解决这些挑战,我们测试了基于Fast R-CNN对象检测器的三种修改方法:1.跳跃连接给予检测器能够权限获取多重网络层级中的特征 2. 一个中心架构在多重对象处理中开发出对象文本 3. 一个能提升定位的内部损失函数以及相应的网络调整。这些调整的结果是信息能够沿着我们网络中多重路径流动,包括多重网络层级的特征以及多重物体的视图。我们将改进的分类器称为“MultiPath”网络。我们将MultiPath网络与DeepMask对象建议方法组合起来,结合之后的系统在基准Fast R-CNN检测器与选择搜索结合之后的表现基础上提高了66%(该系统在COCO2015 检测与分割挑战中都获得了第二名)。


本文作者:高婓


本文转自雷锋网禁止二次转载,原文链接

相关文章
|
机器学习/深度学习 算法 决策智能
【重磅开源】Facebook开源 Nevergrad:一种用于无梯度优化的开源工具
【重磅开源】Facebook开源 Nevergrad:一种用于无梯度优化的开源工具
202 0
|
缓存 数据可视化 测试技术
开源多年后,Facebook这个调试工具,再登Github热门榜
让许多工程师合作开发大型应用大多会面临一个挑战,通常没有一个人知道每个模块是如何工作的,这种技能会让开发新功能、调查Bug或优化性能变得困难,为了解决这个问题,Facebook创建并开源了Flipper,一个可扩展的跨平台的调试工具,用来调试 iOS 和 Android 应用。近日又双叒登上了Github热榜。
|
前端开发 JavaScript 测试技术
Facebook 开源可扩展文本编辑器 Lexical
Meta(原 Facebook)近日开源可扩展文本编辑器 Lexical,源代码托管在 GitHub 上采用 MIT 许可证。
546 0
Facebook 开源可扩展文本编辑器 Lexical
|
XML jenkins Java
Facebook开源静态代码分析工具Infer介绍
Infer是Facebook公司的一个开源的静态分析工具。Infer 可以分析 Objective-C, Java 或者 C 代码,用于发现潜在的问题。其作用类似于sonar和fortify。Infer更倾向于发现代码中的空指针异常、资源泄露以及内存泄漏的问题。
Facebook开源静态代码分析工具Infer介绍
|
机器学习/深度学习 人工智能 文字识别
图神经网络版本的PyTorch来了,Facebook开源GTN框架,还可对图自动微分
近日,Facebook的AI研究院发表了一篇论文「DIFFERENTIABLE WEIGHTED FINITE-STATE TRANSDUCERS」,开源了用于图网络建模的GTN框架,操作类似于PyTorch这种传统的框架,也可以进行自动微分等操作,大大提高了对图模型建模的效率。
345 0
图神经网络版本的PyTorch来了,Facebook开源GTN框架,还可对图自动微分
|
移动开发 Java 程序员
Facebook 将神奇动画引擎 Pop 开源了!
Facebook 2月发布的新闻类应用Paper,因为其灵动的用户界面和交互,成为近来最令人眼前一亮的移动产品之一。 而这个产品的背后是2011年Facebook收购的Push Pop Press,创始人是分别在Apple任设计师和工程师的Mike Matas与Kimon Tsinteris。他们的合作者还有传奇人物Bret Victor。他们为美国前副总统Al Gore开发的电子书Our Choice当时就曾技惊四座。
348 0
Facebook 将神奇动画引擎 Pop 开源了!
|
PHP C语言 开发者
Facebook 发布开源编程语言 Hack
Facebook周四发布一款名为“Hack”的全新编程语言,并声称该语言将能使代码的编写和测试更加高效快速。Facebook已在公司内部使用该语言超过一年时间,现在将以开源的形式将其正式发布。
430 0
Facebook 发布开源编程语言 Hack
|
存储 安全 算法
Conceal —— Facebook推出的android数据加密的开源APIandroid数据加密的开源API
现如今很多的智能手机,都支持把应用安装到SD卡中,这会帮用户节省很多空间,但是许多黑客也会利用这一点窃取用户的隐私。一般情况下,应用都有SD卡的读写权限,当然他也可以读取到其他应用,存储在SD卡上的数据。这意味着如果你安装了恶意的应用,他就可以轻易的获取SD卡上的所有数据。
382 0
Conceal —— Facebook推出的android数据加密的开源APIandroid数据加密的开源API
|
SQL 存储 前端开发
Facebook 在 2013 年的开源贡献
自从 Facebook 的第一行PHP代码,第一句 MySQL 的 INSERT 语句以来,开源就已经是我们工程哲学中的一个重要的部分。
206 0
Facebook 在 2013 年的开源贡献
|
SQL 存储 分布式计算
Facebook 正式开源其大数据查询引擎 Presto
Facebook 正式宣布开源 Presto —— 数据查询引擎,可对250PB以上的数据进行快速地交互式分析。该项目始于 2012 年秋季开始开发,目前该项目已经在超过 1000 名 Facebook 雇员中使用,运行超过 30000 个查询,每日数据在 1PB 级别。Facebook 称 Presto 的性能比诸如 Hive 和 Map*Reduce 要好上 10 倍有多。
362 0
Facebook 正式开源其大数据查询引擎 Presto