完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
目标是识别0-9的数字,这一块主要用 matlab,matlab用的不是很熟,具体可以参考百度“matlab字符识别“,说下思路。
1. 计划把 0-9的数字全部找一些(车牌上的),然后每个数在X ,Y 方向的投影数值保存下来,假如取8位宽 、,那么1个数字就是8bit*16的字符模板。 2. 把这些模板矩阵存入FPGA 的内部RAM中作为标准模板库。采用8×16 bit 大小的数组作为标准模板。然后总共10个数,都保存下来。 3. 可惜大学学的线性代数忘的差不多了,公式没记住,原理是提取待识别图像的矩阵数据 T[x,y] 若干特征向量和 之前最早保存的10个模板中的 矩阵 M[i,j]相应的特征量进行比较(要比较10次),计算他们之间的互相关量,互相关量最大的哪一个就是识别的数字(PS:有点后悔没好好学线性代数了),这个是模板匹配。 4. 在保存模板的时候,需要用到matlab软件,可以使用自带的HDL CODER或者XILINX的SYSTEM GENERATOR转成verilog,我转完发现很多地方还是需要修改,这个要注意。 5. 目前看,绝逼需要matlab转,直接用verilog编难度很大,主要matlab函数比较多,比如下面这些 这次用到的几个重要函数 归一化函数 I1=pretreatment(imread('BP/1.jpg')); //样本训练函数 train(net,P,T); //测试函数 I=imread('CAR/0.jpg'); //字符分隔函数 [PIN0,PIN1,PIN2,PIN3,PIN4,PIN5,PIN6]=StringSplit(DW); //测试字符 PIN0=pretreatment(PIN0); //匹配部分 T0= sim(net ,P0(:,i)); T1 = compet (T0) d = find(T1 == 1) - 1; 我只是把几个重要的函数写取来,都是matlab里面的函数 需要完整的可以百度“matlab字符识别“可以搜到一堆 6. 用板子测试效果,效果不是很理想,中间有很多坑,有时间把遇到的问题也写一下。还有调试记录 不过收获非常大,有时间要把线性代数看看了 7. 继续努力中。 |
|
相关推荐
|
|
每个人取的模板矩阵的大小需要调试才能确定,我用的是 8*16bit。但是后来 发现投影函数 在 matlab 里面没找到,就干脆用matlab 的归一函数了。
不过字符分隔原理还是 投影在X轴,就是字符中间的间隔,投影到X轴上就是0(字符白色,背景黑色),按灰度值黑色就是0,所以垂直方向的灰度累加值是0,就可以分隔字符 |
|
|
|
|
|
409 浏览 0 评论
442 浏览 0 评论
编码器的abz相是5v信号,可以直接接入FPGA3.3V的引脚吗?
1220 浏览 1 评论
1053 浏览 0 评论
1843 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 粤ICP备14022951号 )
GMT+8, 2023-8-28 04:18 , Processed in 0.507771 second(s), Total 58, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:粤 B2-20160233 工商网监 湘ICP备2023018690号