一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

边缘计算环境中基于时空间优化的多目标跟踪加速方法与流程

2021-12-01 00:55:00 来源:中国专利 TAG:


1.本发明涉及边缘计算、视频分析和深度学习领域,具体地说是在边缘计算环境中实现了一种针对实时多目标跟踪应用的时空间加速分析方法。


背景技术:

2.实时多目标跟踪在视频监管、人流统计、自动驾驶和增强现实等应用中发挥着举足轻重的作用,同时群体行为识别和视频理解等高阶视频分析任务也都基于其进行,研究价值重大。多目标跟踪(mot)是一种视频分析任务。它对到来的输入帧进行逐帧处理并不断检测到其中的观察目标位置(boundingbox),与此同时还要辨别出不同的观察目标并为其赋予唯一的序号(id)在视频时间维度上进行标注,最终可以根据这一序号整理出每一个特定观察目标的运动轨迹(tracklet)。
3.得益于深度学习技术与计算硬件尤其是gpu的大力发展,目前的实时多目标跟踪方法在服务器级别设备上已经能基本实现同时满足精度与速度要求。然而,受限于物联网场景和成本考虑,在进行应用部署时往往无法得到那样富足的计算资源,为此如何实现物联网应用场景下的实时多目标跟踪算法推理成为了一个开放性的挑战。
4.目前针对视频分析任务的优化方法主要有两条技术路线。其一是对视觉算法做出改进,减小输入量或者压缩模型容量以下降计算规模,比如以跳帧方式处理视频,但它会让准确度大大降低;另外还有通过添加滤波器的方式来选择视频帧进行处理的方法,但它会引入较大的额外开销,且加速效果依赖于视频场景并不通用。其二是引入边缘计算技术,通过补充计算资源的方式实现任务提速,关于这里主要有数据并行、模型并行和混合并行三种方式,其中混合并行实际就是前两者的结合,而一旦涉及模型并行,目前仍未有在推理阶段进行模型并行的高效方案,往往由于模型的拆分会造成额外的通信开销,这会让端边协同机制异常复杂且难以控制,为此设计合理的数据并行模式仍是本发明的首选目标。
5.最后,模型优化是深度学习应用部署的最后一公里。将模型设计好并完成训练后,仍然可以通过一系列技术完成对模型的进一步结构优化以实现计划无精确度牺牲的加速收益,关于这方面的方案主要有算子融合、张量量化以及模型压缩的方法,但它们的使用难度都比较大且往往需要进行繁琐的重新训练环节以免造成准确度的大幅下降。tensorrt是一种针对深度学习模型推理优化的高级框架,通过它进行硬件相关的模型优化是本发明所采用的一种高效方案。


技术实现要素:

