基于边缘计算的行人检测算法研究

2023-06-25 01:30张超王亮
现代信息科技 2023年6期
关键词:边缘计算

张超 王亮

摘  要:文章基于多个边缘计算设备,构建轻量高效的行人检测算法。首先,基于原始YOLOv5模型,替换为MobileNetv3作为特征提取网络,减少算法参数量和计算量;其次采用ReLu6激活函数,加速网络收敛,减少模型复杂度;最后利用K-means聚类算法仅选取3个先验框分别匹配到3个不同尺度检测头中。实验结果表明:改进后的模型参数量和计算量于仅为原始模型的51.6%和39.8%,在Jetson AGX Xavier设备上采用TensorRT进行推理达到了66 FPS的实时速度,在RK3399设备上达到了2.1 FPS。

关键词:边缘计算;行人检测;YOLOv5算法

中图分类号:TP391.4    文献标识码:A  文章编号:2096-4706(2023)06-0081-04

Research on Pedestrian Detection Algorithm Based on Edge Computing

ZHANG Chao, WANG Liang

(School of Electronics and Information, Xian Polytechnic University, Xian  710048, China)

Abstract: This paper constructed a lightweight and effective pedestrian detection algorithm based on multiple Edge Computing devices. Firstly, based on the original YOLOv5 model, MobileNetv3 is replaced as the feature extraction network to reduce the number of algorithm parameters and computation. Secondly, ReLu6 activation function is used to accelerate network convergence and reduce model complexity. Finally, K-means clustering algorithm is used to select only three prior frames and match them to three detection heads of different scales. Experimental results show that the number of parameters and computation of the improved model are only 51.6% and 39.8% of that of the original model, and the real-time speed of 66 FPS is achieved on Jetson AGX Xavier and 2.1 FPS on RK3399.

Keywords: Edge Computing; pedestrian detection; YOLOv5 algorithm

0  引  言

行人检测是计算机视觉的研究热点之一,是自动驾驶、行为分析和行人重识别等场景研究的基础,具有重要的研究价值和广泛的应用场景[1,2]。行人检测主要依赖于目标检测算法,为提高准确率,神经网络的深度也在逐渐加深,计算量越来越大,因此,需要消耗大量的计算资源,在边缘计算设备上无法达到实时的检测效果[3]。

目前,进行行人检测的方法主要有两种,一是使用传统的机器学习算法进行行人检测,如曹巧慧等人根据不同的俯仰角对图像提取HOG特征,然后优化SVM分类器进行行人检测[4]。二是基于深度学习的方法进行行人检测,深度学习的方法主要分为两类,分别是基于候选框的两阶段算法和基于回归的单阶段算法[5]。基于两阶段的检测算法有R-CNN、Fast-RCNN和Faster-RCNN等经典的识算法[6]。基于单阶段的目标检测算法有YOLO[7,8]系列。YOLOv5是2020年6月Ultralytics团队在YOLOv3的基础上提出的[9],与两阶段算法相比,其具有简单结构,更快的检测速度。

研究者们使用轻量化神经网络通过更加精巧的特征提取方式,在几乎不影响模型性能的情况下使得参数量大幅度减小[10]。常见的轻量化主干网络有MobileNet系列等轻量化结构[11]。如栾奕等人针对ARM边缘计算架构的特点,对MobileNet-V1网络进行压缩,不仅减小了功耗而且提升了准确率[12]。

综上所述,本文为了能够在低算力设备上进行实时高效的行人检测,通过改进YOLOv5网络结构,在多个边缘计算设备上实现实时准确的行人检测系统。本文的主要贡献有:在YOLOv5s网络基础上,利用Mobilenetv3作为特征提取的主干网络,保证检测精度满足实际需求的同时,减少了网络参数,在一定程度上提升检测速率;使用K-means聚类生成行人目标生成候选框,将原本9框设定为3框,进一步提升检测速率;采用ReLu6激活函數,在边缘计算设备上,限制模型的输出能够提高运行的速度,减少计算的复杂度,所以本文采用ReLu6激活函数;由于行人数据的单一目标特性,采用三个anchor进行匹配,构建了更加轻量的目标检测器,将行人检测算法运行在多个边缘计算设备上,达到实时性效果,验证改进后的模型具有较高的实际价值。

1  优化算法

1.1  YOLOv5简介

YOLOv5采用由backbone,FPN,PAN,Detect四部分组成,其backbone的作用是提取特征,主要由Conv、C3和SPPF三个模块组成,PANet的组成是一个图像特征金字塔结构用于融合特征[13],最后将得到的特征分别送入Detect中进行检测,具体结构如图1所示。根据网络的宽度和深度不同,从小到大依次为YOLOv5s、YOLOv5m、YOLOv5l、和YOLOv5x四个版本,随着模型深度和宽度因子的变大,网络的参数量和准确率都会变大,其中YOLOv5s的实时性较好,所以本文首先选择YOLOv5s模型进行行人检测,并在多个边缘计算设备上进行测试。

