关于如何在卫星图像上检测、勾画和分类农田的分步指南
本文是关于农业应用卫星图像处理的两篇系列文章之一。如果您对卫星图像的收集和处理感兴趣,请参阅以下内容 首条 作者:安托万-奥贝.
第 2 部分重点介绍我们如何在农业领域利用这些经过处理的卫星图像,以便: 1:

目标流程说明
第 2 部分重点介绍我们如何在农业领域利用这些经过处理的卫星图像,以便: 1:
简要说明:
本文将
本文以 data 科学和计算机视觉方面的基本知识为前提。.
商业动机
能够自动检测和标记农作物的解决方案在商业领域有着广泛的应用。计算地块的数量、平均面积、植被密度、特定作物的总表面积以及更多指标可以实现各种目的。例如,公共组织可以利用这些指标进行国家统计,而私营农业公司则可以利用这些指标对其潜在市场进行详细估算。.
当然,出于三个具体原因,卫星图像被认为是非常可行的 data 来源:
步骤 1 - 在卫星图像上检测农业区
![]()
哨兵-2 原始图像:10 000 x 10 000像素,每个像素在地面上的尺寸为10 x 10米(哥白尼哨兵 data 2019)
在对哨兵 2 号图像进行检索和预处理后,我们面临的第一个挑战是确定地块的位置,并将自己限制在感兴趣的特定区域。每幅图像的分辨率都非常高,因此对全尺寸图像进行整体处理是不现实的。相反,我们解决问题的第一步是将大图像裁剪成较小的片段,并在这些较小的图像上确定地块所在的区域:

我们期望的输出:仅包含农业区的片段(哥白尼哨兵 data 2019)
解决方案 1A:训练像素分类器
在大图像上检测农业区的第一个解决方案是建立一个像素分类器。对于每个像素,这个机器学习模型将预测该像素是否属于森林、城市、水域、农场......从而预测该像素是否属于农业区。.
像素分类图解,包含 3 类可见像素(哥白尼哨兵 data 2019)。
因为很多 资源 在圣天诺-2 号卫星上,我们可以找到十多种不同类别的标注图像(森林、水、苔原......)。但是,如果您研究区域的气候与您训练模型的区域不同,您可能需要重新评估归属于每个像素的类别。.
例如,在对温带气候国家的模型进行培训后,将其应用到世界上较为干旱的地区,我们发现模型所看到的森林和苔原实际上是农作物。.
对像素进行分类后,您就可以删除所有不包含农业区的图像。.
解决方案 1A 优点
解决方案 1A 缺点
在所有可用的农业区检测方法中,这种方法是最准确的。不过,如果您无法获得标注过的图像,我们也找到了两种替代解决方案。.
解决方案 1B: 将地理坐标映射为像素坐标
如果您感兴趣区域的坐标已经标注,或者您自己标注了坐标,则可以将这些地理坐标(纬度和经度)映射到您的图像上。.

您可以在 GoogleMaps 上设计自己的多边形,从而专注于所选的特定区域,同时绕过障碍物(水、城市......)进行绘制。
例如,如果您有与大型农业区相关的坐标,或者您自己在谷歌地图上绘制了大型多边形,您就可以轻松获得农业区的地理坐标。然后,只需将这些坐标映射到卫星图像上,并过滤图像,使其只覆盖多边形内的区域即可。.
解决方案 1B 优点
解决方案 1B 缺点
解决方案 1C:使用植被指数
可以根据卫星图像提供的色带计算植被指数。植被指数是一个结合多个色带的公式,通常与植被的存在或密度(或其他指标,如水的存在)高度相关。.
多种指数 在农业领域,最常用的指数之一是归一化植被指数(NDVI)。该指数用于估算地面植被的密度,可用于检测大面积图像上的农业区域。.

