武创举① WU Chuang-ju;宋双杰② SONG Shuang-jie;曾桂平② ZENG Gui-ping
(①昆明理工大学国土资源与工程学院,昆明 650093;②黄河勘测规划设计有限公司,郑州 450003)
(①Faculty of Land Resource Engineering,Kunming University of Science and Technology,Kunming 650093,China;
②The Yellow River Survey Planning and Design Co.,Ltd.,Zhengzhou 450003,China)
摘要: 随着神经网络理论的深入研究,神经网络已在图像的分类中起到非常重要的地位。本文章使用IDL语言来实现神经网络在权值调整过程算法优化,并在ENVI上集成,已达到神经网络分类速度快,且精度可靠的目的。
Abstract: With the deep research in the theory of neural network, neural network has played a very important role in the classification of the image. This article uses the IDL language to implement the algorithm to optimize the weights of neural network to the adjustment process, and on the ENVI integration, has reached the neural network classification speed, precision and reliable.
教育期刊网 http://www.jyqkw.com
关键词 : 神经网络;图像分类;ENVI;IDL;集成;精度
Key words: neural network;image classification;ENVI;IDL;integration;precision
中图分类号:P237 文献标识码:A
文章编号:1006-4311(2015)06-0234-02
0 引言
ENVI是一套功能强大的遥感图像处理软件,在ENVI上进行遥感图像分类中有很多方法,如神经网络、最大似然、最小距离、 ISODATA算法、决策树和面向对象等分类方法,神经网络在分类时比其它分类所花费时间要长,且速度很慢,因为从算法机理可知神经网络在权值调整时是迭代收敛的过程,其分类过程自然很慢。针对此问题,决定使用IDL语言来编程优化算法。
1 IDL的语言环境
IDL(Interactive Data Language)是美国RSI公司推出的面向矩阵的第四代计算机语言,它语法简单,自带大量的功能函数,使用很少的代码就能实现其它语言很难实现的功能。IDL是进行数据分析、可视化及跨平台应用开发的最佳选择,利用IDL可以快速地进行科学数据读写、图像处理、集成数学统计、信号分析、数值计算和三维图像建模等。IDL集可视、交互分析、大型商业开发为一体,为您提供了最完善、最灵活最有效的开发环境。
IDL的开发应用已经深入到了人类日常生活的方方面面,给人类对未知领域的探索与发现提供了强有力的工具,推动了人类向前发展。对IDL的语言环境熟悉之后,紧接着就开始针对目前存在的基于神经网络的遥感图像分类问题进行改进,并结合ENVI软件,使用IDL语言设计出改进后的优化算法。
2 ENVI中基于神经网络分类的剖析
ENVI中采用的神经网络属于BP网络,含有输入层、输出层以及处于输入输出层之间的隐含层,如果进行非线性分类,输入的区域并非线性分类或需要两个超平面才能区分类别时候,隐层数设置为大于或等于一。隐含层的状态影响输入与输出之间的关系,改变隐含层的权系数,可以改变整个多层神经网络的性能。
ENVI中采用的BP神经网络通过误差函数的最小化过程来完成输入到输出的映射。为了完成最小化过程,这种BP反向传播算法分正向传播和反向传播两步进行。在正向传播中,输入的样本从输入层经过隐单元一层一层进行处理,通过所有的隐含层之后,则传向输出层;在逐层处理的过程中,每一层神经元的状态只对下一层神经元的状态产生影响;在输出层把现行输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。在反向传播过程中,反向传播把误差信号按原来正向传播的通路反向传回,反复修改(这是个迭代的过程)各节点的权重和阈值,逐渐减小误差,直到达到预先设定的要求。当误差小于某一相当小的正数或迭代误差不再减少时,完成BP网络的训练、输入与输出的映射的确定。
我们的落脚点是在BP网络的反向传播过程中网络各节点权值的迭代调整,但是该网络在此方面存在缺陷,就是迭代时间长,尤其对处理大数据,需要花费很长时间才能达到收敛。针对BP网络中学习算法收敛速度慢的缺点,运用数学中埃特金加速收敛算法,对传统的BP算法进行改进,然后使用IDL语言进行汇编,最后在ENVI上进行功能的扩展,已达到适用的生产目的。
3 编写迭代函数
为了能在ENVI菜单上调用埃特金迭代收敛函数,需要在ENVI菜单中创建一个新的菜单项,并定义一个此用户函数。这个用户函数可以通过在ENVI菜单中选择这个新的菜单项来进行调用。具体工程如下:
①在现有的ENVI菜单基础上创建新的功能菜单,首先用文本编辑器打开envi.men文件,添加如下部分:
PRO MY_PROCESS_DEFINE_BUTTONS, buttonInfo
COMPILE_OPT IDL2
ENVI_DEFINE_MENU_BUTTON, buttonInfo, VALUE = ‘New Function’, $
/MENU, REF_VALUE = ‘Supervised’, REF_INDEX = 0, $
POSITION = ‘last’
ENVI_DEFINE_MENU_BUTTON, buttonInfo, VALUE = ‘Function1’, $
UVALUE = ‘Function 1’, EVENT_PRO = ‘my_process_event’, $
REF_VALUE = ‘New Function’
END
如果ENVI已经打开,需要关闭并重新启动ENVI,然后在ENVI主菜单上,会看到Classification菜单下的Supervised的子菜单内增加了新的菜单“New Function”。
②编写迭代函数。在运行ENVI的IDL开发环境中,迭代功能函数的部分代码如下:
ENVI_NEURAL_NET_DOIT
FUNCTION bm_func,X,[X0,X1……Xn]
nx=Xn,
t = FINDGEN(nx-X)
… … … … …
4 实验过程与精度评定
本实验主要运用ENVI4.8版本图像处理软件进行图像分类,使用的数据是网上下载的经过数据预处理后的Landsat5 TM研究区影像。调用迭代函数开始进行基于神经网络的遥感图像分类,其分类时间所反映的进度条如图1所示,以及最终的迭代均方根训练函数如图2所示。
在神经网络分类结束后,所花费时间很短,分类速度很快,具体的分类结果图如图3所示。对调用迭代函数的神经网络分类结果进行精度分析,使用混淆矩阵,具体报表如图4所示。从混淆矩阵报表可知,总体分类精度为94.2374%,其Kappa系数为0.9272,分类效果很好,精度很高,满足要求。
5 结束语
ENVI上调用迭代函数的神经网络总体上比原来的神经网络分类要优越,其鲜明的特色就是分类速度快,精度也高。这大大提速原有的神经网络分类速度,尤其在处理大数据优越明显。但是ENVI上仍存在神经网络分类单一化现象,怎样使其减少人为的干预,使其更智能化是今后的研究趋势。
教育期刊网 http://www.jyqkw.com
参考文献:
[1]董彦卿.IDL程序设计—数据可视化与ENVI二次开发[M].北京:高等教育出版社,2012.
[2]Raghu P P.Acombined neural network approach for texture classification[J].Neural Networks,1995,8(6):975-987.
[3]刘玉洁等,编著.MODIS遥感信息处理原理与算法[M].科学出版社,2001.