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

时间:2025-04-25  作者:Diven  阅读:0

1 背景知识

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

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

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

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

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

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

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

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

2 基于FPGA的数字识别的方法

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

1》模版匹配法

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

2》神经网络识别算法

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

3》数字特征识别算法

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

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

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

图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系统搭建实时数字识别系统。

4 基于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 数字7 识别

结果分析:

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

猜您喜欢

高空作业板是现代建筑和维修行业中不可少的工具,种类繁多,各具特色。铝合金高空作业板轻便和耐腐蚀性受到青睐,适合于室内外的短期作业。钢制高空作业板则因其强度和稳定...
2012-08-25 00:00:00

起拨器和IC夹在现代电子行业中是重要配件,其应用领域。在手机和计算机等消费电子产品的生产过程中,起拨器用于精确地拆卸和安装各种集成电路(IC),确保组件的稳定性...
2014-07-13 00:00:00

现代科技快速发展的背景下,各种配件在提升设备性能、功能和使用体验方面是重要配件。其中,Accessories_12.5X7.8MM_SM作为高性能配件,受到了关...
2025-04-24 09:30:36

信号灯柱和报警器是现代城市交通管理和安全系统中不可少的重要设备。附件种类繁多,主要可以分为以下几类。信号灯柱的附件主要包括灯头、灯罩、支架和电源模块等。灯头是发...
2012-03-12 00:00:00

促进剂和底剂是现代工业中不可少的材料,应用于涂料、塑料、橡胶等领域。促进剂主要用于加速化学反应,提升生产效率。例如,在橡胶生产中,促进剂能显著缩短硫化时间,提高...
2013-11-25 00:00:00

1210贴片电阻的功率并非固定值,而是取决于具体的型号和厂商规格。1210指的是电阻的封装尺寸,即长12 mil (约3.2mm),宽10 mil (约2.5m...
2025-04-14 15:02:26

刻刀套装主要可以分为以下几类。首先是基础型刻刀套装,适合初学者,通常包含几种常用的刀具,如平刀、尖刀和弯刀,便于进行简单的雕刻和切割。其次是专业型刻刀套装,针对...
2008-10-03 00:00:00

监控和复位芯片是电子设备中不可少的组成部分,分类主要可以分为几种类型。监控芯片根据功能的不同可以分为电压监控芯片、温度监控芯片和电流监控芯片。电压监控芯片主要用...
2020-12-31 00:00:00

24k是贴片电阻阻值的常见表示方式,代表了24千欧姆。这种简洁的标记法应用于电子电路设计和生产中,方便工程师快速识别元件参数。字母k代表千,相当于乘以1000。...
2024-11-29 10:26:02

发光二极管(LED)是能够将电能转化为光能的半导体器件。自20世纪60年代首次问世以来,LED技术不断发展,应用领域日益。高效、节能、寿命长等优点,逐渐取代传统...
2025-03-31 08:30:02