6.技术问题:面向实时多目标跟踪任务,高精度的深度神经网络模型在推理速度上难以在有限算力下达到实时,而往往高精度推理并不需要对每一帧或者一帧中的全部数据执行,这就造成了目前实时多目标跟踪计算模式在时空间上的计算资源浪费。另外,在边缘计算环境下,如何设计一个端边协同数据并行模型以最大化系统资源利用率也是一大问题。最后还需考虑使用模型优化这一通用深度学习推理优化方法。本发明提出了一种边缘
计算环境中基于时空间优化的多目标跟踪加速方法,通过集成使用时空间优化和端边协同数据并行模型以及基于tensorrt的模型结构优化方法达到了在边缘计算环境下加速实时多目标跟踪算法推理速度的目的。
7.技术方案:本发明是一种边缘计算环境中基于时空间优化的多目标跟踪加速方法,包括以下步骤:
8.步骤1、利用tensorrt推理优化框架对执行多目标跟踪的深度神经网络模型进行结构优化,具体是将其从pytorch框架下的模型经过onnx框架中转为tensorrt模型,优化之前还需为onnx框架与tensorrt模型所不识别的部分自定义层书写plugin并连接到具体模型内部;
9.步骤2、使用基于时空间优化的实时多目标跟踪算法执行模式对多目标跟踪任务执行进行加速,所述基于时空间优化的实时多目标跟踪算法执行模式将所有的视频帧分为三类:全局检测帧、局部检测帧和普通帧,这三类将周期性地出现,具体地,全局检测帧直接对全图通过神经网络识别模型进行精确识别,从而周期性地校准更新结果,并将结果输入到一个基于dbscan算法的密度划分器,按照当前的检测结果判断区域密度,划分出密度最为密集的一个区域,作为密集区域;局部检测帧,当前帧的视频输入会根据密度划分器的划分结果,仅对密集区域执行精确识别,而除密集区域外输入帧剩余图像部分的目标将直接被运动学模型快速预测出结果;对于普通帧的结果将直接通过运动模型预测得到;步骤3、基于步骤2,针对实时多目标跟踪算法中特征提取部分的深度学习推理,使用自适应的端边协同数据并行模型,根据端边设备算力和网络环境状况建立用于决策终端上本地任务和远程卸载任务划分比例的整数规划模型,在每次任务到来时进行求解所述的整数规划模型得到每次的最优端边任务调度策略;
10.步骤4、基于步骤3所执行的自适应的端边协同数据并行模型,将其结果在终端设备上进行合并并完成最终的后处理计算,输出多目标跟踪结果。
11.进一步地,步骤1中所述从pytorch框架下的模型经过onnx框架中转为tensorrt模型具体包括以下步骤:
12.步骤101、将深度神经网络模型从pytorch转换为onnx模型,为其中的自定义算子在pytorch中定义的dcn类加入一个symbolic函数,然后通过设置onnx模型的导出模式为强制导出模式,同时在onnx模型的强制导出时加入dynamic_axes选项参数支持动态shape;
13.步骤102、为深度神经网络模型中tensorrt所不支持的算子编写相应的plugin,编写的plugin基于算子的cudakernel进行符合tensorrtplugin要求的包装即可;
14.步骤103)将onnx模型导入为tensorrt模型,这部分依靠trtexec工具实现,并将步骤102)编写的plugin接入转换过程,得到最终的tensorrt模型。
15.进一步地,步骤2所述基于时空间优化的实时多目标跟踪算法执行模式对多目标跟踪任务执行进行加速具体包括以下步骤:
16.步骤201、在时间维度上,对视频帧序列按周期进行分类,分类为全局检测帧、局部检测帧和普通帧,令每个周期的第一帧为全局检测帧,随后若干帧为普通帧,普通帧后的其他帧为局部检测帧;重复所有的周期直至完成分析任务;其中全局检测帧会进入步骤202,局部检测帧会进入步骤203,普通帧会进入步骤204;
17.步骤202、全局检测帧的全部图像直接输入到自适应的端边协同数据并行模型以
启用神经网络识别模型进行全局推理,周期性地进行全局检测帧以及时在稀疏区域发现新出现的目标以及进入一个基于dbscan算法的密度划分器,基于dbscan算法的密度划分器根据在检测结果划分出密集区域和非密集区域,周期性进入全局检测帧以应对图像中目标分布的变化来调整更新密集区域与稀疏区域的划分情况;
18.步骤203、局部检测帧根据在全局检测帧最后的密集区域划分结果来从视频帧中裁剪出密集区域送入自适应的端边协同数据并行模型内;而稀疏帧内的当前结果将直接根据一个基于卡尔曼滤波的运动学模型预测得到;
19.步骤204、普通帧的结果直接全部采用基于卡尔曼滤波的运动学模型进行预测得到。
20.进一步地,步骤3具体包括以下步骤:
21.步骤301、对自适应的端边协同数据并行模型系统信息进行离线分析,包括对端边设备算力的分析以及端边网络环境的分析,所述端边设备包括终端设备和边缘设备,使用不同形状大小的输入分别在端边设备上进行神经网络推理,以此得到一个各设备上的算力性能数据,再进行测试消息包的发送接收若干次,以此得到一个初始的网络环境数据,算力性能数据与初始网络环境数据构成了统计的基础系统信息;
22.步骤302、全局检测帧和局部检测帧的深度学习推理部分会进入该步骤,按照步骤301)统计的基础系统信息进行图片的最优切分,最小化优化目标为:
23.max[l
send
(r
edge
) p
edge
(r
edge
),l
send
(r
edge
) p
end
(r
end
)]
[0024]
其中,r
edge
和r
end
分别表示边缘和终端设备所承担的输入处理大小,l
send
指特定大小图像的传输时延,p
edge
和p
end
则分别指在边缘和终端设备上处理特定大小图像所需要的处理时延;
[0025]
步骤303、基于步骤302的最优切分,将切分的数据分别调度到指定设备上调用深度神经网络模型进行处理。
[0026]
进一步地,步骤4具体包括以下步骤:
[0027]
步骤401、接收来自边缘设备的推理结果并与终端处理结果合并;
[0028]
步骤402、基于步骤401合并的结果,进行与历史跟踪目标关于边界框坐标位置的相似度矩阵计算,再基于匈牙利算法对该矩阵进行数据关联,所述数据关联采用基于相似度的二分图匹配,最终的匹配结果会被认为是神经网络处理区域的跟踪结果,将该结果作为新的历史跟踪目标,若此时为局部检测帧,进入步骤403;若此时为全局检测帧,进入步骤404;
[0029]
步骤403、合并来自基于卡尔曼滤波的运动学模型预测得到的稀疏区域结果和步骤402得到的新的历史跟踪目标作为当前帧结果并进行输出;
[0030]
步骤404、基于此时新一次的全局检测跟踪结果使用基于dbscan算法的密度划分器进行密度相关的目标聚类,以此确定或者更新当前目标分布最密集的区域,之后依旧输出当前帧的合并结果。
[0031]
有益效果:
[0032]
本发明的有效之处在于:
[0033]
通过一种用于边缘计算环境中基于时空间优化的多目标跟踪加速方法,从而有效提高了实时多目标跟踪算法的执行速度,以此满足应用对实时性能的需求。
[0034]
本发明与现有技术相比,具有以下特点:
[0035]
1、本发明提出了一种针对现有实时多目标跟踪计算模式的时空间优化执行模式,以此减少分析过程中在时空间维度上的冗余计算,该方法通用且可拓展。
[0036]
2、本发明使用一种简单有效的协同划分卸载方式实现了数据并行,它不会产生额外的通信开销,容易理解与使用。
[0037]
3、本发明考虑全面,结合考虑了在边缘计算环境下进行深度学习推理优化的各个方面:包括模型结构优化、端边协同优化和推理上的计算模式优化,这确保了本发明在应用部署场景下的高效性。
[0038]
4、由于本发明对实时多目标跟踪算法并不挑剔,因此易于在现有系统上轻松实现升级部署。
附图说明
[0039]
图1是本发明技术的实现流程框架图;
[0040]
图2是本发明的基于tensorrt实现过程示意图;
[0041]
图3是本发明的基于时空间优化的多目标跟踪加速方法示意图;
[0042]
图4是本发明的基于dbscan算法的密度划分器的过程示意图;
[0043]
图5是本发明的端边协同数据并行模型的过程示意图;
[0044]
图6是本发明在不同配置下所能获得的实验加速效果对比图;
[0045]
图7是本发明在不同网络状况下的表现效果对比图;
[0046]
图8是本发明的应用软件原型界面图。
具体实施方式
[0047]
为了加深对本发明的理解,下面结合附图对本实施例做详细的说明。
[0048]
本实施例的边缘计算环境中基于时空间优化的多目标跟踪加速方法,包括以下步骤:
[0049]
步骤1、如图2所示,首先利用tensorrt推理优化框架对执行多目标跟踪的深度神经网络模型进行结构优化,具体过程为:
[0050]
步骤101、将深度神经网络模型从pytorch转换为onnx模型,为其中的自定义算子在pytorch中定义的dcn类加入一个symbolic函数,然后通过设置onnx模型的导出模式为强制导出模式,同时在onnx模型的强制导出时加入dynamic_axes选项参数支持动态shape;
[0051]
步骤102、为深度神经网络模型中tensorrt所不支持的算子编写相应的plugin,编写的plugin基于算子的cudakernel进行符合tensorrtplugin要求的包装即可;
[0052]
步骤103)将onnx模型导入为tensorrt模型,这部分依靠trtexec工具实现,并将步骤102)编写的plugin接入转换过程,得到最终的tensorrt模型。
[0053]
步骤2、如图3所示,使用基于时空间优化的实时多目标跟踪算法执行模式对多目标跟踪任务执行进行加速,所述实时多目标跟踪算法执行模式将所有的视频帧分为三类:全局检测帧、局部检测帧和普通帧,这三类将周期性地出现。
[0054]
步骤201、在时间维度上,对视频帧序列按周期进行分类,分类为全局检测帧、局部检测帧和普通帧,令每个周期的第一帧为全局检测帧,随后若干帧为普通帧,普通帧后的其
他帧为局部检测帧;重复所有的周期直至完成分析任务;其中全局检测帧会进入步骤202,局部检测帧会进入步骤203,普通帧会进入步骤204;
[0055]
步骤202、对于全局检测帧,它的处理模式与一般的计算模式无异,即对全图进行深度神经网络模型的计算,然后再进行数据关联步骤得到跟踪结果,此外在这类帧下,还会进入一基于dbscan算法的密度划分器用于生成或者更新密集区域。
[0056]
全局检测帧的全部图像直接输入到自适应的端边协同数据并行模型以启用神经网络识别模型进行全局推理,周期性地进行全局检测帧以及时在稀疏区域发现新出现的目标以及进入一个基于dbscan算法的密度划分器,基于dbscan算法的密度划分器根据在检测结果划分出密集区域和非密集区域。
[0057]
如图4所示,密度划分器的目标是根据检测结果中的坐标数据将图像中目标密集的区域划分出来,从而进行后续的分区域处理。本发明选用dbscan算法作为密度划分器的聚类算法,dbscan算法是一种基于密度的聚类算法,若某个点的密度达到算法设定的密度阈值则将其定为核心点。密度阈值通过两个参数设定,一个为扫描半径(eps)另一个为最小包含点数目(minpts),当一个点的扫描半径内有超过最小包含点数目的点后则将其定为核心点。当判断出核心点后会以该核心点为中心拓展扫描半径内的其他点也为核心点,并不断递归这一步骤,以此划分出多片密度簇。
[0058]
由于划分算法可能会划分出多个密度簇,所以这里还需要加入一次最大值提取操作,仅取用点数目最多的密度簇作为密集区域划分所使用的密度簇。最终输出的密集划分区域是一个匹配神经网络模型输入要求的矩形区域,以选出的最终密度簇内所有点的坐标平均值作为密集划分区域的中心点坐标并根据预设置的区域矩形大小构建出密集划分区域。
[0059]
周期性进入全局检测帧以应对图像中目标分布的变化来调整更新密集区域与稀疏区域的划分情况;
[0060]
步骤203、对于局部检测帧,它不会对全图进行深度神经网络模型的计算而仅对密集区域执行,这大大减少了计算资源在空间上的浪费,而帧内的剩余图像区域则全部执行基于卡尔曼滤波的运动学预测计算。对于普通帧则全部使用基于卡尔曼滤波的运动学预测计算,这种做法相比跳帧处理要有更好的准确度,同时本发明也认为这样能减少计算资源在时间上的浪费。本发明依靠这样的时空间优化策略实现了算法实时推理能力的大幅提高。
[0061]
局部检测帧根据在全局检测帧最后的密集区域划分结果来从视频帧中裁剪出密集区域送入端边协同数据并行模型内;而稀疏帧内的当前结果将直接根据一个基于卡尔曼滤波的运动学模型预测得到;
[0062]
基于卡尔曼滤波的运动学模型会为每个目标建立一个状态模型:
[0063][0064]
其中u代表目标当前的水平中心点坐标,v代表目标当前的垂直中心点坐标,s代表目标当前的大小,r代表目标当前的长宽比,分别代表其对应的预测结果。假设目标状态中的长宽比是一个常数,那么变化量有δu、δv和δs,它们分别代表目标的横轴速度、纵轴速度和大小变化速度,目标状态的变化量可以构成速度矩阵ve。上标t代表对矩阵执行转置运算,假设帧间的位移为线性匀速模型。
[0065]
在目标运动的第一帧时会对运动模型进行初始化,创建关于测量值的初始目标状态x以及代表状态中各变量间关系的协方差矩阵p。在后续帧中,每次都要根据目标的历史状态做出状态预测,根据线性模型进行预测:
[0066][0067][0068]
它们分别更新了目标状态和协方差矩阵。其中,k代表的是视频帧的帧序号,是指对目标x在第k帧上的运动预测结果,是指在第k

