zoukankan      html  css  js  c++  java
  • 红灯检测宇视科技专利分析与总结2

    进一步地,如所述信号灯呈横向排列,本发明所述步骤S2包括:
    S21、对所述信号灯所在位置区域进行列扫描,判断所扫描的列是否存在信号灯的边界像素。由于步骤S1中已经获得了信号灯的边缘信息,边缘信息即图像中的像素哪些是信号灯的边界像素。通过对图像进行列扫描来判断扫描的列是否包含信号灯的边界像素。
    S22、如存在信号灯的边界像素的列的前一列并不存在信号灯的边界像素,则将存在信号灯的边界像素的列设定为起始列。
    S23、如存在信号灯的边界像素的列的后一列并不存在信号灯的边界像素,则将存在信号灯的边界像素的列设定为结束列。

    由于第一次检测到边界像素出现的列是一个信号灯区域开始的列,因此将这一列设定为起始列。之后的继续进行列扫描,均可以扫描到边界像素,直到不能再次扫描到边界像素的列是一个信号灯区域结束的列,因此将这一列设定为结束列。
    S24、从起始列到结束列进行一个信号灯的图像分割,返回步骤S21完成全部信号灯的图像分割。
    从开始列到结束列进行信号灯的图像分割,继续进行列扫描,确定起始列和结束列,进行下一个信号灯的图像分割,直至完成全部信号灯的图像分割。

    或者如所述信号灯呈纵向排列,所述步骤S2包括:
    S21’、对所述信号灯所在位置区域进行行扫描,判断所扫描的行是否存在信号灯的边界像素。
    S22’、如存在信号灯的边界像素的行的前一行并不存在信号灯的边界像素,则将存在信号灯的边界像素的行设定为起始行。
    S23’、如存在信号灯的边界像素的行的后一行并不存在信号灯的边界像素,则将存在信号灯的边界像素的行设定为结束行。
    S24’、从起始行到结束行进行一个信号灯的图像分割,返回步骤S21完成全部信号灯的图像分割。

    其具体原理同信号灯呈横向排列时相同,在此不再赘述。另外,如果仅存在单个信号灯时,既可以认定为信号灯呈横向排列也可以认定为信号灯呈纵向排列,采用列扫描或者行扫描均可对信号灯区域进行分割。

    另外,如所述信号灯呈横向排列,执行步骤S21-S24后,仍可以继续执行步骤
    S21’-S24’,从而获得更加准确的信号灯区域。同理,如所述信号灯呈纵向排列,执行步骤S21’-S24’后,仍可以继续执行步骤S21-S24,从而获得更加准确的信号灯区域。
    另外,本发明还可以无论信号灯呈横向排列还是纵向排列,均执行步骤S21-S24和步骤S21’-S24’,从而获得更加准确的信号灯区域。本发明甚至可以对采集的整帧图像进行行扫描和列扫描,判断所扫描的行是否存在信号灯的边界像素,从而完成信号灯区域的分割。

     

    S3、对所述图像中的信号灯区域进行颜色强化。进一步地,本发明所述步骤S3包括:
    S31、将标准色板卡中的信号灯颜色的 RGB 值转化为 YUV 的值,作为信号灯的期望颜色。

    比如信号灯的颜色为红色、绿色和黄色,则将标准色板卡上的这三个颜色取出,并将其RGB值转化为YUV值。
    RGB转YUV的公式如下:
    Y=0.30*R+0.59*G+0.11*B
    U=0.493*(B-Y)
    V=0.877*(R-Y)

    S32、将所述图像中的信号灯区域的信号灯颜色强化成信号灯的期望颜色。比如信号灯的颜色为红色、绿色和黄色,则判断所述图像中信号灯区域的信号灯颜色,如果是红灯,则将红灯区域的颜色强化成色板卡上取出的红色的YUV值。如果是绿灯灯,则将绿灯区域的颜色强化成色板卡上取出的绿色的YUV值。如果是黄灯,则将黄灯区域的颜色强化成色板卡上取出的黄色的YUV值。

    本发明并不是如现有技术般仅根据信号灯在图像中的大概位置进行信号灯颜色处理,而是将信号灯边缘信息检测出来,并分割出信号灯区域,从而对信号灯区域进行颜色强化。因此,本发明可以更好的还原信号灯的颜色并且可以对摄像机在各种环境光照强度下采集的图像进行信号灯颜色处理。

    进一步地,本发明所述方法还包括:
    S4、对所述颜色强化后的信号灯区域进行边缘模糊处理。
    如果只是对信号灯区域的像素进行颜色强化,即对信号灯区域的全部像素进行同样的颜色强化,会给人一种不真实的感觉。本发明采用边缘模糊处理,对信号灯区域的靠近边界像素的部分像素进行模糊处理。

    参见图3,优选地,边缘模糊处理的计算方式如下,假设选取像素1和像素7之间的五个像素作为进行模糊处理的像素。像素2为信号灯区域的边界像素。像素1为信号灯区域外且最接近信号灯区域边界像素2的背景像素。像素3至像素7为信号灯区域内像素,且依次远离信号灯区域边界像素2。如果不对像素1和像素7之间的五个像素进行模糊处理,由于步骤S3中对信号灯区域进行了颜色强化,则这五个像素作为信号灯区域像素,其亮度值都是进行颜色强化处理后的期望亮度值。本发明设定AX为进行模糊处理的像素的亮度值,X为2至6之间自然数;A7为像素7的亮度值,即信号灯区域进行颜色强化处理后的期望亮度值;A1为像素1的亮度值,即信号灯区域外且最接近信号灯区域边界像素2的背景像素亮度值,那么具体模糊处理公式如下:
    AX=A1+((A7-A1)/6)*(X-1) (1)。

    由于信号灯作为光源元件,信号灯区域进行颜色强化处理后的期望亮度值必定远大于临近信号灯区域的背景部分的像素的亮度值。因此,像素1的亮度值必定远小于像素7的亮度值,即A1远小于A7。这样,由公式(1)可知,模糊处理计算后的像素2、像素3、像素4、像素5、像素6的亮度值依次逐渐增大,且介于像素1和像素7的亮度值之间。

    如果并未对所述颜色强化后的信号灯区域进行边缘模糊处理,信号灯区域会由于存在颜色不真实情况造成的失真。一般情况下,对所述颜色强化后的信号灯区域进行边缘模糊处理之后,信号灯的颜色就应满足要求,但是一些复杂情况,比如信号灯周围有强光或者信号灯本身反光严重,仍导致信号灯的颜色仍存在失真。进一步地,为避免上述颜色失真,本发明所述方法还包括:

    S5、判断所述颜色强化后的信号灯区域的像素亮度分布情况是否符合预设的像素亮度分布要求。
    S6、如果不符合预设的像素亮度分布要求,则根据信号灯模板对所述颜色强化后的信号灯区域进行校正。

    本发明对信号灯区域预设的像素亮度分布要求通常为一理想的信号灯区域像素亮度分布情况。比如中心区域像素亮度平均值高于边缘区域像素的亮度平均值,中心区域和边缘区域的像素个数由本领域技术人员根据系统需求设定。

    具体地,可以采用灰度直方图来反映信号灯区域的像素亮度分布情况,如果颜色强化后的信号灯区域的灰度直方图符合中间统计值高于两边统计值的要求,则表明本发明所述颜色强化后的信号灯区域的像素亮度分布情况符合预设的像素亮度分布要求,则结束处理流程。

    如果颜色强化后的信号灯区域的灰度直方图不符合中间统计值高于两边统计值的要求,则判断是否存在信号灯模板,如果存在信号灯模板,则根据信号灯模板对所述颜色强化后的信号灯区域进行校正。如果不存在信号灯模板,则需要通过计算获得信号灯模板。

    进一步地,本发明所述信号灯模板是根据背景差分法获得,且其像素亮度分布情况符合预设的像素亮度分布要求的图像。

    背景差分法是采用图像序列中的当前帧和背景参考模型比较来检测运动物体的一种方法。其公式如下:
    Frame_Diff=Frame_Cur–Frame_Ref
    本发明选取当前帧图像的前一帧图像作为参考帧与当前帧图像进行比较,得到帧间残差图像。然后判断所述帧间残差图像的灰度直方图是否符合中间统计值高于两边统计值的要求,如果符合要求,则将此帧间残差图像作为信号灯模板。如果不符合要求,则继续选取其他当前帧图像的相邻帧图像作为参考帧,获得灰度直方图符合要求的帧间残差图像。

    由于当前帧图像和前一帧图像存在差异的部分为动态变化的区域,本发明通过背景差分法可以将图像中动态的区域提取出来,有效的去除静态的干扰,然后将这个区域用来做信号灯模板矫正信号灯区域,这样可以大大提升颜色强化时的信号灯区域的准确性。

  • 相关阅读:
    flex布局
    input框不能输入问题
    JS的innerHTML完成注册表
    CSS的z-index属性和box-shadow属性
    JS个人笔记
    css照片墙
    透明度设置
    a标签的name属性
    iframe标签
    title属性
  • 原文地址:https://www.cnblogs.com/snowxshy/p/3796062.html
Copyright © 2011-2022 走看看