CN112001393A - 一种特定字符识别fpga实现方法、系统、存储介质及应用 - Google Patents

一种特定字符识别fpga实现方法、系统、存储介质及应用 Download PDF

Info

Publication number
CN112001393A
CN112001393A CN202010642055.8A CN202010642055A CN112001393A CN 112001393 A CN112001393 A CN 112001393A CN 202010642055 A CN202010642055 A CN 202010642055A CN 112001393 A CN112001393 A CN 112001393A
Authority
CN
China
Prior art keywords
pixel stream
module
specific
pixel
character
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010642055.8A
Other languages
English (en)
Other versions
CN112001393B (zh
Inventor
潘伟涛
黄进建
邱智亮
刘松华
董勐
殷建飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN202010642055.8A priority Critical patent/CN112001393B/zh
Publication of CN112001393A publication Critical patent/CN112001393A/zh
Application granted granted Critical
Publication of CN112001393B publication Critical patent/CN112001393B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/148Segmentation of character regions
    • G06V30/153Segmentation of character regions using recognition of characters or words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/29Graphical models, e.g. Bayesian networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Multimedia (AREA)
  • Character Discrimination (AREA)

Abstract

本发明属于图像识别技术领域,公开了一种特定字符识别FPGA实现方法、系统、存储介质及应用,用于检测一维序列与多个特征序列的匹配程度,其在二维上的表现为,识别特定字符集合中的字符;基于贝叶斯神经网络BNN和随机计算理论;包括:投票结果统计模块、多输入比较模块、多投票员投票模块、单投票员投票模块、像素流匹配特定特征模块、计1模块、随机序列产生模块。针对MNIST数据集训练结果,其实施步骤有:将输入手写数字转化、各像素转化为128bit位宽的随机计算理论数字,将输入流依次输入,输入结束后经过固定时间周期,得到识别结果。本发明具有识别速度快、准确率较高、适用于硬件实现、资源消耗相对较少、应用范围可拓展的优点。

Description

一种特定字符识别FPGA实现方法、系统、存储介质及应用
技术领域
本发明属于图像识别技术领域,尤其涉及一种特定字符识别FPGA实现方法、系统、存储介质及应用。
背景技术
目前,随着人工智能技术的发展,图像识别技术的应用已深入我们的生活,如车牌识别、手机拍照识物。而利用深度神经网络模型对图片内容进行检测,可以准确识别图片中的内容。贝叶斯神经网络将概率建模和神经网络结合起来,并给出预测结果的置信度。在贝叶斯神经网络中,权重和偏置都不是确定的值,而是一个分布。因此,在采用贝叶斯神经网络实现时,还需要产生服从特定分布的变量,这一问题可依据独立同分布的中心极限定理解决。
随机计算理论,用一串01比特流表示一个小数,该比特流中1出现的概率表示这个比特流所代表的数字。采用随机计算理论,可以将小数的乘法转化为简单的“位与”运算,为硬件实现提供了极大便利。
申请公布号为CN 111062481 A,名称为“基于随机计算理论的贝叶斯网络推理方法”的专利申请,公开了一种基于随机计算理论的贝叶斯网络推理方法。该方法简化了基于中心极限定理的高斯随机发生器的计算过程,同时简化了贝叶斯神经网络推理过程中的乘法运算。具体方式是,以二项分布发生器得到的“0-1”序列为数据单元,用“与门”实现乘法运算操作,计算时“0-1”随机数序列直接参与计算,具有节省减少硬件资源、提高计算速度、降低系统功耗的优点。现有技术提出了采用BNN和随机计算理论实现该功能的思路,但是实际上并没有给出具体的实现方法。
通过上述分析,现有技术存在的问题及缺陷为:现有基于随机计算理论和贝叶斯网络实现的特定字符识别方法,其数据的输入、处理、输出流程不够完善,没有提出具体的硬件实现架构,无法在硬件上部署实现。
解决以上问题及缺陷的难度为:对现有方法进行划分,提出一种具体的硬件实现架构。该架构需要解决的问题有:数据的输入、随机数的产生和重复利用、数据的处理流程、数据的输出方式。在现有方法中,对随机数的产生和使用方式没有过多关注。在具体实施中,应当可以注意到,随机数的需求量和使用量是相当大的。在可能的条件下,应对随机数进行重复使用,否则可能会造成相当大的资源消耗。
解决以上问题及缺陷的意义为:提出了一种具体可行的硬件实现架构,在最大程度上重复利用了产生的伪随机数。
发明内容
针对现有技术存在的问题,本发明提供了一种特定字符识别FPGA实现方法、系统、存储介质及应用。所提出的硬件实现架构,可以实现对伪随机数的重复利用,同时给出了具体的实现方案。
本发明是这样实现的,一种特定字符识别FPGA实现方法,所述特定字符识别FPGA实现方法包括:
将输入图片以先列后行的顺序,将所有像素依次转化为128bit位宽的随机计算理论数字,以像素流的方式输入本装置;
像素流以灌注方式依次递交给不同的投票员,即像素a在时钟b递交给投票员c,在时钟b+1递交给投票员c+1;
对于每个投票员,得到像素流后也以灌注方式依次递交给不同字符0到9的像素流匹配特定特征模块,即像素x在时钟y递交给字符z的像素流匹配特定特征模块,在时钟y+1递交给字符z+1的像素流匹配特定特征模块;
对于每个像素流匹配特定特征模块,将输入像素流和本地存储的特征参数进行比对,输出像素流和特征参数的匹配程度;特征参数因字符不同而不同,即有多少字符,就有多少种像素流匹配特定特征模块;
每个投票员将像素流送入所有字符的像素流匹配特定特征模块,进而获取像素流和所有字符的匹配程度,对匹配程度最高的字符进行投票,输出;
每当一个投票员投票,对应字符得票数加一;在所有投票员投票后,比较所有字符得票数;得票最高者,作为识别结果输出。
进一步,所述特定字符识别FPGA实现方法对输入流、特征参数向量、伪随机数中,前两者或三者相与后的结果的特定位宽二进制数字中1的个数计数,特征参数有正负,依据符号累加部分对前面的统计结果进行累加,输入全部统计完毕后,将累加值输出,为输入和该字符的匹配程度,最终的匹配程度还需加上偏置值。
进一步,所述特定字符识别FPGA实现方法包括:
Figure BDA0002571857750000031
对于BNN模型,最终的匹配程度还需加上偏置值b。
进一步,所述特定字符识别FPGA实现方法中的伪随机数由随机序列产生模块产生,在同一个时钟周期,所有像素流匹配特定特征模块接收到的伪随机数都是相同的。
进一步,所述特定字符识别FPGA实现方法获取输入和各字符匹配程度包括:输入流从上向下依次灌注于符号0到符号9的特征参数和伪随机数之中;输出的匹配程度,validout为该输出的有效标志。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
将输入图片以先列后行的顺序,将所有像素依次转化为128bit位宽的随机计算理论数字,以像素流的方式输入本装置;
像素流以灌注方式依次递交给不同的投票员,即像素a在时钟b递交给投票员c,在时钟b+1递交给投票员c+1;
对于每个投票员,得到像素流后也以灌注方式依次递交给不同字符0到9的像素流匹配特定特征模块,即像素x在时钟y递交给字符z的像素流匹配特定特征模块,在时钟y+1递交给字符z+1的像素流匹配特定特征模块;
对于每个像素流匹配特定特征模块,将输入像素流和本地存储的特征参数进行比对,输出像素流和特征参数的匹配程度;特征参数因字符不同而不同,即有多少字符,就有多少种像素流匹配特定特征模块;
每个投票员将像素流送入所有字符的像素流匹配特定特征模块,进而获取像素流和所有字符的匹配程度,对匹配程度最高的字符进行投票,输出;
每当一个投票员投票,对应字符得票数加一;在所有投票员投票后,比较所有字符得票数;得票最高者,作为识别结果输出。
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
将输入图片以先列后行的顺序,将所有像素依次转化为128bit位宽的随机计算理论数字,以像素流的方式输入本装置;
像素流以灌注方式依次递交给不同的投票员,即像素a在时钟b递交给投票员c,在时钟b+1递交给投票员c+1;
对于每个投票员,得到像素流后也以灌注方式依次递交给不同字符0到9的像素流匹配特定特征模块,即像素x在时钟y递交给字符z的像素流匹配特定特征模块,在时钟y+1递交给字符z+1的像素流匹配特定特征模块;
对于每个像素流匹配特定特征模块,将输入像素流和本地存储的特征参数进行比对,输出像素流和特征参数的匹配程度;特征参数因字符不同而不同,即有多少字符,就有多少种像素流匹配特定特征模块;
每个投票员将像素流送入所有字符的像素流匹配特定特征模块,进而获取像素流和所有字符的匹配程度,对匹配程度最高的字符进行投票,输出;
每当一个投票员投票,对应字符得票数加一;在所有投票员投票后,比较所有字符得票数;得票最高者,作为识别结果输出。
本发明的另一目的在于提供一种实施所述特定字符识别FPGA实现方法的特定字符识别FPGA实现系统,所述特定字符识别FPGA实现系统包括:
随机序列产生模块,用于产生特定位宽的二进制伪随机数;
计1模块,用于对输入的特定位宽二进制数字中的1的个数进行统计计数;
像素流匹配特定特征模块,用于输入和某特定字符特征参数的比较,输出输入和该特定字符的匹配程度;
单投票员投票模块,用于一个投票员的投票,依据是根据输入和有限特定字符的特征参数得到两者匹配程度,匹配程度高则得票;
多投票员投票模块,用于采用灌注的方式依次递交给不同的投票员,输出总投票结果;
多输入比较模块,用于对输入的多个数字进行比较,输出最大数字所对应下标位置;
投票结果统计模块,用于统计所有投票员的投票选择,并将得票数最高的字符输出。
本发明的另一目的在于提供一种图像处理终端,所述图像处理终端搭载有所述的特定字符识别FPGA实现系统。
本发明的另一目的在于提供一种人工智能控制系统,所述人工智能控制系统搭载有所述的特定字符识别FPGA实现系统。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提出了一种适用于特定序列识别的FPGA实现架构。该架构可以检测一维序列与多个特征序列的匹配程度,并由若干投票员选出最符合的特征序列。其在二维上的表现为,检测输入像素流和特定字符特征参数的匹配程度,由若干投票员选出最符合的字符,以此完成字符识别。
本发明采用流水线架构,在输入序列输入的同时进行匹配识别,当输入序列完成输入后,经过固定时钟周期,输出识别结果;基于贝叶斯神经网络实现,可以有效解决训练集数据较少或者是过拟合的问题;同时基于随机计算理论,将贝叶斯神经网络中大量的小数运算转化为简单的“位与”运算,节省了大量的计算资源。
由于本发明架构的特殊性,可以在仅使用一个随机序列产生模块的前提下,完成所需功能,节省了大量资源。本发明提出架构本质上是检测一维序列与多个特征序列的匹配程度,因而其不仅适用于字符识别,还可以用于其他场景。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的特定字符识别FPGA实现方法流程图。
图2是本发明实施例提供的特定字符识别FPGA实现系统的结构示意图。
图3是本发明实施例提供的输入像素流匹配特定特征模块结构示意图。
图4是本发明实施例提供的单投票员投票模块获取输入和各字符匹配程度流程示意图(以手写数字0到9的识别为例)。
图5是本发明实施例提供的在手写数字识别应用中,用于测试的手写数字输入(0到9);
图6是本发明实施例提供的在手写数字识别应用中,对于输入数字0时的识别结果示意图。
图7是本发明实施例提供的在手写数字识别应用中,对于输入数字8时的识别结果示意图。
图8是本发明实施例提供的多投票员投票模块示意图。
图9是本发明实施例提供的单投票员投票模块示意图。
图10是本发明实施例提供的随机序列产生模块示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种特定字符识别FPGA实现方法、系统、存储介质及应用,下面结合附图对本发明作详细的描述。
如图1所示,本发明提供的特定字符识别FPGA实现方法包括以下步骤:
S101:将输入图片(灰度图)以先列后行的顺序,将所有像素依次转化为128bit位宽的随机计算理论数字,以像素流的方式输入本装置;
S102:像素流以“灌注”方式依次递交给不同的投票员,即像素a在时钟b递交给投票员c,在时钟b+1递交给投票员c+1;
S103:对于每个投票员,得到像素流后也以“灌注”方式依次递交给不同字符(0到9)的像素流匹配特定特征模块,即像素x在时钟y递交给字符z的像素流匹配特定特征模块,在时钟y+1递交给字符z+1的像素流匹配特定特征模块;
S104:对于每个像素流匹配特定特征模块,其功能在于将输入像素流和本地存储的特征参数进行比对,输出像素流和特征参数的匹配程度。特征参数因字符不同而不同,即有多少字符,就有多少种像素流匹配特定特征模块;
S105:每个投票员将像素流送入所有字符的像素流匹配特定特征模块,进而获取像素流和所有字符的匹配程度。对匹配程度最高的字符进行投票,输出;
S106:每当一个投票员投票,对应字符得票数加一。在所有投票员投票后,比较所有字符得票数。得票最高者,作为识别结果输出。
本发明提供的特定字符识别FPGA实现方法业内的普通技术人员还可以采用其他的步骤实施,图1的本发明提供的特定字符识别FPGA实现方法仅仅是一个具体实施例而已。
如图2所示,本发明提供的特定字符识别FPGA实现系统包括:
随机序列产生模块,基于线性反馈移位寄存器(LFSR)实现。为节约资源,将随机序列产生模块产生的随机数重复利用,即,仅使用一个随机序列产生模块,产生的随机数供所有像素流匹配特定特征模块使用;
计1模块,用于依据输入二进制数,统计其中1的个数并在指定周期返回结果;
像素流匹配特定特征模块,用于将输入的像素流和特定字符特征参数进行匹配,通过计1模块将匹配结果转化为计数值,值越大则匹配程度越高。匹配过程中,可以由随机序列产生模块引入随机性;
单投票员投票模块,用于将输入像素流分别送入所有有限字符的像素流匹配特定特征模块,得到并比较输入像素流和所有有限字符的匹配程度,对匹配程度最高的字符进行投票并输出;
多投票员投票模块,用于采用“灌注”的方式依次递交给不同的投票员,输出总投票结果;
多输入比较模块,用于对输入的多个数字进行比较,输出最大数字所对应下标位置;
投票结果统计模块,用于将若干单投票员投票模块输出结果进行统计,将总投票结果送入多输入比较模块,输入的每个位置代表一个字符,其值为投票数,最终输出得票最高字符,即为识别结果。
本发明的投票结果统计模块基于多输入比较模块和若干单投票员投票模块实现,单投票员投票模块基于有限个像素流匹配特定特征模块实现(个数取决于有限字符种类数),像素流匹配特定特征模块基于计1模块、随机序列产生模块以及特定字符特征参数实现。
下面结合附图对本发明的技术方案作进一步的描述。
本发明提供的特定字符识别FPGA实现系统包括:
随机序列产生模块,用于产生特定位宽的二进制伪随机数。
计1模块,用于对输入的特定位宽二进制数字中的1的个数进行统计计数。
像素流匹配特定特征模块,用于输入和某特定字符特征参数的比较,输出输入和该特定字符的匹配程度。
单投票员投票模块,用于一个投票员的投票。其依据是根据输入和有限特定字符的特征参数得到两者匹配程度,匹配程度高则得票。
多投票员投票模块,用于采用“灌注”的方式依次递交给不同的投票员,输出总投票结果。
多输入比较模块,用于对输入的多个数字进行比较,输出最大数字所对应下标位置。
投票结果统计模块,用于统计所有投票员的投票选择,并将得票数最高的字符输出。
本发明提供的特定字符识别FPGA实现方法以MNIST数据集为训练集在贝叶斯神经网络训练模型中进行训练,获得模型参数。对模型参数和输入图片进行转换,使其转换为对应的随机计算理论小数。将模型参数导入本装置中,输入转换后的图片,得到识别结果。
如图3所示,是本发明输入像素流匹配特定特征模块结构示意图。该模块作用在于获取输入像素流和特定字符参数之间的匹配程度,该匹配程度以一个有符号数作为结果输出,其值越大,则匹配程度越高。图3中,输入流是经过转换后的图片,其长度为28×28=784。相应地,特征参数向量1和特征参数向量2的长度也均为784。输入流、特征参数向量、伪随机数,三者位宽一致,如均为128bit。图中,统计1的个数即对应“计1模块”,用于对输入的特定位宽二进制数字中1的个数计数,如对128bit中1的个数进行统计。图中,依据正负符号累加部分对前面的统计结果进行累加(若符号为负,则减)。待784个输入全部处理完毕后,将累加值输出。之后,依据字符加上偏置,得到的就是输入和该字符最终的匹配程度。从公式角度,该模块中的累加值完成了下式:
Figure BDA0002571857750000091
对于BNN模型,累加值加上偏置值b即为最终的匹配程度。以该实施例为例,偏置值b是一个长度为10的向量,分别对应符号0到符号9的偏置。在具体实施时,由于偏置b的计算仅需采样一次伪随机数,因此可以认为b的值是一固定的值。
另外,图3中的伪随机数由随机序列产生模块产生。在同一个时钟周期,所有像素流匹配特定特征模块接收到的伪随机数都是相同的。
如图4所示,是本发明单投票员投票模块获取输入和各字符匹配程度流程示意图。pixel即为输入流,validin为输入流的有效信号。可以看到,输入流从上向下依次灌注于符号0到符号9的特征参数之中。而右侧的totalone即为图3中输出的匹配程度,validout为该输出的有效标志。采用这种方式,好处在于:一,对于输入流,当符号集数目众多时,同时获取所有符号匹配程度,意味着输入流同时输入所有像素流匹配特定特征模块(即图4中pix模块,也即图3),会带来高扇出的风险。采用这种从上往下的“灌注”方式,可以规避这类问题;二,对于输出的匹配程度,由于输入采用“灌注”方式,那么,匹配程度的输出是自上向下,一周期出一个。这对匹配程度的比较而言,方便和简单了不少。三,正是由于采用从上往下的“灌注”方式,在同一时钟周期,每个像素流匹配特定特征模块所对应的像素并非同一位置,如时钟1,像素1进入pix_0,时钟2,像素1进入pix_1,像素2进入pix_0。在这种情况下,虽然同一时钟所有像素流匹配特定特征模块接收到的伪随机数都相同,但它们所对应的像素并非同一位置。反过来说,相同位置的像素,其对应的伪随机数并不相同,因而保证了像素和伪随机数之间的独立性,从而实现模块功能。
另外,输入流交给不同投票员的过程,也采用这种从上往下的“灌注”方式。即,像素1在周期1给投票员1,在周期2给投票员2;像素2在周期1尚未输入,在周期2给投票员1,以此类推。
本发明在手写数字识别例中,流程如下:
(1)输入手写数字图片,转化为28×28大小,各像素点值以灰度值转化为固定位宽(如128bit)的随机计算理论数字,如0.5转化为64个0和64个1的任意一种组合,转化后输入为128bit位宽,长度784的序列。
(2)将输入以类似图4中的“灌注”方式,依次送给不同的投票员,每个投票员可以判定输入和字符0到字符9哪个最为匹配。投票员个数不定,本例中为100。
(3)对于某一投票员来说,会将输入以自上向下“灌注”方式送入不同字符的“匹配模板”(即特征参数),获取输入和所有字符的匹配程度,并比较,将最为匹配的字符输出。
(4)输入和某一特定字符匹配程度的获取方式在说明图3时已详尽说明;
(5)统计所有投票员的投票。由于采用“灌注”方式,投票时投票员不会同时投票。
(6)在最后一个投票员投票之后,将投票结果送入多输入比较模块(本实施例中为10输入比较模块),得到获票数最高的字符。
(7)将获票数最高的字符作为识别结果,输出。
如图5所示,是本实施例中的原始输入图片,分别为字符0到字符9。
如图6所示,是输入字符0时的识别结果。num0表示字符0的获票数,num1表示字符1的获票数,以此类推。图6中,字符0的获票数最高,为100(本实施例中投票员数为100)。输出识别结果num中,表示字符0的bit位拉高,其余拉低,识别正确。输出时validout信号拉高表示有效。
如图7所示,是输入字符8时的识别结果。可以看到,字符8的获票数最高,为84,字符5的获票数10次之,字符4的获票数6再次之。最终输出结果num中,表示字符8的bit位拉高,其余拉低,识别正确。
图2中,所有投票员根据输入流和随机序列产生模块产生的伪随机数对输入流所匹配字符进行投票,产生总投票结果。多输入比较模块对输入的总投票结果进行比较,将获票数最高的字符输出。获票数最高的字符就是匹配结果。
图8是多投票员投票模块的框图。输入流采用“灌注”的方式依次递交给不同的投票员。由于采用“灌注”的方式,投票员不会在同一时钟输出投票结果。其顺序为:投票员0投票、投票员1投票、投票员2投票、……、投票员99投票。在投票员99投票之后,输出总投票结果。
图9是单投票员投票模块的框图。输入流采用“灌注”的方式依次递交给不同的像素流匹配特定特征模块。由于采用“灌注”的方式,每个字符的匹配程度不会在同一时钟输出。其顺序为:输入流和字符0的匹配程度、输入流和字符1的匹配程度、……、输入流和字符9的匹配程度。在输入流和字符9的匹配程度输出之后,经过比较,就可以获得匹配程度最高的字符,将其作为投票结果输出。
图10是对随机序列产生模块的具体描述。右侧是一个二维数组shift,可以看作128层的32位寄存器。每一层的寄存器之间的行为都是相互独立且相同的行为。对第i,0≤i≤127层寄存器,其描述在左侧。clk_now标记的是shift[i]在当前时钟的数值,clk_next标记的是shift[i]在下一时钟的数值,他们之间的计算和转换关系用实线表示。entry是一个128位宽的寄存器,即最终的输出。根据LFSR的特性可知,entry[127-i]的0和1出现概率近似相同,entry中1的个数满足的分布特征为,均值128×0.5=64,方差128×0.5×0.5=32。另外,LFSR的初始种子值是固定的,预先设置固化其中。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。

Claims (10)

1.一种特定字符识别FPGA实现方法,其特征在于,所述特定字符识别FPGA实现方法包括:
将输入图片以先列后行的顺序,将所有像素依次转化为128bit位宽的随机计算理论数字,以像素流的方式输入本装置;
像素流以灌注方式依次递交给不同的投票员,即像素a在时钟b递交给投票员c,在时钟b+1递交给投票员c+1;
对于每个投票员,得到像素流后也以灌注方式依次递交给不同字符0到9的像素流匹配特定特征模块,即像素x在时钟y递交给字符z的像素流匹配特定特征模块,在时钟y+1递交给字符z+1的像素流匹配特定特征模块;
对于每个像素流匹配特定特征模块,将输入像素流和本地存储的特征参数进行比对,输出像素流和特征参数的匹配程度;特征参数因字符不同而不同,即有多少字符,就有多少种像素流匹配特定特征模块;
每个投票员将像素流送入所有字符的像素流匹配特定特征模块,进而获取像素流和所有字符的匹配程度,对匹配程度最高的字符进行投票,输出;
每当一个投票员投票,对应字符得票数加一;在所有投票员投票后,比较所有字符得票数;得票最高者,作为识别结果输出。
2.如权利要求1所述的特定字符识别FPGA实现方法,其特征在于,所述特定字符识别FPGA实现方法对输入流、特征参数向量、伪随机数中,前两者或三者相与后的结果的特定位宽二进制数字中1的个数计数,特征参数有正负,依据符号累加部分对前面的统计结果进行累加,输入全部统计完毕后,将累加值输出,为输入和该字符的匹配程度,最终的匹配程度还需加上偏置值。
3.如权利要求2所述的特定字符识别FPGA实现方法,其特征在于,所述特定字符识别FPGA实现方法包括:
Figure FDA0002571857740000011
对于BNN模型,最终的匹配程度还需加上偏置值b。
4.如权利要求1所述的特定字符识别FPGA实现方法,其特征在于,所述特定字符识别FPGA实现方法中的伪随机数由随机序列产生模块产生,在同一个时钟周期,所有像素流匹配特定特征模块接收到的伪随机数都是相同的。
5.如权利要求1所述的特定字符识别FPGA实现方法,其特征在于,所述特定字符识别FPGA实现方法获取输入和各字符匹配程度包括:输入流从上向下依次灌注于符号0到符号9的特征参数和伪随机数之中;输出的匹配程度,validout为该输出的有效标志。
6.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
将输入图片以先列后行的顺序,将所有像素依次转化为128bit位宽的随机计算理论数字,以像素流的方式输入本装置;
像素流以灌注方式依次递交给不同的投票员,即像素a在时钟b递交给投票员c,在时钟b+1递交给投票员c+1;
对于每个投票员,得到像素流后也以灌注方式依次递交给不同字符0到9的像素流匹配特定特征模块,即像素x在时钟y递交给字符z的像素流匹配特定特征模块,在时钟y+1递交给字符z+1的像素流匹配特定特征模块;
对于每个像素流匹配特定特征模块,将输入像素流和本地存储的特征参数进行比对,输出像素流和特征参数的匹配程度;特征参数因字符不同而不同,即有多少字符,就有多少种像素流匹配特定特征模块;
每个投票员将像素流送入所有字符的像素流匹配特定特征模块,进而获取像素流和所有字符的匹配程度,对匹配程度最高的字符进行投票,输出;
每当一个投票员投票,对应字符得票数加一;在所有投票员投票后,比较所有字符得票数;得票最高者,作为识别结果输出。
7.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
将输入图片以先列后行的顺序,将所有像素依次转化为128bit位宽的随机计算理论数字,以像素流的方式输入本装置;
像素流以灌注方式依次递交给不同的投票员,即像素a在时钟b递交给投票员c,在时钟b+1递交给投票员c+1;
对于每个投票员,得到像素流后也以灌注方式依次递交给不同字符0到9的像素流匹配特定特征模块,即像素x在时钟y递交给字符z的像素流匹配特定特征模块,在时钟y+1递交给字符z+1的像素流匹配特定特征模块;
对于每个像素流匹配特定特征模块,将输入像素流和本地存储的特征参数进行比对,输出像素流和特征参数的匹配程度;特征参数因字符不同而不同,即有多少字符,就有多少种像素流匹配特定特征模块;
每个投票员将像素流送入所有字符的像素流匹配特定特征模块,进而获取像素流和所有字符的匹配程度,对匹配程度最高的字符进行投票,输出;
每当一个投票员投票,对应字符得票数加一;在所有投票员投票后,比较所有字符得票数;得票最高者,作为识别结果输出。
8.一种实施权利要求1~5任意一项所述特定字符识别FPGA实现方法的特定字符识别FPGA实现系统,其特征在于,所述特定字符识别FPGA实现系统包括:
随机序列产生模块,用于产生特定位宽的二进制伪随机数;
计1模块,用于对输入的特定位宽二进制数字中的1的个数进行统计计数;
像素流匹配特定特征模块,用于输入和某特定字符特征参数的比较,输出输入和该特定字符的匹配程度;
单投票员投票模块,用于一个投票员的投票,依据是根据输入和有限特定字符的特征参数得到两者匹配程度,匹配程度高则得票;
多投票员投票模块,用于采用灌注的方式依次递交给不同的投票员,输出总投票结果;
多输入比较模块,用于对输入的多个数字进行比较,输出最大数字所对应下标位置;
投票结果统计模块,用于统计所有投票员的投票选择,并将得票数最高的字符输出。
9.一种图像处理终端,其特征在于,所述图像处理终端搭载有权利要求8所述的特定字符识别FPGA实现系统。
10.一种人工智能控制系统,其特征在于,所述人工智能控制系统搭载有权利要求8所述的特定字符识别FPGA实现系统。
CN202010642055.8A 2020-07-06 2020-07-06 一种特定字符识别fpga实现方法、系统、存储介质及应用 Active CN112001393B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010642055.8A CN112001393B (zh) 2020-07-06 2020-07-06 一种特定字符识别fpga实现方法、系统、存储介质及应用

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010642055.8A CN112001393B (zh) 2020-07-06 2020-07-06 一种特定字符识别fpga实现方法、系统、存储介质及应用

Publications (2)

Publication Number Publication Date
CN112001393A true CN112001393A (zh) 2020-11-27
CN112001393B CN112001393B (zh) 2024-02-02

Family

ID=73467616

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010642055.8A Active CN112001393B (zh) 2020-07-06 2020-07-06 一种特定字符识别fpga实现方法、系统、存储介质及应用

Country Status (1)

Country Link
CN (1) CN112001393B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113516172A (zh) * 2021-05-19 2021-10-19 电子科技大学 基于随机计算贝叶斯神经网络误差注入的图像分类方法
CN113516170A (zh) * 2021-05-19 2021-10-19 电子科技大学 基于贝叶斯神经网络随机加法饱和结构的图像分类方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010191767A (ja) * 2009-02-19 2010-09-02 Mitsubishi Heavy Ind Ltd 文字認識装置及び文字認識方法
US20150213313A1 (en) * 2014-01-30 2015-07-30 Abbyy Development Llc Methods and systems for efficient automated symbol recognition using multiple clusters of symbol patterns
CN106650721A (zh) * 2016-12-28 2017-05-10 吴晓军 一种基于卷积神经网络的工业字符识别方法
CN110866530A (zh) * 2019-11-13 2020-03-06 云南大学 一种字符图像识别方法、装置及电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010191767A (ja) * 2009-02-19 2010-09-02 Mitsubishi Heavy Ind Ltd 文字認識装置及び文字認識方法
US20150213313A1 (en) * 2014-01-30 2015-07-30 Abbyy Development Llc Methods and systems for efficient automated symbol recognition using multiple clusters of symbol patterns
CN106650721A (zh) * 2016-12-28 2017-05-10 吴晓军 一种基于卷积神经网络的工业字符识别方法
CN110866530A (zh) * 2019-11-13 2020-03-06 云南大学 一种字符图像识别方法、装置及电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
胡蝶;侯俊;何晨航;张磊;陈伟朋;: "基于特征匹配与CNN的浮动验证码识别研究", 软件导刊, no. 05 *
高振斌;赵盼;王霞;陈洪波;: "印刷体数字识别系统的FPGA实现", 重庆邮电大学学报(自然科学版), no. 02 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113516172A (zh) * 2021-05-19 2021-10-19 电子科技大学 基于随机计算贝叶斯神经网络误差注入的图像分类方法
CN113516170A (zh) * 2021-05-19 2021-10-19 电子科技大学 基于贝叶斯神经网络随机加法饱和结构的图像分类方法
CN113516172B (zh) * 2021-05-19 2023-05-12 电子科技大学 基于随机计算贝叶斯神经网络误差注入的图像分类方法
CN113516170B (zh) * 2021-05-19 2023-05-23 电子科技大学 基于贝叶斯神经网络随机加法饱和结构的图像分类方法

Also Published As

Publication number Publication date
CN112001393B (zh) 2024-02-02

Similar Documents

Publication Publication Date Title
Vegesna et al. Finger Print Based Smart Voting System
CN101882210B (zh) 矩阵式二维条码解码芯片及其解码方法
Zhai et al. Real‐time optical character recognition on field programmable gate array for automatic number plate recognition system
CN112001393B (zh) 一种特定字符识别fpga实现方法、系统、存储介质及应用
CN109214273A (zh) 人脸图像比对方法、装置、计算机设备及存储介质
US12079691B2 (en) Quantum convolution operator
CN112036292A (zh) 基于神经网络的文字识别方法、装置及可读存储介质
CN111914939A (zh) 识别模糊图像的方法、装置、设备及计算机可读存储介质
US11704543B2 (en) Neural network hardware acceleration with stochastic adaptive resource allocation
CN103310122B (zh) 一种并行随机采样一致方法及其装置
CN110765843A (zh) 人脸验证方法、装置、计算机设备及存储介质
CN112862703B (zh) 基于移动拍照的图像校正方法、装置、电子设备及介质
CN111222558A (zh) 图像处理方法及存储介质
CN110738317A (zh) 基于fpga的可变形卷积网络运算方法、装置和系统
Jang et al. Stochastic computing based ai system for mobile devices
Zhang et al. XNORCONV: CNNs accelerator implemented on FPGA using a hybrid CNNs structure and an inter‐layer pipeline method
Qing et al. An Efficient ConvNet for Text-based CAPTCHA Recognition
Huang et al. An efficient loop tiling framework for convolutional neural network inference accelerators
Song et al. Stochastic Spiking Attention: Accelerating Attention with Stochastic Computing in Spiking Networks
Shi et al. A locality aware convolutional neural networks accelerator
CN201946008U (zh) 矩阵式二维条码解码芯片
Umeo Linear-time recognition of connectivity of binary images on 1-bit inter-cell communication cellular automaton
Wang et al. Binarized neural network based on fpga to realize handwritten digit recognition
CN113343882A (zh) 人群计数方法、装置、电子设备及存储介质
CN116863490B (zh) 面向FeFET存储阵列的数字识别方法及硬件加速器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant