eCognition8.9面向对象分类详细步骤
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Nearest Neighbor 的面向对象监督分类
1. 启动eCognition 8.9,选择Rule Set Mode ,Ok 。
2. 新建Project :File →New project ,或者工具栏上的新建按钮。
在弹出的对话框中选择要添加的文件l8_rs_wgs84_sub.img ,点Ok ,可以看到它包含8个分辨率为30m 的图层,双击每个图层可以修改它的图层名,利于分辨。
然后点图层窗口右边的Insert ,在弹出的对话框中选择l8_pan_rs_wgs84_sub.img 文件,Ok 后将Pan 波段添加进来。
最后,点Thematic Layer Alias 窗口右边的Insert 按钮,选择2002 forest types UTM WGS84.shp 文件,Ok 后将森林类型专题图添加进来,双击该矢量层,将图层名修改为Foresttype ,最终效果如下图:
D E N
G _0316
Project Name 等按默认,点Ok ,回到主界面,图像按前3个波段RGB 显示,如下图:
为了更好的辨别地物类型,点击工具栏上的图层显示编辑按钮,在弹出的对话框中点击修改RGB 为NIR ,Green ,Blue 显示:
D E N G _03
16
如果取消勾选左下角No layer weights ,还可以设置不同波段的比重,在调整不同波段的比重时,在数值上左击鼠标增加比重,右击鼠标减少比重,如下图:
点Ok 进行波段显示调整后的效果如下,然后保存这个Project 为l8_rs_wgs84_sub.dpr 。
D E N G _03
16
3. 将图像分解为基本对象:
首先,在Process Tree 窗口(如果没有,菜单栏View →Windows →Process Tree 调出),右击,选择Append New ,将Name 改为Segmentation ,其他按默认,然后点击Ok :
其次,在Process Tree 窗口,右击Segmentation 这个新建规则(Rule),选Insert Child(插入子规则),Name 勾选自动,Algorithm 下拉菜单选择multiresolution segmentation (最常用的分割算法),在右边的参数窗口,找到Scale parameter 并将其设置为150,其他默认,然后点Execute(立即实行)或者Ok(稍后实行)。
此处,我们先选择Ok ,然后在Process Tree 窗口右击此规则,再Execute 。
D E N G _03
16
运行Execute 后,我们就可以看到整幅图像被分成了许多Objects(对象),而且分割的尺度比较满意,如下图:
如果分割的对象太密或者太疏,我们可以通过调整规则中的Scale parameter 参数(注:数值越大,分解得到的objects 数量越少),进行多次尝试,直到满意为止。
4. 创建图像分类特征指标: 接下来,我们需要选择一些图像特征来作为分类的依据。
首先,找到Feature View 窗口(如果没有,菜单栏View →Windows →Feature View 调出),选择 Object Features > Layer Values > Mean ,再双击Brightness ,等待系统计算所有Objects 的Brightness 值,再点击图像主窗口的任意一个对象,就可以在Image Object Information 窗口(可以菜单栏View →Windows →Image Object Information 调出)看到这个对象的Brightness 特征值了: D
E N G _0316
D E N G _0316
其次,找到Feature View > Object Features > Layer Values > Mean ,双击Create new ‘Mean’,在弹出的窗口中,在Value 下选择Feature View 窗口Mean 中还没有的波段,Ok ,将该波段添加到Mean 下,系统会自动计算所有对象的该波段值,同时该波段特征自动显示在Image Object Information 窗口中。
重复上述波段添加过程,直到把所有需要用于分类的波段添加到Mean 下:
此外,我们还需要选择一些形状指数作为分类依据,这对于建筑物和道路这两个具有非常相似光谱特征的类型的分离会很有帮助。
找到Feature View > Object Features > Geometry > Extent ,双击Length/Width ;再找到Feature View > Object Features > Geometry > Shape ,双击Shape index ,将这两个形状指数加入到Image Object Information 窗口中。
最后,我们还需要创建一个NDVI 指数作为分类特征。
找到Feature View > Object Features > Customized ,双击Create new ‘Arithmetic Feature’,在弹出的的对话框中,将Feature name 修改为NDVI ,点击相应的计算符以及双击波段,建立NDVI 计算式,如下图,先适用再Ok 后计算NDVI 特征:
D E N
G _0316
至此,所有需要用于分类的特征都选择并计算完毕,Image Object Information 窗口如下图:
5. 应用分类特征空间到类:
首先,在Class Hierarchy 窗口(如果没有,菜单栏View →Windows →Class Hierarchy 调出)中右击,选Insert Class ,在弹出的对话框中将类名修改为Building ,颜色修改为青色,勾选Always ,Ok 后新建的类出现在Class Hierarchy 窗口。
重复上述过程依次建立Forest ,Grass ,Road ,Soil 和Water 等类,如下图: D E N
G _0316
其次,打开样本导航器工具栏:选择主菜单View > Toolbars > Samples 。
调出Sample Editor 窗口:点击按钮,或者主菜单View →Windows →Sample Editor 。
再次,定义特征空间:主菜单Classification > Nearest Neighbor > Edit Standard NN Feature Space…。
弹出对话框,通过双击左边的可用特征列表中需要应用于分类的特征,将其添加到右边,如下图:
点击Ok 后,回到主窗口,上述被选择的特征出现在Sample Editor 窗口中,最右边显示各特征的分布范围和标准差,如下图: D E N
G _0316
然后,应用分类规则到所有类:主菜单Classification > Nearest Neighbor > Apply Standard NN to Classes… > 弹出对话框,从左边列表中双击目标类别添加到右边列表,此处,我们点击All…>>选择所有类,再Ok 。
双击Class Hierarchy 窗口中的任意一个类,弹出类编辑对话框,我们可以看到所选的分类特征已经被应用到了每个类中: D E N
G _0316
6. 创建训练样本:
任意点击一个Object ,在Sample Editor 窗口中,红色箭头指示它的各分类特征空间值:
选择类的训练样本:a. 从样本编辑器Sample Editor 中的Active Class 下或者Class Hierarchy 中选择需要选择样本的类,如水体;b. 点击样本导航器工具栏的Select Sample 按钮;c. 在分割图上双击样例对象,该对象被添加目标类的样本库中,同时主图像窗口中该对象以对应类的颜色显示:
D E N G _03
16
可按住Shift 键选择多个样本后再双击,可同时添加多个样本。
如果发生误采集,可以再次双击该对象即可取消。
为该类添加不同区域多个样本,完成该类样本的采集后,关闭Select Sample 按钮。
依次重复上述过程,完成所有类训练样本的采集工作(注意:采集完训练样本后,应及时关闭Select Sample 按钮,以避免误操作),最终训练样本选择如下图(练习时,可以利用后述的Load TTA Mask 功能将训练样本加载进来):
在样本采集的过程中,我们可以:a. 结合使用样本导航器工具栏的Sample Navigation 工具和Sample Editor 窗口随时找到对应的训练样本;b. 通过选择Sample Editor 窗口中的Compare class 对比不同类中训练样本的分类特征空间的分布情况(被比较:黑色;比较:蓝色);c. 在Sample Editor 窗口中,灵活应用样本的空间特征信息和右键菜单的各个选项,为样本采集和修改提供便利;d. 在每个类至少采集一个训练样本后,在Select Sample 按钮打开的情况下,单击选择任意一个非训练样本的Object ,在Sample Selection Information 窗口(如果没有,可以通过菜单栏View →Windows →Sample Selection Information 或者点击样本导航器工具栏的Sample Selection Information 按钮调出),可以看到该对象属于各类的隶属度值:灰色代表当前Active class 的隶属度值,红色代表隶属度值高于设定阈值的类,而绿色代表隶属度值低于设定阈值的类。
阈值默认为0.7,可以通过在Sample Selection Information 窗口中右击,选择Modify critical membership overlap 中修改。
D
E N G _0316
7. 优化特征空间: 一般情况下,选取的特征越多,信息越丰富,分类精度越高。
但是,我们无法定量分析各个特征的具体贡献,有时候也会存在信息冗余。
空间特征优化工具能计算出不同特征的贡献,帮你找出利于分类的最佳特征空间组合。
它通过比较不同类的特征来找到能使这些类的训练样本之间具有最大平均最小距离的特征组合。
打开特征空间优化对话框:从主菜单选择Tools > Feature Space Optimization 或者Classification > Nearest Neighbor > Feature Space Optimization 。
弹出的对话框中,拥有训练样本的类都已经自动加载在左边列的Classes 框中,可以点击Select Classes 按钮修改目标类。
点击右边Features 列下面的Select Features 按钮,将前述要用于分类的所有特征都选择进来(总数13个): D E N G _0316
左键点击分类特征,选择特征空间的初始组合,被选择的特征蓝色高亮显示,可以再次点击取消该特征的选择。
此处,我们选择所有的特征作为初始组合。
在Maximum dimension 中输入最大维数,同样我们输入特征的总数13作为最大维数。
设置如下图所示: D E N G _0316
点击Calculate 按钮进行计算,结果如下图:
在Optimized Feature Space 项显示最低分离距离为0.849,最佳维数为12。
点击Advanced 按钮查看各组合的详细信息,最佳组合以蓝色在Result List 和Result Chart 高亮显示:
D E N G _03
16
下拉Result List 可以看到所有特征的组合的最低分离度为0.8475,小于最佳组合的0.849,也就是说并不是选择的特征空间数越多分离度就越高。
但是需要注意的是:分离度是基于选定的样本计算而来,所以改变训练样本必然会影响类的分离度以及最佳组合,所以需要重新优化空间特征,再将其应用于分类。
此外,点击Show Distance Matrix 按钮,可以查看最佳组合下的不同类别间的分离矩阵:
回到Feature Space Optimization – Advanced Information 对话框中,点击Apply to Classes 按钮,弹出类选择对话框,点击All--->>按钮将所有类加入到右边列,点Ok 后应用目前的特征空间为所选的类生成最近邻体分类器;点击Apply to Std. NN.按钮,应用目前选择的特征空间到标准最近邻体分类器。
如果先勾选Classify Project ,任意点击上述两个按钮中的一个,系统将对目前的Project 中的所有对
象进行分类。
此处,我们不勾选。
8. 执行分类: 首先,在Process Tree 窗口中,右击Segmentation 规则,选择Append New ,将Name 修改为Objectclassification ,其他默认,点Ok :
D E N G _03
16
其次,在这个新建规则上右击,选Insert Child ,弹出对话框,Name 自动,Algorithm 下选择Basic Classification > classification ,在右边的Parameter 参数设置对话框激活Active classes 选项,点击最右边三点省略号弹出类选择对话框,选择所有类:
其他默认,按上图设置完成后,Execute 运行分类,结果如下图:
D E N G _03
16
点击工具栏的View Classification 按钮和Show or Hide Outlines 按钮,分别打开分类显示和关闭外框线,效果如下图:
分类专题图中如果出现白色的Objects ,说明它们属于未分类的对象,按照训练样本选择的方法,将它们添加到目标类的训练样本库中,再重复执行分类的过程,就完成了整个分类过程。
9. 分类精度评价: 打开精度评价对话框:菜单栏Tools > Accuracy Assessment…。
eCognition 提供了四种评价分类精度的统计方法:Classification Stability ,Best Classification Result ,Error Matrix based on TTA Mask 以及Error Matrix based on Samples 。
选择其中一种方法然后点击Show statistics ,即可看到分类精度评价结果,点击Save statistics 保存精度结果。
注意:如果选择Error Matrix based on TTA Mask ,需要定义TTA Mask 层。
由于我们是通过指定训练样本进行分类,因此,我们选择Error Matrix based on Samples ,结果如下图。
可以发现所有选择的训练样本都完全被正确分类,具有满意的分类精度。
如果分类精度不理想,可以修改训练样本,重新优化特征空间,再执行分类,并重复以上过程,直到得到满意的结果。
D
E N G
_0316
10. 同类相邻Objects 的融合:
分类完成后,我们可以看到很多相邻Objects 属于统一类,这时我们需要将这些相邻对象融合为更大对象,以减少对象数和美化视觉。
在Process Tree 窗口的Objectclassification 规则上右击,选Append New ,新建一个规则,Name 改为Merge ,其他默认,Ok 。
然后在这个新规则上右击,选Insert Child ,弹出的Edit Process 对话框中,Name 自动,Algorithm 下选Basic Object Reshaping > merge region ,点下面Parameter 窗口中的Class filter ,再点最右边的三点省略号,选择Building (操作对象为Building 类),其他默认,设置如下图:
Execute 运行后, Building 类中所有相邻的对象被融合成一个大的对象。
D E N
G _0316
重复上述的融合过程,分别对各类中相邻的对象进行融合,完成后,效果如下:
11. 结果输出: 结果输出主要有两种方法:a. 建立新规则,利用Export > 下的各种算法进行结果输出操作;b. 主菜单Export > Export Results…(简单易用方式),弹出对话框,选择输出类型和格式,再选择要输出的类和特征,还可以修改文件名。
下图设置用来将分类结果输出为带地理参考的Raster 图像: 再点击Export…按钮,选择保存路径后,点Ok ,完成Raster 结果输出。
D E N G _03
16
当我们选择输出为shapefile 格式的时候,可以指定是否将属性保存为.csv 文件,点击Select features 按钮指定输出哪些属性,如下图:
点击Export…按钮,选择保存路径后,点Ok ,完成shp 结果输出。
如何在shp 属性表中输出类的名称:点击Select feature 弹出特征选择对话框,左边Available > Class-Related features > Relations to Classification > Class name > 双击Create new ‘Class name’ > 弹出创建类名窗口,按默认点Ok ,这样就创建了一个Class name 特征,并自动添加到Selected 栏中。
D E N G
_0316
点击Ok ,回到Export Results 对话框,可以看到Class name 属性被添加。
点击Export…按钮,完成shp 结果输出,在ArcGIS 中打开,属性表中查看属性结果。
Process Tree 窗口的完整规则集如下:
12. 保存训练样本为TTA (Training and Test Area) Mask 文件,用于创建相同区域其他图像分类的训练样本: a. 创建TTA Mask :主菜单Classification > Samples > Create TTA Mask from Samples… > 选择对象层 > Ok ,训练样本以对应类的颜色显示在主图像窗口。
b. 保存TTA Mask :主菜单Classification > Samples > Save TTA Mask… >选择保存路径并输入文件名 > Ok ,TTA Mask 以一个.tif 图像文件和同名的.csv 属性表文件存储着。
c. 加载TTA Mask :主菜单Classification > Samples > Load TTA Mask… > 选择.tif 图像文件 > 选择.csv 属性表文件,下面的两个询问窗口都选Yes ,TTA Mask 被加载到主图像窗口。
d. 从TTA Mask 创建Samples :主菜单Classification > Samples > Create Samples from TTA Mask… >选择对象层 > 输入最小重叠率 > Ok ,完成样本的创建。
再按照执行分类的步骤完成分类。
e. 编辑类转换表:主菜单Classification > Samples > Edit Conversion Table…。
D E N G _03
16。