引入关节点热力图的改进CenterNet 目标检测算法

2022-06-24 02:26邬春明廉力影赵立权
北京交通大学学报 2022年2期
关键词:图像模型检测

邬春明,廉力影,赵立权

(东北电力大学a.现代电力系统仿真控制与绿色电能新技术教育部重点实验室,b.电气工程学院,吉林 吉林 132012)

目标检测技术迄今为止已经发展几十年,是图像处理领域的研究热点.无论是在工程领域还是医疗领域都有重要应用,为人工智能的实际应用提供了良好基础.传统且具有代表性的目标检测方法如:Viola Jones 检 测 器[1]、HOG 特 征 描 述[2]、DPM特征[3]等,对目标检测技术的发展都起到了极大的推动作用,但由于这些方法都是根据特定情况设计,有一定的适用范围局限性且缺乏可扩展性,所以难以达到较理想的准确率.后来出现的目标检测系统为了克服这些问题,将不同的方法进行组合,如多尺度特征和边界框回归[4].

随着对目标检测技术速度与精度需求不断上涨,自2012 年起,基于深度学习的检测算法迎来了井喷时期.Girshick 等[5]提出了区域卷积网络目标检测 框 架(Region with CNN features,R-CNN).R-CNN 是区域选择与卷积神经网络(Convolutional Neural Network,CNN)[6]结合的产物,通过生成大量候选区域,对区域进行特征提取和筛选,对特征进行分类与判别.但由于R-CNN 对目标分辨率要求较高,计算量较大,所以后来在R-CNN 的基础上引入了SPPNet[7],从而诞生了Fast R-CNN[8].此方法相对于R-CNN 提高了检测效率,但是在区域选择方面仍然面临问题.Faster R-CNN[9]的提出,解决了这个问题.随着对基于深度学习的目标识别算法研究的深入,算法逐渐出现了两分支:双阶段的目标检测方法和单阶段的目标检测方法.

双阶段检测网络利用第一阶段进行备选框的提供,第二阶段进行备选框的判断.常见的双阶段目标检测方法除R-CNN、Fast R-CNN、Faster R-CNN,还有Mask R-CNN[10]、Cascade R-CNN[11]等.单阶段的检测方法网络框架结构比较简单,检测速度一般快于双阶段检测.常见的单阶段目标检测网络主要有:SSD[12]系列、YOLO[13]系列等.

SSD 在不同分辨率的多个特征层上生成预测,检测速度快且结构简单,但检测精度较低且对于小目标的检测效率低.后来人们对它加以改进,衍生出了很多效率更高的算法.SSD 逐步发展的同时,基于一体化卷积网络的目标检测方法YOLO 在2015年被提出,完成了训练和检测均在一个网络中实现.YOLO与SSD 十分类似,但是它将空间划分成了若干网格单元,检测速度较SSD 略胜一筹.该算法也克服了Faster R-CNN 在识别速度方面的瓶颈,但当检测目标比较密集时检测效果仍会有所下降.

随着目标检测方法的发展,算法又出现了两个分支:有锚的方法和无锚的方法.前期的目标检测方法大多为基于锚框的方法.这类方法生成锚框的数量过多,甚至远远超过了目标数量,十分容易引起正负样本不均衡以及超参数问题.于是,Law 等[14]提出了一种免锚框方法,即CornerNet 算法,该算法通过特征向量将关键点匹配代替边界框回归,再对角点进行分组.使用CornerNet 的开发者能够自由设计特征提取网络,大大提高了模型使用的灵活性.但是该算法的短板在于,角点对的分类准确度对检测结果的影响过大.之后,Duan 等[15]针对这一不足之处,提出了CenterNet 模型,CentetNet 通过回归的中心点位置及偏移量信息进行物体判断,不用对角点对进行分组,弥补了CornerNet 的缺陷.

上述方法都为单纯的目标检测方法,广泛适用于绝大多数检测场景且模型具有很强的泛化能力,但是缺乏对特定场景的针对性也忽略了对场景的语义理解。因此,本文作者主要针对人和物有动作交互的特殊场景定制了一种新的检测方法,该方法主 要 受 人- 物 交 互(Human-Object Interaction,HOI)[16]检测的启发,通过在CenterNet 网络的输入端增加一个人体关节点热力图分支的方式来引入场景中人物动作的语义信息。利用该框架训练已有的完备数据集,实验结果表明:与SSD、YOLOv1、Faster R-CNN 以 及 改 进 前 的CenterNet 模型相比,新模型具有更好的检测性能。

1 CenterNet 理论基础

1.1 CenterNet 网络结构

