Hyperlpr专题
来源:互联网 发布:余额宝优化投资可信吗 编辑:程序博客网 时间:2024/06/11 11:27
Hyperlpr车牌颜色判断
HyperLPR是 智云视图(http://www.zeusee.com)开源的一个使用深度学习针对对中文车牌识别的实现,HyperLPR可以识别多种中文车牌包括白牌,新能源车牌,使馆车牌,教练车牌,武警车牌等。
Github地址:https://github.com/zeusees/HyperLPR
本文主要介绍Hyperlpr的车牌颜色判断部分,车牌颜色判断主要在车牌检测部分完成之后,对车牌颜色进行分类,现在主要的车牌颜色包括:蓝牌,黄牌,绿牌(新能源车牌),黑牌以及白牌。
我们在这里使用的方法大概思路是K-Means聚类之后,提取主成分颜色,判断主成分颜色空间所属的颜色分类,进而实现颜色判别。整体思路非常简单,下面我们一步一步来描述:
K-Means聚类
K-means是一种聚类算法,主要的目的在于将N组数据划分到K个类别,属于无监督学习算法的一种,我们通常将所分类别的中心称为聚类中心。
在这里,我们的输入数据是一副已经定位好的车牌图像,如下图所示:
假设这是一幅128*96的图片,那么这里我们的数据相当于128*96组RGB值,我们将这些RGB值进行K-means聚类划分成两个颜色类别:
image = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)image = image.reshape((image.shape[0] * image.shape[1], 3))clt = KMeans(n_clusters=2)clt.fit(image)
颜色划分
接着,如果我们将聚类划分的颜色用可视化的方式展示,就是如下图所示:
从图中我们已经可以很清晰的看到车牌被聚类为以蓝色为主颜色,和另外一种从属的附属色。接下来,我们只需要提取出主成分色彩,进行颜色判别即可。
颜色判别
比如我们聚类出的主成分颜色值为:(39.76983095 108.94668401 214.63849155),我们需要判别这个颜色所属的颜色空间,这里有人可能会想到用分类器,其实没有那么复杂的必要,只需要通过规则性判别即可。
在RGB颜色空间中,我们按照如下规则划分黄色,蓝色,绿色,白色以及黑色:
我们用g表示绿色颜色值,b表示蓝色颜色值,r表示红色颜色值:
如果:
g-r >= 13并且 g-b>=13,那么这个时候,我们把颜色划归为绿色
b-r >= 13并且b-g>=13,那么这个时候,我们把颜色划归为蓝色
r-b > 70 并且 g-b >70 ,那么这个时候,我们把颜色划归为黄色
如果r,g,b的值均大于200,那么这个时候,我们把颜色划归为黑色
如果r,g,b的值均小于50,那么这个时候,我们把颜色划归为白色
如果上述条件都不满足,那么这个时候我们认为是非法颜色。
那么如果聚类生成的主成分色彩被我们认为是非法颜色的话,我们会将附属色作为判别标准重新判断。聚类生成的两种颜色均被判断为非法色的话,此时,车牌颜色判别输出判别失败。
在Hyperlpr中,我们用这种方法对大量车牌进行了颜色测试,其中不乏
这样的异常数据,在测试中,均表现良好。
欢迎大家批评和指正。
- Hyperlpr专题
- HyperLPR
- HyperLPR
- HyperLPR车牌分割模型
- python安装(HyperLPR-master)读书笔记
- HyperLPR中文车牌 开源项目使用笔记
- HyperLPR车牌识别技术算法之车牌精定位
- 专题
- 专题
- 专题
- HyperLPR车牌识别技术算法之基于方向纹理场进行快速车牌(文字)校正
- HyperLPR车牌识别技术算法之车牌粗定位与训练
- define专题
- DELPHI专题
- iPortal专题
- Struts专题
- Struts专题
- NGN专题
- 开心一下-换汽水问题
- 数据结构第二次作业
- Linux IO模型
- unity+Loom实现多线程(Thread)和主线程(MainThread)交互
- JAVA | 31
- Hyperlpr专题
- docker容器配置ssh登入实录
- 无法使用aliyun的maven镜像
- 【分布式系统】Consistent Hashing
- android APM 实现手记
- git深入学习(二)
- JAVA主函数(main)
- unity + WebClient显示下载速度,当前下载量,下载总量
- JAVA static 关键字