0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PolygonRNN++自动标注使用CNN提取图像特征

zhKF_jqr_AI 来源:未知 作者:工程师曾玲 2018-08-18 11:49 次阅读

标注图像中的物体掩码是一项非常耗时耗力的工作(人工标注一个物体平均需要20到30秒),但在众多计算机视觉应用中(例如,自动驾驶、医学影像),它又是不可或缺的。而现有的自动标注软件,大多基于像素,因此不够智能,特别是在颜色接近的相邻物体上表现不好。有鉴于此,多伦多大学的研究人员Lluís Castrejón等提出了Polygon-RNN标注系统,获CVPR 2017最佳论文提名。多伦多大学的研究人员David Acuna、Huan Ling、 Amlan Kar等又在CVPR 2018提交了PolygonRNN++,Polygon-RNN的改进版本,并于近日发布了PyTorch实现。

Polygon-RNN++架构

Polygon-RNN整体架构如下图所示:

和之前的Polygon-RNN类似,Polygon-RNN++使用了CNN(卷积神经网络)提取图像特征,然后使用RNN(循环神经网络)解码多边形顶点。为了提高RNN的预测效果,加入了注意力机制(attention),同时使用评估网络(evaluator network)从RNN提议的候选多边形中选出最佳。最后使用门控图神经网络(Gated Graph Neural Network,GGNN)上采样,以提高输出分辨率。

CNN部分,借鉴了ResNet-50的做法,减少步长(stride),引入空洞卷积(dilation),从而在不降低单个神经元感受野(receptive field)的前提下,放大输入特征映射。此外还引入了跳跃连接(skip connection),以便同时捕捉边角等低层细节和高层语义信息。剩下的配置都是比较常规的,包括3x3卷积核、组归一化(batch normalization)、ReLU、最大池化(max-pooling)等。

蓝色张量传给GNN,橙色张量传给RNN

RNN部分,使用了双层ConvLTSM(3x3核,64/16通道,每时步应用组归一化),以保留空间信息、降低参数数量。网络的输出为(D x D) + 1元素的独热编码。前D x D维表示可能的顶点位置(论文的试验中D = 28),而最后一个维度标志多边形的终点。

为了提升RNN部分的表现,加入了注意力机制。具体来说,在时步t,计算加权特征映射:

PolygonRNN++自动标注使用CNN提取图像特征

上式中,x为跳跃特征张量,h为隐藏状态张量,f1、f2使用一个全连接层将h1,t、h2,t映射至RDxDx128。fatt累加输入之和,通过一个全连接层将其映射至DxD。◦为哈达玛积(Hadamard product)。直观地说,注意力机制使用之前的RNN隐藏状态控制图像特征映射中的特定位置,使RNN在下一时步仅仅关注相关信息。

另外,第一个顶点需要特别处理。因为,给定多边形之前的顶点和一个隐式的方向,下一个顶点的位置总是确定的,除了第一个顶点。因此,研究人员增加了一个包含两个DxD维网络层的分支,让第一层预测边,第二层预测顶点。测试时,第一个顶点取样自该分支的最后一层。

第一个顶点的选择很关键,特别是在有遮挡的情况下。传统的集束搜索基于对数概率,因此不适用于Polygon-RNN++(在遮挡边界上的点一般在预测时会有很高的对数概率,减少了它被集束搜索移除的机会)。因此,Polygon-RNN++使用了一个由两个3x3卷积层加上一个全连接层组成的评估网络:

该评估网络是单独训练的,通过训练最小化均方误差:

PolygonRNN++自动标注使用CNN提取图像特征

上式中,p为网络的预测IoU,mvs和m分别为预测掩码、实际掩码。

在测试时,基于评分前K的第一个顶点预测通过经典集束搜索(对数概率,束宽为B)生成多边形。对应K个第一个顶点,共有K个多边形,然后让评估网络从中选出最优多边形。在论文的试验中,K = 5. 之所以首先使用集束搜索,而不是完全使用评估网络,是因为后者会导致推理时间过长。在B = K = 1的设定下,结合集束搜索和评估网络的配置,可以达到295ms每物体的速度(Titan XP)。

与人交互时,人工纠正会传回模型,让模型重新预测多边形的剩余顶点。

如前所述,RNN输出的D x D维的多边形,D取28. 之所以不取更大的D,是为了避免超出内存的限制。为了增加最终的输出分辨率,Polygon-RNN++使用了门控图神经网络进行上采样,将顶点视作图的节点,并在相邻节点中间增加节点。