CenterNet算法主要通过目标的中心点坐标及偏移量来确定目标信息,然后回归目标的姿态信息、方向信息以及尺寸大小等,从而将目标检测问题转化为关键点估计问题.模型训练使用标准的监督学习,推理过程利用单个前向传播网络,摒弃了诸如NMS[17]之类的后处理.整个处理过程降低了网络计算开销并很好地保留了检测目标的内部信息.常用的Center-Net 特 征 提 取 骨 干 网 络 主 要 有 三 种:ResNet-18[18](ResNet-101)、DLA-34[19]、Hourglass-104[20].以基于Hourglass-104 的CenterNet 网 络 结 构 为 例,Center-Net网络结构图如图1所示.

由图1 可知,整个网络最终输出有3 个分支.热图分支和中心点分支用于生成所有类别目标的位置图,中心点偏移分支表征了目标真实位置与预测位置的偏移量.传统目标检测方法将图片缩放16 倍,CenterNet 将分辨率缩放4 倍用于输出特征图,因此无需使用多个特征图锚点且保留了更多特征信息.

模型的具体检测过程如下:

设网络的输入图像I∈RW×H×3,经过预测网络后输出端热图分支生成的关键点热图为

图1 CenterNet 网络结构示意图Fig.1 Schematic diagram of CenterNet

式中:H、W分别为图像高度、宽度;R是输出步长,R=4;C为输出热图中关键点类别的数量.̂=1时,代表对应位置是检测目标的关键点,̂=0 时,代表检测背景.

在 预 测 阶 段,设(x1,x2,y1,y2)是 目 标 的 边 界框,经过计算可以得到其中心点为

目标的其他信息是从关键点的图像信息获得,所有中心点都是通过Ŷ预测得到,然后通过回归以获得目标大小,回归的位置坐标为

1.2 CenterNet 损失函数

CenterNet 的网络输出3 个分支,总损失函数主要由热图关键点损失函数(hm_loss)、目标尺寸损失函数(wh_loss)和检测目标中心点损失函数(off_loss)三部分构成.热图关键点损失函数为

式中:̂xyc是使用Hourglass-104 网络获得的热图中的预测物体的中心;α和β是焦点损失的超参数,默认值分别为2 和4.局部偏移的损失函数为

式中:CenterNet 对图像进行下采样,将获得的特征图重塑为原始图像会导致精度误差.因此,对于每个中心点都使用了额外的局部偏移.Loff即L1 范数损失函数͂是经过计算的一个低分辨率的等效值.物体尺寸损失为

式中:Lsize同样是L1 范数损失函数.总损失函数是三个部分的加权和,公式为

式中:λsize,λoff=1.

2 基于关节点热力图的检测模型

2.1 关节点标记与人体关节点热力图的生成

热力图是描述目标物体的关键点在图像中位置的图像,它将离散点的信息经过一定的数字变换最终映射图像上.若定义热力图为一个三维矩阵,尺寸为(H,W,1).热力图中的所有像素点数值都分布在[0,1]之间,表示该位置存在目标物体的概率,如图2(a)所示.

图片分辨率为512×512,人物出现在这张图片中,其中心坐标为(350,309),则创建一张与该图片大小一致的热力图(如图2(b)所示),除了将坐标(350,309)处概率设为1 用来表示人的位置外,其余位置概率均为0.对于此图片中的其他类别物体,如在(137,324)位置存在的狗,则建立一张新的热力图(如图2(c)所示),该处概率值为1,其余处为零.由此可见,在输出热力图过程中,一张热力图仅代表单一类别的物体,所以当热力图尺寸为(H,W,C)时,表示C个类别的物体中心的分布情况.人体关节点热力图遵循同样原理,选取手、肘、膝等16 个人体重要关节点进行标记.

人体关节点热力图的生成主要依托于关键点坐标预测,常用的预测方法有全连接层直接回归和高斯核函数生成预测热图两种.由于高斯热图输出特征图较大,空间泛化能力也比较强,回归损失函数采用最小均方误差MSE.本文采用输出高斯热图的方法,一张图片中每个人回归16 个关节点.如图3 所示为关节点热力图标记与生成过程.最终输出的关节点热力图,作为模型关节点热力图分支的输入图像.

图2 不同类别物体热力图Fig.2 Heatmap of different objects

图3 人体关节点热力图生成过程Fig.3 Image of generation process for body joints heatmap

生成人体关节点热图的具体过程如下:设第k个关节点的热图Hk上p位置点上的置信度Hk(p),表示为

