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