0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA的数字识别的方法

dKBf_eetop_1 来源:未知 作者:李倩 2018-04-27 11:43 次阅读

基于FPGA的数字识别的实现一

现如今随着机器识别技术的日益成熟,在我们的日常生活中机器识别也随处可见。大家常见的有二维码识别,指纹识别,车牌识别等,这些技术已经相当成熟。还有现如今比较火的无人驾驶系统。无人驾驶系统中存在很多机器识别技术,包括对人或移动物体的识别,路标识别,以及距离估算等。而各种识别系统中,对数字的识别是必不可少的。数字在我们人类世界无处不在。

目前实现数字识别的方法大致分为以下4种:

1)使用软件编程在传统个人PC上进行实现;

2)使用通用的MCU微型处理器(例如51单片机ARM等)上进行实现;

3)使用通用DSP作为系统处理器进行实现;

4)使用专用DSP作为运算核心;

除以上四种方法以外,FPGA以其独有的硬件可并行运行的优势,打破了传统处理器顺序执行的模式,可在一个时钟周期内并行完成多个运算,相比于DSP在处理速度与处理能力上有了大幅的提高, 在具有成本低、集成化程度高、便于后期维护、 升级等优势的同时使系统的运行速度能够满足图像实时处理的需求,所以本设计决定采用FPGA作为硬件平台,设计与实现一种基于FPGA的数字识别系统。

02

基于FPGA的数字识别的方法

通常,针对印刷体数字识别使用的算法有:基于模版匹配的识别方法、基于BP神经网络的识别方法、基于数字特征的识别方法等。下文将对这几种算法进行讨论以及比较。

1>模版匹配法

模版匹配法是一种被较早应用的数字识别算法,该算法的关键是对所要识别的所有数字进行模版构建,之后将图像中的数字与所有的数字模版一一进行比较,计算出图像中数字与每个模版的相似度,根据所计算出的相似度结果进行识别。其中相似度最高的模版即为我们所要识别的结果。模版匹配法的对数字的大小、结构形状的规范化程度要求很高,数字的规范化程度对识别的准确率有着直接的影响。该算法原理较为简单,但计算复杂度过大,同时不利于FPGA的实现。

2>神经网络识别算法

神经网络识别的方法是模仿动物神经网络的特征,对信息进行分布式并行处理的一种算法。神经网络识别算法具有一定的抗干扰能力,但为了保证识别的准确率,该算法需要负责并且大量的计算,来对神经网络进行训练,而过于复杂的计算不利于FPGA对该算法的实现。

3>数字特征识别算法

基于数字特征的识别算法其核心是通过对数字的形状以及结构等几何特征进行分析与统计,通过对数字特征的识别从而达到对图像中数字的识别。

03

基于数字特征算法实现数字识别

我们采用基于数字特征的算法进行数字的识别,通过图像采集模块采集到图像,进行灰度化,二值化,然后进行数字特征的提取和统计来完成对数字的识别,最终显示到数码管上,完成图像信息到数字信息的转化。

图1 0-6数字特征标线

图2 7-8数字特征标线

图3 5数字特征

数字特征信息的提取基于打印体,如上图1,图2,图3所示,以图3数字5举例,红框是数字5的水平和竖直的上下左右边界。X1在竖直方向的2/5处的水平线,x2在竖直方向的2/3处的水平线,y在水平方的1/2处的水直线。我们以此特征来统计x1,x2,y与数字5的交叉点。

以交叉统计法来区分0-9数字的特征如下表1:

表1 0-9数字特征统计表

由于2,3,5的数字特征统计表一样,无法区分所以我们继续增加数字特征以区分2,3,5。如表2:

表2 2,3,5数字特征统计

这样通过数字统计完全区分开数字0-9。然后利用FPGA系统搭建实时数字识别系统。

04

基于FPGA的数字识别的实现

图4基于ov5640的FPGA实时数字识别系统

如图4所示,我们图像采集使用ov5640 500W像素摄像头,采集到的彩色RGB图像首先存入SDRAM中,然后由TFT显示控制端读出图像数据,读出RGB图像数据后,我们首先进行RGB转Ycbcr算法操作,然后对灰度图像进行阈值分割,形成二值图像。对二值数字图像进行数字识别,最终显示在数码管上。

FPGA部分源码

//------------------------------------------------------------------------

// VGA display

//--------------------------------------------------------------------------

always @(posedge TFT_VCLK or negedge rst_n) begin

if(!rst_n)

TFT_RGB <= 16'b0;

