一种基于bp神经网络的pcb板上数字代码识别方法

文档序号:6637709阅读:970来源:国知局
一种基于bp神经网络的pcb板上数字代码识别方法
【专利摘要】本发明涉及图像识别【技术领域】,具体涉及一种基于BP神经网络的PCB板上数字代码识别方法。包括步骤1:采用摄像装置获取PCB板上的图像,并对图像进行灰度化处理,步骤2:将步骤1处理后的图像进行二值化处理,步骤3:对步骤2处理后的图像进行字符定位,步骤4:对步骤3处理后的图像进行特征值增强,步骤5:对步骤4处理后的图像进行字符分割,得到每个字符精确的高度范围,步骤6:对步骤5处理后的所有字符精确的高度范围进行归一化处理,得到各字符的字符特征值,步骤7:对各字符的归一化特征值送到BP神经网络(记忆)训练操作,步骤8:把对字符中字符特征的提取作为已经训练完成的BP神经网络的输入进行识别,将字符特征与已经建立好的特征库进行对比,完成识别的过程,并将结果保存在TXT文本中。
【专利说明】-种基于BP神经网络的PCB板上数字代码识别方法

【技术领域】
[0001] 本发明涉及图像识别【技术领域】,具体涉及一种基于BP神经网络的PCB板上数字代 码识别方法。

【背景技术】
[0002] 在现代生活中,随着移动互联网的飞速发展,现在,在集成电路上的发展速度已经 如摩尔定律预言,越来越多的PCB板上将集成更多的集成电路,这时对于一块普通的PCB板 来说,它集成的信息将越来越多,但是,对于生产PCB板的企业来说,能够更好的控制PCB板 的质量,准确地了解每个PCB的每个信息,这将成为一个新的难题。这时,一种提出能够管 理PCB板的信息的需求油然而生。
[0003] 随着数字图像处理[2]技术的飞速发展和BP神经算法的不断完善,本实施例将探 索一种基于BP神经网络的PCB板上的数字代码识别系统,该系统主要通过对不同PCB板进 行样片采集,对样片分析,通过图像处理技术和BP神经算法,实现对每个PCB板上的数字代 码进行识别,并将识别的代码进行保存下来,通过代码可以很容易的将对应的PCB板的相 关信息取出,这无疑提高了企业的工作效率,为PCB板的企业提供了一个新的解决方案。
[0004] 人工神经网络也被称为神经网络[1],它是一种模拟动物神经网络的行为特征,进 行一种分布式并行地信息处理的算法模型。这种网络依靠着自身复杂的系统,通过不断地 调节内部每个节点之间相互连接的关系,以实现处理信息的要求。人工神经网络对于每次 的输入数据和输出数据会进行相应的分析,通过分析掌握潜在的规律,最终通过这些规律, 推到出输入数据将会产生的输出结果。
[0005] 神经网络的基本组成部分是神经元[5],网络的信息处理主要是由神经元之间的相 互作用来实现;网络的学习和识别取决于每个神经元连接权系的动态演化过程。神经网络 系统试着通过模拟人脑来实现信息处理。神经网络是一个具有高度非线性的超大规模连续 时间电力系统,其最主要特征为连续时间非线性动力学、网络的全局作用、大规模并行分布 处理及高度的鲁棒性和学习联想能力。它实际上是一个超大规模非线性连续时间信息处理 系统,虽然单个神经元的组成和功能极其有限,但大量神经元构成的网络系统,所能实现的 功能,却是极其丰富多彩的神经网络的工作方式由学习期和工作期组成。在学习期,通过一 定的学习规则将两个神经元之间的权值改变,以实现目标函数达到最小的目的;在工作期, 通过在学习期得到的权值,由网络输入得到与之对应的输出。
[0006] 现有技术中对于PCB板上数字代码进行识别的方式目前还没有运用BP神经网络 技术来实现,而PCB板上数字代码由于字体小,数字多,传统方式单靠人眼识别容易出错, 而一般的图像识别方式无法准确快速的识别出数字代码,对于不同光源,亮度的室内环境 也不具备一定的适应性。


