1. 一个完全集成的分割工作流(segmentation workflow),允许创建图像分割数据库和将一个分割网络的输出可视化。 2.DIGITS 模型库(model store),一个公开的在线知识库,可下载网络描述和预先训练的模型。 这篇文章将探索图像分割的对象。将使用 DIGIT 5 来教一个神经网络识别和定位 SYNTHIA 数据库中合成图像里的汽车、路人、路标以及城市里的其它物体 : 图 1 展示了本文大概要做的内容
图 1:使用 DIGITS 5.0 的采样可视化交替展示了输入图像、FCN Alexnet 预测的一个 overlay,FCN-8 预测和 ground truth 的 overlay。 从图像分类到图像分割 假设你想要为自动驾驶汽车设计图像理解软件。偶然间你听说了 Alexnet、GoogleLeNet、VGG-16 以及其他图像分类神经网络架构,你或许会从这些网络开始做起。图像分类是计算机程序告诉你图像中的目标是狗的一种计算过程。 一个图像分类模型输出的是离散概率分布:经过训练的模型识别的每一个分类都有一个 0 到 1 之间的一个数字,也就是一个概率。图 2 说明了在 DIGITS 中使用 Alexnet 进行的猫的图像分类样例。效果非常好:要知道 Alexnet 已经用 1000 个类别的不同对象训练过了,包括动物、乐器、蔬菜、汽车和其他物品,得到的信度高达 99%,一台机器能够正确地将图像中的主体分类为猫科。
图 2:PASCAL VOC 数据库中 Alexnet 分类的一只猫的图像 但是如果你给一只猫和一只狗的图像分类,会发生什么?常识会让你相信该神经网络会给这两只动物分配相等的概率分布。让我们来试一下:图 3 显示了结果。预测中混合了猫和狗,但是 AlexNet 并没有像我期望的那样给出对半的概率。中间的那张图的前 5 个预测中事实上没有猫。这个结果挺让人失望,但是另一方面 Alexnet 用 120 万张图像构成的一个「小」世界训练过了,它在这个小世界中只看到一个对象,所以大家不能合理地期望它能很好的呈现多种对象。
图 3:PASCAL VOC 数据集中的猫和狗的图像的 Alexnet 分类 分类网络的另一个局限是它们无法区分图像中物体的位置。但是这可以理解,因为它们没有经过这样的训练,然而这确是计算机视觉里的主要障碍:如果一辆自动驾驶汽车不能确定道路的位置,它可能就无法开的很远! 图像分割为这些短板解决了一些问题。不单独为整张图像预测一个概率分布,而是将图像分成多个区块,每个区块有自己的概率分布。在最常见的使用中,图像被分解到像素水平,atv,每个像素都可被分类:对于图像中的每个像素来说,神经网络被训练用来预测每个像素的分类。图像分割通常都会生成一个与输入图像尺寸相同的标签图像,其像素会根据它们的颜色来编码。图 4 展示了一张图像中四个不同类别分割的例子:桌子、椅子、沙发和盆栽。
图 4:PASCAL VOC 数据集中的图像分割例子(白色区域是未定义的像素如对象的轮廓和未分类的对象) 在图像进一步细化实例感知图像分割(Instance-aware Image Segmentation,IASI)中,神经网络学习识别图像中每一个对象的轮廓。这在实际应用中非常有用,它必须能识别图像中出现的类别,即便是在区别不明显的情况下,比如图 5:中间的图像是图像分割标签,而最右边的图像是 IAIS 标签图像(注意颜色编码是如何唯一确定出每一个人的)。这里就不深入将 IAIS 的问题,主要说一说实例分割(instance segmentation);但是建议大家可以查看一下 Facebook 的 SharkMask。
图 5:图像分割(中间)vs. 实例感知图像分割(右)。图像来源于 PASCAL VOC 数据集。 让我们看一看如何设计一个能分割一张图像的网络。 从卷积神经网络到全卷积网络(FCN) 上一节介绍中,区分了图像分类模型(为每张图像做概率分布预测)和图像分割模型(为每个像素预测概率分布)。总体上,这两种模型听上去差不多,你或许认为解决这两个问题的是同一个技术。毕竟,它只是增加了一个空间维度。本文将向你展示仅仅是一些小小的调整也足够将一个分类神经网络转换成一个语义分割神经网络,并将用到在论文《Fully Convolutional Networks for Semantic Segmentation》中首次提到的技术(我称之为 FCN)。 (责任编辑:本港台直播) |