else if(hcount == 400 || vcount == 192 || vcount == 320)

TFT_RGB <= 16'hff00;

else

TFT_RGB <={o_y_8b[7:3],o_y_8b[7:2],o_y_8b[7:3]};

end

//-------------------------------------------------------------

//digital tube display

//-------------------------------------------------------------

always @(posedge TFT_VCLK or negedge rst_n) begin

if(!rst_n)

disp_data <= 32'h0;

else if((!TFT_VS_r0) && TFT_VS_r1)

case({x1_l,x1_r,x2_l,x2_r,y,x1,x2})

16'b1111_0010_0010_0010: disp_data <= {28'b0,4'h0};  //0

16'b1010_0001_0001_0001: disp_data <= {28'b0,4'h1};  //1

16'b0110_0011_0001_0001: disp_data <= {28'b0,4'h2};  //2

16'b0101_0011_0001_0001: disp_data <= {28'b0,4'h3};  //3

16'b1110_0010_0010_0001: disp_data <= {28'b0,4'h4}; //4

16'b1001_0011_0001_0001: disp_data <= {28'b0,4'h5}; //5

16'b1011_0011_0001_0010: disp_data <= {28'b0,4'h6}; //6

16'b0110_0010_0001_0001: disp_data <= {28'b0,4'h7}; //7

16'b1111_0011_0010_0010: disp_data <= {28'b0,4'h8};  //8

16'b1101_0011_0010_0001: disp_data <= {28'b0,4'h9};  //9

default: disp_data <= 32'b0;

endcase

else

disp_data <= disp_data;

End

结果展示

图5实验原图

图6数字5识别

图7数字6识别

图8数字7识别

结果分析

本实验完成了对0-9数字的单个数字识别,对于多个数字的识别,我们要进行模块分割,然后在每个模块里边再识别数字。我们可以加上语音系统来播报我们识别出来的数字,已到达更加人性化的更加实用的开发。

基于FPGA的数字识别的实现二

01

背景知识

对于FPGA识别数字的基本算法知识请查看《基于FPGA的数字识别的实现》一文,对于数字位置的实时跟踪的基本算法知识请查看《基于FPGA的实时移动目标的追踪》一文。本节将基于FPGA的目标跟踪以及统计学的特征统计来实现对数字的位置实时定位以及数字识别,不在局限于数字在屏幕中的位置,也不局限数字的大小。

02

基于FPGA的数字识别的实现

图1基于ov5640的FPGA实时数字识别系统

如图1所示,我们图像采集使用ov5640 cmos 500W像素摄像头,将采集到的彩色RGB图像首先存入SDRAM中,然后由TFT显示控制端读出图像数据,读出RGB图像数据后,我们首先进行RGB转Ycbcr算法操作,然后对灰度图像进行阈值分割,形成二值图像,对二值数字图像进行边界追踪的基础上进行数字识别,最终将边界显示在TFT5寸屏幕上,将识别的数字信息显示在数码管上。

图2边界追踪数字识别的三大主要核心模块

如图2所示,以TFT屏的显示时序为基准,首先进行边界追踪,识别数字边界后,我们在边界的基础上进行统计特征的数字识别。

图3边界追踪模块

如图3所示,hcount为列计数器,vcount为行计数器,TFT_VS_fall和TFT_VS_rise分别是帧下降沿标志和帧上升沿标志,frame_cnt为帧计数器,hcount_l和hcount_r分别是识别后数字的左右边界,vcount_l和vcount_r分别是数字的上下边界。Th_flag_fall和th_flag_rise分别是灰度图像阈值后的下降沿和上升沿标志。

图4数字识别模块

如图4所示基本的边界信息均来自数字边界识别模块,数字识别模块主要的到数字统计学的两横一竖(x1,x2,y)与数字的交点信息,以及其他补充信息。

部分核心代码:

/*

Module name: digital_recognition.v

Description: digital recognition

Data: 2018/04/17

Engineer: lipu

e-mail: 137194782@qq.com

微信公众号:FPGA开源工作室

*/

数字识别x1 ,x2,y核心代码:

TFT显示屏显示代码:

数字识别与数码管显示对接代码:

结果展示

图5实验原图

图6边界跟踪数字识别6

图7边界跟踪数字识别7

图8边界跟踪数字识别4

图9边界跟踪数字识别5

展望

