当前位置:首页 >新闻中心>常见问题解答
常见问题解答

LED显示屏灯点逐点校正 是巧功夫

发布时间:2016/1/22 9:43:56来源:本站浏览次数:

    LED显示屏是由成千上万颗LED发光二极管组成,LED电子显示屏的一个像素点就由R,G,B 三色二极管组成,来显示文字、图片、图形图像、视频动画等。LED 相较于以前的显示技术的优势是LED显示屏完全不受尺寸的影响,可以做到几十上百米的尺寸,LED全彩显示屏广泛用于城市中心的广场,和一些会议室,LED 显示能达到的亮度是LCD 液晶显示等远远达不到的。         LED 显示屏巨额的灯点,造成了LED 显示效果的一致性非常差。按照LED 制造商的工业分级标准,同一批次的LED 出厂的LED 灯的亮度误差能达到20%-40%,色度误差是5nm,而人眼可以忍受的亮度差异是在5%以下的,色度差异在1-2nm 范围以内,所以没有进行校正的显示屏的显示效果是很差的,远远低于人眼的要求,而且,随着LED 显示屏的长期使用,LED 灯管的外部硅脂层会氧化,从而让LED 的整体亮度下降,色彩偏黄,显示效果继续恶化,出现花屏,马赛克等现象。                                                                                      随着LED 显示屏的普遍使用,对于一些用于高规格场合的LED 显示屏(比如会议室等),为了提高显示效果,LED 显示校正技术是迫切需要的。LED 显示校正就是通过一系列的算法,找出每个灯点,计算每个灯点的信息,然后统计出他们的差异,生成一个校正系数表,以此来控制LED 显示屏每个灯的显示状态,让每个灯的显示趋于一致。

 LED 发光特性
LED(Light Emitted Diode)是在半导体p-n结或其类似的结构通以正向电流时以高效率发可见光或近红外光的器件。发光二极管的核心部件为P型半导体和N型半导体组成的晶片,在P型半导体和N型半导体之间有一个过渡层,称为P-N结。
 
在某些半导体材料的P-N结中,在正向电压下,注入的少数载流子与多少载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。P-N结加反向电压,少数载流子难以注入,故不发光;当P-N结处于正向电压下时,半导体晶片就可以发出从紫外到红外不同颜色的光,光的强弱与电流有关。
 
PWM 调制
改变LED 的电流可改变LED 的亮度。但是由于R,G,B 三色灯管的电流特性不同,直接调节电流会导致R,G,B 三色的比例改变,导致调节亮度的同时会改变色度,故我们不采取调节电流的方法来控制LED 灯的亮度,此处我们采用PWM 调制来控制LED 灯管亮度。
 
脉宽调制(PWM)在控制LED 的亮度方面是一种广泛应用的技术,其原理是基于塔尔波特定律。PWM 不同于改变电流来调整LED 灯的亮度,它是通过控制LED 灯的明灭来控制LED 灯的亮度,此时的电流时不会改变的,色度也不会发生偏差。如图1 所示,通过LED 灯的高速闪动,人眼无法察觉到灯的闪动,只会感觉灯是变亮了或变暗了;比如,我们控制10s 中LED 灯使用其中1/10 的时间进行点亮,当然这是一个高速变化的过程,10s 的过程会产生上千次脉冲,让人眼最舒适,此时我们得到LED 灯的亮度即是10s 中一直点亮时亮度的1/10。

图1 PWM脉宽调制 
 
这种方式优势很明显,不用改变电流,因为使用电流调节会改变LED 色度,使用PWM 调制就可以保证色度不变的情况下来调节LED 亮度。
 
校正流程及步骤
有了对LED 灯的这些了解,我们需要设计一套针对LED 屏幕的校正流程:
1)相机选型参数配置
2)RGB 图像采集
3)图像处理LED 点定位
4)数据分析生成校正系数
5)上传系数控制LED 屏
 
对LED 信息的采集我们需要用到相机,需要选定能拍摄出对于人眼最真实效果的相机和镜头,此处需要对相机进行参数配置和调节;得到相机后我们需要用它对LED 屏进行一系列的数据采集,要针对图像的R,G,B 三色图像都要进行采集,而且每一次采集需要获取多张照片以防止误差;
 
