用深度学习分析卫星雷达图像
由凯利道奇和卡尔豪厄尔,C-CORE
我们的C-CORE团队已经与挪威能源公司Equinor合作开发了自动化软件,该软件使用深度学习对SAR图像中的目标进行分类。我们决定通过举办Kaggle比赛来利用全球AI研究人员社区的专业知识。世界杯预选赛小组名单我们研究了来自竞争的最佳想法,并在MATLAB中使用卷积神经网络(CNNs)实现它们®之后,他又开发了可用于操作的软件。
冰山识别的挑战
SAR图像的分辨率取决于图像覆盖的面积:聚焦于相对小区域的图像比覆盖大片海洋的图像具有更高的分辨率,因此更容易分类(图2和3)。在实践中,为了从数据集中提取最大数量的有用信息,我们必须处理所有分辨率级别的图像,甚至目标只有几个像素宽的图像。
在我们开始使用深度学习之前,我们使用二次判别分析对冰山进行分类,但这涉及到分割图像,将目标像素从背景海洋像素中分离出来。图像分割是一项挑战,因为海洋条件差异很大,恶劣条件造成的视觉杂波很难确定每个目标的轮廓。使用cnn,不需要从背景中区分目标,因为算法是在完整的SAR上训练的芯片,包含单个目标的固定维图像。
Kaggle竞争
我们的Kaggle竞赛向参与者提出了一个简单的挑战:开发一种能够自动将SAR图像芯片中的目标分类为船只或冰山的算法。比赛的数据集包括5000张从Sentinel-1卫星沿着拉布拉多和纽芬兰海岸收集的多通道SAR数据中提取的图像(图4)。我们的比赛被证明是Kaggle上有史以来最受欢迎的基于图像的比赛,有3343个团队提交了超过47000份提交。
表现最好的条目都使用了深度学习。他们的模型具有许多共同的特征和层次,包括卷积、整流线性单元(ReLU)、最大池化和软最大层。此外,排名靠前的条目都使用了集成来提高预测精度,从92%提高到97%。
用MATLAB建立深度学习模型
以Kaggle的顶级条目为起点,我们用MATLAB和深度学习工具箱™开发了自己的深度学习模型。我们从修改深度学习工具箱中提供的一个简单的分类器开始。几天之内,我们就有了一个运行良好的网络。
为了优化网络性能,我们测试了不同的参数值组合,例如,每一层中的节点数量、卷积层中使用的过滤器大小、最大池化层中使用的池大小,等等。我们编写了一个MATLAB脚本,可以自动构建、训练和测试10,000个不同的cnn,这些参数的值在合理的限制和约束条件下随机生成。
我们对结果执行了一个简单的贪婪搜索,以找到七个性能最高的cnn,并使用它们创建一个集合。与Kaggle比赛获胜者使用的组合一样,我们的组合提高了几乎5%的总体精度。
通过在MATLAB中工作,在两周内,我们从对CNN分类器的实现知之甚少,到产生了一个执行良好的解决方案,可以用于操作。
将分类器集成到一个完整的系统中
目标识别是冰山识别多步骤过程中的一个步骤。这个过程还包括陆地掩蔽,以消除陆地物体引起的错误探测,并与地理信息系统软件集成,以生成显示冰山和船只位置的地图(图5)。
当RADARSAT星座任务卫星今年开始生成数据时,我们将可以获得更多的SAR图像——太多了,无法通过人工视觉检查进行分析。集成了深度学习算法的软件系统,比如我们在MATLAB中开发的那种,将使C-CORE能够通过准确、快速和自动地处理这些数据来充分利用这些数据。
2019年出版的