式中:(xk,yk)是第k个关节点的坐标,k∈[0,15];σ是标准差,代表热图能量集中度,当σ 较大时,则热图覆盖区域较大,能量较为分散,当σ 较小时,覆盖区域较小,能量相对集中.16 个关节点的热图组合在一起形成最终热图H∈Rw×h×k.其中,k代表关节点数目,文中取值为16,h×w是每个关节点的尺度.

根据预测出来的热图̂的置信度分布,可以获得关节点位置的预测结果为

式中:)为网络模型预测出的第k个关节点的热图上p位置坐标点上的置信度,取置信度值最大的点所在位置坐标就是预测出的第k个关节点的位置

2.2 加入注意力模块的Hourglass-104 网络

注意力机制在图像处理中应用广泛,它能够使网络成功学习到与目标有关的信息.由于实验使用的数据集较大,目标类别较多且尺寸大小不一.因此,为了更好地提取目标特征,将全局上下文模块(Global Context Block,GC Block)[21]加入到了特征提取网络Hourglass-104 中.插入的GC 模块可应用于特征提取网络每个层以捕获网络依赖性,有助于网络提高对小目标的检测能力.

Hourglass-104 网络深度较深,参数数量庞大.因此在加入注意力模块的同时还要兼顾网络的计算量.而GC 模块采用的是轻量级网络,增加的网络计算成本可以忽略不计,减轻网络训练负担.

GC Block 的结构如图4 所示,公式如下

概括来说,GC Block 主要包含3 部分:1)通过全局注意力池获取上下文信息;2)通过特征转换获得通道之间的依赖性;3)将转换功能与原始功能融为一体.

将GC 模块应用于Hourglass-104 每个沙漏网络内以及Hourglass-104 网络的两个子结构之间,如图5 所示.

图4 全局上下文模块结构Fig.4 Module structure of Global Context Block

2.3 网络总体结构

图6 为模型总体结构,整个检测网络由加入GC Block 的Hourglass-104 及多个卷积层、池化层和全连接层组成.输入热图与原图像的分辨率均为512*512,通过检测网络后输出3 个分支,每个分支的输出大小都是128*128.经过融合后,输出检测输出图像的大小为128*128.

3 实验及结果分析

3.1 数据集预处理

实验所采用的样本主要来源于HICO-DET 数据集.该数据集共有47 774 张图像,涵盖超过600 种人与对象互动的动名词,80 个常见对象.鉴于算法应用场景的特殊性,在实验前对该数据集进行了充分的人工筛选,只保留人和物有动作交互的图片.筛选出来的图片尽可能多地包括常见物体类别.最终使用的实验数据集共9 800 张,根据8∶2 的比例将其中7 840 张作为训练图像,1 960 张作为测试图像.9 800 张图像生成的关节点热力图也作为构成本实验数据集的一部分.采用COCO 数据集格式,对训练集和测试集中每一张图片里出现的物体都标记其外围框,与生成的关节点热力图共同作为网络的输入.由于所用数据集原始图像差异较大,分辨率也各不相同,图像大小不一,无法直接输入网络进行实验.因此输入目标检测图像首先经图像预处理后调整其分辨率为512*512,再对图像进行关节点标记和热力图输出.数据集部分样本图像如图7 所示.

图5 添加注意力机制的Hourglass-104 网络Fig.5 Architecture of Hourglass-104 network with GC Block

图6 改进CenterNet 网络总体结构示意图Fig.6 Overall architecture of the improved CenterNet

3.2 实验平台

实验硬件配置如下:实验操作系统采用Windows 10 系统,CPU 八核,主频4.9 GHz,显卡采用NVIDIA Tesla K 80,双GPU 加速器,24 GB 显存,32 GB 内存,显存位宽384 bit.采用Ubuntu 16.04操作系统,Pytorch 深度学习框架实现算法编程.

3.3 评价指标

前后进行了4 次对比实验,分别为不同特征提取主干网络对比实验、引入GC 模块前后对比实验、引入关节点热力图前后对比实验和不同目标检测方法对比实验.实验评价指标采用目标检测实验中常用的指标AP、mAP 以及检测速度(FPS),其中AP 是由召回率R(Recall)和准确率P(Precision)共同决定.

式 中:TP为 实际 是 真 正例;FP是 假 正 例;FN是假 负例.mAP 的表达式为

式中:mAP 是模型针对多类目标的整体检测平均精度均值,能够直观地表示模型在所有类别中的综合检测性能.所用数据集目标类别为15类,故N=15.

3.4 实验结果分析

3.4.1 模型训练

