温州信息港

当前位置:

计算机视觉八大任务全概述PaddlePa

2019/05/14 来源:温州信息港

导读

前言:来自百度的深度学习工程师,围绕计算机视觉领域的八大任务,包括:图像分类、目标检测、图象语义分割、场景文字辨认、图像生成、人体关键点检测

前言:来自百度的深度学习工程师,围绕计算机视觉领域的八大任务,包括:图像分类、目标检测、图象语义分割、场景文字辨认、图像生成、人体关键点检测、视频分类、度量学习等,进行了较为详细的综述并形成此文。

这篇综述中,介绍了这些任务的基本情况,和目前的技术进展、主要的模型和性能比较等。而且还逐一附上了GitHub传送门,用于更进一步的学习与安装实践指南。其中不少教程还是用中文写成,非常友好。这篇综述全程干货,推荐收藏阅读。

上篇

计算机视觉(Computer Vision)是研究如何使机器看的科学,更进一步的说,是使用摄像机机和电脑代替人眼对目标进行识别、跟踪和测量等的机器视觉,并通过电脑处理成为更合适人眼观察或传送给仪器检测的图象。

形象地说,就是给计算机安装上眼睛(摄像机)和大脑(算法),让计算机像人一样去看、去感知环境。计算机视觉技术作为人工智能的重要核心技术之一,已广泛应用于安防、金融、硬件、营销、驾驶、医疗等领域。本文上篇中,我们将介绍基于PaddlePaddle的四种计算机视觉技术及其相关的深度学习模型。

1、图像分类

图象分类是根据图像的语义信息对不同类别图像进行辨别,是计算机视觉中重要的基础问题,是物体检测、图像分割、物体跟踪、行为分析、人脸识别等其他高层视觉任务的基础。

图象分类在许多领域都有着广泛的应用。如:安防领域的人脸辨认和智能视频分析等,交通领域的交通场景识别,互联领域基于内容的图象检索和相册自动归类,医学领域的图象识别等。

得益于深度学习的推动,图像分类的准确率大幅度提升。在经典的数据集ImageNet上,训练图象分类任务经常使用的模型,包括AlexNet、VGG、GoogLeNet、ResNet、Inception-v4、MobileNet、MobileNetV2、DPN(Dual Path Network)、SE-ResNeXt、ShuffleNet等。

△ AlexNet

△ VGG

△ GoogLeNet

△ ResNet

△ Inception-v4

△ MobileNet

△ SE-ResNeXt

△ ShuffleNet

模型的结构和复杂程度都不一样,终究得到的准确率也有所区分。下面这个表格中,列出了在ImageNet 2012数据集上,不同模型的top-1/top-5验证准确率。

△ 图像分类系列模型评估结果

在我们的GitHub页面上,提供上述与训练模型的下载。以及详细介绍了如何使用PaddlePaddle Fluid进行图像分类任务。包括安装、数据准备、模型训练、评估等等全部过程。还有将Caffe模型转换为PaddlePaddle Fluid模型配置和参数文件的工具。

上述页面的传送门在此:

二、目标检测

目标检测任务的目标是给定一张图像或是一个视频帧,让计算机找出其中所有目标的位置,并给出每个目标的具体种别。

对于人类来讲,目标检测是一个非常简单的任务。但是,计算机能够看到的是图象被编码之后的数字,很难解图象或是视频帧中出现了人或是物体这样的高层语义概念,也就更加难以定位目标出现在图象中哪个区域。

与此同时,由于目标会出现在图像或是视频帧中的任何位置,目标的形态千变万化,图象或是视频帧的背景千差万别,诸多因素都使得目标检测对计算机来说是一个具有挑战性的问题。

在目标检测任务中,我们主要介绍如何基于PASCAL VOC、MS COCO数据训练通用物体检测模型,包括SSD模型、PyramidBox模型、R-CNN模型。

SSD模型,Single Shot MultiBox Detector,是一种单阶段的目标检测器。与两阶段的检测方法不同,单阶段目标检测其实不进行区域推荐,而是直接从特征图回归出目标的边界框和分类概率。SSD 应用了这类单阶段检测的思想,并且对其进行改进:在不同尺度的特征图上检测对应尺度的目标,是目标检测领域较新且效果较好的检测算法之一,具有检测速度快且检测精度高的特点。

