网站首页 > 技术文章 正文
前言
众所周知,随着深度学习技术的发展,深度卷积神经网络在图像分类、识别以及关键点定位上已得到广泛应用。目前在人体姿态、人脸识别等多个方面的关键点定位算法已经取得长足发展,但是应用于多变性的图像背景以及姿态等依然面临很大的挑战,如服饰在类别、比例和外观上具有多变性,其关键点定位精度并不高。下文将在传统的残差与沙漏网络模型基础上,介绍一种新的级联金字塔结构卷积神经网络,实现对困难关键点的定位进行精细调整。并通过实例剖析进一步帮助大家来理解。
传统卷积神经网络
1.沙漏网络
沙漏网络,正如其名,是一种形如沙漏的下采样-上采样结构,如下图所示。图中左侧部分通过卷积和池化操作将特征图降低到较低的分辨率。下采样通过池化操作完成,同时通过另一路卷积保留下采样前的特征图,用于和右侧上采样部分同尺度的特征图进行融合。当下采样部分特征图达到最小分辨率后,网络经过最近邻上采样后与保留的同尺度特征图进行融合,最后网络输出表示各个关节点在该像素出现的概率的特征集。
沙漏网络设计的目的在于获取不同尺度下图像所包含信息。利用多模块的沙漏网络可以定位关键点进而来识别人体姿态特征。
2.深度残差网络
相比较普通网络,深度残差网络引入捷径跳过某些层的连接,再与主径汇合,如下图所示。这使得底层的误差可通过捷径向上层传递而解决梯度消失的问题,在不增加额外参数又不提高计算复杂度的同时增加网络模型的训练速度、提高训练效果。作为简单且实用的深层次网络模型,深度残差网络在图像分割、目标检测等图像处理领域内应用广泛。
级联金字塔结构卷积神经网络
级联金字塔结构卷积神经网络的算法框架分为两部分,如下图所示:
第1部分为全局关键点定位网络,使用残差网络作为特征提取网络,通过特征金字塔融合多尺度特征,实现关键点的初步定位;
第2部分以沙漏网络为基础对第1级损失较大的关键点精细调整,进而实现对服饰关键点的精确定位。
在进一步解释前,大家需要对使用残差网络提取的不同层的特征图尺度形成的金字塔结构有一定了解。如下图所示,特征金字塔结构在网络前向卷积的过程中对每一分辨率的特征图引入后一分辨率缩放2倍的特征图做逐个元素自底向上相加的操作,以这种方式将卷积神经网络中高分辨率低语义信息的底层特征图和低分辨率高语义信息的高层特征图进行融合,使得融合之后特征图既包含丰富的语义信息,也包含由于不断降采样而丢失的底层细节信息。
详细介绍:
1.第1级网络
第1级网络首先通过残差网络进行特征提取,C1~C5分别代表残差网络中卷积Conv1~Conv5产生的特征图。比如,输入一张大小为512×512的图像,原始的ResNet经过5次步长为2的卷积操作达到降采样的目的,特征图发生5次尺度变化,最终卷积层输出的特征图C5的尺寸为16×16。这里,算法引入空洞卷积为了提高特征图空间分辨率。
利用残差网络提取的特征图构建特征金字塔时,因为特征图C3~C5具有相同的尺寸,所以可不经过上采样直接融合。融合后的结果与C2继续融合时,先经过双线性插值进行2倍的上采样。每一级产生的特征图都生成一组热力图,同组的每张热力图包含输入图像的一个关键点的坐标,和真实关键点坐标生成的热力图进行误差计算求得损失,共同监督网络训练。在测试阶段,第1级网络输出的热力图可以得到全部关键点的位置坐标。
2.第2级网络
第2级网络使用两个堆叠的沙漏网络,但与原始的沙漏网络不同的是,第1个沙漏网络的下采样部分即上采样部分的输入是第1级金字塔结构输出的特征图。针对困难关键点,选择第1级损失较大的关键点进行精细调整,仅从这部分关键点反向传播损失算法。第1个沙漏网络融合来自第1级网络所有金字塔层的信息进行定位,第2个沙漏网络利用前一个沙漏网络输出的热力图作为关键点之间的结构先验进行定位。每个沙漏网络都生成一组热力图,并与真值的误差作为损失函数监督网络训练。测试阶段,最后结果为2级输出结果的综合。
虽然第1级网络已经能够完成关键点定位任务。但是由于服饰背景、姿态等的复杂性,一些困难关键点依然难以实现精确定位,这里设计了第2级网络对困难关键点的坐标进行精细调整。
案例分析
数据集选取
这里以具有多变性的女装服饰图片作为对象来研究分析。实验选取2018 FashionAI 服饰关键点定位数据集。此数据集是同时符合机器学习要求和服饰专业性的高质量数据集。服饰的关键点基于服装设计的5大专业类别定义,分别为上衣、外套、裤子、半身裙、连身裙。在该数据集中,每种服饰具体关键点如下图所示。本文案例的数据仅包含单个模特或者商品的图像。所预测的服饰所属的类别已知,不需要单独进行分类。数据集包括54166个训练样本和9971个测试样本。
级联结果分析
采用上面算法,通过级联的两级卷积神经网络分别实现对关键点的初步定位和进一步修正,其结果如下图所示。图中所示为包含上衣、外套类别的4张服饰图像经过级联网络的关键点定位结果图,每张图片的上面一张显示的是只经过第1级网络的结果输出图像,下面一张包含第2级网络的结果输出图像。图像中的部分关键点经过了调整,尤其是方框圈起来的关键点在第2级网络经过了比较明显的调整,比如:
第1张图像中的右腋窝和右袖口内关键点,由于被遮挡误差较大;
第2张图像左腋窝定位错误;
第3张图像左袖口内侧被遮挡定位误差较大;
第4张图像右腰部关键点被水印遮挡。
经过第2级网络这些关键点都得到了进一步调整,很明显地减小了定位误差,使得最终输出的定位结果更加准确.这一级联结果对比证明了上述算法可提高关键点精确度的有效性。
结语
上文通过将传统的残差与沙漏网络模型进行级联,并详细介绍了一种新的级联金字塔结构卷积神经网络。为了进一步优化对关键点定位精度的问题,充分利用特征信息,在第1级使用残差网络进行特征提取网络形成特征金字塔结构,保留了更多的图像细节信息,实现对所有关键点的定位;在第2级以沙漏网络为基础,整合来自上一级的特征信息,利用前一级预测出来的关键点之间的结构先验,对困难关键点即第1级损失较大的关键点进行精细调整,进一步提升整个网络的定位精度。该网络模型对具有多变性的图像背景以及姿态等进行关键点定位有很好的适应性。
猜你喜欢
- 2024-09-29 图像识别(七):卷积神经网络 卷积神经网络 简书
- 2024-09-29 「动手学计算机视觉」第十五讲:卷积神经网络之LeNet
- 2024-09-29 卷积神经网络与Transformer结合,视频帧合成新架构
- 2024-09-29 用CNN做基础模型,可变形卷积InternImage实现检测分割新纪录
- 2024-09-29 卷积神经网络图片分类模型之Inception v1
- 2024-09-29 卷积神经网络:超越传统技术的人工智能模型
- 2024-09-29 利用pytorch CNN手写字母识别神经网络模型识别多手写字母(A-Z)
- 2024-09-29 paddle几行代码轻松实现CNN卷积神经网络在MNIST上的图像分类
- 2024-09-29 人工智能Keras CNN卷积神经网络的图片识别
- 2024-09-29 图像的处理原理:CNN(卷积神经网络)的实现过程
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)