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

一种基于OPENCL加速的红外小目标识别方法与流程

2022-02-22 09:10:37 来源:中国专利 TAG:

一种基于opencl加速的红外小目标识别方法
技术领域
1.本发明涉及图像处理技术与嵌入式开发领域,具体涉及一种基于opencl加速的红外小目标识别方法。


背景技术:

2.由于红外探测技术具备隐蔽性好、可全天候工作、抗干扰能力强等优点,红外目标识别技术成为了军事和民用领域的一项关键技术,而红外弱小目标的识别则更是该技术领域值得去研究和突破的一项技术瓶颈。在保证检测精度的前提下研究如何提升检测速度是红外小目标检测技术提升的重要组成部分。目前国内外主流的红外小目标检测算法基本都是基于cpu进行计算的,检测精度已经能满足一般应用,但是检测速度仍然有较大提升空间。本发明就是在现有红外小目标检测算法的基础上基于opencl编程利用gpu对算法计算过程进行加速并在嵌入式平台进行验证的过程。


技术实现要素:

3.本发明的发明目的在于提供一种基于opencl加速的红外小目标识别方法,对采集的红外视频图像进行快速目标检测,并将检测结果进行输出显示,提供给系统或者操控者判断依据。本发明通过将本来全部在cpu串行处理中适合进行并行计算的部分放到gpu中去进行并行计算,并行计算的特点在于可以同时处理多个数据,可以在保证计算精度的前提下较大地减少处理时间,达到快速检测出红外小目标的目的。
4.本发明的发明目的通过以下技术方案实现:
5.一种基于opencl加速的红外小目标识别方法,包括如下步骤:
6.步骤1:通过红外摄像头采集包含检测目标的红外视频图像,将采集到红外视频图像存储为bin文件,该bin文件中包含若干帧红外视频图像,并将红外视频图像作为红外小目标检测的输入读取到嵌入式开发板中;
7.步骤2:在嵌入式开发板中准备opencl平台、发现opencl设备gpu、生成上下文、创建命令队列、在内核创建输入流输出流、设置内核参数;
8.步骤3:cpu从bin文件中读出红外图像数据后运用步骤2中创建的输入流输入到内核中,opencl设备gpu运用步骤2中创建的命令队列和生成的上下文执行内核函数进行红外小目标滑窗检测部分的数据并行计算;
9.步骤4:将步骤3的检测结果数据运用步骤2中创建的输出流读取到cpu中进行后续的检测结果的显示。
10.优选地,步骤2中创建的输入流的大小为512*512,步骤3中内核函数得到正确的输入数据流后在opencl设备gpu上进行8*8大小的滑窗检测的并行计算以识别红外小目标。
11.本发明具有以下技术效果:
12.1、本发明提供的基于opencl加速的红外小目标识别方法,充分利用设备的性能,把设备中的cpu和gpu都同时运用起来实现了基于opencl的异构并行计算,解决了算力资源
浪费的问题。
13.2、本发明提供的基于opencl加速的红外小目标识别方法与系统,通过基于opencl的gpu并行计算实现了在不降低检测精度的前提下对红外小目标检测算法识别速度的提升,相比进行并行化计算之前的算法对比,检测采集的同一个红外视频图像,计算耗时减少了40%以上,解决了传统基于cpu串行计算的红外小目标检测算法识别速度较慢的缺点。
附图说明
14.图1是基于opencl加速的红外小目标识别方法的整体流程图。
15.图2是本发明中数据流示意图。
具体实施方式
16.下面结合附图和实施例对本发明作进一步的详细说明。
17.参见图1、图2所示,一种基于opencl加速的红外小目标识别方法,包括如下步骤:
18.步骤1:通过红外摄像头采集包含检测目标的红外视频图像,将采集到红外视频图像存储为bin文件,该bin文件中包含若干帧红外视频图像,并将红外视频图像作为红外小目标检测的输入读取到嵌入式开发板中。
19.步骤1中采集的红外视频图像中小目标为检测目标随机运动而产生的,且检测目标不一定一直出现在采集的红外视频图像中。bin文件中包含的红外视频图像的帧数由嵌入式开发板的处理能力确定,本实施例采用hi3559av100开发板,bin文件中包含的红外视频图像的帧数为500帧。
20.步骤2:在嵌入式开发板中准备opencl平台、发现opencl设备gpu、生成上下文、创建命令队列、为步骤1中读入的红外图像数据在内核创建输入流输出流、设置内核参数。
21.步骤2是在hi3559av100开发板上获取可用平台对象,获取设备是在发现的平台上获取opencl设备gpu,该opencl设备为双核arm mali g71型号的gpu,根据获取的opencl设备的信息生成上下文,在opencl设备及上下文的基础上创建命令队列,并为步骤1中读入的数据创建输入数据流以便后续送入到内核执行计算,创建输出流是为了后续读出在opencl设备gpu上执行计算后的结果以便进行后续的显示,设置内核参数是为了让数据流跟内核函数的参数对应起来以得到正确的输入输出。
22.步骤3:cpu从bin文件中读出红外图像数据后运用步骤2中创建的输入流输入到内核中,opencl设备gpu运用步骤2中创建的命令队列和生成的上下文执行内核函数进行红外小目标滑窗检测部分的数据并行计算。
23.作为本发明的一种优选方案,步骤2中创建的输入流的大小为512*512,步骤3中红外图像数据通过输入流输入到内核中,内核函数得到正确的输入数据流后就可以在opencl设备gpu上进行8*8大小的滑窗检测的并行计算以识别红外小目标,该并行计算是一个数据的并行计算,各个滑窗窗口之间没有数据的相关依赖性,是典型的数据并行计算的类型,为了使并行计算更加迅速,将512*512个工作项划分成每个工作组含有64个工作项,共4096个工作组进行并行计算,每个工作组只能在一个计算单元中执行计算,每一个工作项只能在一个处理基元上执行,最终得到计算结果。
24.步骤4:将步骤3的检测结果数据运用步骤2中创建的输出流读取到cpu中进行后续
的检测结果的显示,最终实现对输入视频帧的红外小目标快速检测的目的。


