Rocky X · 2020年06月03日

DeepMark++: 详细解读基于CenterNet的服装检测

作者:Rocky X
首发:AI算法修炼营

image.png

论文地址:https://arxiv.org/abs/2006.00710

出自:华为俄罗斯研究所

本文改进了CenterNet,实现了快速服装检测。主要方法是将语义关键点分组和作者提出的后处理技术结合获得了更高的精度,在DeepFashion2的验证集上,边界框检测任务精度为0.735 mAP,特征点检测任务精度为0.591 mAP。

在DeepFashion2测试集上精度达到0.582 mAP,获得2020年的DeepFashion2挑战赛的第二名。提出的方法计算复杂度低,即使在低功率的设备上运行,依然可以保持较高的精度。

简介

本文提出了一种快速检测衣物的单阶段方法,作为对多目标网络CenterNet 的改进。本文还介绍了几种强大的后处理技术,可用于提高关键点检测的质量。语义关键点分组方法( Semantic keypoint grouping)和后处理技术可以使DeepFashion2验证数据集的边界框检测任务的最新精度为0.737mAP,bounding box检测任务的精度为0.591mAP 。还以测试数据集上0.582 mAP的成绩在2020年DeepFashion2挑战赛中获得第二名。所提出的方法也可以以相对较高的精度用于低功率设备,而无需任何后处理技术。

image.png

图. DeepFashion2验证数据集上用于目标检测和landmarks估计的速度和精度折衷表现。NMS后处理过程被应用于每个模型。

在最近的研究中,关键点(也被称为landmarks)已被证明是视觉分析的最独特和最强大的表示形式之一。关键点检测可以用在目标检测、姿态估计、人脸识别等任务中,以关键点运行的模型的性能取决于任务中定义的landmarks 的数量。对于某些数据集而言,landmarks 数量可能很大,而Deepfashion2作为最新的时装数据集,它提供13类的标注,每个标签都由一组特定的关键点来表征,总共有294个唯一标识符。

image.png

基于关键点的物体检测方法在最近的论文中越来越受欢迎,特别是因为它们比基于边界框的检测器更简单,更快,更准确。CornerNet作为Anchor-free的经典工作,不依赖手动设计的锚来匹配对象,并在MS COCO数据集上的性能得到了显着提高。

本文主要使用DeepFashion2数据集进行服装 landmark预测和服装检测任务。clothing  landmark估计的baseline方法基于Mask R-CNN ,因为Mask RCNN属于两阶段的分割网络,参数量大,因此难以在低功耗设备上使用。本文基于CenterNet网络并与关键点检测同步运行,提出轻量级的解决方法。

CenterNet(Objects as Points):检测中心点 + 边框回归

论文地址https://arxiv.org/abs/1904.07850

代码地址https://github.com/xingyizhou...

CenterNet算法将目标检测问题变成了一个关键点的估计问题,通过预测物体的中心点位置及对应物体的长与宽,实现了当前检测精度与速度最好的权衡。

image.png

CenterNet思想与网络

传统的基于Anchor的检测,常见做法是将Anchor与所有样本计算重叠的IoU,大于一定IoU阈值的作为正样本,小于阈值的视为负样本。而CenterNet的特点是:

(1)没有使用Anchor作为先验框,而是预测物体的中心点出现位置,因此也就不会存在先验框与标签的匹配,正、负样本的筛选过程

(2)每个物体标签仅仅选择一个中心点作为正样本,具体实现是在关键点热图上提取局部的峰值点,因此也就不会存在NMS的过程

(3)由于CenterNet专注在关键点的检测,因此其可以使用更大的特征图,而无须使用多个不同大小的特征图。在CenterNet的论文中其使用的网络下采样率为4

CenterNet尝试了串联Hourglass、ResNet等多种网络用来提取特征,生成了特征点的热图。实验结果表明,Hourglass的网络能够提供更精确的检测精度,而更轻量的ResNet的检测速度会更快。