△ SSD目标检测模型结构

△ SSD目标检测可视化

△ 目标检测SSD模型评估结果

在GitHub上,我们更详细的介绍了如何下载、训练、使用这1模型。

传送门在此:

PyramidBox模型,百度自主研发的人脸检测模型,是一种语境辅助的单次人脸检测新方法,能够解决在不受控制的环境中检测小的、模糊的及部份遮挡的人脸时的问题,模型于18年3月份在WIDER Face数据集上取得名。

△ Pyramidbox 人脸检测模型

△ Pyramidbox 预测可视化

△ PyramidBox模型评估结果

如果想进一步了解这个模型,传送门在此(而且是全中文指导):

R-CNN系列模型,区域卷积神经络(R-CNN)系列模型是典型的两阶段目标检测器,相较于传统提取区域的方法,R-CNN中RPN络通过共享卷积层参数大幅提高提取区域的效力,并提出高质量的候选区域。Faster R-CNN和Mask R-CNN是R-CNN系列的典型模型。

Faster R-CNN 区域生成络(RPN)+Fast R-CNN的实现,将候选区域生成、特征提取、分类、位置精修统一到一个深度络框架,大大提高运行速度。

Mask R-CNN在原有Faster R-CNN模型基础上添加分割分支,得到掩码结果,实现了掩码和类别预测关系的解藕,是经典的实例分割模型。

△ Faster R-CNN 结构

△ Faster R-CNN 预测可视化

△ Mask R-CNN结构

△ Mask R-CNN 预测可视化

△ Faster R-CNN评估结果

同样,如果你想进一步学习R-CNN安装、准备、训练等,可以前往下面这个传送门:

三、图象语义分割

图像语意分割,顾名思义是将图像像素按照表达的语义含义的不同进行分组/分割。

图象语义是指对图象内容的理解,例如,能够描绘出什么物体在哪里做了什么事情等,分割是指对图片中的每个像素点进行标注,标注属于哪一类别。近年来用在无人车驾驶技术中分割街景来避让行人和车辆、医疗影象分析中辅助诊断等。

分割任务主要分为实例分割和语义分割,实例分割是物体检测加上语义分割的综合体,上文介绍的Mask R-CNN是实例分割的经典络结构之一。在图像语义分割任务中,我们主要介绍统筹准确率和速度的ICNet,DeepLab中、履行效果的DeepLab v3+。

DeepLab v3+,DeepLab语义分割系列络的作,通过encoder-decoder进行多尺度信息的融会,同时保留了原来的空洞卷积和ASSP层, 其骨干络使用了Xception模型,提高了语义分割的健壮性和运行速率,在 PASCAL VOC 2012 dataset获得新的state-of-art performance,89.0mIOU。

△ DeepLab v3+ 基本结构

△ DeepLab v3+ 评估结果

照例,GitHub传送门在此(中文):

ICNet,Image Cascade Network,主要用于图像实时语义分割,主要思想是将输入图象变换为不同的分辨率,然后用不同计算复杂度的子络计算不同分辨率的输入,然后将结果合并。ICNet由三个子络组成,计算复杂度高的络处理低分辨率输入,计算复杂度低的络处理分辨率高的络,通过这种方式在高分辨率图象的准确性和低复杂度络的效率之间获得平衡。

△ ICNet络结构

△ ICNet可视化

△ ICNet评估结果

进一步上手实践的传送门在此(也是中文):

4、场景文字辨认

许多场景图象中包含着丰富的文本信息,对理解图像信息有着重要作用,能够极大地帮助人们认知和理解场景图象的内容。场景文字辨认是在图像背景复杂、分辨率低下、字体多样、分布随意等情况下,将图像信息转化为文字序列的过程,可认为是一种特别的翻译进程:将图像输入翻译为自然语言输出。场景图像文字辨认技术的发展也促进了一些新型应用的产生,如通过自动识别路牌中的文字帮助街景运用获取更加准确的地址信息等。