GGNN定义了一个传播模型,将RNN推广至任意图,可以在每个节点上生成输出前有效地传播信息。

PolygonRNN++自动标注使用CNN提取图像特征

上式中,V为图的节点集,xv为节点v的初始状态,hvt为节点v在时步t的隐藏状态。矩阵A ∈ R|V|x2N|V|决定节点如何互相传递信息,其中N表示边的类型数。在试验中使用了256维GRU,传播步数T = 5。

节点v的输出定义为:

PolygonRNN++自动标注使用CNN提取图像特征

f1和f2为MLP(多层感知器),试验中的大小分别为256 x 256、256 x 15 x 15.

如前所述,CNN部分112 x 112 x 256的特征映射(蓝色张量)传给GGNN。在图中的每个节点v周围(拉伸后),提取一个S x S块,得到向量xv,提供给GGNN。在传播过程之后,预测节点v的输出,即D' x D'空间网格上的位置。该网格以原位置(vx, vy)为参照,因此该预测任务其实是一个相对放置问题,并且可以视作分类问题,并基于交叉熵损失训练。训练的标准答案(ground truth)为RNN部分的输出,如果预测和标准答案中的节点的差异超过阈值(试验中为3格),则视为错误。

在试验中,研究人员令S = 1,D' = 112(研究人员发现更大的D'不能改善结果)。

基于强化学习训练

Polygon-RNN基于交叉熵训练。然而,基于交叉熵训练有两大局限:

MLE过度惩罚了模型。比如,预测的顶点虽然不是实际多边形的顶点,但在实际多边形的边上。

优化的测度和最终评估测度(例如IoU)大不一样。

另外,训练过程中传入下一时步的是实际多边形而不是模型预测,这可能引入偏差,导致训练和测试的不匹配。

为了缓解这些问题,Polygon-RNN++只在初始阶段使用MLE训练,之后通过强化学习训练。因为使用强化学习,IoU不可微不再是问题了。

在强化学习的语境下,Polygon-RNN++的RNN解码器可以视作序列决策智能体。CNN和RNN架构的参数θ定义了选择下一个顶点vt的策略pθ。在序列结束后,我们得到奖励r = IoU(mask(vs, m))。因此,最大化奖励的损失函数为:

PolygonRNN++自动标注使用CNN提取图像特征

相应地,损失函数的梯度为:

PolygonRNN++自动标注使用CNN提取图像特征

实践中常采用蒙特卡洛采样计算期望梯度。但是这一方法方差很大,而且在未经恰当地基于情境归一化的情况下非常不稳定。因此,Polygon-RNN++采用了自我批判(self-critical)方法,使用模型的测试阶段推理奖励作为基线:

PolygonRNN++自动标注使用CNN提取图像特征

另外,为了控制模型探索的随机性,Polygon-RNN++还在策略softmax中引入了温度参数τ。试验中,τ = 0.6.

试验结果

下图展示了Polygon-RNN++在Cityscapes数据集上的结果。Cityscapes包含2975/500/1525张训练/验证/测试图像,共计8个语义分类。

PolygonRNN++自动标注使用CNN提取图像特征

可以看到,在各个分类上,Polygon-RNN++都超越了其他模型,并且高于其中表现最好的模型差不多10%的IoU。事实上,在汽车(cars)分类上,Polygon-RNN++(79.08)战胜了人类(78.60)。而消融测试的结果也令人满意。

另外,Polygon-RNN++对噪声的鲁棒性良好:

PolygonRNN++自动标注使用CNN提取图像特征

Polygon-RNN++在跨领域的数据集上表现同样出色,这说明Polygon-RNN++的概括性很好。

PolygonRNN++自动标注使用CNN提取图像特征

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cnn
    cnn
    +关注

    关注

    3

    文章

    326

    浏览量

    21291
  • pytorch
    +关注

    关注

    2

    文章

    759

    浏览量

    12821

原文标题:Polygon-RNN++图像分割数据集自动标注