技术特征:
1.一种基于opencl加速的红外小目标识别方法,其特征在于包括如下步骤:步骤1:通过红外摄像头采集包含检测目标的红外视频图像,将采集到红外视频图像存储为bin文件,该bin文件中包含若干帧红外视频图像,并将红外视频图像作为红外小目标检测的输入读取到嵌入式开发板中;步骤2:在嵌入式开发板中准备opencl平台、发现opencl设备gpu、生成上下文、创建命令队列、在内核创建输入流输出流、设置内核参数;步骤3:cpu从bin文件中读出红外图像数据后运用步骤2中创建的输入流输入到内核中,opencl设备gpu运用步骤2中创建的命令队列和生成的上下文执行内核函数进行红外小目标滑窗检测部分的数据并行计算;步骤4:将步骤3的检测结果数据运用步骤2中创建的输出流读取到cpu中进行后续的检测结果的显示。2.根据权利要求1所述的一种基于opencl加速的红外小目标识别方法,其特征在于步骤2中创建的输入流的大小为512*512,步骤3中内核函数得到正确的输入数据流后在opencl设备gpu上进行8*8大小的滑窗检测的并行计算以识别红外小目标。

技术总结
一种基于OPENCL加速的红外小目标识别方法,包括如下步骤:通过红外摄像头采集包含检测目标的红外视频图像,并将红外视频图像作为红外小目标检测的输入读取到嵌入式开发板中;在嵌入式开发板中准备OPENCL平台、发现OPENCL设备GPU、生成上下文、创建命令队列、在内核创建输入流输出流、设置内核参数;CPU读出红外图像数据后运用输入流输入到内核中,OPENCL设备GPU运用命令队列和生成的上下文执行内核函数进行红外小目标滑窗检测部分的数据并行计算;将检测结果数据运用输出流读取到CPU中进行后续的检测结果的显示。本发明可以在保证计算精度的前提下较大地减少处理时间,达到快速检测出红外小目标的目的。出红外小目标的目的。出红外小目标的目的。


技术研发人员:谢昌刚 魏大洲 李威 曲国远 李堃
受保护的技术使用者:中国航空无线电电子研究所
技术研发日:2021.09.27
技术公布日:2022/2/6
再多了解一些

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

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

相关文献