时间:2024-09-03
梅健强,黄月草
(1.天津职业技术师范大学电子工程学院,天津 300222;2.天津职业技术师范大学理学院,天津 300222)
视频图像运动目标检测是在视频数据流中提取前景目标并对其进行定位的技术,是视频运动目标跟踪的基础。近年来,随着计算机和视频采集硬件水平的不断提高以及信息技术的迅速发展和广泛应用,视频图像运动目标检测逐渐成为人工智能与计算机视觉领域的研究热点,在自动驾驶、智慧城市、智能医疗和视频监控等领域具有广阔的应用前景[1-3]。
传统目标检测算法,如梯度直方图(histogram of oriented gradient,HOG)算法[4]、局部二值模式(local binary patterns,LBP)特征算法[5]、尺度不变特征(scale invariant feature transform,SIFT)检测算法[6-7]等,主要针对数据所具备的固有特征人工设计数学模型进行特征提取,并通过与比例模板进行比对,实现目标的检测与定位,其特征提取方法和比例模板的设计对设计人员的经验和专业知识要求较高,且应用场景单一,泛化能力较弱,存在模型求解算法复杂、目标检测速度慢和平均检测精度低等诸多问题。
随着深度学习技术的不断发展,出现了诸如(regional convolutional neural network,R-CNN)[8]和Faster R-CNN[9]等双阶段(two-stage)目标检测算法,提高了平均检测精度和鲁棒性,但这些算法网络结构复杂,计算量较大,而随后出现的YOLO 算法[10-11]是典型的单阶段(one-stage)目标检测算法,其将整幅图像作为输入,直接在输出层回归目标的位置和所属的类别。本文基于改进YOLOv1 搭建运动目标检测的深度学习框架,进而优化对不同尺度特征信息的传递,并在稳定输出结果的同时,加快训练速度。
在深度神经网络得到广泛应用之前,传统目标检测算法流程主要包含图像分割、特征提取和目标检测3 个部分。传统算法通过选择合适的数学模型和分类器,结合目标固有特征或人工设计的特征实现相应的计算和分类功能,算法流程相对复杂、泛化能力较差。可变部分模型(deformable parts model,DPM)[12]是典型的传统运动目标检测算法之一,其采用经典的滑动窗口检测方式,通过构建尺度金字塔在各个尺度搜索,实现目标检测功能。
基于深度学习目标检测算法[13-14]主要分为双阶段和单阶段2 个类别。双阶段目标检测的典型流程如图1 所示,主要包括图像预处理、区域建议、分类和回归、输出结果4 个环节,其中区域建议又可细分为区域选择和特征提取等子环节。
图1 双阶段目标检测算法流程
区域卷积神经网络R-CNN 和Faster R-CNN 是2 种典型的双阶段检测算法,其检测流程主要包括输入图像、区域选择、特征提取和区域分类4 个步骤。R-CNN 经过一系列卷积运算进行自主特征提取和分类回归,算法的实时性、准确度等相比传统方法均有一定提升,但由于每个候选框都采取同样的方式,存在大量区域重叠,导致计算量大和目标检测速度慢的问题,而Faster R-CNN 对整幅图像进行特征提取,候选框之间的特征图是可共享的,相比R-CNN 基于区域建议对候选框进行特征提取后再进行分类和回归的思路,不仅减少了计算量,还提高了目标检测速度。
在双阶段目标检测算法的基础上,单阶段目标检测算法摒弃区域建议环节,通过对输入图像进行卷积操作后直接分类和回归的做法实现了检测速度的进一步提高。
YOLO 算法是典型的单阶段目标检测算法,其将目标检测问题等效于回归问题,算法对输入的整张图像进行分析和处理,得到目标相应边界框的坐标信息(x,y,w,h)、置信度(confidence)和类别概率。YOLO 算法首先重新调整输入图像的大小,随后将整幅图像送入到卷积层进行卷积运算,并在采用非极大线性抑制算法处理运算结果后得到最终输出。
YOLO 的检测系统检测图如图2 所示,YOLOv1 算法将输入的整幅图像分成S×S 个网格,若某个对象(object)的中心落在某个网格中,该网格就负责预测此object。
图2 YOLO 的检测系统检测图
算法网络输入图像大小为224×224,输出结果为S×S×(5×B+C)张量,S 为划分网格数,B 为每个网格负责的边框个数,C 为类别个数。每个网格有B 个边界框,每个边界框对应一个分值即置信度,代表该处是否有物体及定位准确度。计算公式为
式中:Pr(object)为边界框含有目标的可能性大小,当该边界框是背景时(即不包含目标),Pr(object)=0;当该边界框包含目标时,Pr(object)=1;边界框的准确度可以用预测框与实际框的交并比(intersectionoverunion,IOU)来表征,记为
在检测目标时,YOLOv1 算法通过每个网格预测的类别条件概率和边界框预测的自信度信息得到每个边界框的类概率自信得分,随后通过设置合适的阈值与类概率自信得分进行对比,并在对得分高于阈值的边界框进行非极大值抑制(non-maximum suppression,NMS)[15]后得到目标检测结果。
YOLOv1 的行人目标检测网络结构模型[10]总共包含26 个卷积层,其中前24 个卷积层进行卷积运算提取特征并进行回归运算,最后2 个全连接层输出检测结果。为了提高系统性能,本文采用如图3所示的ResNet50残差网络作为框架的特征提取部分,并在去掉该网络最后2 层的基础上,连接YOLOv1 的最后4 个卷积层和2 个全连接层作为训练的网络结构。在输出层中借助Sigmod 非线性激活函数提取有效的图像信息,并在激活函数前通过加入BatchNorm 保证每一层神经网络的输入具有相同分布,进一步提高网络的检测能力和速度。改进YOLOv1 网络结构如图3 所示。
图3 改进YOLOv1 网络结构
本文通过PASCAL VOC2007 数据集和自行采集的实景数据对所提方法针对人像的检测效果进行验证。PASCAL VOC2007 是标准数据集,其内部包含person、chair 等20 个小类,在运动目标检测领域获得了广泛的应用。自行采集的实景数据共包含308 张图像和2 个视频,其中主要包含汽车、自行车、行人、鸟和狗在内的11 个类别。
在实验过程中,本文将PASCAL VOC2007 数据集的17 016 幅图像作为训练集,并通过缩放、镜像等图像处理方式扩充训练数据集的数量,进一步提高网络的泛化能力。此外,为了便于神经网络的处理和加快收敛速度,所有图像数据在输入网络前均将尺寸调整为224×224,并进行相应的数据归一化处理。
本文采用平均精度均值(mean average precision,mAP)和每秒传输帧数(frames per second,FPS)作为系统的评价指标。其中,FPS 为网络模型每秒钟检测的图片数量,评价系统目标检测的实时性能,而平均精度均值反应的是目标检测结果的精确程度。目标检测系统2 个评价指标分别为精确率(Precision)和召回率(Recall)参数。
本文采用如表1 所示软硬件配置搭建所提框架并进行相应的训练和测试。
表1 系统配置
为避免学习率过大导致在全局最优附近出现左右震荡的现象,本文在训练过程中采用随着迭代次数递增而逐渐降低学习率的策略,尽快使系统达到全局最优。初始学习率设置为0.001,当epoch 达到30时,调整学习率为0.000 1,当epoch 达到40 时,调整学习率为0.000 01。其他部分训练参数设置如表2 所示。
表2 网络训练参数
3.3.1 检测结果分析
PASCAL VOC2007 测试集数据的部分测试结果如图4 至图7 所示。
图4 PASCAL VOC2007 原图
通过对比可以看出,当目标大小不一、背景环境复杂和受光照遮挡影响的条件下,DPM 方法会出现一定的误检(图5(a)和(b))和漏检现象(图5(c)和(d)),而基于Faster R-CNN 的方法与本文方法均可检测出图像中的对应目标,但本文方法可以获得更为精确的目标边界,平均检测精度更高,如图6(a)和图7(a)中所提取的目标边界,以及图6(d)和图7(d)中所提取的目标边界,而且Faster R-CNN 的方法在目标物体大小不一时,也会出现一定的误检问题,如图6(b)中提取狗的边界并误识别为人,以及图6(c)中提取自行车的边界并误识别为人。因此,本文所提基于改进YOLOv1 的目标检测框架可以在PASCAL VOC2007测试集中达到较好的检测效果。
图5 DPM 算法检测结果
图6 Faster R-CNN 算法检测结果
图8 至图11 所示为自行采集数据集的部分测试结果存在遮挡、人像模糊、目标较小和背景复杂时不同方法的检测效果。
图8 自采数据集原图
图11 基于改进的YOLOv1 算法检测结果
通过对比可以看出,当背景环境复杂或受其他物体遮挡影响的条件下,DPM 方法会出现一定的漏检问题(图9(a)和(c))和误检(图9(b)和(c)),而基于Faster R-CNN 的方法与本文方法均可检测出图像中的对应目标。但Faster R-CNN 方法在待检测目标存在遮挡时,也会出现一定的误检或检测边界不正确的问题(图10(a)和(d))。相比以上2 种算法,本文方法可以获得更为精确的目标边界且平均检测精度更高。但当图像中存在遮挡,尤其是背景比较复杂或被相似目标遮挡时,本文方法所提取的目标边界会出现如图11(a)的复检问题以及图11(b)所示的漏检问题。
图9 DPM 算法检测结果
图10 Faster R-CNN 算法检测结果
本文所提目标检测算法在自采视频数据的部分检测结果如图12 所示。
图12 视频行人目标检测效果
检测结果发现,在视频背景环境复杂、运动目标位置和大小变化频繁的情况下,本文所提方法可以实现对前景目标物体检测。而本文方法对图像序列中一名由远及近逐渐进入场景的成年人的检测结果不理想,尤其是在图12(b)中出现了漏检,在图12(c)中出现了误检。
存在漏检的主要原因是当2 个目标存在遮挡时,系统认为2 个物体是1 个目标,进而在1 个网格中只预测了1 个框。而存在误检的主要原因是2 个目标距离较近时,系统误认为是1 个目标,属于待检测的同一类别。解决以上问题的主要思路还是需要扩大网络训练数据的类别和相同类别的数据内容,从而进一步改善网络的容错率和稳定性。
3.3.2 性能分析
本文所提目标检测系统损失函数包含坐标预测误差、自信度误差和物体类别概率误差3 部分,表达式为
Loss 损失函数式(3)是边界框宽高预测误差和框中心点误差,Ilnoobjij的约束意味着只有较大IOU 的边界框数据会被记入误差,λcoord用来调节边界框位置误差的权重。
式中:Ilobjij为网格i 的第j 个bounding box 是否存在目标,若存在目标,则值为1,否则为0;Ilobjij表示是否有目标中心落在网格i 中,若在网格中心,则值为1,否则为0。
Loss 损失函数式(4)为包含目标的格子置信度误差和不含目标的网格置信度误差,其中包含目标的网格置信度误差同样用Ilnoobjij来限制将最接近真实框的bounding box 数据记入误差,但对于不含目标的网格,用λnoobj调低不含目标网格的置信度误差权重;Loss 损失函数式(5)为分类预测误差,Ilobjij表示只有存在目标网格时才记入误差。
式中:Ilnoobjij为网格i 的第j 个bounding box 中是否存在目标,若不存在目标,则值为1,否则为0。
基于PASCAL VOC2007 训练的网络损失函数曲线如图13 所示。
图13 基于PASCAL VOC2007 训练的网络损失函数曲线
从图13 中可以看出,在本文参数设定模式下,随着迭代次数的增加,算法的损失值在不断减小,当整体迭代次数超过40 后,系统损失值基本稳定,此时系统的检测效果也趋于稳定。
基于PASCAL VOC2007 测试集的检测速度(FPS)和平均检测精度(mAP)对比如表3 所示。
表3 基于PASCAL VOC2007 测试集的检测速度(FPS)和平均检测精度(mAP)对比
由于本文所提方法和YOLOv1 均为单阶段目标检测算法,其mAP 略低于典型的双阶段目标检测算法FasterR-CNN,一方面,本文所提方法的mAP 较YOLOv1提高了4.57%,进一步缩小了与Faster R-CNN 的差别;另一方面,本文所提算法的FPS 较YOLOv1 框架又提高了4.44%,进一步扩大了在FPS 上的优势,可以更好地满足视频图像运动目标检测的实时性和精度要求。
本文针对视频图像中运动目标位置和大小变化频繁的特点,提出了基于改进YOLOv1 的视频运动目标检测框架,该框架采用ResNet50 进行特征提取,通过增加卷积层和全连接层优化不同尺度特征信息的传递,通过Sigmoid 层和BN 层在稳定输出结果的同时,加快训练速度。PASCAL VOC2007 数据集和实景视频数据的测试结果表明,相比原始YOLOv1 网络,本文方法的FPS 和mAP 分别提高了4.44%和4.57%。此外,在目标数目较多、光照等外界因素影响下,相比其他经典运动目标检测算法,本文方法能够实现较好的检测效果且检测精度较高,满足视频图像运动目标检测的实时性和精度要求。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!