基于机器视觉的识别是走向人工智能的必然之路,字符的识别就是这条路的敲门砖。本次实验的结果完成了无论数字大小,数字在屏幕中的位置均可正确识别。基于此,可以开发人脸位置识别,人脸模板匹配识别,车牌识别等现如今比较火的机器视觉,人工智能等。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21729

    浏览量

    602998
  • 神经网络
    +关注

    关注

    42

    文章

    4771

    浏览量

    100714
  • 数字识别
    +关注

    关注

    2

    文章

    19

    浏览量

    10140

原文标题:基于FPGA的数字识别的实现

文章出处:【微信号:eetop-1,微信公众号:EETOP】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    关于数字识别方法模板匹配的实现

    大家好!我最近在做一个关于发票号码识别检测的项目,在识别的过程中遇到一些问题,就是识别的效果不理想,本来我用的方法是神经网络识别,可是缺少发
    发表于 07-23 10:49

    【工程源码】基于FPGA数字识别的实现

    `基于FPGA数字识别的实现1基于数字特征算法实现数字识别我们采用基于
    发表于 02-17 18:39

    特定人语音识别的方法有哪些?

    特定人语音识别的方法有哪些?特定人语音识别技术在汽车控制上的应用是什么?
    发表于 05-14 06:34

    手写数字识别的模板匹配方法源程序

    手写数字识别的模板匹配法
    发表于 01-02 19:43 73次下载

    MSK信号检测识别的FPGA实现

    该文提出了一种FPGA 可实现的跳频MSK 信号实时截获和识别的设计方案,经过试验证明,可以对宽带跳频信号进行实时的截获,并能够对其中的MSK 目标信号完成准确识别,可应用于针对特
    发表于 06-08 11:48 3953次阅读
    MSK信号检测<b class='flag-5'>识别的</b><b class='flag-5'>FPGA</b>实现

    FPGA平台实现基于遗传算法的图像识别的研究

    FPGA平台实现基于遗传算法的图像识别的研究
    发表于 08-29 15:02 11次下载

    基于FPGA的智能车路径图像识别的预处理设计

    基于FPGA的智能车路径图像识别的预处理设计
    发表于 09-22 12:41 23次下载

    使用OpenCV进行车牌数字识别的资料免费下载

    本文档的主要内容详细介绍的是使用OpenCV进行车牌数字识别的资料免费下载。
    发表于 01-16 08:00 29次下载
    使用OpenCV进行车牌<b class='flag-5'>数字</b><b class='flag-5'>识别的</b>资料免费下载

    射频识别的构成_射频识别的主要工作频率

    本文主要阐述了射频识别的构成及_射频识别的主要工作频率。
    发表于 03-28 10:25 6026次阅读

    语音识别的两个方法_语音识别的应用有哪些

    本文主要阐述了语音识别的两个方法及语音识别的应用。
    发表于 04-01 09:04 5991次阅读

    信号识别的意义和发展趋势及特定信号识别的方法说明

    文章首先介绍了信号识别的意义和发展趋势,阐述了传统通信的信号识别方法;接着介绍了两种信号识别方法的实际应用案例,对信号识别效率、准确度进行仿真和分析;最后使用广义特征提取技术、权重特征
    发表于 06-30 17:01 36次下载
    信号<b class='flag-5'>识别的</b>意义和发展趋势及特定信号<b class='flag-5'>识别的</b><b class='flag-5'>方法</b>说明

    使用FPGA平台实现遗传算法的图像识别的研究设计说明

    利用模板匹配方法,采用基于遗传算法的图像识别技术,完成了对图像目标识别的算法验证。在此基础上进行了基于该算法的图像识别系统的FPGA实现,并
    发表于 01-26 15:02 13次下载
    使用<b class='flag-5'>FPGA</b>平台实现遗传算法的图像<b class='flag-5'>识别的</b>研究设计说明

    人脸识别的优点和识别方法

    人脸识别厂家浅谈人脸识别的智能优点
    发表于 02-06 11:58 704次阅读
    人脸<b class='flag-5'>识别的</b>优点和<b class='flag-5'>识别方法</b>

    情感语音识别的研究方法与实践

    一、引言 情感语音识别是指通过计算机技术和人工智能算法自动识别和理解人类语音中的情感信息。为了提高情感语音识别的准确性,本文将探讨情感语音识别的研究
    的头像 发表于 11-16 16:26 842次阅读

    人脸检测与识别的方法有哪些

    人脸检测与识别是计算机视觉领域中的一个重要研究方向,具有广泛的应用前景,如安全监控、身份认证、智能视频分析等。本文将详细介绍人脸检测与识别的方法。 引言 人脸检测与识别技术在现代社会中
    的头像 发表于 07-03 14:45 704次阅读