1.2  YOLOv5算法优化

1.2.1  特征提取网络优化

在不降低精度的前提下,减少网络参数量及计算量,本文使用MobileNetv3代替其原有的特征提取网络,构建YOLOv5s-MobileNetv3网络结构。采用深度可分离卷积进行特征提取1×1的卷积核在深度可分离卷积中称为逐点卷积。一般情况下,卷积核大小N的取值较大,若采用3×3的卷积核,深度可分离卷积相比于传统的卷积,可以减少大约9倍的计算量。

将MobileNetv3作为YOLOv5特征提取网络,不仅能减少运算量和模型参数量,还能提高网络的计算效率。

1.2.2  采用ReLu6激活函数

将SiLu激活函数替换为ReLu6的激活函数,其能够更好地应用在嵌入式设备之上,降低模型复杂度,减少计算开销,并且使得网络更快的收敛。通过式(1)可以看出,SiLu函数的计算复杂度远远大于ReLu6的计算复杂度。

(1)

(2)

通过式(2)可以看出ReLu6有上下界,能够在进行模型量化时,减少精度损失,所以选择Relu6激活函数来代替SiLu激活函数,便于低精度量化,并且减少计算开销。

1.2.3  K-means聚类生成先验框

K-means聚类算法被广泛应用于目标检测寻找先验框之中。由于本文实验的数据是单类目标尺度大小较为统一,所以每个尺度上分别采用1个anchor。使用K-means聚类和遗传算法生成不同尺寸的anchor,其主要流程包括以下五点:

(1)读取训练集中每张图片的宽和高以及标签文件中的宽和高。

(2)将每张图片中宽和高的最大值等比例缩放到指定大小的尺寸,本文为640×640,由于读取的标签文件中边界框是相对坐标,所以,将其也变换为绝对坐标。

(3)然后过滤超出图像的坐标,保留小于等于图像宽和高的边界框。

(4)使用K-means聚类得到3个anchors,使用遗传算法随机对anchors的宽和高进行变异,如果变异后效果变得更好,就将变异后的结果赋值给anchors,如果变异后效果变差就跳过,默认变异1 000次。

(5)最后将最终变异得到的anchors按照面积进行排序。

通过以上五个步骤,得到三个尺度对应的anchor分别是:(15,31)、(45,93)、(162,268)对应的是20×20、40×40和80×80的检测头。

本文改进后的网络结构YOLOv5s-MobileNetv3-ReLu6如图2所示。

本文优化后的网络结构为YOLOv5s-MobileNetv3-ReLu6,首先主干网络采用轻量化结构MobileNet_Block用于特征提取,然后将激活函数换为ReLu6减少计算复杂度,最后针对单目标选择三个anchor输出对应三个尺度的检测头进行检测,进一步减少了计算量。

2  实验与结果分析

2.1  实验环境

本文实验的操作系统为Ubuntu 18.04.5,GPU型号为NVIDIA GeForce RTX 3090,显存大小为24 G,采用的深度学习框架为pytorch1.8.1,编程语言为Python 3,使用的cuda 11.1和cudnn 8.0.4进行加速。

2.2  数据集

本实验使用的数据是coco数据集中的person标签进行提取,除去不包含行人标签的数据,最终的图片数量为66 808张,person的标签數为273 469个,coco数据集是目标检测常用的公开数据集,具有丰富的背景信息和前景信息,实验中按照8:1:1的比例划分为训练集测试集以及验证集。

2.3  实验结果

2.3.1  评价指标

本文使用精准率P(Precision)和召回率R以及平均精度均值mAP作为评估指标,计算公式如下,同时使用帧率FPS作为检测速度评估的指标。

(3)

(4)

(5)

(6)

式(3)到(6)中FP代表的是负样本预测为正样本的数量,FN表示负样本预测为负样本的数量,TP是正样本预测为正样本的数量,TN是正样本预测为负样本的数量,m表示所有类别的数量。

2.3.2  边缘计算设备性能对比

为了更加客观的评价算法性能,本文将YOLOv5s采用相同的训练参数、数据集进行训练,并在测试集上进行测试。首先把模型进行边缘转换,然后在NVIDIA公司推出的边缘设备Jetson Xavier NX、Jetson AGX Xavier以及瑞芯微的RK3399设备上推理测试速度和检测效果,CPU设备推理框架采用ONNX Runtime进行,GPU设备采用TensorRT推理框架,速度测试为1 000张图片推理时间取平均的结果。

