01

尊敬的各位评委老师好,我是答辩人雷磊,我的论文题目是《基于FPGA边缘设备的值班人员智能监测系统研究与实现》

02

我的答辩内容分为以下五个部分

03

首先介绍研究背景及意义

04 研究背景及意义

目前有许多的岗位需要工作人员实时在岗如工地监控室、航油值班室、幼儿园监控室等,由于这些岗位的特殊性,一旦员工无故离岗或睡岗,则可能因为对突发事件应对不及时,造成经济损失或其他严重后果。
与此同时,还有一些关键区域不允许擅自进入,即需要进行入侵检测等。
传统监管方式是通过人工巡查,但这种方式耗时耗力,且由于人的参与,难以保证全天候监测。
在这种情况下,基于视频监控和深度学习算法的智能行为监测系统就提供了新的思路,而且可以一二三……。

05研究内容

智能监测算法的基本流程如图所示。
首先使用人体检测算法从中提取人体位置信息,减小背景环境的干扰。
而后使用行为识别算法进行异常或违规行为的判定。

同时考虑到功耗、成本、数据保密等原因,采用边缘计算的方式来进行算法部署

因此本文的研究内容主要分为三个部分,人体检测、行为识别与边缘计算算法部署
其中,人体检测算法主要分为单阶段与双阶段检测算法,
行为识别算法可分为双流法、3D卷积法、TSN等
边缘计算算法部署是指通过轻量化网络或模型压缩来降低模型复杂度

06接下来对轻量级值班室人体检测算法进行介绍

07 kv260

本文所有算法都需要部署至Xilinx Kria kV260边缘设备,相较于GPU设备,边缘设备算力较低,且现阶段版本对一些深度学习算子不支持。就需要在网络设计时采用一些轻量网络或模型压缩的方式来解决这个问题。

而云计算提供的深度学习服务也普遍存在以下三个缺陷: 传输延迟较高:2)隐私数据难以保证(3)成本较高:基于云计算的深度学习服务通常需要不菲的服务费用,从长期使用来看成本高昂。

08

但如何选择合适的轻量网络或模型压缩方法就成了一个值得思考和测试的问题,主要是不同的边缘设备对神经网络算法的优化程度不同。

为进一步了解KV260的计算特性,试图得出一些指导网络设计的结论本文设计一些实验进行测试
实验流程如图所示

简单来说,构建一些不同参数的网络,并将其部署至KV260,对所有的测试数据进行总结和分析
这些不同参数包括:卷积通道数,激活函数,卷积类型等

09 以卷积输出通道数为例

左侧模型复杂度计算公式可以看出
模型复杂度与卷积输出通道数线性关系,那么网络推理延时直观上也应该是线性的
但结果却表明两者间呈现一种阶梯递进,且步长为16
这一发现提醒表明在设计网络时,应尽可能保证通道数为16的倍数,从而尽可能发挥硬件特性。

10

对所有实验数据分析,主要有以下四点结论
尽量保证通道数···
激活函数不影响···
深度卷积延时较小···
根据具体任务选择轻量级网络··

11

本文所提出的轻量级值班室人体检测算法TinyDet如图所示,
对单阶段目标检测算法的三个部分Backbone、Neck、Head都进行了相应的改进
并增加了一个训练自蒸馏模块来提高网络精度。

12

在选择主干网络时,由于本文算法与YOLOX类似,因此使用多种轻量级主干网络替换YOLOX-S的主干网络进行测试。结果如下所示:
综合考虑精度和速度,选择使用Mobile NetV2作为基准网络。

13

同时,对Mobile NetV2网络参数进行修改,在保证特征提取能力的前提下,尽可能提高检测精度
主要是对通道数、堆叠个数进行修改。

14

在Neck部分,使用FPN与PAN对多个不同尺度的特征信息进行反复融合,从而提高目标检测性能。
在该部分,使用了RepVGG Block作为基本单元。

15

RepVGG是一种基于重参数化来实现模型压缩的方式。
如左图所示,在训练阶段,网络具有三条并行分支,在部署阶段,使用等价代换的方式将其变换成单分支网络。
从而在保留单分支推理速度的前提下,提高网络特征拟合能力。

16

相关文献[65]发现,在目标检测任务中,目标定位与目标分类存在着关注信息不一致的问题,即目标定位与目标分类所关注的图像特征是同的。如果使用同一个检测头对特征图进行目标定位和目标分类,则可能会相互影响造成检测性能不理想[66]。

在Head检测头部分,使用深度可分离卷积(Depthwise Separable Convolution,DS Conv)构建解耦检测头,由两个分支分别进行目标分类和目标回归
同时,由于应用场景仅有单目标,目标分类难度较小,因此在分类分支仅使用一个卷积层,在回归分支使用三个深度可分离卷积进行拟合,并将卷积核尺寸增加为5。

上文结论指出,适当增加深度可分离卷积的卷积核尺寸,对推理延时影响较低。

17 TAD

