利用OpenAerialMap (OAM)公开无人机数据进行分类

利用OpenAerialMap (OAM)公开无人机数据进行分类
今日分享开放航拍影像数据集OpenAerialMap (OAM)OpenAerialMap (OAM) 是一套用于搜索、共享和使用开放许可的卫星和无人机 (UAV) 影像的工具和门户网站。OAM 基于开放影像网络 (OIN) 构建是一项开放服务提供对这些影像的搜索和访问。将部分 OAM 数据引入 Google Earth Engine 的目的是探索该平台处理超高分辨率数据集的现有功能并可以进行标注分类。数据预处理为了创建数据集子集我们编写了一个自动化脚本用于获取所有具有有效链接的图像以及与平台卫星无关的图像。这样做是为了将整体平台限制在其他类型的平台上。数据集在导入之前已上传到 GCS 存储器中。整个数据集的未压缩大小仅为 1.9 TB但 GEE 的未压缩配额使用量却超过了 7 TB。由于 8 位图像的无数据值编码错误因此选择了 0 和 255 作为默认的无数据值列表但结果会因具体图像而异。开放数据集下载网址https://openaerialmap.org/专门构建了openaerialmap网站用于查看和下载全球各地的无人机航拍影像如上图可供下载的信息包括拍摄时间空间分辨率拍摄平台数据量上传者下载数据结构如下文件描述ImageID_meta.json文件元数据 JSON 文件ImageID.json图像元数据 JSON 文件ImageID.png缩略图 pngImageID.tif云优化 GeoTIF数据已上传至GEE链接为varoam_subsetee.ImageCollection(projects/sat-io/open-datasets/open-aerial-map);在这里我简单做个实例用无人机影像进行一次地物分类01—GEE部分实现代码//Shuffle the image collection to fetch random datavarcollectionoam_subset.toList(oam_subset.size())print(collection)//Fetch any item from listvarimageee.Image(collection.get(50))Map.centerObject(image,14)print(Image detail,image)// Add imageryMap.addLayer(ee.Image(image),{},image.get(platform).getInfo() data)varsamplesroad.merge(caodi).merge(building);varsampleDatasamples.randomColumn(random)varsample_trainingsampleData.filter(ee.Filter.lte(random,0.7));varsample_validatesampleData.filter(ee.Filter.gt(random,0.7));Map.addLayer(sample_training,{color:red},training samples)Map.addLayer(sample_validate,{color:blue},validation samples)// 利用样本点拾取特征值用于模型训练和验证vartrainingimage.sampleRegions({collection:sample_training,properties:[class],scale:1,tileScale:16});varvalidationimage.sampleRegions({collection:sample_validate,properties:[class],scale:1,tileScale:16});varclassifieree.Classifier.smileRandomForest(50).train({features:training,classProperty:class,inputProperties:image.bandNames()});varClassified_RFimage.classify(classifier).byte();vardictclassifier.explain();varvariable_importanceee.Feature(null,ee.Dictionary(dict).get(importance));print(variable_importance)Map.addLayer(Classified_RF,{min:0,max:2,palette:[3182bd,f0f0f0,e6550d]},Classified_RF);// 混淆矩阵法varvalidatedvalidation.classify(classifier);// 混淆矩阵vartestAccuracyvalidated.errorMatrix(class,classification);// 总体分类精度varaccuracytestAccuracy.accuracy();// 用户分类精度varuserAccuracytestAccuracy.consumersAccuracy();// 生产者精度varproducersAccuracytestAccuracy.producersAccuracy();// Kappa系数varkappatestAccuracy.kappa();print(Validation error matrix:,testAccuracy);print(User acc:,userAccuracy);print(Prod acc:,producersAccuracy);print(Validation overall accuracy:,accuracy);print(Kappa:,kappa);采用的是台湾某地区的DOM,目视解译选取了三类样本点分别是道路、人造建筑物、草地。分类结果还算不错但没有达到优的等级后续分类需要加入新的特征要素。02—结果展示原始影像分类后结果分类结果精度随机区域DOM展示1随机区域DOM展示2随机区域DOM展示3请在微信客户端打开请在微信客户端打开代码完整链接请在微信公众号后台私信“OpenAerialMap无人机数据进行分类”感谢关注欢迎转发声明仅供学习使用希望关注的朋友们转发如果对你有帮助的话记得给小编点个赞或者在看