技术文章和通讯

利用深度学习分析卫星雷达图像

凯利·道奇和卡尔·豪厄尔,C-CORE


平均每年约有500座冰山进入纽芬兰和拉布拉多近海地区,对航运和海洋作业构成潜在威胁。20世纪90年代,公司开始使用卫星合成孔径雷达(SAR)监测冰山和海冰。SAR非常适合这项任务,因为它可以在白天和晚上从大片的海洋中捕捉图像,也可以透过云层、雾和其他不利的天气条件。

SAR图像的分析包括识别图像中的目标(高强度像素簇),并将它们分类为冰山或船只(图1)。即使是受过高度训练的专家,也需要花费数小时来分析少量帧,特别是当目标难以识别时。

图1所示。在格陵兰岛附近拍摄的SAR图像,目标在盘旋。

我们在C-CORE的团队与挪威能源公司Equinor合作,开发使用深度学习对SAR图像中的目标进行分类的自动化软件。我们决定通过举办Kaggle比赛来利用全球人工智能研究人员的专业知识。我们研究了来自竞赛的最佳想法,在MATLAB中使用卷积神经网络(CNNs)实现它们®,然后构建可用于操作的软件。

冰山识别面临的挑战

SAR图像的分辨率取决于图像所覆盖的面积:图片集中在相对较小的地区高分辨率比那些封面大片的海洋,因此容易分类(图2和3)。在实践中,提取有用的信息从一个数据集的最大的数量,我们必须与各级图像的分辨率,即使是目标只有几个像素宽的图像。

图2。由多个偏振通道(标记为HH和HV)创建的易于分类的冰山(右上)和船舶(右下)的彩色合成图像。

图3。难以分类的冰山(右上)和船(右下)的彩色合成图像。

在我们开始使用深度学习之前,我们使用二次判别分析对冰山进行分类,但这涉及分割图像,将目标像素与背景海洋像素分离。图像分割是一个挑战,因为海洋环境变化很大,而恶劣环境造成的视觉杂波使每个目标的轮廓难以确定。在cnn中,不需要区分目标和背景,因为算法是在完整的SAR上训练的芯片,包含单一目标的固定维图像。

Kaggle竞争

我们的Kaggle竞赛向参赛者提出了一个简单的挑战:开发一种算法,能够自动将SAR图像芯片中的目标分类为船只或冰山。本次竞赛的数据集包括5000张由Sentinel-1卫星沿拉布拉多和纽芬兰海岸收集的多通道SAR数据提取的图像(图4)。我们的比赛是Kaggle有史以来最受欢迎的基于图像的比赛,有3343支队伍提交了47000多份参赛作品。

https://www.kaggle.com/c/statoil-iceberg-classifier-challenge/discussion/42108

" data-toggle="lightbox">

图4。由Sentinel-1卫星沿纽芬兰和拉布拉多海岸收集的SAR数据。
Adblu。“Statoil/C-CORE冰山分类器挑战:船还是冰山,你能从太空中做出判断吗?”Kaggle, 2017年11月8日https://www.kaggle.com/c/statoil-iceberg-classifier-challenge/discussion/42108

表现最好的条目都使用了深度学习。他们的模型共享许多特性和层,包括卷积、整流线性单元(ReLU)、最大池化和softmax层。此外,排名靠前的条目都使用了集成,将预测准确率从大约92%提高到97%。

用MATLAB建立我们的深度学习模型

以顶级的Kaggle条目为起点,我们使用MATLAB和深度学习工具箱开发了我们自己的深度学习模型。我们首先修改了深度学习工具箱中提供的一个简单的分类器。没过几天,我们就有了一个运行良好的网络。

为了优化网络性能,我们测试了不同的参数值组合,例如,每一层的节点数量、卷积层中使用的过滤器大小、最大池化层中使用的池大小,等等。我们编写了一个MATLAB脚本,自动构建、训练和测试10,000个不同的cnn,这些参数的值在合理的限制和约束下随机生成。

我们对结果进行了简单的贪婪搜索,以找到7个性能最高的cnn,并使用它们创建一个集成。与Kaggle竞赛获胜者使用的组合一样,我们的组合提高了近5%的整体准确率。

通过在MATLAB中工作,在两周内,我们从对CNN分类器的实现知之甚少,到产生了一个运行良好的解决方案。

将分类器集成到一个完整的系统中

目标识别是冰山识别的多步骤过程中的一步。该过程还涉及到陆地掩蔽,以消除由陆地物体引起的错误检测,并与地理信息系统软件集成,以生成显示冰山和船只位置的地图(图5)。

图5。地图上标明的冰山位置。

当雷达卫星星座任务卫星今年开始生成数据时,我们将获得更多的SAR图像——太多了,无法通过人工目视检查进行分析。集成深度学习算法的软件系统,如我们在MATLAB中开发的那些,将使C-CORE通过准确、快速和自动地处理这些数据,最大限度地利用这些数据。

2019年出版的