在场景文字辨认任务中,我们介绍如何将基于CNN的图象特点提取和基于RNN的序列翻译技术结合,免除人工定义特征,避免字符分割,使用自动学习到的图像特点,完成字符识别。这里主要介绍CRNN-CTC模型和基于注意力机制的序列到序列模型。

CRNN-CTC模型,采取CNN+RNN+CTC架构,卷积层使用CNN,从输入图象中提取特点序列、循环层使用RNN,预测从卷积层获得的特征序列的标签(真实值)散布、转录层使用CTC,把从循环层获取的标签分布通过去重整合等操作转换成终的辨认结果。

基于注意力机制的序列到序列模型,提出了基于attention机制的文本辨认方法,不需要检测,直接输入图片进行辨认,对于识别字符类别数很少的场景很实用,例如车牌识别、自然场景图片的主要关键词提取等。同时也不要求识别文本必须单行排列,双行排列,多行排列都可以。在训练过程中则不需要文本框的标注,训练数据的收集变得很方便。

△ CRNN-CTC模型结构

△ 基于注意力机制的序列到序列模型结构

△ OCR模型评估结果

GitHub传送门在此(中文友好):

下篇

上篇中我们介绍了计算机视觉技术在图像分类、目标检测、图像语义分割、场景文字辨认四大基本任务场景下,如何帮助计算机从单个或者一系列的图片中提取分析和理解的关键信息。当下,视频在人们生活中愈来愈重要,伴随着技术成熟度的提高,计算机视觉技术的突破也从静态图像辨认的看到转向了视频理解的看懂。

接下来,我们一起探索基于PaddlePaddle的图象生成、人体关键点检测、视频分类相关的深度学习模型。

一、图象生成

图象生成是指根据输入向量,生成目标图像。这里的输入向量可以是随机的噪声或用户指定的条件向量。具体的应用场景有:手写体生成、人脸合成、风格迁移、图像修复、超分重建等。当前的图象生成任务主要是借助生成对抗络(GAN)来实现。

生成对抗络(GAN)由两种子络组成:生成器和辨认器。生成器的输入是随机噪声或条件向量,输出是目标图象。识别器是一个分类器,输入是一张图像,输出是该图象是不是是真实的图象。在训练过程中,生成器和识别器通过不断的相互博弈提升自己的能力。

在图像生成任务中,我们主要介绍如何使用DCGAN和ConditioanlGAN来进行手写数字的生成,另外还介绍了用于风格迁移的CycleGAN。

ConditioanlGAN,顾名思义是带条件约束的生成对抗模型,它在生成模型和判别模型的建模中均引入了额外的条件变量,对生成器对数据的生成具有指点作用。ConditioanlGAN是把无监督的GAN变成有监督模型的改进,为后续的工作提供了指导作用。

△ ConditioanlGAN结构

△ ConditioanlGAN预测效果图

传送门(中文):

DCGAN,为了填补CNN在监督学习和无监督学习之间的gap,此篇论文提出了将CNN和GAN结合的DCGAN(深度卷积生成对抗络),并且DCGAN在无监督学习中取得不错的结果。

△ DCGAN结构

△ DCGAN预测效果图

传送门(中文):

CycleGAN,将一类图片转换成另外一类图片。传统的 GAN 是单向生成,CycleGAN 是相互生成,本质上是两个镜像对称的GAN,构成了一个环形络,所以命名为 Cycle。风格迁移类任务一般都需要两个域中具有相同内容的成对图片作为训练数据,CycleGAN的创新点就在于其能够在没有成对训练数据的情况下,将图片内容从源域迁移到目标域。

△ CycleGAN 结构

△ CycleGAN预测可视化

传送门(中文):

二、人体关键点检测

人体关键点检测,通过人体关键节点的组合和追踪来识别人的运动和行动,对于描述人体姿态,预测人体行为至关重要,是诸多计算机视觉任务的基础,例如动作分类,异常行动检测,以及自动驾驶等等,也为游戏、视频等提供新的交互方式。

在人体关键点检测任务中,我们主要介绍络结构简单的coco2018关键点检测项目的亚军方案。

