一种异构平台大幅图像目标检测的多线程加速方法技术

技术编号:38247548 阅读:12 留言:0更新日期:2023-07-25 18:07
本发明专利技术涉及一种异构平台大幅图像目标检测的多线程加速方法,包括步骤:根据第一图像的像素将第一图像划分为若干分辨率相同的第二图像;根据异构平台中ARM架构的CPU核心数和FPGA资源确定目标检测线程数量,使得每个线程包括1个CPU核和1个DPU核;根据线程数量将若干第二图像分配给确定好的线程;使每个线程利用CPU核和DPU核对分配的第二图像依次进行目标检测;使首先完成第二图像目标检测的线程从输入队列获取新的第一图像;使得所有线程执行到同步点;重复对新的第一图像进行目标检测。该方法使得ARM+DPU的异构平台可以实现大幅图像的目标检测;使用多线程调用CPU核和DPU核对大图中的小图进行并行检测,提高检测速度。提高检测速度。提高检测速度。

【技术实现步骤摘要】
一种异构平台大幅图像目标检测的多线程加速方法


[0001]本专利技术属于计算机
,具体涉及一种异构平台大幅图像目标检测的多线程加速方法。

技术介绍

[0002]目标检测目前多采用基于深度学习的模型,如RCNN(Region

CNN)、Fast

RCNN、Faster

RCNN、SSD、YOLO等等。深度学习目标检测模型在不同检测任务上都展现出了优于传统方法的性能和鲁棒性。
[0003]异构计算(Heterogeneous computing)是指使用两种及以上架构芯片计算同一个任务。不同的芯片适应的计算类型不同,例如Intel x86_64系列CPU、ARM架构系列的CPU、NVIDIA安培、特斯拉等架构的GPU,等等。异构计算通过结合不同类型的芯片可以扬长避短,充分发挥不同架构的芯片的特点。
[0004]多线程(multithreading)是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。使用多线程可以加快应用程序的响应,同时,多线程使多CPU系统更加有效。操作系统会保证当线程数不多于CPU核心数时,不同的线程运行于不同的CPU核上。多线程程序的设计难点在与如何充分利用CPU核,最理想的情况是不同的线程依赖的硬件资源和数据完全独立互不影响,这样N核CPU,N线程速度是单线程速度的N倍,加速效果是线性。
[0005]多线程技术在现在的目标检测中的应用有两种方式:方式一:视频中的目标检测。假设在t时刻获得视频流中的第t帧I
t
,将对I
t
的预处理、模型推理和后处理三部分分为三个线程或者更多线程,随着视频流进行流水线计算,从而提高目标检测的速度。方式二:图像中的目标检测。假设需要检测选图像有M张,使用L个线程进行检测,那么每个线程处理和检测M/L张图像即可。
[0006]然而,在异构设备上使用单线程时,ARM利用率低,FPGA(或者AI芯片)资源占用率低,检测速度慢。同时卫星图像过大,现有的多线程加速方法无法应用。

技术实现思路

[0007]为了解决现有技术中存在的上述问题,本专利技术提供了一种异构平台大幅图像目标检测的多线程加速方法。本专利技术要解决的技术问题通过以下技术方案实现:
[0008]本专利技术实施例提供了一种异构平台大幅图像目标检测的多线程加速方法,包括步骤:
[0009]S1、根据第一图像的像素将所述第一图像划分为若干分辨率相同的第二图像;
[0010]S2、根据异构平台中ARM架构的CPU核心数和FPGA资源确定目标检测线程数量,使得每个线程包括1个CPU核和1个DPU核;
[0011]S3、根据所述线程数量将若干第二图像分配给确定好的线程;
[0012]S4、使每个线程利用CPU核和DPU核对分配的第二图像依次进行目标检测;
[0013]S5、使首先完成第二图像目标检测的线程从输入队列获取新的第一图像;
[0014]S6、使得所有线程执行到同步点;
[0015]S7、重复步骤S1

S6,对新的第一图像进行目标检测。
[0016]在本专利技术的一个实施例中,步骤S1包括:
[0017]根据所述第一图像的像素将所述第一图像划分成若干第二图像,使得所述第一图像中的第二图像与相邻第二图像之间有重叠像素点,得到若干分辨率相同的第二图像。
[0018]在本专利技术的一个实施例中,所述重叠像素点的宽度和者高度均等于所述第一图像中最大目标的边长。
[0019]在本专利技术的一个实施例中,所述线程数量大于或等于1。
[0020]在本专利技术的一个实施例中,步骤S2包括:
[0021]当所述线程数量大于或等于2时,将所述若干第二图像分配给多个线程,其中,任一线程中第二图像的数量小于其余线程中第二图像的数量,所述其余线程中第二图像的数量均相等。
[0022]在本专利技术的一个实施例中,步骤S4包括:
[0023]对于每个线程中的每个图像,首先利用CPU核对所述第二图像进行标准化处理,得到标准化图像;然后利用DPU核利用基于深度学习的目标检测模型对所述标准化图像进行目标检测,得到关于目标的特征图;之后利用CPU核对所述关于目标的特征图进行解码,得到目标检测结果。
[0024]在本专利技术的一个实施例中,利用CPU核对所述第二图像进行标准化处理,得到标准化图像,包括:
[0025]利用CPU核对所述第二图像进行归一化处理,得到所述标准化图像:
[0026][0027]其中,P为归一化之前的像素值,P

