一种车辆视频中机动车辆的车身颜色自动识别方法
技术领域
本发明涉及一种车辆智能监控技术,尤其是涉及一种车辆视频中机动车辆的车身颜色自动识别方法。
背景技术
机动车辆的车身颜色识别是智能交通中机动车辆检测的重要属性,对嫌疑机动车辆排查、套牌车检测具有重要的作用。实际路口视频监控系统被要求在受不同气候条件环境光线影响下,也能高效、稳定、准确地识别出机动车辆的车身颜色。
目前,常用的机动车辆的车身颜色识别方法是在车牌附近寻找较好的局部识别区域作为识别单元,然后利用SVM支持向量机或其他训练算法进行训练,再利用训练的SVM支持向量机进行车身颜色测试。如:中国公告的专利号为201110124540.7的发明专利,其公开了一种车辆智能监控系统中车身颜色自动识别方法,其首先根据所得车牌的位置和车身纹理特征,检测代表车身颜色的特征区域;然后对车身特征区域像素进行色彩空间转换及矢量空间量化合成,在量化后的矢量空间提取模糊直方图Bin的归一化特征;并采用LDA方法对获取的高维特征进行特征降维;通过车身颜色多类子空间分析后,利用离线训练分类器的识别参数,采用多特征模板匹配或SVM方法进行子空间的车身颜色识别;最后根据初识别可信度和颜色先验知识,对易交叉和可信度低的颜色进行校正,以得到最终的车身颜色识别结果。该方法在白天受玻璃、阴影和反光影响时,局部识别区域识别得到的颜色可能并不是车身颜色,即在白天受玻璃、阴影和反光影响时该方法的识别精度较低。
发明内容
本发明所要解决的技术问题是提供一种车辆视频中机动车辆的车身颜色自动识别方法,其在白天受玻璃、阴影和反光影响时也能准确的识别出多种车身颜色,识别精度高。
本发明解决上述技术问题所采用的技术方案为:一种车辆视频中机动车辆的车身颜色自动识别方法,其特征在于包括以下步骤:
①将当前待处理的车辆图像定义为当前图像;将当前图像中高度等于车牌高度、宽度等于车牌宽度的3倍、以车牌中心为中心的一个区域作为基准;将当前图像中位于基准正上方的18个连续的车身识别单元、基准及位于基准正下方的1个车身识别单元构成的区域定义为车身初步区域,在车身初步区域中将基准也作为一个车身识别单元,然后对车身初步区域中的20个连续的车身识别单元由上至下依次编号为0~19,其中,所有车身识别单元等高等宽,且所有车身识别单元的左、右两侧均齐平;将当前图像中编号为10~19的每个车身识别单元的左侧起宽度为车牌宽度减去10个像素点的区域作为一个左车灯识别基本单元,将对每个左车灯识别基本单元的左侧向外拓展、高度等于车牌高度、宽度等于车牌宽度的0.5倍的区域作为一个左车灯识别拓展单元,将当前图像中编号为10~19的每个车身识别单元的右侧起宽度为车牌宽度减去10个像素点的区域作为一个右车灯识别基本单元,将对每个右车灯识别基本单元的右侧向外拓展、高度等于车牌高度、宽度等于车牌宽度的0.5倍的区域作为一个右车灯识别拓展单元,将每个左车灯识别基本单元和对应的右车灯识别基本单元构成一个车灯识别基本单元,将每个左车灯识别拓展单元和对应的右车灯识别拓展单元构成一个车灯识别拓展单元,将每个车灯识别基本单元和对应的车灯识别拓展单元构成一个车灯寻找单元,将10个连续的车灯识别基本单元构成的区域定义为车灯识别基本区域,将10个连续的车灯识别拓展单元构成的区域定义为车灯识别拓展区域,将10个连续的车灯寻找单元构成的区域定义为车灯寻找区域,然后对车灯寻找区域中的10个连续的车灯寻找单元由上至下依次编号为10~19;
②将车身初步区域和车灯识别拓展区域各自中的每个像素点的R、G、B三通道颜色分量的值输入到已训练的PLSA颜色模型中,得到车身初步区域和车灯识别拓展区域各自中的每个像素点的颜色及颜色对应的置信度,得到的每个像素点的颜色属于PLSA颜色模型输出颜色集合Output_Color,其中,Output_Color中包含有11种颜色,按序分别为黑色、蓝色、褐色、灰色、绿色、橘黄、粉色、紫色、红色、白色、黄色;
③统计车灯识别拓展区域中颜色为红色的像素点的总个数;
统计车灯识别基本区域中颜色为红色的像素点的总个数;
统计车身初步区域中编号为12~19的一组车身识别单元中颜色为Output_Color中的每种颜色的像素点的总个数,将车身初步区域中编号为12~19的一组车身识别单元中颜色为Output_Color中的第k种颜色的像素点的总个数记为其中,1≤k≤11;
统计车身初步区域中编号为12~19的一组车身识别单元中颜色评价为高置信度白色的像素点的总个数、颜色评价为高置信度黑色的像素点的总个数、颜色评价为中等置信度黑色的像素点的总个数、颜色评价为高置信度蓝色的像素点的总个数、颜色评价为高置信度绿色的像素点的总个数;其中,对于车身初步区域中编号为12~19的一组车身识别单元中的任一个像素点,如果该像素点的颜色为白色且该像素点的R、G、B三通道颜色分量的值之和大于750,则将该像素点的颜色评价为高置信度白色;如果该像素点的颜色为黑色且该像素点的R、G、B三通道颜色分量的值之和小于35,则将该像素点的颜色评价为高置信度黑色;如果该像素点的颜色为黑色且该像素点的R、G、B三通道颜色分量的值之和小于46,则将该像素点的颜色评价为中等置信度黑色;如果该像素点的颜色为蓝色且该像素点的颜色对应的置信度大于0.65,则将该像素点的颜色评价为高置信度蓝色;如果该像素点的颜色为绿色且该像素点的颜色对应的置信度大于0.55,则将该像素点的颜色评价为高置信度绿色;
统计车身初步区域中编号为12~19的一组车身识别单元中亮度较高的非白色像素点的总个数;其中,对于车身初步区域中编号为12~14的一组车身识别单元中的任一个像素点,如果该像素点的R、G、B三通道颜色分量的值的最大值大于180,则将该像素点确定为亮度较高的非白色像素点;对于车身初步区域中编号为15~17的一组车身识别单元中的任一个像素点,如果该像素点的R、G、B三通道颜色分量的值的最大值大于150,则将该像素点确定为亮度较高的非白色像素点;对于车身初步区域中编号为18~19的一组车身识别单元中的任一个像素点,如果该像素点的R、G、B三通道颜色分量的值的最大值大于130,则将该像素点确定为亮度较高的非白色像素点;
④在车身初步区域中编号为12~19的一组车身识别单元中,初步识别车身颜色,具体过程为:
④-1、将车身初步区域中编号为12~19的一组车身识别单元中颜色为Output_Color中的蓝色的像素点的总个数、颜色为Output_Color中的绿色的像素点的总个数、颜色为Output_Color中的红色的像素点的总个数、颜色为Output_Color中的黄色的像素点的总个数对应记为④-2、令Cim_1表示第一种可能的车身颜色,找出中的最大值,然后判断该最大值是否大于一个车身识别单元中的像素点的总个数的0.1倍,如果是,则将该最大值对应的颜色赋值给Cim_1,再执行步骤④-3;否则,令Cim_1=0,然后执行步骤⑤;④-3、当Cim_1为蓝色时,如果大于一个车身识别单元中的像素点的总个数的0.05倍,则将绿色确定为第二种可能的车身颜色,然后执行步骤⑤;当Cim_1为绿色或红色或黄色时,直接执行步骤⑤;
⑤在车身初步区域中编号为0~11的所有车身识别单元中,初步识别车身分界线,具体过程为:
⑤-1、令Ωbg表示代表路面的像素点的颜色为黑色和灰色时确定车身区域所采用的颜色集合,令Ωbgw表示代表路面的像素点的颜色为黑色、灰色和白色时确定车身区域所采用的颜色集合,Ωbg={蓝色、绿色、红色、黄色、黑色、灰色}-Cim_1,Ωbgw={蓝色、绿色、红色、黄色、黑色、灰色、白色}-Cim_1;
⑤-2、在车身初步区域中编号为0~11的一组车身识别单元中,寻找第一车身分界线,具体过程为:
⑤-2a、统计车身初步区域中编号为i的车身识别单元中颜色属于Ωbg的像素点的总个数;然后判断该总个数是否小于一个车身识别单元中的像素点的总个数的0.5倍,如果是,则认为车身初步区域中编号为i~11的一组车身识别单元为车身部分,且当i=5时执行步骤⑤-2c,当i≠5时将车身初步区域中编号为i的车身识别单元作为第一车身分界线,再执行步骤⑤-3;否则,认为车身初步区域中编号为i的车身识别单元不为车身部分,然后执行步骤⑤-2b;其中,i的初始值为5;
⑤-2b、令i=i+1,然后判断i是否等于11,如果i等于11,则再统计车身初步区域中编号为i的车身识别单元中颜色属于Ωbg的像素点的总个数,接着判断该总个数是否小于一个车身识别单元中的像素点的总个数的0.5倍,如果是,则认为车身初步区域中编号为i的车身识别单元为车身部分,并将车身初步区域中编号为i的车身识别单元作为第一车身分界线,再执行步骤⑤-3;否则,认为车身初步区域中编号为i的车身识别单元不是车身部分,并将车身初步区域中编号为i+1的车身识别单元作为第一车身分界线,再执行步骤⑤-3;如果i不等于11,则返回步骤⑤-2a继续执行;其中,i=i+1中的“=”为赋值符号;
⑤-2c、统计车身初步区域中编号为j的车身识别单元中颜色属于Ωbg的像素点的总个数;然后判断该总个数是否小于一个车身识别单元中的像素点的总个数的0.5倍,如果是,则认为车身初步区域中编号为j的车身识别单元为车身部分,然后执行步骤⑤-2d;否则,认为车身初步区域中编号为j的车身识别单元不为车身部分,并将车身初步区域中编号为j+1的车身识别单元作为第一车身分界线,再执行步骤⑤-3;其中,j的初始值为4;
⑤-2d、判断j是否等于0,如果是,则认为车身初步区域中编号为j的车身识别单元为车身部分,并将车身初步区域中编号为j的车身识别单元作为第一车身分界线,再执行步骤⑤-3;否则,令j=j-1,然后返回步骤⑤-2c继续执行;其中,j=j-1中的“=”为赋值符号;
⑤-3、在车身初步区域中编号为0~11的一组车身识别单元中,寻找第二车身分界线,具体过程为:
⑤-3a、统计车身初步区域中编号为i的车身识别单元中颜色属于Ωbgw的像素点的总个数;然后判断该总个数是否小于一个车身识别单元中的像素点的总个数的0.5倍,如果是,则认为车身初步区域中编号为i~11的一组车身识别单元为车身部分,且当i=5时执行步骤⑤-3c,当i≠5时将车身初步区域中编号为i的车身识别单元作为第一车身分界线,再执行步骤⑤-4;否则,认为车身初步区域中编号为i的车身识别单元不为车身部分,然后执行步骤⑤-3b;其中,i的初始值为5;
⑤-3b、令i=i+1,然后判断i是否等于11,如果i等于11,则再统计车身初步区域中编号为i的车身识别单元中颜色属于Ωbgw的像素点的总个数,接着判断该总个数是否小于一个车身识别单元中的像素点的总个数的0.5倍,如果是,则认为车身初步区域中编号为i的车身识别单元为车身部分,并将车身初步区域中编号为i的车身识别单元作为第一车身分界线,再执行步骤⑤-4;否则,认为车身初步区域中编号为i的车身识别单元不是车身部分,并将车身初步区域中编号为i+1的车身识别单元作为第一车身分界线,再执行步骤⑤-4;如果i不等于11,则返回步骤⑤-3a继续执行;其中,i=i+1中的“=”为赋值符号;
⑤-3c、统计车身初步区域中编号为j的车身识别单元中颜色属于Ωbgw的像素点的总个数;然后判断该总个数是否小于一个车身识别单元中的像素点的总个数的0.5倍,如果是,则认为车身初步区域中编号为j的车身识别单元为车身部分,然后执行步骤⑤-3d;否则,认为车身初步区域中编号为j的车身识别单元不为车身部分,并将车身初步区域中编号为j+1的车身识别单元作为第一车身分界线,再执行步骤⑤-4;其中,j的初始值为4;
⑤-3d、判断j是否等于0,如果是,则认为车身初步区域中编号为j的车身识别单元为车身部分,并将车身初步区域中编号为j的车身识别单元作为第一车身分界线,再执行步骤⑤-4;否则,令j=j-1,然后返回步骤⑤-3c继续执行;其中,j=j-1中的“=”为赋值符号;
⑤-4、在车身初步区域中编号为5~11的一组车身识别单元中,寻找第三车身分界线,具体过程为:当Cim_1≠0时,判断在车身初步区域中编号为5~11的一组车身识别单元中是否至少有两个车身识别单元各自颜色为Cim_1的像素点的总个数大于500个,如果是,则将满足条件的编号最小的车身识别单元作为第三车身分界线,然后执行步骤⑥;否则,确定不存在第三车身分界线,然后执行步骤⑥;当Cim_1=0时,直接确定不存在第三车身分界线,然后执行步骤⑥;
⑥在车灯寻找区域中编号为15~19的一组车灯寻找单元中,寻找车灯位置,并确定车灯寻找区域中编号为18和19的两个车灯寻找单元的有效性,具体过程为:
⑥-1、统计车灯寻找区域中编号为17~19的一组车灯寻找单元中颜色为红色的像素点的总个数、编号为16~18的一组车灯寻找单元中颜色为红色的像素点的总个数、编号为15~17的一组车灯寻找单元中颜色为红色的像素点的总个数,对应记为
⑥-2、当大于或等于1500个时,确定车灯位于编号为17~19的一组车灯寻找单元中,然后执行步骤⑥-3;当小于1500个时,判断 是否均小于1500个,如果是,则直接确定车灯位于编号为17~19的一组车灯寻找单元中,然后执行步骤⑥-3;否则,找出中的最大值,并确定车灯位于该最大值对应的一组车灯寻找单元中,然后执行步骤⑥-3;
⑥-3、当车灯寻找区域中编号为19的车灯寻找单元中颜色为黑色的像素点的总个数小于一个车身识别单元中的像素点的总个数的0.4倍时,认为编号为18和19的两个车灯寻找单元均有效,然后执行步骤⑦;
当车灯寻找区域中编号为19的车灯寻找单元中颜色为黑色的像素点的总个数大于或等于一个车身识别单元中的像素点的总个数的0.4倍时,如果车灯位于编号为17~19的一组车灯寻找单元中,则认为编号为18和19的两个车灯寻找单元均有效,然后执行步骤⑦;如果车灯位于编号为16~18的一组车灯寻找单元中,则认为编号为18的车灯寻找单元有效,而编号为19的车灯寻找单元无效,然后执行步骤⑦;如果车灯位于编号为15~17的一组车灯寻找单元中,则认为编号为18和19的两个车灯寻找单元均无效,然后执行步骤⑦;
⑦将同时满足以下两个条件的第一车身分界线确定为无效,条件一:车身初步区域中编号为12~19的一组车身识别单元中颜色为白色的像素点的总个数小于一个车身识别单元中的像素点的总个数,条件二:车身初步区域中编号为5~11的一组车身识别单元中至少有一个车身识别单元中颜色为白色的像素点的总个数大于一个车身识别单元中的像素点的总个数的0.95倍;
统计车身初步区域中第二车身分界线到编号为12的一组车身识别单元中亮度较高的非白色像素点的总个数;其中,对于车身初步区域中第二车身分界线到编号为12的一组车身识别单元中的任一个像素点,如果该像素点的R、G、B三通道颜色分量的值的最大值大于180,则将该像素点确定为亮度较高的非白色像素点;
当第一车身分界线有效,且车身初步区域中编号为12~19的一组车身识别单元中颜色为白色的像素点的总个数大于一个车身识别单元中的像素点的总个数的0.5倍时,统计车身初步区域中第一车身分界线到第二车身分界线的一组车身识别单元中亮度较高的非白色像素点的总个数;其中,对于车身初步区域中第一车身分界线到第二车身分界线的一组车身识别单元中的任一个像素点,如果该像素点的R、G、B三通道颜色分量的值的最大值大于180,则将该像素点确定为亮度较高的非白色像素点;
当第三车身分界线存在时,如果第一车身分界线无效,且第三车身分界线的编号小于第二车身分界线的编号,则统计车身初步区域中第三车身分界线到第二车身分界线的一组车身识别单元中亮度较高的非白色像素点的总个数;其中,对于车身初步区域中第三车身分界线到第二车身分界线的一组车身识别单元中的任一个像素点,如果该像素点的R、G、B三通道颜色分量的值的最大值大于180,则将该像素点确定为亮度较高的非白色像素点;
当第三车身分界线存在时,如果第一车身分界线有效,且第三车身分界线的编号小于第一车身分界线的编号和第二车身分界线的编号中的最小编号,则统计车身初步区域中第三车身分界线到小编号对应的车身分界线的一组车身识别单元中亮度较高的非白色像素点的总个数,记为non_whitefj3;其中,对于车身初步区域中第三车身分界线到小编号对应的车身分界线的一组车身识别单元中的任一个像素点,如果该像素点的R、G、B三通道颜色分量的值的最大值大于180,则将该像素点确定为亮度较高的非白色像素点;
⑧在车身初步区域中确定一个有效区域,然后重新统计有效区域中颜色为Output_Color中的每种颜色的像素点的总个数,再根据总个数的大小提取出五种颜色均作为初选彩色颜色,具体过程为:
⑧-1、当第一车身分界线有效,且第三车身分界线存在时,找出第一车身分界线的编号、第二车身分界线的编号、第三车身分界线的编号中的最小编号;当第一车身分界线有效,且第三车身分界线不存在时,找出第一车身分界线的编号、第二车身分界线的编号中的最小编号;当第一车身分界线无效,且第三车身分界线存在时,找出第二车身分界线的编号、第三车身分界线的编号中的最小编号;当第一车身分界线无效,且第三车身分界线不存在时,将第二车身分界线的编号作为最小编号;
⑧-2、当车灯寻找区域中编号为18和19的两个车灯寻找单元均有效时,将编号19作为最大编号;当编号为18的车灯寻找单元有效,而编号为19的车灯寻找单元无效时,将编号18作为最大编号;当编号为18和19的两个车灯寻找单元均无效时,将编号17作为最大编号;
⑧-3、将车身初步区域中自步骤⑧-1得到的最小编号到步骤⑧-2得到的最大编号的一组车身识别单元构成的区域定义为有效区域;
⑧-4、如果有效区域中的任一个车身识别单元中颜色为蓝色的像素点的总个数和颜色为绿色的像素点的总个数均大于一个车身识别单元中的像素点的总个数的0.1倍,则将该车身识别单元中颜色为蓝色的像素点统计为颜色为绿色的像素点;
如果有效区域的右上角至左下角的对角线上方的区域中颜色为黄色的像素点的总个数大于有效区域中颜色为黄色的像素点的总个数的0.9倍,则认为有效区域中颜色为黄色的像素点无效,有效区域中颜色为黄色的像素点都是不统计;
如果有效区域的右上角至左下角的对角线上方的区域中颜色为黄色的像素点的总个数小于或等于有效区域中颜色为黄色的像素点的总个数的0.9倍,则认为有效区域中颜色为黄色的像素点有效;当有效区域中颜色为黄色的像素点有效时,如果有效区域中颜色为褐色的像素点的总个数大于有效区域中颜色属于黄色系列的像素点的总个数的0.8倍时,则将有效区域中颜色属于黄色系列的像素点统计为颜色为褐色的像素点;如果有效区域中颜色为褐色的像素点的总个数小于或等于有效区域中颜色属于黄色系列的像素点的总个数的0.8倍,且有效区域中颜色为橘黄的像素点的总个数大于有效区域中颜色为黄色的像素点的总个数的2倍时,则将有效区域中颜色属于黄色系列的像素点统计为颜色为橘黄的像素点;其余情况,将有效区域中颜色属于黄色系列的像素点统计为颜色为黄色的像素点;其中,黄色系列包括褐色、橘黄和黄色;
如果有效区域中颜色为粉色的像素点的总个数大于有效区域中颜色属于红色系列的像素点的总个数的0.8倍时,则将有效区域中颜色属于红色系列的像素点统计为颜色为粉色的像素点;如果有效区域中颜色为粉色的像素点的总个数小于或等于有效区域中颜色属于红色系列的像素点的总个数的0.8倍,且有效区域中颜色为紫色的像素点的总个数大于有效区域中颜色为粉色的像素点的总个数的10倍时,则将有效区域中颜色属于红色系列的像素点统计为颜色为紫色的像素点;其余情况,将有效区域中颜色属于红色系列的像素点统计为颜色为红色的像素点;其中,红色系列包括粉色、紫色和红色;
⑧-5、将有效区域内同时满足以下三个条件的所有像素点所形成的区域变成无效区域,条件一:位于编号为12的车身识别单元的上方;条件二:以编号为15的车身识别单元和编号为16的车身识别单元的交界线为底边,位于斜率为+2的斜边的左上区域或位于斜率为-2的斜边的右上区域;条件三:颜色为黑色或灰色;重新统计有效区域中颜色为Output_Color中的每种颜色的像素点的总个数,将有效区域中颜色为Output_Color中的第k种颜色的像素点的总个数记为其中,1≤k≤11;
⑧-6、按从大到小的顺序排列有效区域中颜色为Output_Color中的每种颜色的像素点的总个数,然后提取出总个数排前5位对应的颜色,再将提取出的五种颜色均作为初选彩色颜色;
⑨彩色颜色判断,具体过程为:
⑨-1、计算有效区域中颜色为五种初选彩色颜色中的每种初选彩色颜色的像素点的总个数占有效区域中的像素点的总个数的比例;
⑨-2、找出步骤⑨-1中得到的五个比例中的最大值,判断该最大值是否大于或等于0.2,如果是,则确定该最大值对应的初选彩色颜色为初选的车身颜色,然后执行步骤⑨-3;否则,确定车身颜色不为彩色,然后执行步骤⑩;
⑨-3、判断有效区域中是否至少存在两个车身识别单元满足以下条件,如果存在,则保留初选的车身颜色,然后判断初选的车身颜色是否为蓝色或绿色,如果为绿色,则执行步骤⑨-4,如果为蓝色,则执行步骤⑨-5,如果不为蓝色或绿色,则确定初选的车身颜色为最终的车身颜色,车身颜色识别过程结束;如果不存在,则确定初选的车身颜色不为最终的车身颜色,然后执行步骤⑩;
其中,对于有效区域中的任一个车身识别单元,其该满足的条件为:该车身识别单元中颜色为初选的车身颜色的像素点的总个数大于一个车身识别单元中的像素点的总个数的0.03倍;
⑨-4、进行绿色二次验证:判断有效区域中颜色评价为高置信度绿色的像素点的总个数是否小于有效区域中颜色为绿色的像素点的总个数的0.05倍,如果是,则确定初选的车身颜色不为最终的车身颜色,然后执行步骤⑩;否则,确定初选的车身颜色为最终的车身颜色,车身颜色识别过程结束;
其中,对于有效区域中的任一个像素点,如果该像素点的颜色为绿色且该像素点的颜色对应的置信度大于0.55,则将该像素点的颜色评价为高置信度绿色;
⑨-5、进行蓝色二次验证:判断有效区域中颜色评价为高置信度蓝色的像素点的总个数是否小于一个车身识别单元中的像素点的总个数的0.8倍,如果是,则确定初选的车身颜色不为最终的车身颜色,然后执行步骤⑩;否则,确定初选的车身颜色为最终的车身颜色,车身颜色识别过程结束;
⑩黑色、白色和灰色判断,具体过程为:
⑩-1、标记有效区域中的每个车身识别单元的颜色,对于有效区域中的任一个车身识别单元,先统计该车身识别单元中颜色为黑色的像素点的总个数、颜色为白色的像素点的总个数、颜色为灰色的像素点的总个数,然后找出三个总个数中的最大值,再判断该最大值是否大于一个车身识别单元中的像素点的总个数的0.1倍,如果是,则将该车身识别单元的颜色标记为该最大值对应的颜色;
⑩-2、确定有效区域中的无效单元,具体过程为:如果一个颜色标记为白色的车身识别单元与另一个颜色标记为白色的车身识别单元之间,或一个颜色标记为白色的车身识别单元与另一个颜色标记为灰色的车身识别单元之间存在颜色标记为黑色的车身识别单元,则将这些颜色标记为黑色的车身识别单元确定为无效单元,无效单元中的每个像素点不进行统计;
⑩-3、将有效区域中的每个颜色标记为白色的车身识别单元中颜色为灰色的像素点统计为颜色为白色的像素点;
⑩-4、计算有效区域中亮度较高的像素点的总个数与有效区域中颜色为黑色的像素点的总个数、颜色为白色的像素点的总个数和颜色为灰色的像素点的总个数之和的比值,记为bright_ratio;将有效区域中最底下三个车身识别单元构成灰色系列(黑白灰颜色)的判别区域;其中,有效区域中亮度较高的像素点包括颜色为白色的像素点和亮度较高的非白色像素点,对于有效区域中的任一个像素点,当该像素点属于有效区域中编号最小的车身识别单元到编号为14的车身识别单元的一组车身识别单元时,如果该像素点的R、G、B三通道颜色分量的值的最大值大于180,则将该像素点确定为亮度较高的非白色像素点;当该像素点属于车身初步区域中编号为15~17的一组车身识别单元时,如果该像素点的R、G、B三通道颜色分量的值的最大值大于150,则将该像素点确定为亮度较高的非白色像素点;当该像素点属于车身初步区域中编号为18~19的一组车身识别单元时,如果该像素点的R、G、B三通道颜色分量的值的最大值大于130,则将该像素点确定为亮度较高的非白色像素点;
⑩-5、进行黑色判断:⑩-5a、统计判别区域中的每个车身识别单元中颜色评价为高置信度黑色的像素点的总个数、颜色评价为中等置信度黑色的像素点的总个数、颜色为黑色的像素点的总个数、颜色为灰色的像素点的总个数;⑩-5b、判断判别区域中自上而下的第二个车身识别单元中颜色评价为中等置信度黑色的像素点的总个数占一个车身识别单元中的像素点的总个数的比例是否大于阈值th,如果大于阈值th,则认为判别区域中自上而下的第二个车身识别单元中颜色评价为高置信度黑色的像素点、颜色评价为中等置信度黑色的像素点、颜色为黑色的像素点均有效,同时将判别区域中自上而下的第一个车身识别单元中颜色为灰色的像素点统计为颜色为黑色的像素点,然后执行步骤⑩-5c;如果小于或等于阈值th,则认为判别区域中自上而下的第二个车身识别单元中颜色评价为高置信度黑色的像素点、颜色评价为中等置信度黑色的像素点、颜色为黑色的像素点均无效,不进行统计,然后执行步骤⑩-5c;其中,⑩-5c、判断判别区域中自上而下的第三个车身识别单元中颜色评价为中等置信度黑色的像素点的总个数是否大于一个车身识别单元中的像素点的总个数的0.5倍,如果是,则认为判别区域中自上而下的第三个车身识别单元中颜色评价为高置信度黑色的像素点、颜色评价为中等置信度黑色的像素点、颜色为黑色的像素点均有效,然后执行步骤⑩-5d;否则,认为判别区域中自上而下的第三个车身识别单元中颜色评价为高置信度黑色的像素点、颜色评价为中等置信度黑色的像素点、颜色为黑色的像素点均无效,不进行统计,然后执行步骤⑩-5d;⑩-5d、计算判别区域中所有有效的颜色评价为高置信度黑色的像素点的总个数、所有有效的颜色评价为中等置信度黑色的像素点的总个数、所有有效的颜色为黑色的像素点的总个数之和,判断和值是否大于一个车身识别单元中的像素点的总个数的1.7倍,如果是,则确定可能的车身颜色为黑色,然后执行步骤⑩-5e;否则,确定最终的车身颜色为白色或灰色,然后执行步骤⑩-6;⑩-5e、同时满足以下两个条件时,将最终的车身颜色确定为红色,车身颜色识别过程结束;不能同时满足以下两个条件时,将最终的车身颜色确定为黑色,车身颜色识别过程结束;条件一:车身初步区域中编号为12~19的一组车身识别单元中颜色为黑色且在HSV颜色空间的H分量值在0~10范围内和在156~180范围内的像素点的总个数与车身初步区域中编号为12~19的一组车身识别单元中颜色为红色的像素点的总个数之和大于1100个;条件二:车身初步区域中编号为12~19的一组车身识别单元中颜色为红色的像素点的总个数大于一个车身识别单元中的像素点的总个数的0.1倍;
其中,对于有效区域中的任一个像素点,如果该像素点的颜色为黑色且该像素点的R、G、B三通道颜色分量的值之和小于35,则将该像素点的颜色评价为高置信度黑色;如果该像素点的颜色为黑色且该像素点的R、G、B三通道颜色分量的值之和小于46,则将该像素点的颜色评价为中等置信度黑色;
⑩-6、满足以下任一条件时,将最终的车身颜色确定为白色,车身颜色识别过程结束;其余情况下,将最终的车身颜色确定为灰色,车身颜色识别过程结束;条件一:有效区域中颜色评价为高置信度白色的像素点的总个数大于一个车身识别单元中的像素点的总个数且判别区域中颜色为黑色的像素点的总个数小于一个车身识别单元中的像素点的总个数;条件二:判别区域中颜色为白色的像素点的总个数大于一个车身识别单元中的像素点的总个数;
其中,对于有效区域中的任一个像素点,如果该像素点的颜色为白色且该像素点的R、G、B三通道颜色分量的值之和大于750,则将该像素点的颜色评价为高置信度白色。
与现有技术相比,本发明的优点在于:
1)本发明方法通过以高度等于车牌高度、宽度等于车牌宽度的3倍、以车牌中心为中心的一个区域作为基准,初步定位20个车身识别单元,利用12~19的一组车身识别单元的颜色信息来寻找车身分界线,即获取彩色颜色识别的有效区域内最小编号单元;参照车牌位置同时根据车灯位置信息,在15~19的一组车身识别单元中筛选有效区域的最大编号,这样就获取了有效的整车识别区域,与简单设定整车识别区域相比,定位准确,能排除路面、车身玻璃、其他车辆等干扰颜色,能够适应不同车型和路口的情况,且在白天受玻璃、阴影和反光影响时也能准确的识别出多种车身颜色。
2)本发明方法在寻找车身分界线过程中,并没有利用边缘检测方法,因为车头部分边缘检测会有其它很多边缘干扰,不能很好检测出来,而是按一个车身识别单元内黑色、灰色和彩色占比关系来定位车身上部与路面分界线,虽然找到的车身分界线不一定是车头和路面真实的分界线,但是基本不影响车身颜色识别,当汽车车顶反光呈白色或灰色系列颜色识别时候,车身分界线在真实车头偏下方更能准确反映车身颜色。
3)本发明方法利用车身透视关系,可以进一步去除靠近车头部位的路面像素,降低路面像素干扰,提高识别率。
4)本发明方法按彩色、黑色、白色、灰色依次识别,最小编号到最大编号的一组车身识别单元为彩色颜色识别区域,如果不是彩色,则进入灰色系列(按黑色、白色、灰色顺序识别)识别,灰色系列识别为有效区域内编号最大的3个连续单元,这样能够保证准确率高的彩色先识别出来,利用车身整体和局部颜色分别识别彩色系列颜色和灰色系列颜色,这样与只利用车牌附近的局部颜色区域相比拥有更高的识别率。
5)本发明方法利用PLSA颜色模型,配置简单,能较准确输出有效区域内像素点的颜色及其置信度,其中对于灰色系列(黑、白、灰)根据RGB的灰度值自定义置信度,对于彩色颜色中出现较多的蓝色和绿色,根据置信度值进行二次验证,有效地提高了颜色识别的准确率。
附图说明
图1为本发明方法的总体实现框图;
图2a为一幅车辆图像中的车身初步区域;
图2b为同一幅车辆图像中的车灯识别拓展区域(两竖线外侧部分)。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
本发明提出的一种车辆视频中机动车辆的车身颜色自动识别方法,其总体实现框图如图1所示,其包括以下步骤:
①将当前待处理的车辆图像定义为当前图像;将当前图像中高度等于车牌高度、宽度等于车牌宽度的3倍、以车牌中心为中心的一个区域作为基准;将当前图像中位于基准正上方的18个连续的车身识别单元、基准及位于基准正下方的1个车身识别单元构成的区域定义为车身初步区域,在车身初步区域中将基准也作为一个车身识别单元,然后对车身初步区域中的20个连续的车身识别单元由上至下依次编号为0~19,其中,所有车身识别单元等高等宽,且所有车身识别单元的左、右两侧均齐平,图2a给出了一幅车辆图像中的车身初步区域;将当前图像中编号为10~19的每个车身识别单元的左侧起宽度为车牌宽度减去10个像素点的区域作为一个左车灯识别基本单元,将对每个左车灯识别基本单元的左侧向外拓展、高度等于车牌高度、宽度等于车牌宽度的0.5倍的区域作为一个左车灯识别拓展单元,将当前图像中编号为10~19的每个车身识别单元的右侧起宽度为车牌宽度减去10个像素点的区域作为一个右车灯识别基本单元,将对每个右车灯识别基本单元的右侧向外拓展、高度等于车牌高度、宽度等于车牌宽度的0.5倍的区域作为一个右车灯识别拓展单元,将每个左车灯识别基本单元和对应的右车灯识别基本单元构成一个车灯识别基本单元,将每个左车灯识别拓展单元和对应的右车灯识别拓展单元构成一个车灯识别拓展单元,将每个车灯识别基本单元和对应的车灯识别拓展单元构成一个车灯寻找单元,将10个连续的车灯识别基本单元构成的区域定义为车灯识别基本区域,将10个连续的车灯识别拓展单元构成的区域定义为车灯识别拓展区域,图2b给出了同一幅车辆图像中的车灯识别拓展区域(两竖线外侧部分),将10个连续的车灯寻找单元构成的区域定义为车灯寻找区域,然后对车灯寻找区域中的10个连续的车灯寻找单元由上至下依次编号为10~19。
②将车身初步区域和车灯识别拓展区域各自中的每个像素点的R、G、B三通道颜色分量的值输入到已训练的PLSA颜色模型中,已训练的PLSA颜色模型输出得到车身初步区域和车灯识别拓展区域各自中的每个像素点的颜色及颜色对应的置信度,得到的每个像素点的颜色属于PLSA颜色模型输出颜色集合Output_Color,其中,Output_Color中包含有11种颜色,按序分别为黑色、蓝色、褐色、灰色、绿色、橘黄、粉色、紫色、红色、白色、黄色。
在本实施例中,直接采用已训练的PLSA颜色模型,如论文“LearningColorNamesfrom Real-World Images(从真实世界图像中学习颜色名称)”中公开的已训练的PLSA颜色模型,已训练的PLSA颜色模型的输出包含11种颜色及每种颜色对应的置信度,11种颜色分别是0号黑色、1号蓝色、2号褐色、3号灰色、4号绿色、5号橘黄、6号粉色、7号紫色、8号红色、9号白色、10号黄色。
③统计车灯识别拓展区域中颜色为红色的像素点的总个数,记为
统计车灯识别基本区域中颜色为红色的像素点的总个数,记为在车灯识别基本区域中颜色为红色的像素点通常为代表车灯的像素点。
统计车身初步区域中编号为12~19的一组车身识别单元中颜色为Output_Color中的每种颜色的像素点的总个数,将车身初步区域中编号为12~19的一组车身识别单元中颜色为Output_Color中的第k种颜色的像素点的总个数记为其中,1≤k≤11。
统计车身初步区域中编号为12~19的一组车身识别单元中颜色评价为高置信度白色的像素点的总个数、颜色评价为高置信度黑色的像素点的总个数、颜色评价为中等置信度黑色的像素点的总个数、颜色评价为高置信度蓝色的像素点的总个数、颜色评价为高置信度绿色的像素点的总个数,对应记为H_white、H_black、M_black、H_blue、H_green;其中,对于车身初步区域中编号为12~19的一组车身识别单元中的任一个像素点,如果该像素点的颜色为白色且该像素点的R、G、B三通道颜色分量的值之和大于750,则将该像素点的颜色评价为高置信度白色;如果该像素点的颜色为黑色且该像素点的R、G、B三通道颜色分量的值之和小于35,则将该像素点的颜色评价为高置信度黑色;如果该像素点的颜色为黑色且该像素点的R、G、B三通道颜色分量的值之和小于46,则将该像素点的颜色评价为中等置信度黑色;如果该像素点的颜色为蓝色且该像素点的颜色对应的置信度大于0.65,则将该像素点的颜色评价为高置信度蓝色;如果该像素点的颜色为绿色且该像素点的颜色对应的置信度大于0.55,则将该像素点的颜色评价为高置信度绿色。
统计车身初步区域中编号为12~19的一组车身识别单元中亮度较高的非白色像素点的总个数,记为non_white;其中,对于车身初步区域中编号为12~14的一组车身识别单元中的任一个像素点,如果该像素点的R、G、B三通道颜色分量的值的最大值大于180,则将该像素点确定为亮度较高的非白色像素点;对于车身初步区域中编号为15~17的一组车身识别单元中的任一个像素点,如果该像素点的R、G、B三通道颜色分量的值的最大值大于150,则将该像素点确定为亮度较高的非白色像素点;对于车身初步区域中编号为18~19的一组车身识别单元中的任一个像素点,如果该像素点的R、G、B三通道颜色分量的值的最大值大于130,则将该像素点确定为亮度较高的非白色像素点。
④在车身初步区域中编号为12~19的一组车身识别单元中,初步识别车身颜色,具体过程为:
④-1、将车身初步区域中编号为12~19的一组车身识别单元中颜色为Output_Color中的蓝色的像素点的总个数、颜色为Output_Color中的绿色的像素点的总个数、颜色为Output_Color中的红色的像素点的总个数、颜色为Output_Color中的黄色的像素点的总个数对应记为④-2、令Cim_1表示第一种可能的车身颜色,找出中的最大值,然后判断该最大值是否大于一个车身识别单元中的像素点的总个数的0.1倍,如果是,则将该最大值对应的颜色赋值给Cim_1,再执行步骤④-3;否则,令Cim_1=0,即初步判断车身颜色不是蓝色、绿色、红色、黄色中的一种,认为车身颜色可能为剩余的7种颜色中的一种,然后执行步骤⑤;④-3、当Cim_1为蓝色时,如果大于一个车身识别单元中的像素点的总个数的0.05倍,则将绿色确定为第二种可能的车身颜色,然后执行步骤⑤;当Cim_1为绿色或红色或黄色时,不存在第二种可能的车身颜色,直接执行步骤⑤。
⑤在车身初步区域中编号为0~11的所有车身识别单元中,初步识别车身分界线,具体过程为:
⑤-1、令Ωbg表示代表路面的像素点的颜色为黑色和灰色时确定车身区域所采用的颜色集合,令Ωbgw表示代表路面的像素点的颜色为黑色、灰色和白色时确定车身区域所采用的颜色集合,Ωbg={蓝色、绿色、红色、黄色、黑色、灰色}-Cim_1,Ωbgw={蓝色、绿色、红色、黄色、黑色、灰色、白色}-Cim_1。
⑤-2、在车身初步区域中编号为0~11的一组车身识别单元中,寻找第一车身分界线,具体过程为:
⑤-2a、统计车身初步区域中编号为i的车身识别单元中颜色属于Ωbg的像素点的总个数;然后判断该总个数是否小于一个车身识别单元中的像素点的总个数的0.5倍,如果是,则认为车身初步区域中编号为i~11的一组车身识别单元为车身部分,且当i=5时执行步骤⑤-2c,当i≠5时将车身初步区域中编号为i的车身识别单元作为第一车身分界线,再执行步骤⑤-3;否则,认为车身初步区域中编号为i的车身识别单元不为车身部分,然后执行步骤⑤-2b;其中,i的初始值为5。
⑤-2b、令i=i+1,然后判断i是否等于11,如果i等于11,则再统计车身初步区域中编号为i的车身识别单元中颜色属于Ωbg的像素点的总个数,接着判断该总个数是否小于一个车身识别单元中的像素点的总个数的0.5倍,如果是,则认为车身初步区域中编号为i的车身识别单元为车身部分,并将车身初步区域中编号为i的车身识别单元作为第一车身分界线,再执行步骤⑤-3;否则,认为车身初步区域中编号为i的车身识别单元不是车身部分,并将车身初步区域中编号为i+1的车身识别单元作为第一车身分界线,再执行步骤⑤-3;如果i不等于11,则返回步骤⑤-2a继续执行;其中,i=i+1中的“=”为赋值符号。
⑤-2c、统计车身初步区域中编号为j的车身识别单元中颜色属于Ωbg的像素点的总个数;然后判断该总个数是否小于一个车身识别单元中的像素点的总个数的0.5倍,如果是,则认为车身初步区域中编号为j的车身识别单元为车身部分,然后执行步骤⑤-2d;否则,认为车身初步区域中编号为j的车身识别单元不为车身部分,并将车身初步区域中编号为j+1的车身识别单元作为第一车身分界线,再执行步骤⑤-3;其中,j的初始值为4。
⑤-2d、判断j是否等于0,如果是,则认为车身初步区域中编号为j的车身识别单元为车身部分,并将车身初步区域中编号为j的车身识别单元作为第一车身分界线,再执行步骤⑤-3;否则,令j=j-1,然后返回步骤⑤-2c继续执行;其中,j=j-1中的“=”为赋值符号。
⑤-3、在车身初步区域中编号为0~11的一组车身识别单元中,寻找第二车身分界线,具体过程为:
⑤-3a、统计车身初步区域中编号为i的车身识别单元中颜色属于Ωbgw的像素点的总个数;然后判断该总个数是否小于一个车身识别单元中的像素点的总个数的0.5倍,如果是,则认为车身初步区域中编号为i~11的一组车身识别单元为车身部分,且当i=5时执行步骤⑤-3c,当i≠5时将车身初步区域中编号为i的车身识别单元作为第一车身分界线,再执行步骤⑤-4;否则,认为车身初步区域中编号为i的车身识别单元不为车身部分,然后执行步骤⑤-3b;其中,i的初始值为5。
⑤-3b、令i=i+1,然后判断i是否等于11,如果i等于11,则再统计车身初步区域中编号为i的车身识别单元中颜色属于Ωbgw的像素点的总个数,接着判断该总个数是否小于一个车身识别单元中的像素点的总个数的0.5倍,如果是,则认为车身初步区域中编号为i的车身识别单元为车身部分,并将车身初步区域中编号为i的车身识别单元作为第一车身分界线,再执行步骤⑤-4;否则,认为车身初步区域中编号为i的车身识别单元不是车身部分,并将车身初步区域中编号为i+1的车身识别单元作为第一车身分界线,再执行步骤⑤-4;如果i不等于11,则返回步骤⑤-3a继续执行;其中,i=i+1中的“=”为赋值符号。
⑤-3c、统计车身初步区域中编号为j的车身识别单元中颜色属于Ωbgw的像素点的总个数;然后判断该总个数是否小于一个车身识别单元中的像素点的总个数的0.5倍,如果是,则认为车身初步区域中编号为j的车身识别单元为车身部分,然后执行步骤⑤-3d;否则,认为车身初步区域中编号为j的车身识别单元不为车身部分,并将车身初步区域中编号为j+1的车身识别单元作为第一车身分界线,再执行步骤⑤-4;其中,j的初始值为4。
⑤-3d、判断j是否等于0,如果是,则认为车身初步区域中编号为j的车身识别单元为车身部分,并将车身初步区域中编号为j的车身识别单元作为第一车身分界线,再执行步骤⑤-4;否则,令j=j-1,然后返回步骤⑤-3c继续执行;其中,j=j-1中的“=”为赋值符号。
⑤-4、在车身初步区域中编号为5~11的一组车身识别单元中,寻找第三车身分界线,具体过程为:当Cim_1≠0时,判断在车身初步区域中编号为5~11的一组车身识别单元中是否至少有两个车身识别单元各自颜色为Cim_1的像素点的总个数大于500个,如果是,则将满足条件的编号最小的车身识别单元作为第三车身分界线,然后执行步骤⑥;否则,确定不存在第三车身分界线,然后执行步骤⑥;当Cim_1=0时,直接确定不存在第三车身分界线,然后执行步骤⑥。
⑥在车灯寻找区域中编号为15~19的一组车灯寻找单元中,寻找车灯位置,并确定车灯寻找区域中编号为18和19的两个车灯寻找单元的有效性,具体过程为:
⑥-1、统计车灯寻找区域中编号为17~19的一组车灯寻找单元中颜色为红色的像素点的总个数、编号为16~18的一组车灯寻找单元中颜色为红色的像素点的总个数、编号为15~17的一组车灯寻找单元中颜色为红色的像素点的总个数,对应记为
⑥-2、当大于或等于1500个时,确定车灯位于编号为17~19的一组车灯寻找单元中,然后执行步骤⑥-3;当小于1500个时,判断 是否均小于1500个,如果是,则直接确定车灯位于编号为17~19的一组车灯寻找单元中,然后执行步骤⑥-3;否则,找出中的最大值,并确定车灯位于该最大值对应的一组车灯寻找单元中,然后执行步骤⑥-3。
⑥-3、当车灯寻找区域中编号为19的车灯寻找单元中颜色为黑色的像素点的总个数小于一个车身识别单元中的像素点的总个数的0.4倍时,认为编号为18和19的两个车灯寻找单元均有效,然后执行步骤⑦。
当车灯寻找区域中编号为19的车灯寻找单元中颜色为黑色的像素点的总个数大于或等于一个车身识别单元中的像素点的总个数的0.4倍时,如果车灯位于编号为17~19的一组车灯寻找单元中,则认为编号为18和19的两个车灯寻找单元均有效,然后执行步骤⑦;如果车灯位于编号为16~18的一组车灯寻找单元中,则认为编号为18的车灯寻找单元有效,而编号为19的车灯寻找单元无效,然后执行步骤⑦;如果车灯位于编号为15~17的一组车灯寻找单元中,则认为编号为18和19的两个车灯寻找单元均无效,然后执行步骤⑦。
⑦将同时满足以下两个条件的第一车身分界线确定为无效,条件一:车身初步区域中编号为12~19的一组车身识别单元中颜色为白色的像素点的总个数小于一个车身识别单元中的像素点的总个数,条件二:车身初步区域中编号为5~11的一组车身识别单元中至少有一个车身识别单元中颜色为白色的像素点的总个数大于一个车身识别单元中的像素点的总个数的0.95倍;由于满足上述两个条件很有可能是雨天情况,因此将第一车身分界线判定为无效。
统计车身初步区域中第二车身分界线到编号为12的一组车身识别单元中亮度较高的非白色像素点的总个数,记为non_whitefj2;其中,对于车身初步区域中第二车身分界线到编号为12的一组车身识别单元中的任一个像素点,如果该像素点的R、G、B三通道颜色分量的值的最大值大于180,则将该像素点确定为亮度较高的非白色像素点。
当第一车身分界线有效,且车身初步区域中编号为12~19的一组车身识别单元中颜色为白色的像素点的总个数大于一个车身识别单元中的像素点的总个数的0.5倍(说明可能是白色车)时,统计车身初步区域中第一车身分界线到第二车身分界线的一组车身识别单元中亮度较高的非白色像素点的总个数,记为non_whitefj1,fj2;其中,对于车身初步区域中第一车身分界线到第二车身分界线的一组车身识别单元中的任一个像素点,如果该像素点的R、G、B三通道颜色分量的值的最大值大于180,则将该像素点确定为亮度较高的非白色像素点。
当第三车身分界线存在时,如果第一车身分界线无效,且第三车身分界线的编号小于第二车身分界线的编号,则统计车身初步区域中第三车身分界线到第二车身分界线的一组车身识别单元中亮度较高的非白色像素点的总个数,记为non_whitefj3;其中,对于车身初步区域中第三车身分界线到第二车身分界线的一组车身识别单元中的任一个像素点,如果该像素点的R、G、B三通道颜色分量的值的最大值大于180,则将该像素点确定为亮度较高的非白色像素点。
当第三车身分界线存在时,如果第一车身分界线有效,且第三车身分界线的编号小于第一车身分界线的编号和第二车身分界线的编号中的最小编号,则统计车身初步区域中第三车身分界线到小编号对应的车身分界线的一组车身识别单元中亮度较高的非白色像素点的总个数,记为non_whitefj3;其中,对于车身初步区域中第三车身分界线到小编号对应的车身分界线的一组车身识别单元中的任一个像素点,如果该像素点的R、G、B三通道颜色分量的值的最大值大于180,则将该像素点确定为亮度较高的非白色像素点。
⑧在车身初步区域中确定一个有效区域,然后重新统计有效区域中颜色为Output_Color中的每种颜色的像素点的总个数,再根据总个数的大小提取出五种颜色均作为初选彩色颜色,具体过程为:
⑧-1、当第一车身分界线有效,且第三车身分界线存在时,找出第一车身分界线的编号、第二车身分界线的编号、第三车身分界线的编号中的最小编号;当第一车身分界线有效,且第三车身分界线不存在时,找出第一车身分界线的编号、第二车身分界线的编号中的最小编号;当第一车身分界线无效,且第三车身分界线存在时,找出第二车身分界线的编号、第三车身分界线的编号中的最小编号;当第一车身分界线无效,且第三车身分界线不存在时,将第二车身分界线的编号作为最小编号。
⑧-2、当车灯寻找区域中编号为18和19的两个车灯寻找单元均有效时,将编号19作为最大编号;当编号为18的车灯寻找单元有效,而编号为19的车灯寻找单元无效时,将编号18作为最大编号;当编号为18和19的两个车灯寻找单元均无效时,将编号17作为最大编号。
⑧-3、将车身初步区域中自步骤⑧-1得到的最小编号到步骤⑧-2得到的最大编号的一组车身识别单元构成的区域定义为有效区域。
⑧-4、如果有效区域中的任一个车身识别单元中颜色为蓝色的像素点的总个数和颜色为绿色的像素点的总个数均大于一个车身识别单元中的像素点的总个数的0.1倍,则将该车身识别单元中颜色为蓝色的像素点统计为颜色为绿色的像素点,即当作颜色为绿色的像素点来统计。
如果有效区域的右上角至左下角的对角线上方的区域中颜色为黄色的像素点的总个数大于有效区域中颜色为黄色的像素点的总个数的0.9倍,则说明黄色可能是路面的黄色实线,认为有效区域中颜色为黄色的像素点无效,有效区域中颜色为黄色的像素点都是不统计。
如果有效区域的右上角至左下角的对角线上方的区域中颜色为黄色的像素点的总个数小于或等于有效区域中颜色为黄色的像素点的总个数的0.9倍,则认为有效区域中颜色为黄色的像素点有效;当有效区域中颜色为黄色的像素点有效时,如果有效区域中颜色为褐色的像素点的总个数大于有效区域中颜色属于黄色系列的像素点的总个数的0.8倍时,则将有效区域中颜色属于黄色系列的像素点统计为颜色为褐色的像素点;如果有效区域中颜色为褐色的像素点的总个数小于或等于有效区域中颜色属于黄色系列的像素点的总个数的0.8倍,且有效区域中颜色为橘黄的像素点的总个数大于有效区域中颜色为黄色的像素点的总个数的2倍时,则将有效区域中颜色属于黄色系列的像素点统计为颜色为橘黄的像素点;其余情况,将有效区域中颜色属于黄色系列的像素点统计为颜色为黄色的像素点;其中,黄色系列包括褐色、橘黄和黄色。
如果有效区域中颜色为粉色的像素点的总个数大于有效区域中颜色属于红色系列的像素点的总个数的0.8倍时,则将有效区域中颜色属于红色系列的像素点统计为颜色为粉色的像素点;如果有效区域中颜色为粉色的像素点的总个数小于或等于有效区域中颜色属于红色系列的像素点的总个数的0.8倍,且有效区域中颜色为紫色的像素点的总个数大于有效区域中颜色为粉色的像素点的总个数的10倍时,则将有效区域中颜色属于红色系列的像素点统计为颜色为紫色的像素点;其余情况,将有效区域中颜色属于红色系列的像素点统计为颜色为红色的像素点;其中,红色系列包括粉色、紫色和红色。
⑧-5、将有效区域内同时满足以下三个条件的所有像素点所形成的区域变成无效区域,条件一:位于编号为12的车身识别单元的上方;条件二:以编号为15的车身识别单元和编号为16的车身识别单元的交界线为底边,位于斜率为+2的斜边的左上区域或位于斜率为-2的斜边的右上区域;条件三:颜色为黑色或灰色,这样可以进一步去除路面像素;重新统计新的有效区域中颜色为Output_Color中的每种颜色的像素点的总个数,将有效区域中颜色为Output_Color中的第k种颜色的像素点的总个数记为Ckyx,其中,1≤k≤11。
⑧-6、按从大到小的顺序排列有效区域中颜色为Output_Color中的每种颜色的像素点的总个数,然后提取出总个数排前5位对应的颜色,再将提取出的五种颜色均作为初选彩色颜色。
⑨彩色颜色判断,具体过程为:
⑨-1、计算有效区域中颜色为五种初选彩色颜色中的每种初选彩色颜色的像素点的总个数占有效区域中的像素点的总个数的比例。
⑨-2、找出步骤⑨-1中得到的五个比例中的最大值,判断该最大值是否大于或等于0.2,如果是,则确定该最大值对应的初选彩色颜色为初选的车身颜色,然后执行步骤⑨-3;否则,确定车身颜色不为彩色,然后执行步骤⑩。
⑨-3、判断有效区域中是否至少存在两个车身识别单元满足以下条件,如果存在,则保留初选的车身颜色,然后判断初选的车身颜色是否为蓝色或绿色,如果为绿色,则执行步骤⑨-4,如果为蓝色,则执行步骤⑨-5,如果不为蓝色或绿色,则确定初选的车身颜色为最终的车身颜色,车身颜色识别过程结束;如果不存在,则确定初选的车身颜色不为最终的车身颜色,然后执行步骤⑩。
其中,对于有效区域中的任一个车身识别单元,其该满足的条件为:该车身识别单元中颜色为初选的车身颜色的像素点的总个数大于一个车身识别单元中的像素点的总个数的0.03倍。
⑨-4、进行绿色二次验证:判断有效区域中颜色评价为高置信度绿色的像素点的总个数是否小于有效区域中颜色为绿色的像素点的总个数的0.05倍,如果是,则确定初选的车身颜色不为最终的车身颜色,即认为绿色不为最终的车身颜色,然后执行步骤⑩;否则,确定初选的车身颜色为最终的车身颜色,车身颜色识别过程结束,即确定最终的车身颜色为绿色。
其中,对于有效区域中的任一个像素点,如果该像素点的颜色为绿色且该像素点的颜色对应的置信度大于0.55,则将该像素点的颜色评价为高置信度绿色。
⑨-5、进行蓝色二次验证:判断有效区域中颜色评价为高置信度蓝色的像素点的总个数是否小于一个车身识别单元中的像素点的总个数的0.8倍,如果是,则确定初选的车身颜色不为最终的车身颜色,即认为蓝色不为最终的车身颜色,然后执行步骤⑩;否则,确定初选的车身颜色为最终的车身颜色,车身颜色识别过程结束,即确定最终的车身颜色为蓝色。
⑩黑色、白色和灰色判断,具体过程为:
⑩-1、标记有效区域中的每个车身识别单元的颜色,对于有效区域中的任一个车身识别单元,先统计该车身识别单元中颜色为黑色的像素点的总个数、颜色为白色的像素点的总个数、颜色为灰色的像素点的总个数,然后找出三个总个数中的最大值,再判断该最大值是否大于一个车身识别单元中的像素点的总个数的0.1倍,如果是,则将该车身识别单元的颜色标记为该最大值对应的颜色。
⑩-2、确定有效区域中的无效单元,具体过程为:如果一个颜色标记为白色的车身识别单元与另一个颜色标记为白色的车身识别单元之间,或一个颜色标记为白色的车身识别单元与另一个颜色标记为灰色的车身识别单元之间存在颜色标记为黑色的车身识别单元,则将这些颜色标记为黑色的车身识别单元确定为无效单元,无效单元中的每个像素点不进行统计,可以排除可能的用于表示玻璃的像素点。
⑩-3、将有效区域中的每个颜色标记为白色的车身识别单元中颜色为灰色的像素点统计为颜色为白色的像素点,这样可以提高有树阴影响的路段的车身颜色识别率;
⑩-4、计算有效区域中亮度较高的像素点的总个数与有效区域中颜色为黑色的像素点的总个数、颜色为白色的像素点的总个数和颜色为灰色的像素点的总个数之和的比值,记为bright_ratio;将有效区域中最底下三个车身识别单元构成灰色系列(黑白灰颜色)的判别区域;其中,有效区域中亮度较高的像素点包括颜色为白色的像素点和亮度较高的非白色像素点,对于有效区域中的任一个像素点,当该像素点属于有效区域中编号最小的车身识别单元到编号为14的车身识别单元的一组车身识别单元时,如果该像素点的R、G、B三通道颜色分量的值的最大值大于180,则将该像素点确定为亮度较高的非白色像素点;当该像素点属于车身初步区域中编号为15~17的一组车身识别单元时,如果该像素点的R、G、B三通道颜色分量的值的最大值大于150,则将该像素点确定为亮度较高的非白色像素点;当该像素点属于车身初步区域中编号为18~19的一组车身识别单元时,如果该像素点的R、G、B三通道颜色分量的值的最大值大于130,则将该像素点确定为亮度较高的非白色像素点。
⑩-5、进行黑色判断:⑩-5a、统计判别区域中的每个车身识别单元中颜色评价为高置信度黑色的像素点的总个数、颜色评价为中等置信度黑色的像素点的总个数、颜色为黑色的像素点的总个数、颜色为灰色的像素点的总个数;⑩-5b、判断判别区域中自上而下的第二个车身识别单元中颜色评价为中等置信度黑色的像素点的总个数占一个车身识别单元中的像素点的总个数的比例是否大于阈值th,如果大于阈值th,则认为判别区域中自上而下的第二个车身识别单元中颜色评价为高置信度黑色的像素点、颜色评价为中等置信度黑色的像素点、颜色为黑色的像素点均有效,同时将判别区域中自上而下的第一个车身识别单元中颜色为灰色的像素点统计为颜色为黑色的像素点,即将灰色的像素点看作是黑色的,判别区域中自上而下的第一个车身识别单元比较有可能是车的水平后备箱盖,黑色经常呈现为灰色,然后执行步骤⑩-5c;如果小于或等于阈值th,则认为判别区域中自上而下的第二个车身识别单元中颜色评价为高置信度黑色的像素点、颜色评价为中等置信度黑色的像素点、颜色为黑色的像素点均无效,不进行统计,然后执行步骤⑩-5c;其中,⑩-5c、判断判别区域中自上而下的第三个车身识别单元中颜色评价为中等置信度黑色的像素点的总个数是否大于一个车身识别单元中的像素点的总个数的0.5倍,如果是,则认为判别区域中自上而下的第三个车身识别单元中颜色评价为高置信度黑色的像素点、颜色评价为中等置信度黑色的像素点、颜色为黑色的像素点均有效,然后执行步骤⑩-5d;否则,认为判别区域中自上而下的第三个车身识别单元中颜色评价为高置信度黑色的像素点、颜色评价为中等置信度黑色的像素点、颜色为黑色的像素点均无效,不进行统计,然后执行步骤⑩-5d;⑩-5d、计算判别区域中所有有效的颜色评价为高置信度黑色的像素点的总个数、所有有效的颜色评价为中等置信度黑色的像素点的总个数、所有有效的颜色为黑色的像素点的总个数之和,判断和值是否大于一个车身识别单元中的像素点的总个数的1.7倍,如果是,则确定可能的车身颜色为黑色,然后执行步骤⑩-5e;否则,确定最终的车身颜色为白色或灰色,然后执行步骤⑩-6;⑩-5e、同时满足以下两个条件时,将最终的车身颜色确定为红色,车身颜色识别过程结束;不能同时满足以下两个条件时,将最终的车身颜色确定为黑色,车身颜色识别过程结束;条件一:车身初步区域中编号为12~19的一组车身识别单元中颜色为黑色且在HSV颜色空间的H分量值在0~10范围内和在156~180范围内的像素点的总个数与车身初步区域中编号为12~19的一组车身识别单元中颜色为红色的像素点的总个数之和大于1100个;条件二:车身初步区域中编号为12~19的一组车身识别单元中颜色为红色的像素点的总个数大于一个车身识别单元中的像素点的总个数的0.1倍。
其中,对于有效区域中的任一个像素点,如果该像素点的颜色为黑色且该像素点的R、G、B三通道颜色分量的值之和小于35,则将该像素点的颜色评价为高置信度黑色;如果该像素点的颜色为黑色且该像素点的R、G、B三通道颜色分量的值之和小于46,则将该像素点的颜色评价为中等置信度黑色。
⑩-6、满足以下任一条件时,将最终的车身颜色确定为白色,车身颜色识别过程结束;其余情况下,将最终的车身颜色确定为灰色,车身颜色识别过程结束;条件一:有效区域中颜色评价为高置信度白色的像素点的总个数大于一个车身识别单元中的像素点的总个数且判别区域中颜色为黑色的像素点的总个数小于一个车身识别单元中的像素点的总个数;条件二:判别区域中颜色为白色的像素点的总个数大于一个车身识别单元中的像素点的总个数。
其中,对于有效区域中的任一个像素点,如果该像素点的颜色为白色且该像素点的R、G、B三通道颜色分量的值之和大于750,则将该像素点的颜色评价为高置信度白色。
为进一步说明本发明方法的可行性和有效性,对本发明方法进行实验验证。
实验选取9个交通路口从早上到傍晚的白天所有车型的图片,路况为晴天反光、阴天、雨天、树影等。实验结果如表1所列,根据实验结果可以看出利用本发明方法能识别出11种车身颜色,同时颜色识别准确性高,具有抗干扰能力。
表1利用本发明方法得出的识别结果(NULL表示没样本,不做统计)