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