本发明涉及一种图像处理技术,具体是一种基于摄像机模组的数字图像处理算法。
背景技术:
在现今常规安防监控中,网络摄像机是由摄像机模组和外壳镜头等相关配件组装成一体产品。在安防监控中,网络摄像机的核心竞争力便是摄像机模组的成像质量,而成像质量的高低往往取决于摄像机模组中的数字图像处理算法。数字图像处理算法能够对图像进行一系列的效果处理,主要包括去噪、强光抑制、背光补偿、坏点去除、色彩还原等处理,正是由于数字图像处理算法的存在,才使得网络摄像机能够呈现出与人们肉眼观察相接近的图像效果,并且能够使物体在不同的光源条件下,呈现出符合人们要求的图像效果。
然而在现有市场上,摄像机模组中的数字图像处理算法虽然都能够对图像进行黑电平校正、镜头阴影校正、强光抑制、背光补偿、坏点去除、色彩还原、去噪等处理,但却无法在处理图像时做到面面俱到,或多或少存在着不同的缺点:
(一)算法对图像进行一系列效果处理后,图像的质量未能达到最佳,比如:提高了图像的清晰度却降低了色彩还原度,导致图像画面失真;去除了图像的噪点却导致图像出现“拖影”现象等等问题;
(二)算法能够处理的场景有限,比如场景切换到低照度环境下时,呈现的图像出现色彩还原度不足或噪点繁多等等问题;
(三)算法优化不足,使得算法的运行需要很高性能的硬件平台的支持,导致成本提高。
技术实现要素:
本发明要解决的技术问题是提供一种基于摄像机模组的数字图像处理算法,以解决背景技术中提到的问题。
为实现上述目的,本发明提供如下技术方案:
一种基于摄像机模组的数字图像处理算法,包含以下步骤:
a、lens将光信号投射到sensor的感光区域;在sensor中通过光电转换,将bayer格式的原始图像传送至黑电平校正模块blc进行黑电平校正;
b、从黑电平校正模块blc输出的图像进入镜头阴影校正模块lsc进行镜头阴影校正;
c、从镜头阴影校正模块lsc输出的图像进入坏点校正模块dpc进行坏点校正;
d、从坏点校正模块dpc输出的图像进入自动曝光模块ae进行自动曝光;
e、从自动曝光模块ae输出的图像进入去马赛克模块demosaic进行自动曝光;
f、从去马赛克模块demosaic输出的图像进入3d数字降噪模块3dnr进行3d数字降噪;
g、从3d数字降噪模块3dnr输出的图像进入锐化模块sharp进行锐化;
h、从锐化模块sharp输出的图像进入自动白平衡模块awb进行自动白平衡;
i、从自动白平衡模块awb输出的图像进入颜色校正矩阵模块ccm进行颜色校正;
j、从颜色校正矩阵模块ccm输出的图像进入gamma校正模块进行gamma校正;
k、从gamma校正模块输出的图像进入宽动态模块wdr进行宽动态处理。
作为本发明的进一步方案:所述步骤b具体包括:
b-1、算法将整个bayer域画面分割为16x16个子区域,这16x16个区域大小并不完全相同,位于画面中心区域附近的子区域面积较大,靠近画面边缘的子区域面积较为密集;
b-2、在数据处理过程中,算法分别对每个区域的y通道进行处理,求得各自的对数熵;
b-3、由各区域y通道的对数熵,求得整幅图像的最原始的对数熵,并将它作为最小对数熵;
b-4、将图像的像素映射到[0,255]范围内,对处于低明度的区域的y通道的亮度值进行增加;
b-5、重新求得各区域y通道的对数熵,并从而求得整幅图像的当前对数熵;
b-6、将图像的当前对数熵与最小对数熵相比较,若前者较小,则将最小对数熵的值更新为当前对数熵,并保存当前每个区域的y通道亮度值;
b-7、重复步骤b-4~步骤b-6一共255次;
b-8、输出最终结果,修改每个区域的y通道亮度值。
作为本发明的更进一步方案:所述步骤c具体包括:
c-1、设定比较阀值;
c-2、获取图像,从图像的第一个像素开始进行坏点校正;
c-3、获取待检测像素,以其为中心建立9*9的bayer色彩矩阵,将中心像素的r分量色值与周围像素相比,若差值大于预设的阀值,则判断改像素为坏点,将其色值矫正为周围像素的平均值;
c-4、对图像剩余的所有像素进行进行步骤c-3的判定;
c-5、分别对r/gr/gb/b图像重复步骤c-2~步骤c-4的操作,从而进行了对一整幅图像的坏点校正。
作为本发明的更进一步方案:所述步骤d具体包括:
d-1、将图像划分为mxn个区块,对每个区块赋予不同的权值;
d-2、统计每个区块的亮度平均值;
d-3、计算出当前图像的亮度值aver;
d-4、将aver与预设的目标亮度值相对比,根据对比结果,若aver与预设目标亮度值不相同,则调节光圈大小、快门时间或增益大小,然后重复步骤d-2~步骤d-3;
d-5、ae处理完毕,退出。
作为本发明的更进一步方案:所述步骤e具体包括:
e-1、从bayer格式数据中提取阵列的第一个像素点;
e-2、重建该像素点的g分量。分别从其所处位置的水平方向和垂直方向计算水平算子和垂直算子,有水平算子和垂直算子计算得出g分量的平均值;
e-3、重建该像素点的r分量。分别获取其所处位置左右两点的b-g空间的分量平均值,利用线性插值的方式计算得出r分量的平均值;
e-4、重建该像素点的b分量。分别获取其所处位置的左上、左下、右上、右下四个位置获得g-r空间的分量平均值,以沿着两个斜四十五度方向进行插值,根据梯度计算的比较结果选择插值防线,计算得出b分量的平均值;
e-5、若阵列有剩余的像素点未重建,则提取阵列中的下一个像素点,重复步骤e-2~步骤e-4;
e-6、阵列所有像素点重建完毕,将得出来r,g,b三色阵列重组为完整的rgb域图像;
e-7、退出demosaic模块。
作为本发明的更进一步方案:所述步骤f具体包括:
f-1、预设运动检测的帧差阀值;
f-2对当前图像帧进行空域滤波;
f-3:计算运动检测的帧差,若计算结果小于预设阀值,则对当前图像帧进行时域滤波,否则采取空域滤波;
f-4:分配时域滤波和空域滤波的权值,计算时空域加权平均滤波;
f-5:根据时空域加权平均滤波再次进行滤波操作;
f-6:计算图像帧平滑系数,进行水平平滑处理;
f-7:处理完毕,3dnr结束。
作为本发明的更进一步方案:所述步骤g具体包括:
g-1:从rgb域数据中提取阵列的第一个像素点;
g-2:以当前像素点为坐标中心点,以该点的5x5邻域为模板。
g-3:计算该5x5阵列的像素平均值,并对中心点像素的水平方向和垂直方向的像素点做交叉微分运算;
g-4:设定锐化差值阀值。沿45度斜方向做二阶微分锐化,然后根据预设锐化差值阀值,对锐化后的图像进行二值化;
g-5:进行无方向一阶微分锐化;
g-6:对图像剩余的所有像素点重复g-2~g-5;
g-7:计算图像帧平滑系数,进行水平平滑处理;
g-8:处理完毕,sharp处理结束。
作为本发明的更进一步方案:所述步骤h具体包括:
h-1、将图像划分为mxn个区块,对每个区块赋予不同的权值;
h-2:统计每个区块的r、g、b三个颜色通道的平均值和白点个数;
h-3、如果出现不符合预设定白点条件的白点,则调整该点的r、g、b三个颜色通道的强度,重复步骤h-2;
h-4:awb处理完毕,退出isp。
作为本发明的更进一步方案:所述步骤i具体包括:
i-1:输入标准图像与待校正图像;
i-2:预设校正尺度参数;
i-3:使用阀值法并行分割待校正图像;
i-4:以图像的中心点像素为关键点,进行图像间sift特征点匹配;
i-5:使用频域低通滤波法进行区域颜色校正;
i-6:如果检测到未校正区域,则调整尺度参数,重复i-3~i-5;
i-7:校正完毕,输出结果。
4、作为本发明的更进一步方案:所述步骤j具体包括:
j-1:输待校正图像;
j-2:预设gamma值;
j-3:将图像的像素映射到[0,255]范围内;
j-4:对待校正图像的每一个像素进行校正;
j-5:根据校正结果,对图像的每一个像素进行补偿;
j-6:gamma校正完毕,输出图像。
与现有技术相比,本发明的有益效果是:1、图像效果出色。经算法处理后,图像清晰度高、画面细腻、色彩还原度高、通透性好、噪点低、画面流畅;2、适应性强。能够在不同场景下(比如低照度场景、超低亮度场景、运动场景、雨天场景、雾天场景等等)进行图像效果处理,并且能够保证处理后的图像效果依旧出色;3、优化程度高,复杂程度低,节省硬件成本。算法支持在性能一般的硬件平台上运行。
附图说明
图1为本发明的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,一种基于摄像机模组的数字图像处理算法,lens将光信号投射到sensor的感光区域后,在sensor中通过光电转换,将bayer格式的原始图像传送至isp,isp通过数字图像算法处理,最终输出rgb空间域的数据。在isp中,各处理模块对应的操作为:
blc:blacklevelcorrection,即黑电平校正;
lsc:lensshadingcorrection,即镜头阴影校正;
dpc:badpointcorrection,即坏点校正;
ae:automaticexposure,即自动曝光;
demosaic:去马赛克;
3dnr:3-dimensionalnoisereduction,即3d数字降噪;
sharp:锐化;
awb:automaticwhitebalance,即自动白平衡;
ccm:colorcorrectionmatrix,即颜色校正矩阵;
gamma:gamma校正;
wdr:widedynamicrange,宽动态。
上述的每一个模块都有着各自的处理算法。
(1)blc模块
sensor出厂时,厂家通常会预设图像数据输出范围比如6-255等,造成sensor在没有外界光线输入时,仍然会输出亮度值。所以需要通过blc对图像数据输出范围进行调整,使其最小值为0,这便是黑电平校正。
本专利进行黑电平校正的方式则是在bayer数据上,分别在r/gr/gb/b减去一个值,使得图像数据输出范围的最小值为0。
(2)lsc模块
由于镜头光学折射不均匀,导致图像四周亮度相对中心亮度较低,且距离图像中心越远亮度越暗,为了补偿四周的亮度,需要利用lsc模块进行镜头阴影的校正。
本专利的lsc算法使用将图像画面进行分格,然后利用公式求得整幅图像的最小对数熵值,从而达到阴影校正。
步骤2-1:算法将整个bayer域画面分割为16x16个子区域,这16x16个区域大小并不完全相同,位于画面中心区域附近的子区域面积较大,靠近画面边缘的子区域面积较为密集;
步骤2-2:在数据处理过程中,算法分别对每个区域的y通道进行处理,求得各自的对数熵;
步骤2-3:由各区域y通道的对数熵,求得整幅图像的最原始的对数熵,并将它作为最小对数熵;
步骤2-4:将图像的像素映射到[0,255]范围内,对处于低明度的区域的y通道的亮度值进行增加;
步骤2-5;重新求得各区域y通道的对数熵,并从而求得整幅图像的当前对数熵;
步骤2-6:将图像的当前对数熵与最小对数熵相比较,若前者较小,则将最小对数熵的值更新为当前对数熵,并保存当前每个区域的y通道亮度值;
步骤2-7:重复步骤2-4~步骤2-6一共255次;
步骤2-8:输出最终结果,修改每个区域的y通道亮度值。
lsc过程结束。
(3)dpc模块
dpc负责坏点的校正,能够校正的坏点有两类:静态坏点(亮点和暗点)以及动态坏点。本专利将图像分为r/gr/gb/b四幅图像,分别进行坏点校正。
步骤3-1:设定比较阀值;
步骤3-2:获取图像,从图像的第一个像素开始进行坏点校正;
步骤3-3:获取待检测像素,以其为中心建立9*9的bayer色彩矩阵,将中心像素的r分量色值与周围像素相比,若差值大于预设的阀值,则判断改像素为坏点,将其色值矫正为周围像素的平均值;
步骤3-4:对图像剩余的所有像素进行进行步骤3-3的判定;
分别对r/gr/gb/b图像重复步骤3-2~步骤3-4的操作,从而进行了对一整幅图像的坏点校正。
(4)ae模块
ae负责自动曝光处理。本专利的ae算法的主要工作原理是将图像进行mxn区块的划分,在每个区块上统计sensor输入的亮度信息数据(分别为r/gr/gb/b四分量平均统计信息)。通过这些实时获取输入图像的统计信息与设定的目标亮度相比较,从而动态调节sensor的曝光时间、光圈大小以及增益与设定的目标亮度相接近。
ae算法可选择光圈优先、快门优先以及增益优先三种方式。
步骤4-1:将图像划分为mxn个区块,对每个区块赋予不同的权值;
步骤4-2:统计每个区块的亮度平均值;
步骤4-3:计算出当前图像的亮度值aver;
步骤4-4:将aver与预设的目标亮度值相对比,根据对比结果,若aver与预设目标亮度值不相同,则调节光圈大小、快门时间或增益大小,然后重复步骤4-2~步骤4-3;
步骤4-5:ae处理完毕,退出。
(5)demosaic模块
demosaic的主要作用是将sensor输入的bayer格式数据转化为rgb域数据。在原始的bayer图像阵列中,每一像素点只能获得r,g,b三基色中的其中一种彩色分量值,而该像素点上其余两种彩色分量值则是利用其与周围像素点彩色分量值之间的相关性估计获得。通过对bayer图像阵列的每一个像素点进行类似操作,从而获得图像的r,g,b三色阵列。本专利则是采用边缘方向性插值的方式,从原始的bayer格式数据恢复出完整的rgb域数据,达到去马赛克的效果。
步骤5-1:从bayer格式数据中提取阵列的第一个像素点;
步骤5-2:重建该像素点的g分量。分别从其所处位置的水平方向和垂直方向计算水平算子和垂直算子,有水平算子和垂直算子计算得出g分量的平均值;
步骤5-3:重建该像素点的r分量。分别获取其所处位置左右两点的b-g空间的分量平均值,利用线性插值的方式计算得出r分量的平均值;
步骤5-4:重建该像素点的b分量。分别获取其所处位置的左上、左下、右上、右下四个位置获得g-r空间的分量平均值,以沿着两个斜四十五度方向进行插值,根据梯度计算的比较结果选择插值防线,计算得出b分量的平均值;
步骤5-5:若阵列有剩余的像素点未重建,则提取阵列中的下一个像素点,重复步骤5-2~步骤5-4;
步骤5-6:阵列所有像素点重建完毕,将得出来r,g,b三色阵列重组为完整的rgb域图像;
步骤5-7:退出demosaic模块。
(6)3dnr模块
3dnr用于降低图像的噪点,提高图像质量。本专利的3dnr算法则是通过转化域降噪的方式,并进行运动估计,增强图像序列在时间域或空间域上的平稳性。
步骤6-1:预设运动检测的帧差阀值;
步骤6-2:对当前图像帧进行空域滤波;
步骤6-3:计算运动检测的帧差,若计算结果小于预设阀值,则对当前图像帧进行时域滤波,否则采取空域滤波;
步骤6-4:分配时域滤波和空域滤波的权值,计算时空域加权平均滤波;
步骤6-5:根据时空域加权平均滤波再次进行滤波操作;
步骤6-6:计算图像帧平滑系数,进行水平平滑处理;
步骤6-7:处理完毕,3dnr结束。
(7)sharp模块
本专利的sharp模块能够对图像进行锐化和边缘增强。
步骤7-1:从rgb域数据中提取阵列的第一个像素点;
步骤7-2:以当前像素点为坐标中心点,以该点的5x5邻域为模板。
步骤7-3:计算该5x5阵列的像素平均值,并对中心点像素的水平方向和垂直方向的像素点做交叉微分运算;
步骤7-4:设定锐化差值阀值。沿45度斜方向做二阶微分锐化,然后根据预设锐化差值阀值,对锐化后的图像进行二值化;
步骤7-5:进行无方向一阶微分锐化;
步骤7-6:对图像剩余的所有像素点重复步骤7-2~步骤7-5;
步骤7-7:计算图像帧平滑系数,进行水平平滑处理;
步骤7-8:处理完毕,sharp处理结束。
(8)awb模块
awb负责自动白平衡处理。本专利的awb算法的主要工作原理是将图像进行mxn区块的划分,在每个区块上统计r、g、b三个颜色通道的平均值和白点个数。通过调整r、g、b三个颜色通道的强度,使用的sensor输出的每个像素符合预设定的白点条件,从而使白色真实呈现。
步骤8-1:将图像划分为mxn个区块,对每个区块赋予不同的权值;
步骤8-2:统计每个区块的r、g、b三个颜色通道的平均值和白点个数;
步骤8-3:如果出现不符合预设定白点条件的白点,则调整该点的r、g、b三个颜色通道的强度,重复步骤8-2;
步骤8-4:awb处理完毕,退出。
(9)ccm模块
ccm用于校正在滤光板处各颜色块之间的颜色渗透带来的颜色误差。一般颜色校正的过程是首先利用该图像传感器拍摄到的图像与标准图像相比较,以此来计算得到一个校正矩阵。
步骤9-1:输入标准图像与待校正图像;
步骤9-2:预设校正尺度参数;
步骤9-3:使用阀值法并行分割待校正图像;
步骤9-4:以图像的中心点像素为关键点,进行图像间sift特征点匹配;
步骤9-5:使用频域低通滤波法进行区域颜色校正;
步骤9-6:如果检测到未校正区域,则调整尺度参数,重复步骤9-3~步骤9-5;
步骤9-7:校正完毕,输出结果。
(10)gamma模块
gamma校正过程就是对图像的伽玛曲线进行编辑,检出图像信号中的深色部分和浅色部分,并使两者比例增大,从而提高图像对比度效果,以对图像进行非线性色调编辑。
步骤10-1:输待校正图像;
步骤10-2:预设gamma值;
步骤10-3:将图像的像素映射到[0,255]范围内;
步骤10-4:对待校正图像的每一个像素进行校正;
步骤10-5:根据校正结果,对图像的每一个像素进行补偿;
步骤10-6:gamma校正完毕,输出图像。
(11)wdr模块
wdr用于解决在宽动态场景中采集的图像出现亮区域过曝而暗区域曝光不够的现象,可以使场景中特别亮的区域和特别暗的区域在最终成像中同时看得清楚。
步骤11-1:读取一幅图像,计算其长短曝光时间;
步骤11-2:使用一阶微分,将色调映射到[0,255]范围内;
步骤11-3:使用卷积变换进行伪影检测以及去除;
步骤11-4:使用频域低通滤波法对图像进行增强;
步骤11-5:输出图像,wdr处理完毕。