相机采集到相片后,要将相片通过我们设计的软件系统来进行图像处理,对相片中的灯点进行定位,得到每个灯点在图像中的位置,以便进行下一步;得到灯点位置后,通过这个位置信息获取每一个灯点的像素值,然后进行数据的统计,选定目标值,计算每个灯点RGB 三色灯的校正系数组成一个3*3 矩阵,最后将得到的系数矩阵上传给LED 屏幕控制器,通过这个控制器来控制LED 屏幕的显示。通过反馈机制多次调整系数,以求达到最好的校正效果。
 
(1)RGB 图像的采集
当我们调整好相机的参数后就可以开始进行下一步,开始对LED 屏幕进行拍照采集,因为LED屏幕一个像素点是由三种颜色的RGB 灯管组成,我们需要对每一个灯管都进行亮度校正,所以我们需要拍摄3 种图像,分别是R 管、G 管、B 管单独亮起时的颜色,即红色、绿色、蓝色,三色图像来进行每个灯管的校正,然后将他们产生的系数组成一个3*3 的矩阵来上传给LED 控制器;
 
为了减少误差我们会对同一种颜色的图像进行多次拍摄,对他们产生的系数进行求平均来达到最真实反映RGB 灯管特性的校正系数,从而会产生较好的校正效果,采集到的图像如图2 所示。

图2 采集到的绿色灯点图像 
 
(2)图像处理与LED 点定位
得到图像后我们需要对图像,进行一系列的图像预处理,坏点剔除,原始值减暗场等。
 
坏点剔除方法:将采集到的一幅图像中所有的灯点信息做统计,求出等点亮度的平均值,然后将某些亮度小于平均亮度的30%(经过实际测试,得出的经验值)的灯点看做LED 坏点,不会对着些位置的点进行校正。
 
减暗场的方法是使用的RGB 三种颜色每个LED 像素点是减去相同位置显示K(LED 不显示时拍摄的图像)时的像素点值;例:某个LED 相机采集到的R 像素值为(255 13 6),K 像素值为(10 2 3),则减去暗场后的R 像素值应为(245 11 3)。
 
LED 点定位:对于采集到的图像,我们观察得知,拍摄的图像很有特点,一个个灯点很整齐的排列,而且分布很均匀,边缘很明显,此时我们用到了边缘检测,来确定一个灯点的位置信息,使用了著名的canny 算子进行边缘检测,然后我们会用一个最小的方框来框住检测到的边缘,这个方框内代表了相机拍摄的一个灯点的所有像素点的像素信息,我们可以根据这个方框的位置坐标来定位并且统计一个(RGB)灯点的所有像素点信息。如图3所示为一个绿灯点的像素信息和位置信息。

图3 LED点定位
 
接下来我们需要做的是确定每一个方框的顺序和灯点的顺序是一样的。这里我们需要去统计方框的信息,如果我们对所有的方框进行排序的话效率是非常低的,因为一个LED 屏幕的灯点数量是十万到百万级的,这个排序工作量是非常大的,所以我们需要将整个屏幕分成多个校正模块,将整个屏幕分离开来,对每一小块先进行一次预处理的校正,这样能大大减少工作量。
 
因为照相机的视角大小是确定的而且照相机拍的灯点数量越多则精细程度就越低,影响采集数据的准确性,此次系统设计过程中我们选取的模块大小是一个128*96 像素的灯点模块,我们需要将整个LED 显示屏分成这样大小的N 个模块,然后对每一个模块进行校正,这样大大减小了数据量,提高了校正效率;而且在对于一个128*96 的模块进行数据采集过程中,由于灯点数量的减少,也使得我们检测到的灯点位置信息更加准确;
 
检测到这些信息后我们下一步工作时对这些信息进行排序使得方框的顺序和灯点的顺序是一样的,这是因为CANNY 算子对边缘检测时,它是对整张图像的最左上角的第一个像素点开始进行检测的并不是我们想要的从第一个灯点进行检测,所以图像的拉伸和灯点在图像中进行倾斜会造成检测的不准确;
 
我们需要对图像进行旋转以确保灯点的不倾斜,此时我们通过以一个最小的框框住所有的灯点,检测这个矩形的角度来得到整幅图像的倾斜角,旋转图像以确保图像的正确。
 
