ZYNQ图像处理项目——模板匹配数字识别(3)

一、ZYNQ数字识别框架

前面已经完成了matlab实现数字的识别,后因考虑到图像处理的实时性,将其移植到ZYNQ进行实现,前面已经介绍了ZYNQ上实现数字识别的基本框架,然后也实现了用投影算法实现边框的检测和定位。下图是整体的框架,和之间有略微区别就是我将边框检测和数字识别放到了一块,其实并无本质区别。先前已经实现了VIP模块、外围边框检测模块,接下来就是字符边框的定位以及字符的识别等内容了。
在这里插入图片描述

二、ZYNQ数字识别实现效果

先来看整体的演示效果,通过对摄像头采集到的图像进行预处理,之后投影算法得到外围边框,然后对边框内的数字做定位,得到每个数字的边框,之后分割每个数字提取矩阵模板,最后与标准的模板进行比对得到识别结果,最终的结果在HDMI屏左上角所示。
这个数字识别系统可以实现最多5个数字的定位和分割,以及最多3个数字的识别和显示。你问我为什么只可以识别3个?那原因就是资源不够用了!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、ZYNQ数字识别总结

针对数字区域的投影算法verilog代码和之前的外围边框识别是相似的;字符分割和字符匹配,这边就不贴代码了,也比较简单。这边给出了整体的block design图。其主要就是下面这两个模块,一个是预处理模块,一个是数字定位识别模块。
在这里插入图片描述
这两个模块代码主要包含下图所示部分,滤波按键模块主要控制图片切换或者阈值改动,这个就DIY了,我这边没用到;数字识别主要包括了数字的分割以及特征矩阵的提取和模板的匹配;预处理模块主要实现了图片的滤波、二值化、腐蚀膨胀等操作;投影模块主要是做竖直和水平投影,完成外围边框和水平边框的定位;RGB转YUV模块主要是色彩空间转换。最后所有代码,通过仿真和上板的测试。
在这里插入图片描述
我这边开发环境是vivado2018.3,搭配ZYNQ7010、OV5640和1024*768显示屏,综合后,可以发现查找表资源已经快满了,是因为字符匹配需要用到大量查找表,如果想要进一步增加识别个数,可以换用7020或以上的芯片来实现。
在这里插入图片描述
忙活一个多礼拜,总算完成了模板匹配的数字识别,其优缺点也是很明显。优点是实现简单,效率高,准确度可靠;缺点是太占用LUT资源,并且只能识别标准字体,对手写数字则无能为力。因此后面会考虑用多元线性回归的算法或者神经网络来识别不标准的数字。

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
Zynq图像处理器是一种集成了处理器和可编程逻辑的芯片,可以用于实现图像处理的任务。在图像处理任务中,通常会使用卷积神经网络(CNN)来进行各种图像识别和分析任务。而权重读取是指在CNN中,将训练好的权重参数加载到Zynq图像处理器中进行图像处理的过程。 权重读取的过程可以分为两个主要步骤:权重训练和权重加载。 首先是权重训练。在CNN中,通过对大量训练样本的迭代学习,不断调整网络中各个层之间的权重,以使得网络能够更好地对图像进行识别和分类。在训练过程中,可以使用各种优化算法(如梯度下降法)来更新权重参数。训练完成后,得到的权重参数就是网络对于图像识别任务的优化结果。 接下来是权重加载。在Zynq图像处理器中,需要将训练好的权重参数加载到可编程逻辑部分(Programmable Logic, PL)中。这可以通过将权重参数储存在外部存储器(如SD卡或闪存)中,然后通过相应的接口(如SD卡接口)读取到Zynq图像处理器中。一旦将权重参数加载到PL中,就可以在图像处理任务中使用这些参数来进行各种识别和分析任务。 需要注意的是,权重读取是一个重要的步骤,它直接影响到Zynq图像处理器的性能和准确度。因此,在权重读取的过程中,要确保加载的权重参数与训练时保持一致,并且要进行适当的验证和测试,以确保图像处理的准确性和稳定性。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

树叶~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值