文章出处:【微信号:jqr_AI,微信公众号:论智】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    手指静脉图像特征提取和识别前期研究

    图像处理,手指静脉图像特征提取和识别前期研究
    发表于 05-11 11:51

    蠕虫病毒特征自动提取原理与设计

    目前网络入侵检测系统(NIDS)主要利用特征码检测法来监测与阻止网络蠕虫,而蠕虫特征提取仍是效率低的人工过程。为解决这个问题提出了基于陷阱网络的蠕虫特征
    发表于 08-12 08:51 41次下载

    基于子块特征的遥感图像边缘灰提取

    遥感图像为地理信息系统数据的更新和应用提供了有利条件,遥感图像特征提取是其中的关键问题。针对灰色绝对关联度计算模型的特点,提出一种基于灰色绝对关联度和图像子块标
    发表于 03-01 14:15 7次下载

    基于本体的图像自动标注李丽莎

    基于本体的图像自动标注_李丽莎
    发表于 03-16 08:00 1次下载

    小波提取图像特征方法研究

    的细节分量有高度的局部相关性 ,这为特征提取提供了有力的条件。利用小波变换进行纹理特征提取 ,在纹理分析、图像压缩、工业品表面缺陷检测中得到大量的应用。
    发表于 12-01 14:47 1.2w次阅读
    小波<b class='flag-5'>提取</b><b class='flag-5'>图像</b><b class='flag-5'>特征</b>方法研究

    基于卷积神经网络的图像标注模型

    针对图像自动标注中因人工选择特征而导致信息缺失的缺点,提出使用卷积神经网络对样本进行自主特征学习。为了适应
    发表于 12-07 14:30 4次下载
    基于卷积神经网络的<b class='flag-5'>图像</b><b class='flag-5'>标注</b>模型

    基于图像自动标注技术研究

    现有图像自动标注技术算法可以大致划分为基于语义的标注算法、基于矩阵分解的标注算法、基于概率的标注
    发表于 12-14 11:46 2次下载

    基于SAE的自动图像标注算法

    自动图像标注是一个包含众多标签、多样特征的富有挑战性的研究问题,是新一代图像检索与图像理解的关键
    发表于 12-28 10:59 0次下载
    基于SAE的<b class='flag-5'>自动</b><b class='flag-5'>图像</b><b class='flag-5'>标注</b>算法

    井壁图像上平面地质特征自动提取

    为实现井壁图像上平面地质特征自动提取,研究了图像中单周期正弦曲线的检测方法。提出一种改进的霍夫变换,该方法基于正弦曲线上的三个相关联点在二
    发表于 01-09 10:48 1次下载

    基于隐马尔科夫模型和卷积神经网络的图像标注方法

    开发大规模图像库的搜索和浏览算法,使得图像自动标注的重要性日益增强。基于隐马尔科夫模型(HMM)与卷积神经网络(CNN),我们提出了一种新的
    发表于 11-16 17:17 4次下载
    基于隐马尔科夫模型和卷积神经网络的<b class='flag-5'>图像</b><b class='flag-5'>标注</b>方法

    基于特征交换的卷积神经网络图像分类算法

    针对深度学习在图像识别任务中过分依赖标注数据的问题,提岀一种基于特征交换的卷积神经网络(CNN图像分类算法。结合
    发表于 03-22 14:59 27次下载
    基于<b class='flag-5'>特征</b>交换的卷积神经网络<b class='flag-5'>图像</b>分类算法

    基于特征的基图像提取和重构方法

    图像作为一种典型信号,理论上可由一系列基本信号构成。为寻找一组可重构图像的基本信号,提出了基于特征的基图像提取和重构方法,使得可由任意
    发表于 06-16 16:01 4次下载

    可视化CNN特征

    作者:Ahzam Ejaz 来源: DeepHub IMBA 卷积神经网络(cnn)是一种神经网络,通常用于图像分类、目标检测和其他计算机视觉任务。CNN的关键组件之一是特征图,它是通
    的头像 发表于 04-12 10:25 580次阅读

    自动驾驶点云数据标注的步骤有哪些

    以下几个步骤: 数据预处理:在进行点云数据标注之前,需要对数据进行预处理,如去除噪声、调整图像大小和质量等。 特征提取:在预处理之后,需要对数据进行特征提取,如使用
    的头像 发表于 04-21 17:50 2033次阅读

    cnn卷积神经网络算法 cnn卷积神经网络模型

    cnn卷积神经网络算法 cnn卷积神经网络模型 卷积神经网络(CNN)是一种特殊的神经网络,具有很强的图像识别和数据分类能力。它通过学习权重和过滤器,
    的头像 发表于 08-21 17:15 1125次阅读