然后我们就可以排序了,对一个128*96 的数据块排序也是一个很大工作量,我们也发现等点的数据时非常规则的,它的位置信息都是有规律的变化的,我们不需要对整个8192 个灯点进行排序,我们只需要对灯点进行一排排的排序即可,即在128 个点中排序就可达到效果,因为任意两排中的距离差是比较大的,位置信息的顺序基本上是在同排之间有错乱,为了提高算法的效率我们只需要在同一排中对灯点的位置进行排序就能达到很好的效果,让灯点和位置方框进行一一对应。
 
通过这一步的处理我们得到了所有灯点的像素信息;接下来我们需要对这些得到的信息进行统计,并计算出每一个灯点的校正矩阵。

图4 一幅定位后的灯点图像 
 
(3)数据统计和校正系数的生成
本系统统计一个灯点的(R,G,B)值时使用的是加权平均法,即统计一个灯点的方框内所有像素点值求和然后除以点数求平均得到的一个(R,G,B)值作为这个灯点的像素值。分别对R,G,B 三种灯管的图像进行以上的数据统计得到同一个灯点上红色灯管的值(RR,GR,BR),绿色灯管的(RG,GG,BG),蓝色灯管的值(RB,GB,BB),然后将RGB 三种颜色的像素值转换为XYZ 空间值:

 
然后是求出三色灯管的目标值,目标值的作用就是让所有的灯点通过一个变换矩阵变为这个目标值,以达到提高一致性的目的。所以目标值的选取很重要,最常用的方法是选取最低点作为目标值,但是这种方法有很严重的缺点,当你选取最低亮度的灯点作为目标值时,会让校正后的屏幕亮度降低得很厉害,让人眼看到的效果不好,为了达到一个校正和人眼舒适度的目标我们制定了一套效果比较好的目标值选取的方法。
 
(4)系数上传给LED 控制器
由上我们可以很清晰的得到K 矩阵的求法,当我们求得K 矩阵后,K 中的系数可能为负或者大于1,此时由于控制LED 显示屏幕的控制器中FPGA芯片是不能处理负数和小数的,我们要将K 矩阵进行一下变换才能让FPGA芯片进行处理,当K 中有系数小于0 时,就将Kii置为0,当KII大于1 时,由于我们是用PWM进行亮度的调整,所以当系数大于1时,LED 控制器是不能增大脉宽的,所以需要将所有大于1的系数置1;又因为FPGA 接受的系数只能为整数,所有当FPGA 接受的是8 位的数据的时候,我们需要对每个系数乘以一个255 以便将其传给FPGA 芯片;
 
实验结果
本系统使用了vs2008+opencv2.4.6 来实现了图像处理方向的算法[14],并且对结果进行了统计,我们对实验前后的灯点数据进行了统计研究,如图5、图6 所示。

图5 原始灯点数据分布  

图6 校正灯点数据分布
 
图5 为未进行校正时的灯点数据分布,可以明显的看到未校正的时候数据很分散,不一致性高,统计出来的灯点非均匀性值约为14%,图6为校正过后的数据分布,此时统计出来的非均匀性值约为4.1%,由实验结果可知,我们使用的根据纹理特征的灯点定位法效果还是非常好的,因为这种方法定位到的灯点位置非常的准确,从而使取到的数据也非常的接近,就能产生较好的校正效果。
 
下一步研究目标
本系统的提出的基于纹理的灯点定位算法对取得灯点数据时非常准确的,但是对于一个LED 屏幕,它上面的灯点数量是十万数量级的,所有校正一个这样的屏幕是需要很长的时间,所以下一步的研究目标是提高着个算法的效率。
 
对于这个系统我的研究设想是,因为对于一个LED 屏幕,照相机拍摄下来的图像,每个灯点间的距离是非常接近的,或许可以基于此,我们不用检测每一个灯点的纹理,只需要对LED 屏幕中少数有特殊位置的点进行纹理检测,然后基于这个相同的距离,我们可以直接划出其他灯点的位置,这对于十万,百万数量级灯点数目的LED 屏幕有非常重要的意义,校正这样LED 屏幕的时间会大大的缩短。


下一篇:没有了!