一种基于CUDA的图像预处理方法及图像预处理系统技术方案

技术编号:36465453 阅读:12 留言:0更新日期:2023-01-25 23:06
本发明专利技术提供了一种基于CUDA的图像预处理方法及图像预处理系统,涉及图像处理技术领域。本发明专利技术先获取单帧图像以及由CPU读取的单帧图像中所有像素的像素值数据;然后对单帧图像进行缩放操作,得到缩放后图像;最后调用预先编写的CUDA核函数,以利用CUDA核函数根据CPU读取的各个像素的像素值数据并行计算缩放后图像中各个像素的像素值大小。上述技术方案中由于图像预处理阶段的每一个步骤都调用CUDA核函数在GPU上对所有像素值进行并行计算,与传统的单个像素串行计算像素值的方法相比起来,大大加快了图像预处理阶段的运算速度,整体的运算耗时大大减小。整体的运算耗时大大减小。整体的运算耗时大大减小。

【技术实现步骤摘要】
一种基于CUDA的图像预处理方法及图像预处理系统


[0001]本专利技术涉及图像处理
,特别是涉及一种基于CUDA的图像预处理方法及图像预处理系统。

技术介绍

[0002]传统的车道线检测图片预处理方法在效果上可以满足深度学习中神经网络的输入需求,但是图片处理的速度较慢,耗时较多。
[0003]造成图像处理速度慢的原因是输入一张图像,在预处理的图像尺寸缩放的步骤中,在求取图像新像素值的时候,需要使用CPU对图像中每个像素进行串行计算,所以运算速度较慢。在模型训练的过程中,训练数据集往往较大,训练的总体耗时便会大大增高。训练好的模型在实时车道线检测的过程中,也可能产生延迟滞后的问题。

技术实现思路

