Android平台使用yolov5+opencv实现: 图形识别, 车牌识别, 红绿灯识别
图形识别
最终效果
实现方法
使用yolov5s模型, 在自己制作的训练集上训练, 模型可以很快收敛.
为了提高泛化能力, 应对摄像头可能的差异, 对训练数据做了增加: 增加渐变背景, 图形颜色范围抖动, 整体图片增加噪声等.
车牌识别
最终效果
![车牌识别效果
实现方法
使用了开源车牌识别模型, paddle ocr. 再将ocr截取范围的小图片送入opencv写的一个主要颜色识别, 即可实现不同颜色车牌的区分.
在此感谢paddle ocr.
红绿灯识别
最终效果
实现方法
红绿灯识别没有太大难度, 直接使用opencv实现了较稳定的效果.
思路是使用hsv颜色空间进行颜色筛选, 但是难点是找到一个合适的阈值, 本人经过反复测试, 在各种不同环境的数据上找出了一组不错的阈值.
另一个难点是对颜色筛选后的区域过滤. 使用形态学操作将噪点去掉后, 再用面积和形状筛选.
二维码识别
最终效果
实现方法
使用了二维码识别库, 将二维码识别结果的坐标点对比即可判断二维码所在方位. 区分二维码颜色仍然使用opencv的主要颜色识别.
交通标志
最终效果
实现方法
还是使用yolov5, 方法和图形识别完全一样. 在自己生成的训练集上很快可以收敛.