点状地图符号的神经网络识别

  • 格式:pdf
  • 大小:274.41 KB
  • 文档页数:4

© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net第31卷第1期2006年1月测绘科学

ScienceofSurveyingandMappingVol131No11

Jan

收稿日期:2005Ο03Ο17

基金项目:国家863计划(遥感数据处理软件)(2003AA135010)点状地图符号的神经网络识别

何孝莹①,宋伟东①,韩颜顺①②

(①辽宁工程技术大学,辽宁阜新 123000;②中国测绘科学研究院,北京 100039)

【摘 要】基于神经网络的点状地图符号自动识别研究,设计了点状符号识别流程。采用四层BP网络模型,通过

参数设置及输入输出设计优化网络,通过数据格式分析及内存调整优化程序,在程序实现过程中反复试验,总结

出了参数的变化规律,实现了点状符号的简单、快速识别。

【关键词】点状符号;网络模型;参数调整

【中图分类号】P208 【文献标识码】A 【文章编号】1009Ο2307(2006)01Ο0125Ο03

1 引 言

点状地图符号识别属于模式识别的范畴。通常模式识别根据研究方法的不同,可分为统计法、结构法、模板匹配法、人工智能法、神经网络法,还有专门针对图形图像

处理的线划跟踪法、数学形态学法等[1]。在实际构造识别系统既可单独使用某种方法,也可各种方法综合使用以达到更好的效果。利用神经网络进行点状地图符号识别是对人的视觉识别的一种模拟,但是它不同于以形状分析为主的识别方法,其研究内容侧重于模仿人脑中神经元的信息加工行为及其互联机制,并基本上采用一种非语言、非逻辑的信息处理方式。由于神经网络的强分类和联想功能及非凡的自适应、自组织、自学习、容错能力,对于扫描地图上相互粘连、相互压盖、不完整及变形和噪声等因素影响的符号具有很好的识别效果,而这些符号用常规法等很难达到满意的识

别精度[2]。采用神经网络识别可直接输入符号的点阵,这就避免了符号识别中最困难的特征提取问题,并且点阵能最大程度代表符号,避免了符号由特征代表时的各种损失。同时由于神经网络的并行处理及自适应调整网络权值,它的识别速度快。神经网络的不同算法中,应用和研究最多的是反向传播人工神经网络模型(BP),本文即以此网络模型进行点状地图符号识别的研究。

2 点状地图符号BP网络识别的总体设计

下面是利用BP网络进行点状地图符号识别的设计流程图:

图1 识别流程

3 网络模型分析及网络构建

采用多层BP网络,节点作用函数选择S型函数,其表达式如下:

f(neti)=1

1+e-netiQ0(1) Q0代表神经元的温度,温度越高,sigmoid函数变化越平缓,温度对收敛性和收敛速度的影响非常大,对于不同的输入节点,温度的要求各不同,没有现有的规律可循。因此本文的一个重点就是如何对现有问题找到一个合适的温度参数。

图2 sigmoid函数

网络误差采用均方差:

Ep=12∑n

j=1(tpj-opj)2(2)

式中Ep是第p个样本的误差,tpj是第j个输出神经元的期望值,Opj是第j个输出神经元的实际值,网络的权沿Ep的梯度方向下降,权值改正的微分方程为:Δwji=ηδpjopj(3) 其中,η为学习速率,严格梯度减小搜索需要无穷小的步长,η越大,权wji的变化越大。显然,η越大,学习速度越快,但另一个方面,η过大会引起振荡。δpj为L层神经元j的误差信号,Opi为L-1层神经元的输出。误差信号δpj可表示为:对输出的神经元:δpj=(tpj-opj)opj(1-opj)(4)

对隐含层神经元:δpj=opj(1-opj)∑

kδpkwkj(5)

Opi为L-1层神经元的输出,Opj为L层神经元的输出,δpk代表L+1层神经元k的误差信号。通常在(3)中加入动量项加快网络收敛速率,改善网络性能,防止局部极小。动量项考虑了过去权值变化的影响,通过滤掉高频变量,动量项能使权值空间的误差表面

平滑[3]。当加入动量项a时,权值由下式调整:Δwji(n+1)=ηδpjopi+aΔwjin(6) 通过以上网络设置,在此构建4层(输入、两隐含层、输出)BP网络,输入层根据符号大小定为1600个节点(后面将会解释原因),即对应40×40点阵的点状符号图像,由于输入层很大,隐含层节点数不过多,否则权值量过大,权值调整缓慢,输出层是要重点讲述的。对于输出层,常规方

© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net法是有多少样本,就有多少输出节点。如果样本比较多,输出节点数大,每个样本输出间都有非常大的跳跃,权值在很多输出间来回调整,致使权值改正缓慢。因此在此减少了输出神经元的个数,采用二进制输出,输出8个节点,对于8

个节点能表达28=256个样本,对此次训练已足够了。NumLayers=4;LayerSize[0]=40×40;LayerSize[1]=40×8;LayerSize[2]=40;LayerSize[3]=8;实验证明,对于选择的训练样本,在同样的网络设置下,没调整输出前收敛时间为9′48″,调整后为5′57″,见下表:

表1 输出调整前后

类别样本数温度学习速率内存分配收敛时间

调整前207℃1堆内存方式9′48″

调整后207℃1堆内存方式5′57″

4 样本分析及数据获取