在测试集的计算结果如表1所示,改进后的算法参数量和计算量于仅为原始模型的51.6%和39.8%,YOLOv5s -MobileNetv3-ReLu6在精度基本维持不变的情况下,速度都更快。

输入为640×640×3大小的图片,使用边缘计算设备在困难样本上进行行人检测,其检测效果如图3所示。

通过检测效果图3可以得出,改进后的YOLOv5算法运行在边缘计算设备之上依旧具有很高的精度,对于多种复杂场景下,都能较好地进行行人检测,也表明了该算法能够适应现实场景需求。采用MobileNetv3作为特征提取网络,可以减少参数量,加快推理速度,使用ReLu6激活函数,即使在边缘设备上进行低精度推理,同时在三个尺度上各采用一个anchor,对于行人检测的效果满足实际需求。

3  结  论

为了减少模型的参数量并且在低算力设备之上运行行人检测算法,本文使用轻量化特征提取网络Mobilenetv3,然后使用运算更加简单的ReLu6激活函数,并且减少anchor的数量,在三个边缘设备上进行验证,通过实验得出改进后的算法YOLOv5s-MobileNetv3-ReLu6相比于原始YOLOv5s算法具有较好的性能。不仅速度快,满足在边缘设备上的实时性检测需求,而且在多种复杂场景下进行行人检测上也具有良好的检测效果。下一步打算继续研究准确率更高的、速度更快的检测方法,与目标跟踪技术相结合,做出更加完善的行人分析平台,达到降本增效的目的。

参考文献:

[1] 郭振堂,祝永新,田犁.基于多模态数据的车辆行人检测 [J].激光杂志,2021,42(12):52-58.

[2] HAN H,ZHOU M C,SHANG X W,et al. KISS + for Rapid and Accurate Pedestrian Re-Identification [J].IEEE Transactions on Intelligent Transportation Systems,2020,22(1):394-403.

[3] CHENG J,WANG P S,LI G,et al. Recent Advances in Efficient Computation of Deep Convolutional Neural Networks [J].Frontiers of Information Technology & Electronic Engineering,2018,19(1):64-77.

[4] 曹巧慧,葛万成.基于俯仰角修正的HOG特征快速行人检测算法 [J].现代电子技术,2014,37(21):62-65.

[5] 陈辉东,丁小燕,刘艳霞.基于深度学习的目标检测算法综述 [J].北京联合大学学报,2021,35(3):39-46.

[6] 王小燕,谢文昊,杨艺芳,等.基于深度学习的垃圾分类检测方法 [J].现代电子技术,2021,44(21):110-113.

[7] REDMON J,FARHADI A. YOLO9000:Better,Faster,Stronger [J/OL].arXiv:1612.08242 [cs.CV].(2016-12-25).https://arxiv.org/abs/1612.08242.

[8] BOCHKOVSKIY A,WANG C-Y,LIAO H-Y M. YOLOv4:Optimal Speed and Accuracy of Object Detection [J/OL].arXiv:2004.10934 [cs.CV].(2020-04-23).https://arxiv.org/abs/2004.10934.

[9] REDMON J,FARHADI A. YOLOv3:An incremental improvement [J/OL].arXiv:1804.02767 [cs.CV].(2018-04-08).https://arxiv.org/abs/1804.02767.

[10] 刘俊明,孟卫华.基于深度学习的单阶段目标检测算法研究综述 [J].航空兵器,2020,27(3):44-53.

[11] HOWARD A,SANDLER M,CHU G,et al. Searching for MobileNetV3 [J/OL].arXiv:1905.02244 [cs.CV].(2019-05-06).https://arxiv.org/abs/1905.02244v2.

[12] 欒奕,刘昌华.基于TPU和FPGA的深度学习边缘计算平台的设计与实现 [J].计算机工程与科学,2021,43(6):976-983.

[13] LIU S,QI L,QIN H F,et al. Path Aggregation Network for Instance Segmentation [C]//2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR).Salt Lake:IEEE,2018:8759-8768.

作者简介:张超(1996—),男,汉族,陕西渭南人,硕士研究生在读,研究方向:计算机视觉与模式识别;王亮(1995—),男,汉族,陕西西安人,硕士研究生在读,研究方向:计算机视觉与模式识别。

收稿日期:2022-12-16

猜你喜欢
边缘计算
LPWAN与边缘计算融合在电力物联网中的应用研究
基于边缘计算的农业物联网系统的研究
浅析边缘计算与智能制造装备
面向智能公交的移动边缘互联系统设计与实现
边缘网络中QoS感知的应急多设备协同机制
面向5G MEC边缘云的CDN下沉方案
区块链技术在物联网中的应用分析
边缘计算下移动智能终端隐私数据的保护方法
边缘计算在农业物联网中的应用
从“边缘计算”看未来企业办公场景