技术领域
本发明涉及数据处理技术领域,特别涉及一种摄像头模组污点检测的方法和装置。
背景技术:
摄像头污点的检测一直是摄像头模组生产商行业内普遍存在的技术难题。现有技术的检测方式通常采用将摄像头模组在一定距离下正对恒定低色温的均匀光源拍摄一副照片,并对数据分析,捕获符合污点特征的异常数据,并给予辨识。但是,如何确定污点特征标准,现有技术并没有一个统一且有效的标准,导致目前摄像头模组污点检测准确率较低。
技术实现要素:
本发明提供了一种摄像头模组污点检测的方法和装置,能够快速准确判断摄像头模组是否存在污点。
为达到上述目的,本发明的技术方案是这样实现的:
一方面,本发明实施例提供了一种摄像头模组污点的检测方法,所述方法包括:
获取待检测的摄像头模组正对均匀白色光源拍摄照片的图像的亮度数据;
以预定的采样单元和采样步长逐行或逐列对所述图像的亮度数据采样,获得该行或该列的每个采样单元的单元亮度采样值;
根据每行或每列的单元亮度采样值确定表征本行或本列相邻采样点间亮度渐变程度的亮度渐变度数据;其中每行或每列的采样区域不存在污点时,所述亮度渐变度数据保持在零点附近的数值区间[-C1,C0]内;当所述亮度渐变度数据跳变到数值区间[-C1,C0]之外时,确定所述亮度渐变度数据为异常数据,-C1和C0为污点检测阈值;
根据每行或每列的所述亮度渐变度数据逐行或逐列地判断所述图像,以检测所述摄像头模组是否存在污点。
优选地,所述以预定的采样单元和采样步长逐行或逐列对所述图像的亮度数据采样,获得该行或该列的每个采样单元的每个采样单元的单元亮度采样值包括:
以像素点L*L的正方形区域作为采样单元,以L/2为采样步长;
从所述图像的左上角开始,采样的起始坐标为(L/2,L/2),自左向右逐行或自上向下逐列地进行采样,其中,在进行下一行或下一列采样时,将对应的上一行或上一列采样的初始坐标的纵坐标增加L/2或横坐标增加L/2后作为下一行采样的初始坐标或下一列采样的初始坐标;
获取每次采样的L*L个像素点的亮度值,并以所述L*L个像素点的亮度值的立方和作为每次采样的采样单元的单元亮度采样值。
优选地,所述根据每行或每列的单元采亮度采样值确定表征本行或本列相邻采样点间亮度渐变程度的亮度渐变度数据包括:
假设对所述图像进行第i行/列采样时,依次得到M个单元亮度采样值,其中第n个单元亮度采样值为Yn;
对所述M个单元亮度采样值做如下运算:
计算第i行/列相邻两采样点间的亮度偏离百分比,得到M-1个亮度偏离百分比数据Sn,其中W为图像的宽度;
对所述M-1个亮度偏离百分比数据Sn再做如下运算:
确定第i行/列相邻三采样点间的亮度渐变程度,得到M-2个亮度渐变度数据Qn。
优选地,当所述亮度渐变度数据跳变到数值区间[-C1,C0]之外时,确定所述亮度渐变度数据为异常数据,包括:
当污点出现,且采样单元在污点左边缘或上边缘时,所述亮度渐变度数据跳变到小于-C1的负峰值;采样单元在污点右边缘或下边缘时,所述亮度渐变度数据跳变到大于C0的正峰值。
优选地,所述根据每行或每列的所述亮度渐变度数据逐行或逐列地进行判断,以检测所述摄像头模组是否存在污点包括:
在每行或每列的所有亮度渐变度数据中,若连续的J个亮度渐变度数据中出现K个小于-C1或者大于C0的异常数据,则判断所述K个异常数据的采样区域为污点区域,所述摄像头模组存在污点,否则,所述摄像头模组不存在污点,其中K≥0.6J,J根据不同的污点模型进行相关数值统计确定。
另一方面,本发明实施例提供了一种摄像头模组污点的检测装置,所述装置包括:
单元亮度采样值获取单元,用于以预定的采样单元和采样步长逐行或逐列对通过待检测的摄像头模组正对均匀白色光源拍摄照片获取的图像的亮度数据采样,获得该行或该列的单元亮度采样值;
亮度渐变度数据获取单元,用于根据每行或每列的单元亮度采样值确定表征本行或本列相邻采样点间亮度渐变程度的亮度渐变度数据;其中每行或每列的采样区域不存在污点时,所述亮度渐变度数据保持在零点附近的数值区间[-C1,C0]内;当所述亮度渐变度数据跳变到数值区间[-C1,C0]之外时,确定所述亮度渐变度数据为异常数据,-C1和C0为污点检测阈值;
检测单元,用于根据每行或每列的所述亮度渐变度数据逐行或逐列地判断所述图像,以检测所述摄像头模组是否存在污点。
优选地,所述单元亮度采样值获取单元进一步用于,
以像素点L*L的正方形区域作为采样单元,以L/2为采样步长;
从所述图像的左上角开始,采样的起始坐标为(L/2,L/2),自左向右逐行或者自上向下逐列地进行采样,其中,在进行下一行或下一列采样时,将对应的上一行或上一列采样的初始坐标的纵坐标增加L/2或横坐标增加L/2后作为下一行采样的初始坐标或下一列采样的初始坐标;
获取每次采样的L*L个像素点的亮度值,并以所述L*L个像素点的亮度值的立方和作为每次采样的采样单元的单元亮度采样值。
优选地,所述亮度渐变度数据获取单元进一步用于,
假设对所述图像进行第i行/列采样时,依次得到M个单元亮度采样值,其中第n个单元亮度采样值为Yn;
对所述M个单元亮度采样值做如下运算:
计算第i行/列相邻两采样点间的亮度偏离百分比,得到M-1个亮度偏离百分比数据Sn,其中W为图像的宽度;
对所述M-1个亮度偏离百分比数据Sn再做如下运算:
确定第i行/列相邻三采样点间的亮度渐变程度,得到M-2个亮度渐变度数据Qn。
优选地,所述亮度渐变度数据获取单元确定的亮度渐变度数据包括:
当污点出现,且采样单元在污点左边缘或上边缘时,所述亮度渐变度数据跳变到小于-C1的负峰值;采样单元在污点右边缘或下边缘时,所述亮度渐变度数据跳变到大于C0的正峰值。
优选地,所述检测单元进一步用于,
在每行或者每列的所有亮度渐变度数据中,若连续的J个亮度渐变度数据中出现K个绝对值大于C0的异常数据,则判断所述K个异常数据的采样区域为污点区域,所述摄像头模组存在污点,否则,所述摄像头模组不存在污点;其中K≥0.6J,J根据不同的污点模型进行相关数值统计确定。
本发明实施例的有益效果是:本发明提供的摄像头模组污点的检测方法和装置,对待检测的摄像头模组正对均匀白色光源拍摄照片的图像的亮度数据进行自左向右逐行或者自上向下逐列的采样,根据每行或每列的单元亮度采样值获得用于表征本行或本列相邻采样点间亮度渐变程度的亮度渐变度数据,由于当每行或每列的采样区域存在污点时,污点处的亮度渐变度数据异于周围正常区域的亮度渐变度数据,因此可以根据亮度渐变度数据快速准确地判断所述待检测摄像头模组是否存在污点,以及存在污点时确定污点位置。
附图说明
图1为本发明实施例提供的摄像头模组污点检测的方法的流程示意图;
图2为利用无污点的摄像头模组面对恒定低色温均匀光源拍摄的图像;
图3为本发明实施例提供的将单行或单列的采样的亮度采样值曲线变化示意图;
图4为本发明实施例提供的无污点的单行采样的单元亮度采样值、亮度偏离百分比以及亮度渐变度曲线变化示意图
图5为本发明实施例提供的存在污点的单行采样的单元亮度采样值、亮度偏离百分比以及亮度渐变度曲线变化示意图;
图6为本发明实施例提供的摄像头模组污点检测的装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1为本发明实施例提供的摄像头模组污点检测的方法的流程示意图,该方法包括:
S100,获取待检测的摄像头模组正对均匀白色光源拍摄照片的图像的亮度数据。
S101,以预定的采样单元和采样步长逐行或逐列对所述图像的亮度数据采样,获得每行或每列的每个采样单元的单元亮度采样值。
具体的,
以像素点L*L的正方形区域作为采样单元,以L/2为采样步长;
从所述图像的左上角开始,采样的起始坐标为(L/2,L/2),自左向右逐行或自上向下逐列地进行采样,其中,在进行下一行或下一列采样时,将对应的上一行或上一列采样的初始坐标的纵坐标增加L/2或横坐标增加L/2后作为下一行采样的初始坐标或下一列采样的初始坐标;
获取每次采样的L*L个像素点的亮度值,并以所述L*L个像素点的亮度值的立方和作为每次采样的采样单元的单元亮度采样值。
需要说明的是,可以根据实际需求选择合适采样单元,本技术方案并不局限于L*L大小的正方形采样单元,只要能够对图像的每行或每列进行合适的采样即可。
S102,根据每行或每列的单元亮度采样值确定表征本行或本列相邻采样点间亮度渐变程度的亮度渐变度数据;其中每行或每列的采样区域不存在污点时,所述亮度渐变度数据保持在零点附近的数值区间[-C1,C0]内;当亮度渐变度数据跳变到数值区间[-C1,C0]之外时,确定所述亮度渐变度数据为异常数据,-C1和C0为污点检测阈值。
其中,当污点出现,且采样单元在污点左边缘或上边缘时,亮度渐变度数据跳变到小于-C1的负峰值;采样单元在污点右边缘或下边缘时,亮度渐变度数据跳变到大于C0的正峰值;在采样区域完全退出污点后,亮度渐变度数据恢复到所述数值区间[-C1,C0]。
具体的,假设对所述图像进行第i行/列采样时,依次得到M个单元亮度采样值,其中第n个单元亮度采样值为Yn;
对所述M个单元亮度采样值做如下运算:
确定位于第i行/列相邻两采样点间的亮度偏离百分比,得到M-1个亮度偏离百分比数据Sn,其中W为图像的宽度;
对所述M-1个亮度偏离百分比数据Sn再做如下运算:
计算第i行/列相邻三采样点间的亮度渐变程度,得到M-2个亮度渐变度数据Qn。
S103,根据每行或每列的所述亮度渐变度数据逐行或逐列地判断所述图像,以检测所述摄像头模组是否存在污点。
具体的,在每行或每列的所有亮度渐变度数据中,若连续的J个亮度渐变度数据中出现K个小于-C1或者大于C0的异常数据,则判断所述K个异常数据的采样区域为污点区域,所述摄像头模组存在污点,否则,所述摄像头模组不存在污点;其中K≥0.6J,J根据不同的污点模型进行相关数值统计确定。
其中,污点检测阈值-C1、C0根据不同的污点模型进行相关数值统计确定,采样单元及采样步长根据图像的分辨率确定。
需要说明的是,因为实际应用中选用的摄像头芯片不同,软件调试的画面效果存在差异,导致本发明中的各个参数值根据实际需求也各有不同,因此需要对不同的污点模型进行大量数据的数值统计,得到污点区域异常数据的数据特征后,通过对参数的量化获得需要的污点检测阈值-C1、C0。
在本发明的一个实施例中,待检测的摄像头模组面对一个恒定低色温的均匀白色光源拍摄一副照片,获取该照片YUV格式图像亮度数据,参考图2,画面中亮度值随着以图像中心为圆心的同心圆半径的增加而减少,理想状态下,该亮度渐变速率是稳定的;如果画面中出现污点,稳定的渐变速率将被破坏,尤其在污点的边缘区域,会出现亮度值变化速率剧烈的起伏。本发明实施例通过一种评价亮度渐变程度的数学表达式,判断图片中各个区域的亮度值是否在合理的渐变幅度区间,如果在某一临近区域聚集出现大量超出合理数据的异常数据,则判定该区域为污点区域。
本实施例中以L/2为采样步长,以像素点L*L的正方形区域作为采样单元,将每采样单元中的L*L个像素点的亮度值的立方和相加作为每次采样的采样单元的单元亮度采样值;具体的,假设采样单元的正方形区域的中心坐标为(i0,j0),采样区域边长为L,则该单元亮度采样值为式中的yij为像素坐标点(i,j)的亮度值。
在实际应用中,每行的采样个数通常在150至200之间,假如图像的宽度为2592,则可以将采样步长设置在13至17个像素长度,采样单元的边长L设置在26至34个像素长度。
假设所述图片的大小为W×H,以对所述图像的第1行进行采样为例进行说明。
从所述图像数据的左上角开始,采样的起始坐标为(L/2,L/2),自左向右逐行地进行采样,
第1行的第n个采样单元的中心坐标为其中即W为图像的宽度;
第1行的第n个采样的单元亮度采样值为其中
在进行第2行采样时,采样的起始坐标为(L/2,L),如此自左向右逐行地进行采样,直至到第m行,H为图像的高度。
依照上述采样规则对所述图片自左向右逐行或者自上向下逐列地进行采样后,本实施例将获得的每一行的所有单元亮度采样值拟合为一条曲线,以便于对单元亮度采样值进行直观的分析;参考图3,图中直角坐标系的横轴表示采样点,纵轴表示为单元亮度采样值Yn,曲线的中心位置处的亮度值最大,并且亮度值随着坐标趋近图像边缘而逐渐降低,对每一行的采样样本而言,初始采样值较低,之后采样值逐渐升高,当横坐标平移到图像中心位置处时,采样值达到最大,之后采样值逐渐降低。
然后,根据每行的单元亮度采样值,获取表征相邻采样点间亮度渐变程度的亮度渐变度数据。
同样以第1行为例,对第1行图像依照上述采样规则进行采样,假设共得到M个采样点的单元亮度采样值,第n个采样点的单元亮度采样值为Yn,对所述M个采样点的单元亮度采样值做如下运算:
计算位于第1行相邻两采样点间的亮度偏离百分比,得到M-1个亮度偏离百分比数据Sn,其中n∈[1,M-1];理论上,当S n>0时,采样点的单元亮度采样值位于图3中的曲线的上升区间,当S n<0时,采样点的单元亮度采样值位于图3中的曲线的下降区间。
对所述M-1个亮度偏离百分比数据Sn再做如下运算:
计算位于第1行相邻三采样点间的亮度渐变度程度,得到M-2个亮度渐变度数据Qn。
本实施例中,将所述M-1个亮度偏离百分比数据Sn以及M-2个亮度渐变度数据Qn分别拟合为亮度偏离百分比曲线和亮度渐变度曲线,以便于对数据进行直观分析。
如图4所示,为本发明实施例提供的无污点的单行采样的单元亮度采样值、亮度偏离百分比以及亮度渐变度曲线变化示意图,每行或每列的采样区域不存在污点时,单元亮度采样值曲线Y相对平滑,在每行或每列采样的初始阶段单元亮度采样值逐渐增加,当亮度采样值的达到最大值后,逐渐的减少;相邻两个采样点间的亮度偏离百分比曲线S呈现直线型的均匀变化,即从每行或每列采样的初始阶段至获得最大单元亮度采样值阶段,相邻两个采样点的亮度偏离百分比均匀减少到零,从获得最大单元亮度采样值后至每行或每列采样的结尾阶段,相邻两个采样点的亮度偏离百分比从零开始均匀增加;而相邻三个采样点间的亮度渐变度曲线Q呈现出平行于横轴的直线型的趋近零变化的曲线,即当采样步长足够小时,单元亮度采样值曲线Y相对平滑,在相邻三个采样点间,亮度变化速率浮动很小,因此理论上亮度渐变度数据Qn应保持在零点附近。
如图5所示,为本发明实施例提供的存在污点的单行采样的单元亮度采样值、亮度偏离百分比以及亮度渐变度曲线变化示意图,污点处的亮度渐变度数据Qn异于周围正常区域的亮度渐变度数据Qn,在由正常区域过渡到污点内部的污点边缘,亮度渐变度数据Qn的数值从零点附近的正常数值突变到一个小于-C1的负峰值,由污点内部过渡到正常区域的污点边缘,亮度渐变度数据Qn的数值从所述负峰值突变到一个大于C0的正峰值,当采样区域完全退出污点后,亮度渐变度数据Qn的数值恢复到零点附近的正常数据。
需要说明的是,在实际应用中,当每行(或每列)图像存在污点时,该行(或该列)图像不一定完全穿过污点的左右(或上下)两个边缘,例如,当污点在图片的最左边缘时,第一个采样值就在污点内部,因此本次采样就可能获取不到污点左边缘的特征数据。
由此,本技术方案根据如下规则判断所述待检测摄像头模组是否存在污点:
在每行的所有亮度渐变度数据中,若连续的J个亮度渐变度数据中出现K个小于-C1或大于C0的异常数据,则所述K个异常数据的采样区域为污点区域,即所述摄像头模组存在污点,否则,所述摄像头模组不存在污点。其中,J和K根据不同的污点模型进行相关数值统计确定。本实施例中优选地选取J=M/30、K≥0.6J,M为每行的单元亮度值个数。即如果每行的采样点数M为200,如果在连续7个亮度渐变度数据中,存在4或4个以上的异常数据,则这些异常数据的采样区域为污点区域。
图6为本发明实施例提供的摄像头模组污点检测的装置的结构示意图,该装置包括亮度采样值获取单元61、亮度渐变度曲线获取单元62和检测单元63。
单元亮度采样值获取单元61,用于以预定的采样单元和采样步长逐行或逐列对通过待检测的摄像头模组正对均匀白色光源拍摄照片获取的图像的亮度数据采样,获得该行或该列的单元亮度采样值;
亮度渐变度数据获取单元62,用于根据每行或每列的单元亮度采样值确定表征本行或本列相邻采样点间亮度渐变程度的亮度渐变度数据;其中每行或每列的采样区域不存在污点时,所述亮度渐变度数据保持在零点附近的数值区间[-C1,C0]内;当所述亮度渐变度数据跳变到数值区间[-C1,C0]之外时,确定所述亮度渐变度数据为异常数据,-C1和C0为污点检测阈值;
检测单元63,用于根据每行或每列的所述亮度渐变度数据逐行或逐列地判断所述图像,以检测所述摄像头模组是否存在污点。
本发明装置实施例中各单元的具体执行方式,可以参见本发明摄像头模组污点的检测装置实施例的具体内容,在此不再赘述。
综上所述,本发明提供的摄像头模组污点的检测方法和装置,对待检测的摄像头模组正对均匀白色光源拍摄照片的图像的亮度数据进行自左向右逐行或者自上向下逐列的采样,根据每行或每列的单元亮度采样值获得用于表征本行或本列相邻采样点间亮度渐变程度的亮度渐变度数据,由于当每行或每列的采样区域存在污点时,污点处的亮度渐变度数据异于周围正常区域的亮度渐变度数据,因此可以根据亮度渐变度数据快速准确地判断所述待检测摄像头模组是否存在污点,以及存在污点时确定污点位置。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。