一种基于异构平台的ISP系统设计与实现方法技术方案

技术编号:37251204 阅读:49 留言:0更新日期:2023-04-20 23:29
本发明专利技术公开了一种基于异构平台的ISP系统设计与实现方法,属于图像处理领域。所述方法主要包括以下步骤:S1:在主机端读取原始格式(RAW)图片。S2:在主机端及设备端分配内存。S3:将主机端数据拷贝至设备端。S4:调用内核函数处理图像,其中内核函数是ISP系统的核心部分,其由对图像进行处理的一系列模块组成,主要包括线性化、黑电平校正、坏点校正、去马赛克、滤波、白平衡及色彩空间变换、伽马变换等模块,这些模块按照顺序依次对RAW图片进行处理。S5:在设备端完成图像数据的处理后,将处理结果由设备端拷贝至主机端。S6:释放设备端及主机端内存。存。存。

【技术实现步骤摘要】
一种基于异构平台的ISP系统设计与实现方法


[0001]本专利技术涉及图像处理领域,尤其涉及基于异构平台的ISP系统设计与实现方法。

技术介绍

[0002]图像信号处理器(ISP,Image Signal Processor)指将图像传感器得到的原始格式(RAW)图像转化为符合人眼期望效果的图像。随着科学技术的不断发展,图像作为传递信息的一种重要媒介,在我们的生活中起着越来越重要的作用。ISP作为相机、手机等电子设备中重要的组成部分,其承担着对RAW图片进行优化的任务,其对RAW图片的处理速度和效果直接影响着最终的图片质量。通常在镜头与图像传感器之间会存在滤波片,其作用是滤除不能被人眼观测到的紫外光和红外光。因此,主流的图像传感器一般输出的是Bayer mosaic格式的RAW数据,每个像素点只会记录一种颜色信息,而这种格式的图片是无法直接观看的,需要转换为其他格式。
[0003]传统的ISP一般是以硬件的形式实现的,而硬件实现往往意味着高成本、长研究周期、很难实现较复杂算法、很难进行硬件升级,很难研究ISP成像管道中的某个阶段的算法。传统的针对图像处理算法的研究一般是对ISP处理后最终输出的sRGB图像进行处理,由于ISP中很多处理模块之间是相互影响的,因此,对于RAW图像和sRGB图像运用相同的降噪算法进行处理,其降噪效果显然是不同的。
[0004]因此,我们考虑使用一种可以替代ISP硬件实现的平台,其需要具有低成本、易编程、速度快、处理效果好等优点。我们发现GPU(Graphics Processing Unit)可以很好的满足这些要求,基于CPU+GPU的异构平台开发难度较小并且运算速度较快,在硬件升级时也无需修改代码,其还具有单精度浮点数计算能力,可以很容易的与opencv等库进行配置。最重要的是ISP系统中很多模块对每个像素进行的处理是相同的,这些模块本身具有很高的并行性,无需对算法进行较大的修改就可以并行化实现,基于以上这些特点,我们选择基于异构平台实现ISP系统。

技术实现思路

[0005]本专利技术的目的在于提供一种基于异构平台的ISP系统设计及实现,该方法通过CPU和GPU协同工作的方法来实现对于RAW图片的一系列处理,解决了目前ISP存在的软件实现耗时长、硬件实现成本高、周期长、编程难等问题。基于本专利技术提出的方法搭建ISP系统,基本可以实现实时的对RAW格式图片的处理,具有成本低、速度快、周期短、可编程等显著特点,可以直接研究ISP成像管道中的某阶段算法、与opencv库搭配还可以直接获取ISP某阶段的图像。
[0006]本专利技术提供了一种基于异构平台的ISP系统设计及实现方法,所述方法主要包括以下步骤:
[0007]S1:在设备端读取RAW格式图像数据,由于RAW格式为非统一格式,因此需要采用合适的方法读取RAW格式图片。如果需要进行精确的白平衡及色彩空间变换,还需要将RAW图
片中包含的白点等信息解析出来,存储在结构体中,方便后续利用这些信息求取色彩空间变换矩阵,更好的对图片的颜色进行处理。
[0008]S2:在主机端和设备端分配内存。通常采用静态内存方式分配的数组能够储存的字节数大约为1Mbytes,对于512x512尺寸的图片而言,如果对int类型的数组分配内存,很可能会产生Segmentation fault的错误。因此,最好采用malloc动态分配主机端数组的内存,可以有效的避免主机端数组内存不足的问题。
[0009]S3:将图像数据由主机端拷贝至设备端。由于主机端与设备端是通过PCI