1帧上的运动预测结果,p
k
是指在第k帧上的运动预测结果对应各变量间关系的协方差矩阵,p
k
‑1是指在第k

1帧上的运动预测结果对应各变量间关系的协方差矩阵,到和p
k
‑1到p
k
的一次连续时间的运算即一次运动更新,f
k
是一个运动矩阵,在本模型中它是一个匀速运动矩阵,q
k
是随机运动中的噪声,通过提前设定阈值可以控制噪声大小。
[0069]
当获取到针对该预测目标的真实状态时,需要使用卡尔曼滤波方法进行数据融合来更新结果。首先要将位于预测结果空间的和p
k
转换到测量空间得到和并对p
k
的转换加入噪声r
k
得到一个转换结果:
[0070][0071][0072]
其中是指将预测结果转换到测量空间后的预测结果,是指将预测结果对应各变量间关系的协方差矩阵p
k
转换到测量空间后并加入噪音后的结果,h
k
为转换矩阵,但由于本模型中预测结果空间与测量空间分布一致,所以它是一个全1矩阵,r
k
为观测噪声。其次,根据转换结果计算卡尔曼增益k,最后依据卡尔曼增益更新预测结果p
k

[0073][0074][0075][0076][0077][0078]
其中z
k
为观测结果,如此便得到了目标的预测状态。
[0079]
步骤204、普通帧的结果直接全部采用基于卡尔曼滤波的运动学模型进行预测得到。
[0080]
步骤3、基于步骤2,针对实时多目标跟踪算法中特征提取部分的深度学习推理,使用自适应的端边协同数据并行模型。
[0081]
步骤301、如图5所示,首先对系统信息进行离线分析,包括对端边设备算力的分析以及端边网络环境的分析,使用不同形状大小的输入分别在端边设备上进行神经网络推理,以此得到一个各设备上的算力性能数据即计算能力集合p
end
和p
edge
,此时的测试过程是根据预定义的r
end
与r
edge
取值集合确定的;再进行测试消息包的发送接收若干次,以此得到一个初始的网络环境数据在b
1,...,k
,k表示网络测试所发消息包数目。算力性能数据与初始网络环境数据构成了统计的基础系统信息;
[0082]
步骤302、在执行阶段,按照步骤301统计的基础系统信息进行图片的最优切分,最小化优化目标为:
[0083]
max[l
send
(r
edge
) p
edge
(r
edge
),l
send
(r
edge
) p
end
(r
end
)]
[0084]
其中,r
edge
和r
end
分别表示边缘和终端设备所承担的输入处理大小,l
send
指特定大小图像的传输时延,p
edge
和p
end
则分别指在边缘和终端设备上处理特定大小图像所需要的处理时延;以此根据端边设备算力和网络环境状况建立用于决策终端上本地任务和远程卸载任务划分比例的整数规划模型:
[0085][0086][0087][0088]
其中,b为测量得到的当前帧网络带宽,j为测量时所观测的k帧中的帧序号,p为图像压缩率,i为当前帧的序号。假定到来的视频帧图像分辨率大小为r
origin
,任务调度器需要根据端边设备的计算能力以及当前的网络状况对视频帧做出合理的划分,划分一块分辨率为r
end
的图像块交由终端负责,一块分块率为r
edge
的图像块交由边缘负责。端边设备硬件的计算能力会事先针对不同分辨率的图像在终端和边缘分别进行测试得出对应分辨率的计算时延p
end
和p
edge
。网络时延l
send
通过对先前最后k帧的任务完成后测量出的b
j
及计算得到的每帧的网络延迟情况做出平均得出。
[0089]
步骤303、在每次任务到来时进行求解所述的整数规划模型得到每次的最优端边任务调度策略,求解这一线性规划问题还是比较耗时的,但通过先前提到的通过对决策变量预定义r
end
与r
edge
取值集合限制即可将问题大幅简化并可控。
[0090]
步骤304、、基于步骤303的最优切分,将切分的数据分别调度到指定设备上调用深度神经网络模型进行处理。
[0091]
步骤4、基于步骤3所执行的端边协同数据并行模型,将其结果在终端设备上进行合并并完成最终的后处理计算,输出多目标跟踪结果。
[0092]
实验配置:
[0093]
系统测试边缘硬件为配备有gtx1050 gpu的一台笔记本电脑充当边缘服务器,一台jetsonnano2g终端设备,它们通过wifi连接,网络带宽约1mb/s。在边缘和终端上都需要配置系统所需的软件运行环境。系统主要支持linux操作系统,其中边缘侧设备的操作系统为ubuntu20.04,终端设备上使用jetpack4.5(l4t r32.5.0)。选用mot20

