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         }
View Code

2.4. 示例截图

 

posted @ 2019-01-03 16:48  PIESAT  阅读(829)  评论(0编辑  收藏  举报