农业区和沙漠的归一化差异植被指数直观图(哥白尼哨兵 data 2019 年)
计算出每个像素的 NDVI 值后,您可以设置一个阈值,以快速消除没有植被的像素。我们以 NDVI 为例,但尝试使用各种指数有助于获得更好的结果。.
请注意,计算植被指数可以为您提供有用的信息,丰富您的分析,即使您已经采用了另一种方法来检测农业区。.
解决方案 1C 优点
解决方案 1C 缺点
步骤 2--探测和勾画农田
构建无监督边缘检测器
一旦确定了农业区的位置,就可以开始重点勾画这些特定区域内的各个地块。.
在没有标注 data 的情况下,我们决定采用一种无监督的方法,基于 OpenCV 的 Canny 边缘检测. .边缘检测包括观察一个特定的像素,并将其与周围的像素进行比较。如果与邻近像素的对比度较高,则该像素可被视为边缘。.
使用 OpenCV 检测农田边缘的示例(哥白尼哨兵 data 2019)
一旦识别出所有可能成为真正边缘的像素,我们就可以开始平滑边缘,并尝试形成多边形。不出所料,在应用于大型地块时,边缘检测算法的性能被证明要好得多:

绘制地块大纲全过程示意图 (哥白尼哨兵 data 2019)。
通过这种方法,我们可以自动识别出相关区域内的近 7000 块地块。由于我们使用了像素分类法(见步骤 1A),因此能够将真正的农场地块与其他多边形区分开来,从而只保留相关的 data。.
消除了由少数 “农场像素 ”组成的多边形(哥白尼哨兵 data 2019)。
优化边缘检测算法的性能
为了获得最佳效果,对图像进行修改,特别是对对比度、饱和度或锐利度进行修改,可能会有所帮助:

尝试对比度、饱和度或清晰度有助于提高边缘检测的效率(哥白尼哨兵 data 2019)
另一个关键的成功因素是强制多边形为凸形。大多数绘图都遵循规则的形状,强制凸多边形通常可以获得更好的效果。.

强制凸形更适合大多数地形图(哥白尼哨兵 data 2019)
步骤 3 - 对每个地块进行分类,以检测特定作物
识别出所有地块后,就可以裁剪每个地块并将其保存为单独的图像文件。下一步是训练分类模型,以便根据作物来区分每个地块。换句话说,尝试从谷物或土豆中识别出番茄作物。.
建立标记训练集
由于我们没有已经标注过的 data 集,而手动标注数百张图片又过于耗时,因此我们寻找包含特定时间和地点特定地块作物信息的互补 data 集。.
理想的情况是有预先标注的图像,但在我们的案例中,我们只有感兴趣地区几百块农田的地理坐标和作物信息。这个 dataset 包含一份地块列表、地块中心的经纬度以及一年中特定时间种植的作物。.

外部作物 data 信号源示意图
为了建立训练集,我们使用了地理坐标到像素坐标转换器(共享于 第一部分)来识别我们图像库中有标签(作物)的具体地块。.
在步骤 2 中确定的 7000 个地块中,我们利用外部 data 源成功标注了约 500 个地块。这 500 块贴有标签的地块用于训练和评估分类模型。.
模型化
我们选择使用卷积神经网络,利用 fastai 库, 因为这是一种对图像进行分类的有效方法。.
为了找到最佳分类器,我们对输入的 data 进行了实验:

在使用各种 data 制备技术生成的 data 集上训练了数十个模型
在尝试了各种分类模型后,我们对最小的地块(由于像素数量少,因此最难分类)进行二元分类时,准确率达到 78%,召回率达到 74%。.
应牢记的挑战
在农田工作时,哪怕只有几周时间,也会产生巨大的差别。在几周内,小麦作物就可以从绿色变成金黄色,再到收获:
在农田工作时,短短几周时间就能产生巨大变化(哥白尼哨兵 data 2019)
因此,要在全年推广这一项目,有两点需要注意:
结论
使用卫星图像可以带来无限的可能性。考虑到每颗卫星提供的功能各不相同,以及根据研究领域的不同,data 的可用性和互补格式在世界各地也各不相同,每个项目最终都将成为一个独特的用例。.
我们希望通过分享我们的观点和方法,能对您自己的项目有所启发!如果您渴望开始自己的卫星图像项目,请务必阅读“ "。“利用卫星图像进行机器学习计算机视觉应用”安托万-奥贝的作品.
感谢您的阅读,请随时 关注 Artefact 技术博客 如果您希望在我们的下一篇文章发布时收到通知 !

博客