[0004]本专利技术第一方面的目的是要提供一种基于CUDA的图像预处理方法,应用于GPU端,解决现有技术中图像处理速度较慢,耗时较多的技术问题。
[0005]本专利技术第二方面的目的是要提供一种基于CUDA的图像预处理方法,应用于CPU端。
[0006]本专利技术第三方面的目的是要提供一种基于CUDA的图像预处理系统。
[0007]根据本专利技术第一方面的目的,本专利技术提供了一种基于CUDA的图像预处理方法,应用于GPU端,所述图像预处理方法包括以下步骤:
[0008]获取单帧图像以及由CPU读取的所述单帧图像中所有像素的像素值数据;
[0009]对所述单帧图像进行缩放操作,得到缩放后图像;
[0010]调用预先编写的所述CUDA核函数,以利用所述CUDA核函数根据所述CPU读取的各个像素的像素值数据依次并行计算所述缩放后图像中各个像素的像素值大小。
[0011]可选地,调用所述CUDA核函数,以利用所述CUDA核函数根据所述CPU读取的各个像素的像素值数据并行计算所述缩放后图像中各个像素的像素值大小之后,还包括如下步骤:
[0012]对所述缩放后图像中各个像素的像素值大小分别进行归一化以及中心化计算,以得到预处理后的图像数据。
[0013]可选地,所述对所述缩放后图像中各个像素的像素值大小分别进行归一化以及中心化计算,以得到预处理后的图像数据之后,还包括如下步骤:
[0014]将所述预处理后的图像数据传输至CPU。
[0015]可选地,还包括如下步骤:根据所述单帧图像在所述GPU上分配内存;
[0016]所述将所述预处理后的图像数据传输至CPU之后,还包括如下步骤:
[0017]释放所述GPU上分配的内存。
[0018]可选地,所述核函数在所述GPU上执行时同时启动所有线程块,每个所述线程块由多个线程组成,每个所述线程执行一个所述缩放后图像中一个像素的像素值计算。
[0019]可选地,所述所有线程块的数量为m*n个,其中,m表示所述单帧图像的宽度与所述线程块所包含的线程的列数的商,n表示所述单帧图像的高度与所述线程块所包含的线程的行数的商。
[0020]根据本专利技术第二方面的目的,本专利技术还提供了一种基于CUDA的图像预处理方法,应用于CPU端,所述图像预处理方法包括以下步骤:
[0021]获取单帧图像;
[0022]读取所述单帧图像中所有像素的像素值数据;
[0023]接收由上述的图像预处理方法得到的预处理后的图像数据。
[0024]可选地,还包括如下步骤:根据所述单帧图像在所述CPU上分配内存;
[0025]接收所述预处理后的图像数据之后,还包括如下步骤:释放所述CPU上分配的内存。
[0026]根据本专利技术第三方面的目的,本专利技术还提供了一种基于CUDA的图像预处理系统,包括:
[0027]CPU,配置成获取单帧图像,并读取所述单帧图像中所有像素的像素值数据,以及接收由上述的图像预处理方法得到的预处理后的图像数据;
[0028]GPU,与所述CPU连接,具有预先编写的CUDA核函数,所述GPU配置成获取单帧图像以及由CPU读取的所述单帧图像中所有像素的像素值数据;然后对所述单帧图像进行缩放操作,得到缩放后图像;之后调用所述CUDA核函数,以利用所述CUDA核函数根据所述CPU读取的各个像素的像素值数据并行计算所述缩放后图像中各个像素的像素值大小。
[0029]可选地,所述GPU还配置成对所述缩放后图像中各个像素的像素值大小分别进行归一化以及中心化计算,以得到预处理后的图像数据。
[0030]本专利技术中需要预先编写CUDA核函数,图像预处理方法先获取单帧图像以及由CPU读取的单帧图像中所有像素的像素值数据;然后对单帧图像进行缩放操作,得到缩放后图像;然后调用预先编写的CUDA核函数,以利用CUDA核函数根据CPU读取的各个像素的像素值数据并行计算缩放后图像中各个像素的像素值大小。上述技术方案中由于图像预处理阶段的每一个步骤都调用CUDA核函数在GPU上对所有像素值进行并行计算,与传统的单个像素串行计算像素值的方法相比起来,大大加快了图像预处理阶段的运算速度,整体的运算耗时大大减小。
[0031]根据下文结合附图对本专利技术具体实施例的详细描述,本领域技术人员将会更加明了本专利技术的上述以及其他目的、优点和特征。
附图说明
[0032]后文将参照附图以示例性而非限制性的方式详细描述本专利技术的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
[0033]图1是根据本专利技术一个实施例的基于CUDA的图像预处理方法的示意性流程图;
[0034]图2是根据本专利技术另一个实施例的基于CUDA的图像预处理方法的示意性流程图;
[0035]图3是根据本专利技术一个实施例的基于CUDA的图像预处理方法中双线性插值算法的示意性原理图;
[0036]图4是根据本专利技术一个实施例的基于CUDA的图像处理方法中线程块的示意性原理图;
[0037]图5是根据本专利技术一个实施例的基于CUDA的图像预处理系统的连接框图。
具体实施方式
[0038]下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本专利技术,而不能理解为对本专利技术的限制。
[0039]图1是根据本专利技术一个实施例的基于CUDA的图像预处理方法的示意性流程图。如图1所示,在一个具体的实施例中,基于CUDA的图像预处理方法应用于GPU端,GPU具有预先编写的CUDA核函数,图像预处理方法包括以下步骤:
[0040]步骤S100,获取单帧图像以及由CPU读取的单帧图像中所有像素的像素值数据;
[0041]步骤S200,对单帧图像进行缩放操作,得到缩放后图像;
[0042]步骤S300,调用预先编写的CUDA核函数,以利用CUDA核函数根据CPU读取的各个像素的像素值数据并行计算缩放后图像中各个像素的像素值大小。这里的CUDA核本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于CUDA的图像预处理方法,其特征在于,应用于GPU端,所述图像预处理方法包括以下步骤:获取单帧图像以及由CPU读取的所述单帧图像中所有像素的像素值数据;对所述单帧图像进行缩放操作,得到缩放后图像;调用预先编写的所述CUDA核函数,以利用所述CUDA核函数根据所述CPU读取的各个像素的像素值数据依次并行计算所述缩放后图像中各个像素的像素值大小。2.根据权利要求1所述的图像预处理方法,其特征在于,调用所述CUDA核函数,以利用所述CUDA核函数根据所述CPU读取的各个像素的像素值数据并行计算所述缩放后图像中各个像素的像素值大小之后,还包括如下步骤:对所述缩放后图像中各个像素的像素值大小分别进行归一化以及中心化计算,以得到预处理后的图像数据。3.根据权利要求2所述的图像预处理方法,其特征在于,所述对所述缩放后图像中各个像素的像素值大小分别进行归一化以及中心化计算,以得到预处理后的图像数据之后,还包括如下步骤:将所述预处理后的图像数据传输至CPU。4.根据权利要求3所述的图像预处理方法,其特征在于,还包括如下步骤:根据所述单帧图像在所述GPU上分配内存;所述将所述预处理后的图像数据传输至CPU之后,还包括如下步骤:释放所述GPU上分配的内存。5.根据权利要求1

4中任一项所述的图像预处理方法,其特征在于,所述核函数在所述GPU上执行时同时启动所有线程块,每个所述线程块由多个线程组成,每个所述线程执行一个所述缩放后图像中一个像素的像素值计算。6.根据权利要求5所述的图像预处理方法,其特征在于,...

【专利技术属性】
技术研发人员:于诗梦徐高伟王逸平董树才王鑫琛吴建康邢少杰陈大宇
申请(专利权)人:智马达上海机器人科技有限公司
类型:发明
国别省市:

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

1