01视频序列进行测试,准确性衡量指标为mota,速度或吞吐率衡量指标为fps。
[0094]
实验对比:
[0095]
如图6所示,搭配使用基于tensorrt的深度神经网络模型结构优化,基于时空间优化的实时多目标跟踪算法执行模式并选取不同的周期间隔数和自适应的端边协同数据并行模型与原始算法进行对比。从结果上看,基于时空间优化的实时多目标跟踪算法执行模式能够达到非常好的加速效果,但同时使用的时间间隔越长,所会造成的精度损失也越大。其次,基于tensorrt的深度神经网络模型结构优化方法的加速效果十分有效,基本做到了
不损失精度的加速。最后,通过自适应的端边协同数据并行模型能够相比于终端本地执行起到显著的加速效果。终端和边缘的计算理论上不应该存在精度误差,但由于硬件架构以及软件包版本不一致等问题,这里还是出现了一些性能不一致的情况,但基本可控。由于边缘设备一直是深度神经网络推理的主力平台,相比终端设备各种软件包资源完善且丰富,从这一角度看,将计算任务卸载至边缘执行还能在处理精度上有小幅提升。
[0096]
尽管自适应的端边协同数据并行模型在加速比上不及目前常用的全部卸载模式,但那是在网络状况稳定的前提下的,当网络状况很差时,全部卸载的方案会由于网络延迟的高企带来速度的大幅下降甚至低于本地处理的执行速度。而本发明所提出的自适应的端边协同数据并行模型能够针对实时网络情况动态分配计算策略,执行最优的加速卸载方案。在测试时,引入一段3分钟的低带宽网络环境,这里通过wondershaper软件模拟实现流量控制。结果如图7所示,显然,自适应的端边协同数据并行模型能针对网络的状况动态改变自身任务卸载策略,以此在低带宽网络条件下也能通过调用本地计算达到尽可能高的计算处理速度。
[0097]
应用原型:
[0098]
如图8所示,本发明还开发有一个已集成了所提出的边缘计算环境中基于时空间优化的多目标跟踪加速方法的原型软件。它能够接收来自视频文件或者实时视频流的视频数据,并根据自定义配置执行相应的数据处理模式,并可将结果实时显示在软件界面上,能良好执行诸如视频监管、人流计数等任务。
[0099]
本发明还可有其他多种实施方式,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献