PolSARpro v6.0之Sentinel | 您所在的位置:网站首页 › 哨兵1号数据预处理 › PolSARpro v6.0之Sentinel |
PolSARpro v6.0之Sentinel-1A Wishart与SVM监督分类
前言数据源数据预处理数据读入、多视与地理编码叠加到Google Earth
感兴趣区的提取极化滤波特征提取监督分类Wishart监督分类Wishart分类器创建训练样本训练样本分类精度评价查看分类结果
SVM监督分类SVM分类器创建训练样本训练样本SVM分类特征SVM参数优化SVM分类精度评价SVM分类结果SVM与Wishart监督分类结果比较
后语参考文献
(原创文章,转载请注明来源,谢谢!)
前言
(前方多图高能预警,万字长文,希望你能耐心看完!) 首先告诉大家一个好消息。Eric Pottier教授的PolSARpro已更新到V6.0版本,各位可以到网址( https://www.ietr.fr/polsarpro-bio/ )自行下载。但是该版本仍在开发中,经过本人的测试,存在不少bug(例如没有帮助文档),各位根据实际情况使用。该版本较V5版本的重大改进是在生物量估算模块方面,该版本的简单介绍文档见百度云盘链接:链接:https://pan.baidu.com/s/1FJkhxkhkwtiEoICDRD19-A 提取码:h9b1 。感谢Eric Pottier教授,也希望该版本在后面能逐步完善。 距离上次PolSARpro处理Sentinel 1A的文章已近三月,期间许多人问我相关的问题,其中问得较多的是感兴趣区域的提取(或者说是掩膜提取),本文将对该操作进行介绍,并介绍PolSARpro中的Wishart监督和SVM监督分类过程(上次因为时间原因,没有详细介绍监督分类步骤,这次补上),希望可以给PolSAR相关研究者带来帮助。根据我的经验,SVM监督分类是PolSARpro中监督分类效果比较好的一种,也是目前遥感图像分类中常用成熟、稳定的算法。这个分类PolSARpro V5.1.3版本也能做,但是两个版本都有点bug,都不完美。 两个版本的PolSARpro可以共存,像博主两个版本都在使用,推荐保留两个版本,因为两个版本都有一些bug,协同使用可以对比一下。 后面,博主打算介绍欧空局SNAP处理软件以及SNAP1 的Python模块------snappy处理,以促进该开源处理遥感处理平台的推广使用及开发。 博主创建了一个关于欧空局SNAP处理交流的QQ群:欧空局SNAP处理交流群:665903216(这个群已满人),欧空SNAP处理交流群(二):1102493346。欢迎感兴趣者加入,共同交流,共同进步! 数据源本次使用的数据与我本人的第一篇博客数据是相同的,链接网址:https://blog.csdn.net/lidahuilidahui/article/details/86485372 你可以选用你自己的数据。 数据预处理利用桌面的PolSARproV6.0快捷方式启动PolSARproV6.0:
请参照我的第一篇博客(https://blog.csdn.net/lidahuilidahui/article/details/86485372 )完成数据读入、多视以及地理编码(含地理编码)操作,经过我的测试,如果感兴趣区(Region of Interest, ROI)提取操作早于地理编码前,后续将无法做地理编码,因为元数据文件metadata.xml文件(该文件含有控制点参数)会丢失。因此,感兴趣区的提取操作应在地理编码之后进行。这里选择的感兴趣区为上海市崇明区长兴岛和横沙岛,Swath带为IW2。在这个过程请保持耐心。地理编码成功后的界面如下(注意观察博主红色框标注部分): 上次这个操作没有演示,这次展示一下,以后你可以用于PPT展示(It’s your show time! Wonderful!)。 关闭GIMP弹出的两个图片,查看生成的文件夹目录: 进入C2文件夹,看到的文件应该是这样的: 点击Run,等待一下,见证奇迹的时刻到了: 关闭Google Earth,退出Dispaly工具栏,进入下一操作。 选择Tools—>Data Set Management—>ROI Extraction(注意该操作仅能选一个感兴趣区): 该编辑工具快捷键(注意该工具与以往的图像处理软件快捷键不一样,例如ENVI,ArcGIS等)如下: 平移:按住鼠标左键拖动 放大:鼠标滚轮往后滚动 缩小:鼠标滚轮往前滚动 点击Select area,选择感兴趣区: 移动鼠标在合适的位置,点击鼠标左键放下一个多边形端点(锚点),移动鼠标,到另一个端点处,点击放下一个多边形端点,反复操作几次,直至勾选出整个感兴趣区(如果你多边形端点勾选错了,并不能仅仅修改或删除该个端点,仅能通过删除整个多边形,重新勾选多边形来实现修改),如图: 点击Run,点击Yes,创建感兴趣区文件: 将目录环境设置为IW2_SNAP_ROI: 极化滤波操作,请参考我的第一篇博客(https://blog.csdn.net/lidahuilidahui/article/details/86485372 ),这里不再复述。 滤波界面: 实际上H-A-α分解就是提取极化散射特征的过程,分解得到的参数可以看作是一个分类特征。 双极化SAR数据的H-A-α分解操作,请参考我的第一篇博客(https://blog.csdn.net/lidahuilidahui/article/details/86485372 ),这里不再复述。 双极化SAR数据H-A-α分解参数界面:
好了,快结束了。还能保持耐心吗?接下来会介绍Wishart、SVM监督分类,这里不会详细介绍其原理,相关的文献有许多,具体请自己查找相关文献(因为双极化SAR监督分类目前仅支持这两种方法的监督分类,不信的话,你可以测试下) Wishart监督分类这是早期到现在极化SAR数据常用的监督分类,该分类是基于复Wishart分布的极大似然分类,但是该分布仅在均匀区域中的建模中效果比较好,也就是说,Wishart监督分类一般只能在均匀区域地物分类中取得较好的效果,对于其它不均匀区域地物分类,往往分类效果不好。对于不均匀区域的多极化通道SAR图像的建模,至今仍是一个热点和难点所在,近几年,提出的K、Go分布、W分布都有其局限性。对其进行精确的建模,对于SAR滤波、目标识别、分类都具有非常重要的意义,尤其是在军事上的目标识别(例如舰艇、坦克等)。 Wishart分类器需要指出的是:该分类器针对的是C2矩阵元素(即C11,C12,C21,C22,也就是这四个元素是可以看作服从复Wishart分布的)进行的。 开始操作吧: 选择Process—>Polarmetric Segmentation—>Wishart Supervised Classification。 Color Map16只是定义样本标注的颜色,并不是说要选16个类别。 你也可以勾选Reject Class(拒绝类),Reject Radio:5(默认值),实际上是一个距离度量。我也不太懂,具体你可以看下帮助文档。一般都不勾选,你也可以勾选和不勾选了对比一下结果。 创建训练样本选择创建训练样本的图像,这里使用的是上一步创建的RGB1.bmp图像。 训练样本的创建: 在窗口中点击鼠标右键,会弹出一个菜单栏,其操作如下: Add a new class:添加一个新类 Select area:选择一个样本区域 Delete area:删除一个样本区域 Save configuration:保存建立的样本区域,存储为.txt文件(勾选好全部样本点击这个选项,注意这个按键不是结束一个训练样本的绘制,而是直接结束了整个训练样本训练的程序) 在窗口中鼠标右键,创建类别点击Add a new class(每次点击,Class Num都会加1,但是类别名(数字序号)无法编辑(例如改为字符串的形式“water”),因此,操作时你需要清楚你的选择的类别是什么): 移动鼠标到某个位置,放大(缩小)图像,鼠标左键放下一个多边形端点(锚点),再移动鼠标到某个位置,鼠标左键放下一个多边形端点,反复操作若干次,直至勾选出该个样本区域。(如果你多边形端点勾选错了,并不能仅仅修改或删除该个端点,仅能通过删除整个多边形,重新勾选多边形来实现修改)绘制多边形边界示意图如下: 然后你会发现,多边形绘制的确结束了,然而却多了一个烦恼,有一个端点在旁边,导致你无法移动到别处选择样本区域。怎么办?鼠标右键,选择Delete Area。OK,你会发现该端点消失 鼠标右键,新建一个类别(Add a new class),创建新建类别的训练样本区域(Select area),勾选训练样本区域边界端点。反复勾选几次。(上述操作重复几次) 直到勾选完4个类别的全部训练样本。(红色:建筑;绿色:水体;紫色:裸土;黄色:植被) 点击Run Training Process,训练样本,完成后如下图所示: 点击Run,执行分类。 我们把这三个图像关掉,点击CM Editor,查看混淆矩阵。 回到文件夹IW2_SNAP_ROI_LEE/C2中查看分类结果文件: 对这3幅图像进行联动操作,选择Display—>Display N BMP Files—>Open:
很遗憾,PolSARpro V6.0的SVM监督分类有缺陷,具体你可以试下。博主这个SVM监督分类,使用PolSARpro V5.1.3版本来做的。 设置目录环境: 其中,Modulus表示取模(即复数的振幅,线性单位);10log(Modulus)表示将模转化为分贝值; Span表示总功率,其中 S p a n = ∣ S 1 ∣ 2 + ∣ S 2 ∣ 2 Span=|S_1|^2+|S_2|^2 Span=∣S1∣2+∣S2∣2,对于C2矩阵 S p a n = ∣ C 11 ∣ + ∣ C 22 ∣ Span=|C_{11}|+|C_{22}| Span=∣C11∣+∣C22∣; 成功后,会弹出4个bmp图像窗口,分别是C11_db,C12_db, C22_db, span_db(db表示分贝值得意思),如图所示: SVM(Support Vector Machine,支持向量机)算法具有小样本训练、支持高维特征空间的特点,可以很好地避免“维数灾难”和过学习问题。该算法成熟稳定,效果通常较好,目前在语音识别、自然语言处理、计算机视觉、遥感图像分类等多个领域仍在大量使用。 开始操作吧: 选择Process—>Polarmetric Segmentation—>SVM Supervised Classification。 Step 1-Training Area(操作见下图): Step 2-Training Area: 保持默认即可。 Step 3-Color Maps(操作见下图): Step 4-SVM Parameter Setting(操作见下图): 操作5,也可以不选,仅是一个类别概率图像。其它的参数可以自行选择。 SVM参数优化Step 5-Kernel Parameter(操作如下图): 操作1:RECOMMANDED(推荐参数) (除非你SVM调参很厉害,否则建议你勾选这个选项) 操作2:点击Setup and Run,会弹出右边的小窗口; 操作3:点击Run RBF Kernel Paramete Optimisation:执行径向基核函数参数优化。这里使用的基于网格法对训练样本进行交叉验证(Cross Validation,CV)从而确定最优参数,主要确定参数C和G,其实C是前面的Cost(惩罚系数c),G是Gamma(核函数宽度g)。(其具体原理请查看相关文献) 执行后会弹出一个命令行窗口。 Step 6-Run Classification(执行分类): 执行后会弹出一个命令行窗口(接下来又是一个漫长的等待过程,请保持耐心),如下图所示: 事实上,PolSARpro的SVM分类算法很好,比ENVI等软件的SVM分类快得多,并且可以自动寻找参数优化值。(可以说是甩ENVI等几条街,也不过分!) 完成后会弹出一个bmp图像(但这不是分类结果,这是之前勾选的概率图像)。 很遗憾的是,这个版本的SVM分类仍然有点bug,看不到混淆矩阵。(据说早期版本是可以的,另外,Linux系统版本的bug会少很多,有条件的话可以装Linux系统版本的PolSARpro)。如果你点击 CM Editor,想查看混淆矩阵,很遗憾,找不到SVM的confusion_matrix.txt文件。所以,直接点Exit,退出SVM分类窗口就可以。 SVM分类结果我们回到目录IW2_SNAP_ROI_LEE/C2,如图: 分类结果文件名为svm_classification_file: 我们依次打开下图所示的三个文件(文件1为SVM监督分类结果,文件2是SVM训练样本集,文件3是Wishart监督分类结果): 好了,终于结束了!(你看完此文和操作,花了很长时间,同样地,我写完此文也花了很长时间,但愿你能有所收获!) 请允许我牢骚多几句!关于PolSARpro软件的功能还有许多,很难详尽地介绍清楚,要想更好地使用和开发PolSARpro,需要对极化SAR的理论知识有较深的了解(学习还是很重要的!)。很遗憾这里使用的是欧空局的Sentinel-1双极化SAR数据(使用这个数据的主要原因是这个数据可以免费下载),不是全极化SAR数据,大量的实验表明,全极化SAR数据的分类精度高于双极化SAR数据、单极化数据(当然,博客的方法对于全极化SAR数据也是使用)。 事实上,全极化SAR数据可以做更多的操作,无论是极化分解、分类、极化干涉测量等都有更多应用。其实,博主更希望的使用国产数据来做些实验的,然而,由于种种原因(数据不开放,国产数据质量、兼容性等),国产卫星数据的利用率远远低于国外卫星数据的利用率,不禁使人感到担忧,没有使用,很难有反馈,也就很难有改进。 目前而言,国产卫星数据相比国外卫星数据(欧空局、美国、日本等),仍有很大的差距!不管怎样,还是希望各位有条件的话,还是多多使用国产卫星数据。无论好坏,用自己国家的数据,多少更放心些。博主后面也打算也打算分享一下国产卫星数据的应用,各位如果有时间的话,也可以写点国产卫星数据的应用的文章,促进国产卫星数据的推广使用。 如果博客内容有错的话,请在评论区批评指正!谢谢! 再打一次广告,博主创建的欧空局SNAP处理交流群:665903216(这个群已满人),欧空SNAP处理交流群(二):1102493346。欢迎感兴趣者加入,共同交流与进步! 参考文献[1] (美)李仲森(Lee,J.),(法)鲍狄埃(Pottier,E.),洪文等. 极化雷达成像基础与应用[M]. 北京:电子工业出版社, 2013.06 [2] 尤淑撑,行敏锋,何彬彬等. 极化SAR土地资源调查监测技术与应用[M]. 北京:科学出版社,2018.07 [3] 刘涛,崔浩贵,谢凯等. 极化合成孔径雷达图像解译技术[M]. 北京:国防工业出版社,2017.12 [4] 马建文等.遥感数据智能处理方法与程序设计 (第二版)[M]. 北京:科学出版社,2010.01 [5]微信公众号:遥感事. 推送文章:Dragon系列-PolSARpro之SVM监督分类(https://mp.weixin.qq.com/s?__biz=MzI0MDQ2NTU2Ng==&mid=2247483736&idx=1&sn=2abef8d7b789b80ce851bd24f42071cf&chksm=e91b22a9de6cabbf8772db08e0d6aa82e8fc4ce7f8ff705134c709e9ac9fe5247030d090d44c&mpshare=1&scene=23&srcid=#rd) SNAP(Sentinel Application Platform)是欧空局为处理Sentinel卫星数据而开发的一个开源处理平台,功能强大,对欧空局相关卫星、美国、日本卫星等数据有很好的处理效果。 ↩︎ |
CopyRight 2018-2019 实验室设备网 版权所有 |