PIE SDK神经网络聚类
1.算法功能简介
神经网络是模仿人脑神经系统的组成方式与思维过程而构成的信息处理系统,具有非线性、自学性、容错性、联想记忆和可以训练性等特点。在神经网络中,知识和信息的传递是由神经元的相互连接来实现的,分类时采用非参数方法,不需对目标的概率分布函数作某种假定或估计,因此网络具备了良好的适应能力和复杂的映射能力。神经网络的运行包括两个阶段:一是训练或学习阶段( Training or Learning Phase),向网络提供一系列的输入-输出数据组,通过数值计算和参数优化,不断调整网络节点的连接权重和阈值,直到从给定的输入能产生期望输出为止;二是预测(应用)阶段( Generalization Phase),用训练好的网络对未知的数据进行预测。
PIE SDK支持算法功能的执行,下面对神经网络聚类算法功能进行介绍。
2.算法功能实现说明
2.1. 实现步骤
第一步 |
算法参数设置 |
第二步 |
算法执行 |
第三步 |
结果显示 |
2.2. 算法参数
算法名称 |
神经网络聚类 |
|
C#算法DLL |
PIE.CommonAlgo.dll |
|
C#算法名称 |
PIE.CommonAlgo.NeuralNetworkClusterAlgo |
|
参数结构体 |
NeuralNetworkCluster_Exchange_Info |
|
参数说明 |
||
InputFilePath |
String |
输入文件(*.tif;*.tiff; *.img) |
OutputFilePath |
String |
输出文件路径 (*.tif;*.tiff; *.img) |
AlgType |
Int |
分类方法(0代表交互传播网络;1代表自组织特征映射网络) |
ClassNum |
Int |
分类数(大于0正整数,默认5) |
Windowsize |
Int |
窗口大小(0代表1*1窗口,1代表3*3窗口,2代表5*5窗口) |
Traintimes |
Int |
迭代次数(大于0的正整数,默认10000) |
Ispeed |
Int |
收敛速率(大于0小于等于100的正整数) |
FuncName |
String |
功能名称 |
FileTypeCode |
String |
根据输出类型获得文件编码类型 .tif/.tiff——GTiff .img—————HFA 其他—————ENVI |
ListBands |
IList<Int> |
输入影像的波段(至少选择两个波段,{ 0, 1, 2, 3 }) |
2.3. 示例代码
项目路径 |
百度云盘地址下/PIE示例程序/10.算法调用/图像处理/10.算法调用/图像处理/ ImageProcessing. NeuralNetworkClusterAlgo |
数据路径 |
百度云盘地址下/PIE示例数据/栅格数据/01.GF1/GF1_PMS1_E116.5_N39.4_20131127_L1A0000117600-MSS1.tiff |
视频路径 |
百度云盘地址下/PIE视频教程/10.算法调用/图像处理/神经网络聚类算法.avi |
示例代码 |
|
1 /// <summary> 2 /// 神经网络聚类算法测试,本算法实现了将GF1_PMS1_E116.5_N39.4_20131127_L1A0000117600-MSS1.tiff进行神经网络聚类 3 ///预期类数为5,分类方法为交互传播网络,窗口大小为1*1窗口,迭代次数为10000,收敛速率为100 4 /// </summary> 5 public override void OnClick() 6 { 7 #region 1、参数设置 8 PIE.CommonAlgo.NeuralNetworkCluster_Exchange_Info info = new PIE.CommonAlgo.NeuralNetworkCluster_Exchange_Info(); 9 10 info.InputFilePath = @"D:\Data\GF1_PMS1_E116.5_N39.4_20131127_L1A0000117600-MSS1.tiff"; 11 info.OutputFilePath = @"D:\Data\ip_result3.tif"; 12 info.ClassNum = 5; 13 info.AlgType = 0; 14 info.Windowsize = 0; 15 info.Traintimes = 10000; 16 info.Ispeed = 100; 17 info.FileTypeCode = "Gtiff"; 18 info.LowBands = new List<int> { 0, 1, 2, 3 }; 19 20 PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.NeuralNetworkClusterAlgo"); 21 if (algo == null) return; 22 #endregion 23 //2、算法执行 24 PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents; 25 algo.Name = " 神经网络聚类"; 26 algo.Params = info; 27 bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo); 28 //3、结果显示 29 ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(@"D:\Data\ip_result3.tif"); 30 m_HookHelper.ActiveView.FocusMap.AddLayer(layer); m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll); 31 } |
2.4. 示例截图