另外,CenterNet网络中没有center pooling操作, 而是把CenterPoint当做关键点来处理, 中心处响应值最高, 让其上下左右四个位置低些, 其余位置为0。

为了提高中心点的定位精度, 同样也会在每个位置上预测两个offset。 box的宽高通过直接回归得到(h, w)。在将点回归到框的过程中, 会选择这个位置上的置信度比其他8个邻域位置置信度都要高的点。

CenterNet网络预测与损失计算

CenterNet参考了CornerNet的思想,网络输出了以下3个预测值:

  • 关键点热图:这里的关键点热图与CornerNet类似,只是这里只预测一个中心点的位置。对于标签的处理,CenterNet将标签进行下采样,然后通过下式的高斯核函数分散到热图上

image.png

  • 中心点偏差:CenterNet对每个中心点增加了一个偏移的预测,并且所有类别共享同一个偏移预测值。
  • 宽与高的预测:CenterNet不需要预测Embeddings来处理配对,而是预测了物体的宽与高,这里的预测是原图像素坐标的尺度。

总体上,对于特征图上的一个点,CenterNet会预测C+4个值,其中包括C个类别的中心点得分中心点(x, y)的偏差以及该物体的宽高(w, h)

CenterNet的整体损失函数

image.png

其中,Lk为关键点的损失,使用了Focal Loss的形式;Lsize为宽与高的预测损失,Loff为偏移预测的损失;Lsize与λoff是为了平衡各部分损失而引入的权重。

image.png

这个思想可以用于多个任务,文章给出了三种类型的例子, object detection(目标检测),3D object detection(3D目标检测), multi human pose estimation(人体姿态检测)。

对于2D object detection, 就输出HxWx5的featurmap,包括(confidence, 2个offset, 2个object size)。对于3D object detection而言, 输出 HxWx12的featuremap,,包括3个方向的size, 1个深度, 8个方向的指向)

对于pose estimation而言,输出 HxWx(3k+2)的featuremap。其中kx2是k个关键点离centerpoint的偏移, k是每个关键点的point,2是每个关键点自身的偏移。在pose estimation inference的时候,首先得到k个关键点的位置,然后根据center point的2k个偏移得到另外一组k个关键点位置, 然后判断这k个关键点哪个是哪个类型的关键点,就是找离它最近的那k个关键点其中是哪个,最后应该还是以centpoint回归得到的点为准。

本文的方法

image.png

本文的方法基于CenterNet 网络结构,具体结构如上图。它同时解决了两个任务:目标检测和关键点位置估计。

DeepFashion2数据集包含13个类,因此,有13个通道用于预测所有类别的对象中心的概率(上图中的中心heatmap),将目标中心定义为边界框的中心。使用两个附加通道来细化中心坐标,并直接预测宽度和高度

landmark估计任务涉及估计一个图像中每件衣服的2D关键点位置。关键点的粗略位置是估计以相对于框中心的相对位移(图2中的粗略关键点)。为了优化关键点的位置,将带有概率的heatmap用于每种关键点类型,在heatmap中具有高置信度的局部最大值用作确定的关键点位置

与检测情况类似,使用两个附加通道获得更精确的landmark 坐标。在模型推断期间,每个粗略的关键点位置都被替换为最接近的精确关键点位置。

1、根据语义对关键点分组

解决关键点检测任务的第一步就是定义模型输出。在DeepFashion2数据集中,每个类别的关键点数量从裙子的8个到长袖外套的39个不等,具有唯一性的关键点的总数为294。简单的方法是将每个类别的关键点连接起来并分别处理每个关键点。直接预测294个关键点会导致大量的输出通道:901 = 13 + 2 + 2 + 294乘2 + 294 + 2(粗略关键点为294乘2,关键点热图为294)。显然,某些clothing landmarks是其他标志的子集。例如,短裤不需要唯一的关键点,因为它们可以由裤子关键点的子集表示。