新模型整体参数设置如下:学习率为0.000 125,训练次数120 次左右时,损失趋于平稳.损失函数的变化趋势见图8,其中,红色曲线为该算法总损失函数,黄色、紫色、绿色曲线分别为目标中心点损失、目标尺寸损失和热图关键点损失,分别对应输出分支中的O、S、Y 分支.可以看出,在长达120 次的训练过程中,损失逐渐变小,模型逐渐收敛且未出现过拟合.

图8 损失函数变化曲线Fig.8 Variation curves of loss function

3.4.2 算法有效性分析

1) 不同特征提取网络对比实验.

实 验 将 ResNet-18、ResNet-101、DLA-34、Hourglass-104 四种特征提取网络进行对比,将检测精度和检测速度作为评价指标,最终效果最好的网络作为CenterNet 的特征提取网络.为了提高工作效率缩短实验周期,在处理好的9 800 张数据集中抽取了1 000 张图片作为样本进行实验,共4 个目标类别.4 种网络的提取性能对比见表1.可以看出,Hourglass-104 在检测精度领先的情况下检测速度尽管最慢但是满足实时性要求.因此,最终选择Hourglass-104 作为CenterNet 的特征提取网络.

表1 特征提取网络检测性能对比Tab.1 Comparison of detection results from different feature extraction network

2) 引入注意力机制前后对比实验.

表2 为模型引入注意力机制前后准确率P、召回率R、mAP 以及检测速度FPS 对比,分析表中数据可知鉴于GC 模块轻量级这一特性,Hourglass-104 加入GC 块之后计算量并没有明显增加,而且R以及mAP 都有所提高.这是因为模型中加入GC 模块之后能在更少的迭代次数下收敛,GC 模块的加入优化了特征图,提升了特征提取能力,对于目标的识别更加准确.

3) 引入关节点热力图前后对比实验.

表3 为模型引入关节点热力图分支前后准确率P、召回率R、mAP 以及检测速度FPS 对比,由表中数据可知,热力图分支的引入提高了模型的检测精度,这是因为关节点热力图中蕴含的姿态信息在输入到模型之后,网络检测得到了更多的特征信息,从而使检测效果更加准确.

表2 加入GC 模块前后检测性能对比Tab.2 Comparison of detection results before and after adding GC Block

表3 加入关节点热力图分支前后检测性能对比Tab.3 Comparison of detection results before and after adding body joints heatmap

4)不同目标检测方法前后对比实验.

实验在改进CenterNet 模型基础上对人与目标有动作交互的特定场景下的目标进行检测.为了证明实验的有效性,选取SSD、YOLOv1、Faster RCNN 3 个单纯目标检测方法以及改进前CenterNet方法在相同数据集上进行实验对比.

图9 检测结果示意图Fig.9 Sample images of detection results

实验数据集共计15 类目标,最终的检测效果图见图9,检测结果归纳见表4.可以看出,与单阶段检测算法SSD、YOLOv1 相比,新算法检测具有更高的检测精度.与双阶段检测方法Faster R-CNN 检测精度相比,检测精度基本持平,但是检测速度约是Faster R-CNN 的98 倍.与改进前CenterNet 相比,不难看出在加入注意力机制以及关节点热力图分支之后,模型mAP 提高了6.02%,相对于大目标来说,体积较小目标的检测准确率提升更多.

表4 各模型检测速度检测精度对比Tab.4 Detection results and speeds of different detection models %

4 结论

将CenterNet 算法加以改进并引入关节点热力图分支,对人和目标有动作交互的特殊场景下的物体进行检测,将人物动作蕴含的语义信息加以应用,获得了比普通目标检测方法更高的检测精度,通过实验得到了如下结论:

1)针对人和目标有动作交互的场景提出了一个新的模型,充分利用了场景中人物姿态蕴含的语义信息提高了模型的检测精度.

2)该方法改进了CenterNet 的网络结构,在输入端增加一个分支实现了双输入,并在Hourglass-104 中引入GC Block,增强了整个网络的特征抓取能力与融合性能.

3)实验结果证明:该方法与其他方法相比,在人与目标有动作交互时对目标的识别精度更高.下一步将对模型性能进行继续改进:将网络进行轻量化改进以解决参数量过大的问题.进一步提高网络的融合性能,以解决在目标形状不规则或目标较小时识别率变低的问题.

猜你喜欢
图像模型检测
适用于BDS-3 PPP的随机模型
自制空间站模型
A、B两点漂流记
模型小览(二)
必修二 Modules 1—6综合检测题
“整式的加减”检测题
“整式”检测题
离散型随机变量分布列的两法则和三模型
名人语录的极简图像表达
一次函数图像与性质的重难点讲析