【发明内容】

[0007] 解决上述技术问题,本发明提供了一种基于BP神经网络的PCB板上数字代码识别 方法,
[0008] 为了达到上述目的,本发明所采用的技术方案是,一种基于BP神经网络的PCB板 上数字代码识别方法,包括以下步骤:
[0009] 步骤1 :采用摄像装置获取PCB板上的图像,并对图像进行灰度化处理,
[0010] 步骤2 :将步骤1处理后的图像进行二值化处理,
[0011] 步骤3 :对步骤2处理后的图像进行字符定位,
[0012] 步骤4 :对步骤3处理后的图像进行特征值增强,
[0013] 步骤5 :对步骤4处理后的图像进行字符分割,得到每个字符精确的高度范围,
[0014] 步骤6 :对步骤5处理后的所有字符精确的高度范围进行归一化处理,得到各字符 的字符特征值,
[0015] 步骤7 :对各字符的归一化特征值送到BP神经网络(记忆)训练操作,
[0016] 步骤8 :把对字符中字符特征的提取作为已经训练完成的BP神经网络的输入进行 识别,将字符特征与已经建立好的特征库进行对比,完成识别的过程,并将结果保存在TXT 文本中。
[0017] 进一步的,所述步骤1中采用加权平均法对图像的RGB三分量进行灰度值计算,计 算公式如下:
[0018] (i, j) = 0. 30R(i, j)+0. 59G(i, j)+0. llB(i, j)) 〇
[0019] 进一步的,所述步骤2中采用全局阀值法,通过调用0penCV[3]库中cvThreshold函 数得到二值化图像[3]。
[0020] 进一步的,所述步骤3中采用水平投影和垂直投影相结合的方法定位出字符的位 置,在水平投影定位中,一开始通过由下向上扫描。对图像的像素向着水平方向产生一个图 像的投影分步,字符位置对应投影的某个峰值,波峰的宽度区域对应了字符所在的水平位 置,拖尸对每个波峰检测,当测定高度同字符投影高度接近,就认为为是字符的上下边界, 从而获得它的水平位置,在垂直投影定位中,不同于水平投影定位的是,它做的首先是对图 像做垂直方向上的投影,通过水平的投影从左向右扫描,当超过某种跳变,就认为是字符区 域,若扫描的宽度符合字符的宽高比,就认为是字符的垂直区域,通过两种扫描区域的交 汇,从而的到字符在图像里的位置。
[0021] 进一步的,所述步骤4中,采用两种方法实现该技术:空间域法或频率域法[6],空 间域法的具体操作是通过调用OpenCV库中cvCanny函数得到特征值增强的图像。
[0022] 进一步的,所述步骤5具体包括以下步骤:
[0023] 步骤51 :先对图像进行一个自上向下的逐行扫描,当扫描遇到第一个黑点的像素 时,记录下来,然后再对图像进行一次由上向下逐行扫描直到找到第一个黑色象素,确定图 像的高度范围,
[0024] 步骤52 :在高度范围之内,再对图像自左向右地逐列进行扫描,扫描到的第一个 黑色象素作为字符分割的起始位置,记录下来,同时继续扫描,直到扫描到有一列中没有黑 色象素,就认为完成了字符分割,接着重复上面步骤52,直到扫描到了图像的最右端,得到 每个字符的准确的宽度范围,
[0025] 步骤53 :在上述每个字符的准确的宽度范围内,重复步骤51,分别进行自上而下 和自下而上的逐行扫描来获取每个字符精确的高度范围。
[0026] 进一步的,所述步骤6具体包括以下步骤:
[0027] 步骤61 :图像预处理,选择合适的阀值,使其既能去除干扰项,并将字符图像突 出,
[0028] 步骤62 :倾斜校正,使用Hough变换法对倾斜的图像进行校正,使其尽可能处于同 一水平位置,
[0029] 步骤63 :分割字符,通过垂直投影法将所需字符从目标区分离出来,
[0030] 步骤64 :归一化缩排,归一化是将每一个分割下来的字符拉伸为用有统一高度和 宽度的矩形,而缩排是将这些等大小的字符缩小并排列。
[0031] 进一步的,所述步骤7包括以下步骤:
[0032] 步骤71 :设置变量和参数,其中包括训练样本,权值矩阵,学习速率,
[0033] 步骤72 :初始化,给每个权值矩阵分配一个较小的随机非零向量[10],
[0034] 步骤73 :输入随机样本,
[0035] 步骤74 :对输入样本,前向计算BP神经网络每层神经元的输入信号和输入信号,
[0036] 步骤75 :通过时间输出和期望输出求出误差。用来判断是否满足要求,如满足要 求转步骤78 ;不满足则跳转76,
[0037] 步骤76 :判断是否达到了最大的迭代次数,如果达到,转步骤78 ;否则反向计算每 层神经元的局部梯度[11],
[0038] 步骤77 :根据局部梯度进行修正各个矩阵间的权值,
[0039] 步骤78 :判断是否训练完所有的样本,是则结束,否则转步骤73。
[0040] 更进一步的,所述最大的迭代次数为10000次。
[0041] 本发明通过采用上述技术方案,与现有技术相比,具有如下优点:通过本发明的方 法,对于不同环境下取得的PCB板样片,能很好的将字符信息清晰识别并保存下来。本发明 能够将字体小,数字多的PCB板上数字代码准确快速地识别出来,对于不同光源,亮度的室 内环境也具备一定的适应性。