E总线进行通信的,设备端无法直接获取图像数据,因此需要根据主机端储存图像数据数组的类型以及设备端接收数据的数组类型而使用相关的cuda运行时函数。如线性存储器在分配3维数组时使用cudaMalloc3D()分配设备端内存,使用cudaMemcpy3D()将主机端图像数据传输至设备端。
[0010]S4:调用内核函数进行图像处理。
[0011]此步骤是由一系列图像处理模块构成的,如图2所示,包括线性化、黑电平校正、坏点校正、去马赛克、降噪、白平衡及色彩空间转换、伽马变换一系列模块。
[0012]线性化的作用是将图像数据恢复至原来的压缩前的数据。一般是通过查找表的方式实现的,将当前像素值作为存储查找表数组的地址,输出值就为线性化后的像素值。
[0013]黑电平校正是通过减去一定的值使得在平均光照为0时,输出的像素值尽可能接近0。
[0014]坏点校正的目的是尽可能去除图像中的坏点,以防其对后面的图像质量产生较大的影响。坏点可以分为静态坏点和动态坏点,静态坏点是由于图像传感器制造工艺造成的器质性损坏,动态坏点是由于像元不能进行正常的光电转换而导致的输出像素值异常。坏点校正的过程中最关键的部分是对坏点的探测,由于图像中区域间像素值变化较大,因此使用固定阈值的方法很难进行有效的坏点探测。如果采用自适应阈值的方法,随着校正区域的不断变化,阈值也会产生相应的变化,图片校正效果就会比较理想。本专利技术提出了一种改进的自适应坏点校正算法可以有效的校正坏点,并且可以很方便的调节坏点校正的效果。
[0015]去马赛克的目的是将单通道的RAW数据恢复为含有R、G、B颜色信息的三通道图像。去马赛克的效果对后续图像质量会产生决定性影响,对于图像识别而言会直接决定识别的效果。比较常见的去马赛克算法主要有无方向性插值、有方向性插值两种类型,其中无方向性插值直接利用周围像素的信息恢复窗口中心像素点缺失的另外两种像素,而有方向性插值会先进行边缘方向的判断,然后利用边缘像素的信息恢复窗口中心像素点缺失的信息。本专利技术提出了一种通过扩充图像边界,进行去马赛克的算法,可以对整个图像区域进行有效的去马赛克处理。
[0016]去噪的目的是去除R、G、B三通道图像中的一些噪声点。由于坏点校正模块难免会出现一些漏检、错检现象,而在去马赛克阶段这些漏检及错检的点的影响会进一步扩大,因此需要在RGB域及早的将这些噪声点去除,以免对后续图像产生进一步影响。图像传感器产生的噪声点一般是孤立的,很少会有大面积的连续噪声点的存在,并且在坏点校正阶段已经去除了大部分噪声点,因此采用中值滤波算法可以有效去除这些噪点。因此,在去噪模块直接采用改进的加权中值滤波算法进行去噪处理。
[0017]白平衡及色彩空间变换阶段包括白平衡及色彩空间变换两个主要步骤。白平衡是为了解决环境光下不同色温导致整幅图片偏色的问题,一般是通过调整R、G、B三通道像素值使得三通道之间的像素均值尽可能接近。色彩空间变换主要是将图像由RAW RGB域转换到ProPhoto RGB域或sRGB域,而在本专利技术中我们最终输出的颜色空间为sRGB域。虽然色彩空间变换过程非常简单,但是其对图像视觉效果的影响是决定性的,其中色彩空间变换矩阵的求取过程至关重要。一般随着环境光下色温的变化,色彩空间变换矩阵也会产生相应的变化。通常RAW格式中隐藏着色温等信息,可以通过采用相应的算法利用插值的方法求解出色彩空间本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于异构平台的ISP系统设计与实现方法,其特征在于,所述方法包括以下步骤:S1:在设备端读取RAW格式图像数据;S2:在主机端和设备端分配内存;S3:将图像数据由主机端拷贝至设备端;S4:调用内核函数进行图像处理,其是由一系列图像处理模块构成的,图像处理模块包括线性化、黑电平校正、坏点校正、去马赛克、降噪、白平衡及色彩空间转换、伽马变换模块;其中,坏点校正的过程中对坏点的探测是采用自适应坏点校正算法;去马赛克是采用通过扩充图像边界进行去马赛克的算法;去噪是采用加权中值滤波算法进行去噪处理;S5:设备端拷贝处理结果至主机端;S6:释放设备端及主机端内存。2.根据权利要求1所述的一种基于异构平台的ISP系统设计与实现方法,其特征在于,步骤S1中:当需要进行精确的白平衡及色彩空间变换时,还需要将RAW图片中包含的白点信息解析出来,存储在结构体中,方便后续利用这些信息求取色彩空间变换矩阵;步骤S2中:采用malloc动态分配主机端数组的内存;步骤S3中:需要根据主机端储存图像数据数组的类型以及设备端接收数据的数组类型使用相关的cuda运行时函数cudaMemcpy进行数据拷贝;步骤S4中:线性化的作用是将图像数据恢复至原来的压缩前的数据;通过查找表的方式实现,将当前像素值作为存储查找表数组的地址,输出值就是线性化后的像素值;黑电平校正是通过减去一定的值使得在光照为0时,像素输出值尽可能接近0;坏点校正的目的是尽可能去除图像中的坏点,以防其对后面的图像质量造成影响;坏点分为静态坏点和动态坏点,静态坏点是由于图像传感器制造工艺造成的器质性损坏,动态坏点是由于像元不能进行正常的光电转换而导致的输出像素值异常;坏点校正的过程中对坏点的探测采用的是自适应坏点校正算法;去马赛克的目的是将单通道的RAW数据恢复为含有R、G、B颜色信息的三通道图像;去马赛克算法是采用通过扩充图像边界,进行去马赛克的算法;去噪的目的是去除R、G、B三通道图像中的噪声点;是采用加权中值滤波算法进行去噪处理;白平衡及色彩空间变换阶段包括白平衡及色彩空间变换两个步骤;白平衡是通过调整R、G、B三通道像素值使得三通道之间的像素值均值尽可能接近;色彩空间变换是将图像由RAW RGB域转换到ProPhoto RGB域或sRGB域;在主机端实现空间变换矩阵的求解,然后将其拷贝至设备端的常量内存中,在设备端直接调用求解出的色彩空间变换矩阵;伽马变换的目的是使得输出的图像符合人眼的视觉效果;图像数据经过设备端的处理后就输出至主机端了;步骤S5中:在最后一个核函数的调用语句后添加cudaDeviceSynchronize(),该语句会一直处于阻塞状态直到前面所有请求的任务被全部执行完成,这可以确保最后输出的是经过ISP全流程处理后的图像数据,数据拷贝的方向为cudaMemcpyDeviceToHost;步骤S6中:最后的图像数据归一化转换为uchar类型后,将相关位置点的图像数据依次读入定义的Mat结构体中,就能使用opencv库中的imshow函数直接显示图像或者将其存为jpg、png格式的图片进行输出,也能将图像数据写入文本文件中,完成所有操作后将主机端及设备端内存完全释放。
3.根据权利要求1或2所述的一种基于异构平台的ISP系统设计与实现方法,其特征在于,所述的线性化:设压缩后的像素值为[0,255],进行线性化时,将压缩后的像素值0、1、2、
……
、255作为地址,依次表示出各个像素值对应的压缩前像素值,将其做成查找表的形式,并将此查找表储存在常量内存中;线性化时,直接将当前像素值作为查找表的地址,查找表输出的值即为线性化后的像素值。4.根据权利要求1或2所述的一种基于异构平台的ISP系统设计与实现方法,其特征在于,所述的坏点校正:自适应坏点校正算法包括以下步骤:S431、令L0、L1、L2、L3分别表示135度方向、水平方向、45度方向、竖直方向,此时图像仍处于RAW域;R、G、B分别表示具有红、绿、蓝颜色信息的像素点;将数据读入共享内存中,每个线程依次读入对应的5x5窗口中的数据,在5x5的窗口中P、Pi、Pi+4这9个点表示的是包含相同颜色信息的像素点,其中,0<=i<=3;按照如下所示的公式,计算Li方向的方向阈值di:di=abs(Pi

Pi+4);S432、分别计算5x5窗口内中心点P与周围点Pi、Pi+4差的绝对值hi、hi+4,按照下面的公式进行计算:hi=abs(P

Pi),hi+4=abs(P

Pi+4);S433、根据系数n动态的调整方向阈值的大小,通过计算每个窗口内9个点的均值与方差,选择相应的n值,以便自适应的调整方向阈值的大小;S434、按照下式对Pi、Pi+4进行判断,若满足hi>=n*di,则Pi点为准坏点,记录Pi的像素值至数组dead_pixels1中,并统计准坏点的个数count1;若满足hi+4>=n*di,则Pi+4点为准坏点,记录Pi+4的像素值至数组dead_pixels2中,并统计准坏点的个数count2;则窗口内总的准坏点个数为:count=count1+count2;S435、将准坏点的个数count与m比较大小,根据需求选择相应的m值;若count>=m,则认为中心点P为坏点,按照步骤S436进行处理;否则认为中心点P为非坏点,直接输出P点像素值;S436、将记录在数组dead_pixels1、dead_pixels2中准坏点的像素值相加,然后除以准坏点的个数count,得到的结果result即为坏点校正后的输出值;S437、输出坏点校正后的值result。5.根据权利要求1或2所述的一种基于异构平台的ISP系统设计与实现方法,其特征在于,所述的去马赛克算法包括以下步骤:当马赛克图...

【专利技术属性】
技术研发人员:常玉春张博熊波涛汪家奇徐图孟凡龙潘冲
申请(专利权)人:大连理工大学
类型:发明
国别省市:

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

1