为归一化之后的像素值,a、b表示归一化的两个参数,由人为经验设定。
[0028]在本专利技术的一个实施例中,利用CPU核对所述关于目标的特征图进行解码,得到目标检测结果,包括:
[0029]针对所述关于目标的特征图中的每个检测框计算置信度、中心点坐标、宽度和高度,其中,
[0030]所述检测框的置信度计算公式为:
[0031][0032]其中,P
c
为检测框是类别c的概率,cls为分类置信度,obj为目标概率;
[0033]所述检测框的中心点坐标计算公式为:
[0034]x=sigmoid(t
x
)+C
x
[0035]y=sigmoid(t
y
)+C
y
[0036]其中,(t
x
,t
y
)为DPU核输出的检测框坐标,(C
x
,C
y
)为进行目标检测时预设的检测框坐标;
[0037]所述检测框的宽度和高度计算公式为:
[0038][0039][0040]其中,w为检测框的宽度,h为检测框的高度,P
w
为目标检测时预设的检测框宽度,P
h
为目标检测时预设的检测框高度,t
w
为DPU核输出的检测框宽度,t
h
为DPU核输出的检测框高度。
[0041]在本专利技术的一个实施例中,所述同步点包括每个线程均完成第二图像的目标检测。
[0042]与现有技术相比,本专利技术的有益效果:
[0043]1、本专利技术的方法将第一图像划分为若干第二图像,使得大幅图像变为分辨率相同的小图,然后利用异构平台对小图进行处理,使得ARM+DPU的异构平台可以实现大幅图像的目标检测;
[0044]2、本专利技术的方法由于将第一图像划分为若干第二图像,然后将多个第二图像分配给多个线程,从而把整张大幅图像检测的任务进行了合理划分,搭配多线程以及每个线程中的CPU核和DPU核,使用多线程调用CPU核和DPU核对大图中的小图进行并行检测,提高检测速度。
附图说明
[0045]图1为本专利技术实施例提供本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种异构平台大幅图像目标检测的多线程加速方法,其特征在于,包括步骤:S1、根据第一图像的像素将所述第一图像划分为若干分辨率相同的第二图像;S2、根据异构平台中ARM架构的CPU核心数和FPGA资源确定目标检测线程数量,使得每个线程包括1个CPU核和1个DPU核;S3、根据所述线程数量将若干第二图像分配给确定好的线程;S4、使每个线程利用CPU核和DPU核对分配的第二图像依次进行目标检测;S5、使首先完成第二图像目标检测的线程从输入队列获取新的第一图像;S6、使得所有线程执行到同步点;S7、重复步骤S1

S6,对新的第一图像进行目标检测。2.根据权利要求1所述的异构平台大幅图像目标检测的多线程加速方法,其特征在于,步骤S1包括:根据所述第一图像的像素将所述第一图像划分成若干第二图像,使得所述第一图像中的第二图像与相邻第二图像之间有重叠像素点,得到若干分辨率相同的第二图像。3.根据权利要求2所述的构平台大幅图像目标检测的多线程加速方法,其特征在于,所述重叠像素点的宽度和者高度均等于所述第一图像中最大目标的边长。4.根据权利要求1所述的异构平台大幅图像目标检测的多线程加速方法,其特征在于,所述线程数量大于或等于1。5.根据权利要求1所述的异构平台大幅图像目标检测的多线程加速方法,其特征在于,步骤S2包括:当所述线程数量大于或等于2时,将所述若干第二图像分配给多个线程,其中,任一线程中第二图像的数量小于其余线程中第二图像的数量,所述其余线程中第二图像的数量均相等。6.根据权利要求1所述的异构平台大幅图像目标检测的多线程加速方法,其特征在于,步骤S4包括:对于每个线程中的每个图像,首先利用CPU核对所述第二图像进行标准化处理,得到标准化图像;然后利用DPU核利用基于深度学习的目标检测模型对所述标准化图像进行目标检测,得到关于目标的特征图;之后利用CPU核对所述关于目标的特征图进行解码...

【专利技术属性】
技术研发人员:侯彪王浩任博任仲乐杨晨曹震
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1