很自然,针对点状地图符号识别来说网络的输入模式有两种选择,一种是特征输入;一种是直接输入符号的图像点阵。基于特征输入的神经网络分类器,抽取特征方法的实质是信息压缩,它具有与传统方法同样的分类效果,但是它的分类能力过分依赖于特征的抽取,对于符号不完整、有噪声、被污染等原因而不易识别的点状地图符号这样复杂的问题,有效的特征抽取是很困难的。在此充分利用神经网络的优势,采用了直接输入象素点阵的神经网络分类器,点阵输入包含了一个点状地图符号的全部特征。虽然点阵输入的数据量大,但它更接近于人的视觉及大脑对符号图像感知的真实情况。要识别的地图点状符号来自大比例尺(1∶500、1∶1000)地形图扫描灰度影像,扫描分辨率为200dpi。训练选取20个标准符号,针对扫描图上符号受噪声污染的情况,每个符号有五种变形,由于大比例尺地形图上点状符号的最大尺寸为

4mm[4],按扫描分辨率换算成像素,最大符号为40×40像素,因此网络的训练样本选40×40像素的标准符号,即输入神经元数为40×40=1600个。首先给出40×40像素的256色符号作为样本,样本也可选二值的,这样训练输入更简单,但识别前必须对扫描地形图二值化,造成信息丢失影响识别效果,所以在此直接将训练样本选为灰度的。如何将40×40像素的灰度图像信息传递给输入神经

元,现有的方法一般都是通过VC中DIB类[5],利用API函数获取图像的文件头信息,包括文件格式、大小、调色板等信息,最后获取图像的灰度信息,然后将灰度信息装入一个大的二维数组,再给数组值赋给输入神经元。此过程繁琐、复杂并要求每一行的存储字节数必须是4的倍数,而且获取的文件头信息对神经元输入没有任何意义,输入节点只需像素值信息即可,并且此类方法只对BMP格式的图像有效,对于其他格式的图像需另行寻找方法,因此在这里采取一种简单有效的方法。首先利用16进制文本编辑器对样本图像进行分析,如图:

图3 图像格式

通过分析得知前1078字节为图像文件头信息,对我们没有用处,可跳过,从1079字节为图像信息,对于灰度图像1像素刚好占用1字节,因此读取的字节数正好是像素数(对行字节数不为4的倍数的图像可按其规律跳读),定义一个BYTE型的指针pPatt指向这块内存,一个样本的像素值就可如此简单地获取了。对于二值图像,读取一个字节后利用位与操作即可获得8个像素信息,其他格式同理。对20个训练样本及每个符号的五种变形定义一个CArray数组存储,这样样本的存取非常方便

,获取的像素值就是神经元的输入源。由于节点采用二值输入,在将pPatt指针中的值赋给输入节点指针pNeuron时进行一次二值化操作,由于此时二值化是对单个符号而不是对整张扫描地图,因此信息损失很小,不影响识别。对于小于阈值的像素i,pNeuron[i]=0,反之取1。如输入神经元为1值的太多而导致网络不收敛或收敛速度很慢,可反向赋值,即原先为1值的赋0,反之亦然。

5 内存管理

对于20个40×40像素的训练样本,网络的输入量已很大,再加上噪声训练,输入量就更大了。对神经元、权值如按常规的静态数组存储,神经元数组、权值数组将会大量占用栈内存,导致计算机运行速度缓慢,很长时间才能收敛。在此,采用堆内存动态分配内存的方法,如下:pNeuron=newdouble3[MAXLAYERS];deletepNeuron;此法大大地减少了内存占用量,极大地提高了收敛速度。实验证明,对于选择的训练样本,在同样的网络参数下,常规方法需50多分钟才能收敛,改进后9分多钟就收敛了,见下表:

表2 内存分配方式调整前后

类别样本数温度学习速率收敛时间

调整前207℃150′42″

调整后207℃19′48″

还有减少内存占用的一点就是采用稀疏矩阵存储,当输入符号点阵中值为0的像素较多时,0值就不用存了,只存值为1的像素的位置即可。

6 训 练

采用BP算法时,网络权值必须首先用一小随机值进行检查初始化。选择小的初始权值很重要,若初始权值太大,

会导致网络不可训练[6]。训练选取20个标准符号及每个符号的五种变形,依照前述的BP网络模型和改进措施,输入为各种标准符号及其变形的扫描像素值,输出为标准符号对应的期望值。通过反复训练不断改正网络误差,其中需要我们做的一个重要的工作就是参数调整(后面详细讲述),直到误差在给定的允许限差范围内,训练结束,记下此时的权值。输出的权值以记事本形式保存,因为训练和识别时的网络构建是一样的,识别时以相同的格式调用。将期望输出的节点值和我们制作好的矢量符号库中符号的位置相对应,如加油站符号的期望输出为00000011,即十进制的3,因此对应符号库中的第三个符号。因此在识别时如果某符号的输出为00000011,那就调用符号库中的加油站符号显示出来。

7 参数调整

对于BP网络模型来说,参数的设置非常重要,甚至制约着模型对实际问题的可行性。本文采用的模型涉及三个参数:Q0、η、a,Q0为温度,在节点的作用函数

f(neti)=1

1+e-netiQ0中;η为学习速率、a为动量项,在权值

改正的微分方程Δwji(n+1)=ηδpjopi+aΔwjin中。从上文的作用函数受温度影响的示意图中可看出在温度较低时,函数变化剧烈,当输入有一点点变化权值就会做很大的改正,这样网络就会来回震荡收敛不到一点。当温度较高时,函数变化缓慢,输入变化时权值又可能不做任何改变。η和a的变化也是如此。对于具体问题,不同

的网络层数、输入对参数没有固有的规律可循[7]。下面通过试验不断调整,最终找到符合本网络结构的参数设置,621测绘科学 第31卷