Simple Baselines for Human Pose Estimation in Fluid,coco2018关键点检测项目的亚军方案,没有华丽的技巧,仅仅是在ResNet中插入了几层反卷积,将低分辨率的特征图扩张为原图大小,以此生成预测关键点需要的Heatmap。没有任何的特征融合,络结构非常简单,但是达到了state of the art效果。

△ 视频Demo: Bruno Mars - Thats What I Like [官方视频]

△ Simple Baselines for Human Pose Estimation in Fluid 评估结果

GitHub传送门:

三、视频分类

视频分类是视频理解任务的基础,与图象分类不同的是,分类的对象不再是静止的图象,而是一个由多帧图象构成的、包含语音数据、包括运动信息等的视频对象,因此理解视频需要获得更多的上下文信息,不仅要理解每帧图像是什么、包含什么,还需要结合不同帧,知道上下文的关联信息。

视频分类方法主要包含基于卷积神经络、基于循环神经络、或将这两者结合的方法。

在视频分类任务中,我们主要介绍视频分类方向的多个主流模型,其中Attention LSTM,Attention Cluster和NeXtVLAD是比较流行的特征序列模型,TSN和StNet是两个End-to-End的视频分类模型。

Attention LSTM模型速度快精度高,NeXtVLAD是2nd-Youtube-8M比赛中的单模型, TSN是基于2D-CNN的经典解决方案。Attention Cluster和StNet是百度自研模型,分别发表于CVPR2018和AAAI2019,是Kinetics600比赛名中使用到的模型。

Attention Cluster模型为ActivityNet Kinetics Challenge 2017中序列模型,通过带Shifting Opeation的Attention Clusters处理已抽取好的RGB、Flow、Audio数据。

△ Attention Cluster模型结构

Attention LSTM 模型,采用了双向长短记忆络(LSTM),将视频的所有帧特征顺次编码。与传统方法直接采用LSTM一个时刻的输出不同,该模型增加了一个Attention层,每一个时刻的隐状态输出都有一个自适应权重,然后线性加权得到终特征向量。

△ Attention LSTM 模型结构

NeXtVLAD模型,第二届Youtube-8M视频理解竞赛中效果的单模型,提供了一种将桢级别的视频特征转化并紧缩成特征向量,以适用于大尺寸视频文件的分类的方法。其基本出发点是在NetVLAD模型的基础上,将高维度的特点先进行分组,通过引入attention机制聚合提取时间维度的信息,这样既可以获得较高的准确率,又可以使用更少的参数量。

△ NeXtVLAD模型结构

StNet模型,框架为ActivityNet Kinetics Challenge 2018中夺冠的基础络框架,提出super-image的概念,在super-image上进行2D卷积,建模视频中局部时空相关性。另外通过temporal modeling block建模视频的全局时空依赖,用一个temporal Xception block对抽取的特点序列进行长时序建模。

△ StNet模型结构

Temporal Segment Network (TSN) ,视频分类领域经典的基于2D-CNN的解决方案,主要解决视频的长时间行为判断问题,通过稀疏采样视频帧的方式代替稠密采样,既能捕获视频全局信息,也能去除冗余,下降计算量。终将每帧特征平均融合后得到视频的整体特征,并用于分类。

△ TSN模型结构

△ 基于Youtube-8M数据集的视频分类模型 评估结果

△ 基于Kinetics数据集的视频分类模型 评估结果

这部份的详情,可以移步GitHub,全程中文。传送门:

四、度量学习

度量学习也称作距离度量学习、类似度学习,通过学习对象之间的距离,度量学习能够用于分析对象时间的关联、比较关系,在实际问题中应用较为广泛,可应用于辅助分类、聚类问题,也广泛用于图像检索、人脸识别等领域。

以往,针对不同的任务,需要选择合适的特点并手动构建距离函数,而度量学习可根据不同的任务来自主学习出针对特定任务的度量距离函数。度量学习和深度学习的结合,在人脸识别/验证、行人再识别(human Re-ID)、图像检索等领域均取得较好的性能,在这个任务中我们主要介绍基于Fluid的深度度量学习模型,包含了三元组、四元组等损失函数。

△ 度量学习模型 评估结果

GitHub的页面上有安装、准备、训练等方面的指导,传送门:

经期延长的疾病
痛经怎么调理的食谱
月经颜色淡怎么调理
标签