基于BP神经网络地图符号的识别方法
当前,制约GIS技术发展的一个瓶颈即是地图数字化,因此,极为迫切的需要研究出一种用自动化技术替代人工数字化作业的方式[1]。地图由点、线、面符号组成,各种点、线、面符号的识别即是地图识别。因为由点状符号经过各种组合可构成线、面符号,所以实现整个地图符号识别的基础和核心就是点状符号的自动识别[2]。
人们提出了很多有关点状符号自动识别的方法,如人工智能法、统计结构法、神经网络法、线划跟踪法等,但为了更加简单快速的识别,本文提出了一种改进的BP网络点状符号识别法。
1 BP神经网络在地图符号识别中的应用
1.1 地图符号预处理
1.1.1 灰度化、二值化
彩色图像中包含的颜色信息,会降低地图符号识别的速度,因此需将彩色图像转为灰度图像。接下来,是对灰度图像进行二值化处理,这样能大大地提高处理效率。
1.1.2 锐化图像
经过二值化的图像字符可能模糊,影响识别,因此需锐化图像使其变得清晰。增强图像的轮廓或边缘是图像锐化的实质,锐化后的图像边缘清晰、突出。图像锐化的方法有:高通滤波法和梯度锐化法,本文选用梯度锐化法。
1.1.3 去噪处理
分层提取后的地图符号图像很可能与我们的要求相差很远,由以下因素造成:印刷工艺与扫描质量、数字符号与其它地图要素相距太近、随机噪声。所以分层提取后的地图符号图像需要进行去噪处理。去噪的方法比较多,本文采用中值滤波法。
1.1.4 分割字符
一般来说,对单个字符分割的方法只需进行简单的垂直投影,可是总会存在一些粘连或断裂的字符,这势必会造成识别失败。但由于已对图像进行了梯度锐化和去噪处理,本文采用了垂直投影法分割字符。
1.2 改进BP网络识别地图符号
Lippman认为,在模式空间中,即使各样本分布在相互交错的复杂区域内,只要有3层网络(只有1个隐层),就可以构成所需要的任意复杂的判别函数,而不需要复杂的网络[5]。因此,本文在此构建一个有1个隐层的3层BP神经网络。
1.2.1 确定输入输出层的节点数
根据符号大小,输入层节点数定为128,即对应的数字符号图像是8*16点阵的。对于输出层,如样本较多,输出节点数就大,则每个样本输出间都有很大的变化,权值就会来回调整,导致权值变化缓慢。所以输出神经元的个数N=INT(log210)=4,其中,待识别的符号个数为10,INT表示取整。
1.2.2 确定隐层节点数
本文选用网络结构增长型方法:先使用较少的隐层节点数,训练网络,同时对学习误差进行测试,然后对隐层节点数逐渐增加,直到测试的误差不再有明显减少。通过实验得到隐层节点数为16。
1.2.3 处理输入输出
针对地图符号识别,输入模式有:符号的图像点阵、特征输入。在识别过程中应考虑输出层节点输出值的误差影响,当输出值大于0.9,则认为节点输出值为1;当输出值小于0.1,则认为该节点的输出值为0。
1.3 实验对比
1.3.1 经典BP算法与改进BP算法
表1中,第一、二行是经典BP算法实验数据,第三、四行是用动量因子方法改进BP算法实验数据,表1可以得出:改进的BP算法取= 0.1时,使收敛时间减少,并且改进后的算法对样本的正确识别率有所提高。因此本文用动量因子法对经典BP算法加以改进。
1.3.2 参数调整
动量项=0.2,初始步长0=0.25,连续修改网络误差E的实验数据,如表2所示。实验数据表明,改进BP神经网络的误差E=0.001时,正确识别率最高,所以本文选用的误差E=0.001。
1.3.3 地图符号识别
应用改进的三层BP神经网络(输入层节点为128,输出层节点为4,隐层节点为16,动量项=0.2,初始步长0=0.25,误差E=0.001)进行地图符号识别的实验数据,如表3所示。实验结果表明:用改进后的BP网络进行地图符号识别的处理时间平均为1.4S,正确识别率平均为93.1%。
2 结语
综上所述,经过反复试验,利用输入输出节点数的设计以及动量因子法优化网络结构,得出了参数的一套变化规律。同时,这种三层的BP网络适用于对角度和尺度变化的地图符号的识别,能够达到较快的处理时间以及较高的正确识别率。
参考文献
[1]何孝莹,宋伟东,韩颜顺.点状地图符号的神经网络识别[J].测绘科学,2006,31(1):125-127.
[2]李洋,张晓冬,鲍远律.基于特征模板匹配识别地图中特殊图标的方法[J].电子测量与仪器学报,2012,26(7):605-609.
[3]陈鹏,董希贵,石磊.地图字符的处理与识别[J].科协论坛,2010(10):87-88.
[4]樊振宇.BP神经网络模型与学习算法[J].软件导刊,2011,10(7):66-68.