【专利附图】

【附图说明】
[0042] 图1是现有技术中的人工神经元模型图。
[0043] 图2是现有技术中的BP神经元模型图。
[0044] 图3是现有技术中的BP神经网络图。
[0045] 图4a、图4b是本发明的实施例的图像的灰度化前后效果对比图。
[0046] 图5a、图5b是本发明的实施例的图像的二值化前后效果对比图。
[0047] 图6a、图6b是本发明的实施例的图像的定位前后效果对比图。
[0048] 图7a、图7b是本发明的实施例的图像的增强前后效果对比图。
[0049] 图8是本发明的实施例的图像分割后的效果图。
[0050] 图9是本发明的实施例的图像归一化后的效果图。
[0051] 图10是本发明的实施例的数字代码识别过程示意图。
[0052] 图11是本发明的实施例的图像预处理流程示意图。
[0053] 图12是本发明的实施例的BP神经网路算法的流程图。

【具体实施方式】
[0054] 现结合附图和【具体实施方式】对本发明进一步说明。
[0055] 作为一个具体的实施例,如图10和图11所示,本发明的一种基于BP神经网络的 PCB板上数字代码识别方法,其主要包括PCB板样片的图像预处理,对处理后的图像进行字 符训练,对训练后的字符进行字符识别,再进行存储,具体的方法流程包括以下步骤:
[0056] 步骤1 :采用摄像装置获取PCB板上的图像,并对图像进行灰度化处理,
[0057] 步骤2 :将步骤1处理后的图像进行二值化处理,
[0058] 步骤3 :对步骤2处理后的图像进行字符定位,
[0059] 步骤4 :对步骤3处理后的图像进行特征值增强,
[0060] 步骤5 :对步骤4处理后的图像进行字符分割,得到每个字符精确的高度范围, [0061] 步骤6 :对步骤5处理后的所有字符精确的高度范围进行归一化处理,得到各字符 的字符特征值,
[0062] 步骤7 :对各字符的归一化特征值送到BP神经网络训练操作,
[0063] 步骤8 :把对字符中字符特征的提取作为已经训练完成的BP神经网络的输入进行 识别,将字符特征与已经建立好的特征库进行对比,完成识别的过程,并将结果保存在TXT 文本中。
[0064] 本实施例中,所述步骤1中在RGB模型中,当满足R = G = B时,贝U彩色图像会表现 为一种灰度图像,这时的R = G = B的值叫灰度值。一班灰度的范围在0到255之间。且 只要使用一个自己存储灰度值即可[2]。灰度的方法有:分量法,最大值法,平均值法,加权平 均法。这里,选择的为加权平均法,他主要将三个分量以不同的权值进行加权平均所得。由 于人的眼睛在看图像的时候,对绿色更为敏感,对蓝色感觉最低。所以,采用加权平均法对 图像的RGB三分量进行灰度值计算能够得到较为合理的灰度图像,计算公式如下:
[0065] (i,j) = 0· 30R(i,j)+0. 59G(i,j)+0. llB(i,j))。灰度化前后实现效果参考图 4a 和图4b所示。
[0066] 本实施例中,所述步骤2中,对图像灰度化,如果直接去提取字符特征,一般很困 难,这就需要进一步将图像变为黑白的二色图像。这就是图像的二值化了。图像二值化的 最终目的是为了得到一张字符和背景分离开来的图像。一般二值化方法是通过将各个像素 灰度值与同一个阀值比较,如果像素的灰度值小于阀值,则将该值取'〇'(即黑色),否则 为'255'(即白色)。所以二值化的关键是选取一个合理的阀值。阀值的选取方法有:全 局阈值法、局部阈值法和动态阈值法。本实施例采用全局阀值法,通过调用〇penCV [3]库中 cvThreshold函数得到二值化图像[3]。二值化前后实现效果如图5a和图5b所示。
[0067] 本实施例中,所述步骤3中采用水平投影和垂直投影相结合的方法定位出字符的 位置,在水平投影定位中,一开始通过由下向上扫描。对图像的像素向着水平方向产生一 个图像的投影分步,字符位置对应投影的某个峰值,波峰的宽度区域对应了字符所在的水 平位置,拖尸对每个波峰检测,当测定高度同字符投影高度接近,就认为为是字符的上下边 界,从而获得它的水平位置,在垂直投影定位中,不同于水平投影定位的是,它做的首先是 对图像做垂直方向上的投影,通过水平的投影从左向右扫描,当超过某种跳变,就认为是字 符区域,若扫描的宽度符合字符的宽高比,就认为是字符的垂直区域,通过两种扫描区域的 交汇,从而的到字符在图像里的位置。图像定位前后效果如图6a和图6b所示。
[0068] 本实施例中,所述步骤4中,采用两种方法实现该技术:空间域法和频率域法[6], 具体操作是通过调用OpenCV库中cvCanny函数得到特征值增强的图像。特征值增强前后 效果如图7a和图7b所示。
[0069] 本实施例中,一般得到的图像中会包含多个数字,识别过程是通过字符的特征来 进行判断,所以为了能识别各个数字而不产生混淆,必须要把字符先分割出来。所述步骤5 具体包括以下步骤:
[0070] 步骤51 :先对图像进行一个自上向下的逐行扫描,当扫描遇到第一个黑点的像素 时,记录下来,然后再对图像进行一次由上向下逐行扫描直到找到第一个黑色象素,确定图 像的高度范围,
[0071] 步骤52 :在高度范围之内,再对图像自左向右地逐列进行扫描,扫描到的第一个 黑色象素作为字符分割的起始位置,记录下来,同时继续扫描,直到扫描到有一列中没有黑 色象素,就认为完成了字符分割,接着重复上面步骤52,直到扫描到了图像的最右端,得到 每个字符的准确的宽度范围,
[0072] 步骤53 :在上述每个字符的准确的宽度范围内,重复步骤51,分别进行自上而下 和自下而上的逐行扫描来获取每个字符精确的高度范围。字符分割效果如图8所示。
[0073] 所述步骤6具体包括以下步骤:
[0074] 步骤61 :图像预处理,选择合适的阀值,使其既能去除干扰项,并将字符图像突 出,在本实施例中,所做的灰度化与二值化方法一样。在图像上,可以明显的看到有蓝色的 记号。通过此次预处理已达到去除干扰同时尽可能保留字符信息。
[0075] 由RGB图像构成方法可以知道黑色是当R = B = G = 0时的颜色,越接近这个数 值,我们所看到的越黑。通过RGB的组合产生不同的颜色,因此为了能在二值化时将黑色的 字符从其他颜色分离出来,在灰度化时选择可以将灰度值提高的方法,所以选择使用最大 值法来进行灰度化处理。
[0076] 经灰度化处理之后的图像尽管有效的将字符的灰度值与其余部位的灰度值分开, 但仍不能选择太低,因为字符的灰度值并非为〇,而是较为接近而已。选择合适的阀值,使其 既能去除干扰项又能将字符图像出来。
[0077] 步骤62 :倾斜校正,使用Hough变换法对倾斜的图像进行校正,使其尽可能处于同 一水平位置,由于拍摄角度的原因经常会使我们得到的图像有一定的倾斜,为了能更好的 分割字符,便要对倾斜的图像进行校正,使其尽可能处于同一水平位置。对于图像的倾斜校 正有Hough变换法、Radon变化法、最小乘法、两点法等多种方法。Hough变化法与Radon变 换法相似,二者都有着较强的抗干扰性,但也同时有着较大的运算量,处理时间较长。
[0078] 使用Hough变换的直线的基本策略是在图像中检测到的边缘点在成像空间中计 算一个参考点在参数空间中的可能轨迹,并计算,给出了一个累加器的引用计数,最后选择 的峰值。霍夫变换是本质上是一个表决的机制,在参数空间中的离散点进行投票,如果投票 值超过某一阈值,则是有足够数量的图像点在于由参数点的直线上。此方法受噪声和线路 中断。
[0079] 在图像上有着一条将上下字符分开的边线,我们可以选取该部分以减小计算量, 通过计算获取斜率,并调整。
[0080] 步骤63 :分割字符,通过垂直投影法将所需字符从目标区分离出来,图像的分割 技术作为一项在数字图像处理领域中的重要技术,在各方面的研究与实践中备受重视。当 我们在研究一张图片时时常会对上面某一些区域比较感兴趣,而这部分区域则被我们称作 目标区域,其余的部分则是用来衬托这部分区域的背景。图像分割技术既是将我们所感兴 趣的区域从背景中分离出来的方法。
[0081] 字符分割技术是既是指将所需字符从目标区分离出来的技术。字符分割的准确度 将会直接影响到接下来字符识别环节,因此有许多人开始对此进行研究,取得了大量的字 符分割方法。像是先进行分段,然后通过使用Hough变换拟合直线的水平分割方法基于先 验知识约束的垂直分割方法[6],基于垂直投影特征值的分割方法[7],基于类间方差字符 分割的模板匹配算法[8],基于聚类分析的字符分割方法[9],基于最小面积法进行的字符 分割[10]。
[0082] 通过上面的算法可以有效的进行字符分割,但是在环境、预处理等影响下或多或 少会有不同程度的噪音,对字符正确的分区有很大的影响,使得分割字符时可能存在粘连, 断裂等情况,因此分割技术的进一步改进是必要的。
[0083] 对于字符分割同时也是对图像分割而言,最重要的就是找到目标区域所独有的特 征。就本次实验的字符而言,是由a?z26个字母和0?910个阿拉伯数字组成的。从已 定位分离出来的区域来看,主要的干扰因素就是字符框,但这对每一个字符都是一样的。因 此,我们可以通过有没有目标像素点即二值化后灰度值为〇的点,目标像素点的多少及其 排列规律来找出每一个字符的位置。
[0084] 字符分割往往是通过垂直投影来实现的。字符块在垂直方向上的投影是不可避免 的字符间距或字符的一个局部最小值处的间隙内,正确的分割位置的应该位于在上面的局 部极小值的临近位置,这个位置应该会付和字符的格式,大小限制和其他一些条件。在理论 上在使用垂直投影可以有效的分割字符。
[0085] 在本次设计中由于字符区域有着上下两部分,且这两部分是等高的,因此我们进 行两次水平扫描。先对上半部分进行垂直投影,进行其跳变次数的判断,由于字符所在区域 会引起比无字符区域更多次跳变当检测的次数超过一定的次数时,可以认为这是字符所在 区,可以确定其左边界。继续向后作当跳变次数低于一定数量时则可以认为字符宽度到此, 确定其右边界。
[0086] 当确定了一个字符的左右边界后,便可以开始其上下边界的确认。对这个字符以 其左右边界范围内作水平投影,判断其在这个投影上是否有像素值为0的点即黑点,设置 一个数组a□,将a□中元素全部初始化为0,由上到下依次对水平投影进行判断,若有黑点 则将a□的相应位置设为1。全部扫描结束时,对a□中的数值进行判断,若a□中'1'连 续个数超过一定数目时,则可以认为这是字符的所属范围。因此,可以确定字符的顶部与底 部。
[0087] 同理继续向后作垂直投影得到上半部分的全部字符,接着进行下半部分的垂直投 影。方法与上半部分一样。因此我们便可以的到全部字符。
[0088] 步骤64 :归一化缩排,归一化是将每一个分割下来的字符拉伸为用有统一高度和 宽度的矩形,而缩排是将这些等大小的字符缩小并排列。在完成字符分割之后不能马上进 行字符特征提取。在前一步骤中,所分割出来的字符大小不一,位置不定,无法使用同一的 特征提取方法。因此,在这里介绍一下有关归一化的概念,和缩排的方法。
[0089] 这里所说归一化是指将每一个分割下来的字符拉伸为用有统一高度和宽度的矩 形,而缩排是将这些等大小的字符缩小并排列。通过这些变化方便特征的提取和提高识别 的准确率。
[0090] 这次设计中,我们同样使用OpenCV所提供的函数来实现图像的归一化缩排。将每 一个字符重新变化为6 X 7大小的矩形。归一化后的效果如图9所示。
[0091] 本实施例中,对BP神经算法实现过程的描述之前,首先对神经网络中的神经元模 型,BP神经元模型,前馈型神经网络结构等模型结构作出详细介绍。
[0092] 1、人工神经网络概述
[0093] 人工神经网络也被称为神经网络[1],它是一种模拟动物神经网络的行为特征,进 行一种分布式并行地信息处理的算法模型。这种网络依靠着自身复杂的系统,通过不断地 调节内部每个节点之间相互连接的关系,以实现处理信息的要求。人工神经网络对于每次 的输入数据和输出数据会进行相应的分析,通过分析掌握潜在的规律,最终通过这些规律, 推到出输入数据将会产生的输出结果。
[0094] 神经网络的基本组成部分是神经元[5],网络的信息处理主要是由神经元之间的相 互作用来实现;网络的学习和识别取决于每个神经元连接权系的动态演化过程。神经网络 系统试着通过模拟人脑来实现信息处理。神经网络是一个具有高度非线性的超大规模连续 时间电力系统,其最主要特征为连续时间非线性动力学、网络的全局作用、大规模并行分布 处理及高度的鲁棒性和学习联想能力。它实际上是一个超大规模非线性连续时间信息处理 系统,虽然单个神经元的组成和功能极其有限,但大量神经元构成的网络系统,所能实现的 功能,却是极其丰富多彩的
[0095] 神经网络的工作方式由学习期和工作期组成。在学习期,通过一定的学习规则将
[0096] 两个神经元之间的权值改变,以实现目标函数达到最小的目的;在工作期,通过在 学习期得到的权值,由网络输入得到与之对应的输出。
[0097] 在神经网络的分类上,一般有:前馈网络模型、反馈网络模型、自组织网络模型与 随机型网络模型四种模型
[0098] 2、人工神经元模型
[0099] 人工神经元是人工神经网络操作的基本信息处理单位。人工神经元的模型如图1 所示,它是人工神经网络的设计基础。一般神经元是一个多输入和多输出的非线性元器件, 它除了受到输入信号的影响之外,也受到神经元内部其它因素影响,所以在神经元的模型 当中,还会加入一个阀值,如图1所示。从图1中,可得到的数学表达式为 m
[0100] uk = Y, wik xi tr (2-1)
[0101] yk = f (uk+bk) (2-2)
[0102] 图中,f(·)为激活函数。
[0103] 3、神经网络的学习
[0104] 神经网络是由一系列神经元组成的。在讨论神经网络的行为之前,有必要讨论单 个神经元的学习行为。
[0105] 先分析一下神经元对单个样本(X,d)的学习。先假定:
[0106] 当前权矢量:w = (W1, W2,…,wn, θ )τ
[0107] 样本输入:x = (X1, x2, ···,xn, -I)τ
[0108] 样本输出:d
[0109] 学习的核心内容是确定权值变化量Aw(t),使得
[0110] w (t+1) = w ⑴ + η Δ w ⑴
[0111] 下面介绍2个人工神经网络的学习规则:
[0112] l)Hebb学习规则[8]:是D.O. Hebb根据生物学中条件反射的机理。其主要内容是: 当两个神经元都处于一种兴奋状态的时候,同这两个神经元相连的权值将得到加强。
[0113] Awij= δ ViVj
[0114] 在上式中δ表示学习效率[7],Vi,Vj分别表示神经元i和神经j的激活值, Wij表 示了连接权值的变化
[0115] 2) δ学习规则:
[0116] 也被称为误差校正规则或者剃度方法,BP神经网络算法是它一种。
[0117] Acoij= a SiVj (2-1)
[0118] Si= Fiyi-yt) (2-2)
[0119] 上式中,Λ Wij是权值的改变值,α为学习效率,Vi表示当前神经元的兴奋值,δ 是实际输出与期望输出的偏差值。
[0120] BP (Back Propagation)网络[9]是 1986 年由 Rumelhart 和 McCelland 为首的科学 家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网 络模型之一。它的基本思想为:设置好一个调整精度和学习次数后,输入学习样本,使用反 向传播算法不断地对网络的权值和绝对偏差值进行反复的调整训练,直到偏差值与调整精 度尽可能的接近,或者达到了规定的学习次数为止,这时保存网络的权值和偏差。
[0121] 图2给出一个基本的BP神经元模型,它有n个输入,每个输入都通过一个适当的 权值w和下一层相连,网络输出可表不为
[0122] 神经元输入:x = (X1, X2, · · ·,xn)T
[0123] 可调权值:w = (W1, W2,…,wn)τ
[0124] 偏移或阈值:Θ [0125]基函数:u(·)
[0126] 激活函数:f(·)
[0127] 前馈型神经网络结构
[0128] 前馈型网络通常有一个或者多个隐层,隐层中的神经元采用S型传递函数,输出 层的神经元采用线性传递函数 [7]。图3就是一个典型的三层BP网络结构,
[0129] BP神经网络算法
[0130] BP神经网络算法的实现分为两个部分,学习(训练)过程和识别过程。这里,学 习过程又包含了正向传播和反向传播。学习过程的目的是为了调整网络的连接权值 [6],使 得该网络达到一定的目标,为识别过程提供了一个对任意一个输入都能尽可能逼近期望输 出的环境。
[0131] 在下面推导中,我们用71表示神经网络输出;^表示神经网络实际输入吨表示神 经网络的期望输出;Wijk表示第i层第j个神经元到第i+1层第k个神经元连接权值;Oij表 示第i层第j个神经元输出;Θ ij表示第i层第j个神经元阈值;Iietij表示第i层第j个 神经元总输入;队表示第i层神经元节点数。
[0132] I. BP神经网络的前向传播计算公式

