一种简单的基于FPGA车牌定位算法的实现
1 概述
本节在《基于FPGA特征颜色目标的提取》和《基于FPGA车牌位置的定位》基础上完成车牌位置定位的verilog算法代码的下板实现。
本实验目标:在复杂环境中提取车牌,并找出车牌位置的上下左右边界,最后还原到原始图像将车牌框起来。
2 FPGA的车牌位置定位的实现
具体实现步骤:
1,HDMI图像输入;
2,RGB通道矫正;
3,rgb2ycbcr颜色空间转换;
4,ycbcr特征目标区域提取;
5,图像二值化;
6,行列计数器;
7,二值图像区域边界计算;
8,FPGA完成车牌区域的标记;
9,HDMI完成图像输出。
2.1硬件平台
图1 ECE-CV数字图像处理平台
本验采用ECE-CV开发板实现(板载xilinx k7-70t FPGA),硬件架构如上图1所示。实验条件如下表1所示。
表1 实验条件
类别 | 名称 | 数量 | 备注 |
---|---|---|---|
硬件 | ECE-EDA或ECE-CV | 1 | |
HDMI线 | 2 | ||
HDMI视频源 | 1 | 可以输出1080P的HDMI视频流设备 | |
HDMI接口显示器 | 1 | 支持1080P的显示屏 | |
软件 | Vivado Design Suite2018.1 | 1 | |
视频流处理IP库 | 1 |
2.2 FPGA软件架构
图2 FPGA软件架构
如图2所示,本实验均采用ip连接来代替代码编辑,图像输入为1080p@60hz的分别率。
2.3 IP介绍和代码说明
图3 主要IP
如图3所示,1号rgb2ycbcr IP主要完成rgb颜色空间到ycbcr颜色空间的转换。可输出三种(rgb,ycbcr,gray)图像。2号ycbcr_threshold IP主要完成ycbcr颜色空间的阈值操作,输出三种(binary,rgb,gray)目标颜色。3号hvcount ip主要完成对vga时序的行列计数,为后期边界计算提供基础。4号Vertical_projection ip主要完成垂直投影和边界显示工作。
YCbCr_Threshold 源码如下所示:
2.4 实验结果展示
图4实验原图1
图5实验原图2
图6实验结果图1
图7实验结果图2
视频欣赏
2.5实验结果分析
本实验为一些需要提取、分析和追踪特征颜色目标的机器视觉提供了思路和验证。对于真正用到商业项目距离尚远。对于进一步的更准确的车牌位置识别我们可以把车牌中圆点的位置作为一个特征来判别已达到更准确的车牌位置识别。