语义分组规则定义如下:不同类别的但具有相同语义含义关键点(领口中心,上袖口边缘等)可以合并为一组。这种方法可以形成62个组,并将输出通道的数量从901减少到205。

语义分组方法分别将训练和内存消耗时间分别减少了26%和28%,而准确性没有下降(请参见图3)。后者的减少使得在模型训练期间可以使用更大的bacth size。

2、后处理技术

本文运用了4种后处理技术,可以在不影响性能的情况下提高模型的准确性。

2.1 中心评分(Center rescoring)

第一种技术是使用关键点热图heatmap中的关键点分数重新计算检测置信度分数。令Score bbox为来自中心热图的原始检测置信度分数,而Score kps为基于关键点热图的预测类别的优化后的关键点的平均分数。通过以下公式计算最终的检测置信度得分

image.png

2.2 基于高斯核Heatmap评分( Heatmap rescoring with Gaussian kernel)

第二种技术是一种通用方法,可以应用于任何基于关键点的体系结构用中心图或关键点得分作为热图heatmap。考虑到训练过程,可以假设每个目标物体的8个相邻像素都与同一目标物体相关。这个事实可以用来改善每个热图值的估计。因此,我们应用以下公式:

image.png

其中星号表示卷积运算,G(σ)是标准差为σ的3×3高斯核。实验结果表明,在我们的模型中,所提出的技术改进了与目标物体中心点的定位或关键点及其得分相对应的峰值

2.3 关键点位置精细化( Keypoint location refinemen)

第三种技术是使用粗略位置重新计算精确的关键点位置。设(x,y)为热图的精细化的关键点位置,(x,y)为偏离目标中心的粗略位置。最终的关键点位置通过以下表达式计算:

image.png

2.4 关键点 heatmap 评分(Keypoint heatmap rescoring)

第四种技术是从粗略的关键点的位置获取与其mask对应的关键点热图heatmap。mask的热图默认为零,在粗糙关键点位置将1设置为mask,并使用2D高斯函数填充邻域值,标准偏差为sigma = min(width,height)/ 9,其中width和height是对象大小。

image.png

下表是以上思想技术的对比实验结果:

image.png

表:不同的后处理技术分别应用于Hourglass 512×512网络中。技术编号对应于以上小节的编号。

3、Multi-inference 策略

本文方法考虑两种额外的推理策略:将来自原始图像和翻转图像的模型输出以等权重融合将模型结果与通过某些乘数按比例缩小/放大的原始图像融合在一起。所提出的技术提高了准确性,但需要多个模型推断,从而影响了整个处理时间。

4、关键点优化网络( Keypoint Refinement Network)

在最后阶段,使用PoseFix 模型model-agnostic姿势优化方法《Posefix: Model-agnostic general human pose refinement net-work》来细化检测结果。该方法学习任何其他估计方法的典型错误分布并在测试阶段纠正错误。本文使用DeepFashion2数据集训练了13个PoseFix模型集,随后,将训练好的PoseFix模型应用于最终结果。

实验结果

所有实验均在公开可用的DeepFashion2 Challenge数据集上执行,该数据集包含训练集中的191,961张图像和验证集中的32,153张图像。

本文使用CenterNet MS COCO模型进行目标检测作为初始checkpoint 并使用Hourglass主干和Adam优化器进行了实验,实现了DeepFashion2验证数据集上目标检测和关键点估计任务的最新结果。将Hourglass512×512模型训练了100个epoch,batch size= 46张图像。

image.png

image.png

image.png

☆ END ☆

推荐阅读


更多机器学习、深度学习、计算机视觉、自动驾驶、机器人等领域最新最前沿的科技请关注微信号AI算法修炼营。
WX20200303-134844.png
推荐阅读
关注数
16411
内容数
1228
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息