【权利要求】
1. 一种基于BP神经网络的PCB板上数字代码识别方法,其特征在于:包括W下步骤: 步骤1 ;采用摄像装置获取PCB板上的图像,并对图像进行灰度化处理, 步骤2 ;将步骤1处理后的图像进行二值化处理, 步骤3 ;对步骤2处理后的图像进行字符定位, 步骤4 ;对步骤3处理后的图像进行特征值增强, 步骤5 ;对步骤4处理后的图像进行字符分割,得到每个字符精确的高度范围, 步骤6 ;对步骤5处理后的所有字符精确的高度范围进行归一化处理,得到各字符的字 符特征值, 步骤7 ;对各字符的归一化特征值送到BP神经网络训练操作, 步骤8 ;把对字符中字符特征的提取作为已经训练完成的BP神经网络的输入进行识 另IJ,将字符特征与已经建立好的特征库进行对比,完成识别的过程,并将结果保存在TXT文 本中。
2. 根据权利要求1所述的一种基于BP神经网络的PCB板上数字代码识别方法,其特征 在于:所述步骤1中采用加权平均法对图像的RGB H分量进行灰度值计算,计算公式如下: (i,j) = 0. 30R(i,j)+0. 59G(i,j)+0. llB(i,j))。
3. 根据权利要求1所述的一种基于BP神经网络的PCB板上数字代码识别方法,其特征 在于;所述步骤2中采用全局阀值法,通过调用化enCV库中CV化reshold函数得到二值化 图像。
4. 根据权利要求1所述的一种基于BP神经网络的PCB板上数字代码识别方法,其特征 在于:所述步骤3中采用水平投影和垂直投影相结合的方法定位出字符的位置。
5. 根据权利要求1所述的一种基于BP神经网络的PCB板上数字代码识别方法,其特征 在于:所述步骤4中,采用两种方法实现该技术;空间域法或频率域法得到特征值增强的图 像。
6. 根据权利要求1所述的一种基于BP神经网络的PCB板上数字代码识别方法,其特征 在于:所述步骤5具体包括W下步骤: 步骤51 ;先对图像进行一个自上向下的逐行扫描,当扫描遇到第一个黑点的像素时, 记录下来,然后再对图像进行一次由上向下逐行扫描直到找到第一个黑色象素,确定图像 的高度范围, 步骤52;在高度范围之内,再对图像自左向右地逐列进行扫描,扫描到的第一个黑色 象素作为字符分割的起始位置,记录下来,同时继续扫描,直到扫描到有一列中没有黑色象 素,就认为完成了字符分割,接着重复上面步骤52,直到扫描到了图像的最右端,得到每个 字符的准确的宽度范围, 步骤53 ;在上述每个字符的准确的宽度范围内,重复步骤51,分别进行自上而下和自 下而上的逐行扫描来获取每个字符精确的高度范围。
7. 根据权利要求1所述的一种基于BP神经网络的PCB板上数字代码识别方法,其特征 在于:所述步骤6具体包括: 步骤61 ;图像预处理,选择合适的阀值,使其既能去除干扰项,并将字符图像突出, 步骤62 ;倾斜校正,使用化U曲变换法对倾斜的图像进行校正,使其尽可能处于同一水 平位置, 步骤63 ;分割字符,通过垂直投影法将所需字符从目标区分离出来, 步骤64 ;归一化缩排,归一化是将每一个分割下来的字符拉伸为用有统一高度和宽度 的矩形,而缩排是将该些等大小的字符缩小并排列。
8. 根据权利要求1所述的一种基于BP神经网络的PCB板上数字代码识别方法,其特征 在于;所述步骤7包括W下步骤: 步骤71 ;设置变量和参数,其中包括训练样本,权值矩阵,学习速率, 步骤72 ;初始化,给每个权值矩阵分配一个较小的随机非零向量, 步骤73 ;输入随机样本, 步骤74 ;对输入样本,前向计算BP神经网络每层神经元的输入信号和输入信号, 步骤75 ;通过时间输出和期望输出求出误差。用来判断是否满足要求,如满足要求转 步骤78 ;不满足则跳转76, 步骤76 ;判断是否达到了最大的迭代次数,如果达到,转步骤78 ;否则反向计算每层神 经元的局部梯度, 步骤77 ;根据局部梯度进行修正各个矩阵间的权值, 步骤78 ;判断是否训练完所有的样本,是则结束,否则转步骤73。
9. 根据权利要求8所述的一种基于BP神经网络的PCB板上数字代码识别方法,其特征 在于;所述最大的迭代次数为10000次。
【文档编号】G06K9/62GK104463209SQ201410743166
【公开日】2015年3月25日 申请日期:2014年12月8日 优先权日:2014年12月8日
【发明者】温玄, 陈旭辉, 黄启焜 申请人:厦门理工学院, 福建坤华仪自动化仪器仪表有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1