与YOLOX一样,本文的算法使用SimOTA在训练阶段实现标签分配。
SimOTA主要是基于代价矩阵CostMatrix来分配标签,CostMatrix计算的质量直接决定网络最终的检测性能。
由于本文算法整体较小,在网络前期计算CostMatrix不够准确,因此增了一个训练自蒸馏模块。
该模块从特征融合模块之后接入,相当于另一个检测头,相比于网络原本检测头,具有更高的通道数与网络层数。
可以更快、更好地学习特征,获取更精准的CostMatrix。原本的检测头也会基于该CostMatix进行标签分配,TAD模块与检测头模块的损失共同构成网络整体损失,加快网络收敛
并且,TAD模块仅在训练阶段生效,部署时删去,不影响网络速度。

18

在真实场景下,人体经常会被遮挡。
为模拟实际场景,提出了Shadow数据增强方式,在每个人体的周围,概率性增加不同大小的遮挡块
相比于随机擦除的方式,这种方法更具有针对性。

19

与其他算法的对比结果如下:
总的来看,该算法比YOLOX-S略低,但速度快了约1/3。
同时,在消融实验方面,修改过的MobileNetV2相比于原版MobileNetV2,速度提升明显;
Shadow数据增强效果比随机擦除要好
而且TAD模块确实可以提高网络精度。

20

从功耗对比可以看出,本文所提出的算法相比于另外几种网络具有一定优势,这对减小设备日常成本具有积极意义。

21

挑选几张典型场景图片进行人体检测,结果如图。
可以看出,本文算法对不同角度、不同遮挡情况的人体都可以进行有效识别。

22 接下来介绍基于双分支的违规行为识别

23

行为数据集来源主要包括两个部分,其一对场景监控视频进行抽帧保存、其二通过网络爬虫获取相似场景的图片。
在对数据集进行分析之后,发现这些异常行为具有三个特点:

  • 行为存在时间连续性,连续几帧图像基本没有变化。
  • 不同行为的人体姿态存在一定的差异性
  • 某些行为姿态存在相似性,但从图像特征可以区分

    24

    基于上述发现以及设备限制,提出姿态特征分支与图像特征分支的双分支的违规行为检测算法。
    两个分支并行进行特征提取,而后使用融合模块进行特征融合。

    25

    图像特征分支可以看作传统的图像分类任务。
    使用缩减过通道数的MobileNetV2对输入图像进行特征提取,完成行为分类任务。

    26

    为了获取人体姿态特征,引入谷歌的MoveNet进行人体姿态估计。
    MoveNet是最新的轻量级姿态估计算法,网络共有四个输出。
    考虑到具体的关键点坐标值难以进行端到端训练,且关键点热力图HeatMap能够更直观体现关键点之间的耦合关系

    27

    选择使用HeatMap作为人体姿态特征,并通过一组卷积来实现与具体行为之间的拟合。

    28

    在分支融合策略上,采用了两种方式:Fuse和Add
    Fuse即是两个分支特征图先Concat,再进行网络预测;
    Add则是两个分支单独预测,并将结果相加。

    29

    从预测结果可以看出,单分支的预测精度较低,双分支精度较高。
    同时,本文所提出的融合方式Fuse相比于Add具有更高的精度。

    30

    在速度方面,Fuse速度更快,因为两个分支在后半部分进行融合,减少并行分支处理的时间,且功率也较小

    31 接下来介绍行为监测系统的设计与实现

    32

    该系统采用边-云结合,整体架构如下。
    其中边缘端,主要进行算法的处理,当出现违规行为时,进行报警事件上传;
    应用管理平台则对所有的报警数据进行整合,对终端设备进行管理等。

    33

    简要介绍终端所使用的Cyber Rt框架。
    提供了一种节点开发的方式,节点间利用通道进行通信,当获取数据时,数据自动按照实现定义的拓扑图进行传导。

    34

    边缘算法终端拓扑图如图所示,主要分为四类
    算法分析节点完成相应的图像获取、算法运行任务;
    通信节点实现终端与云平台交互,日志节点记录运行日志;
    终端管理节点监测所有节点运行状态是否良好;

    35

    在算法分析时,不仅仅只是简单的进行人体检测与行为分类,需要进行相应的逻辑判别。
    以睡岗检测算法为例,
    人体检测算法传入人体位置信息,目标跟踪算法IOUTracker进行目标轨迹跟踪,
    在5min时间内,相应的人体轨迹中心点方差小于阈值,则认为可能存在睡岗行为。
    因此进行行为识别,每隔一定时间(5s),连续十次检测,如果过半判定为违规行为,则进行事件上报。

    36

    应用管理平台主要有以下五个功能,终端管理,用户管理、报警管理、模型管理以及消息推送。

    37

    一些系统界面展示如下:

    38接下来对本文工作进行一个总结

    39

    首先通过实验去测试KV260的计算特性,基于此设计轻量级的人体检测算法;
    另外,在图像特征分支与人体姿态分支提出了双分支违规行为识别网络;
    最后在两者的基础上实现了行为监测系统。

    40

    但是还有很多不足之处:
    一方面,继续研究KV260计算特性,或编写IP内核,提供更多的算子支持;
    另一方面,扩展和改进违规行为识别算法;
    而后提高应用平台的可操作性和稳定性。

    41

    以上就是我的答辩内容,恳请老师指正!