我们在C-CORE的团队与挪威能源公司Equinor合作,开发使用深度学习对SAR图像中的目标进行分类的自动化软件。我们决定通过举办Kaggle比赛来利用全球人工智能研究人员的专业知识。我们研究了来自竞赛的最佳想法,在MATLAB中使用卷积神经网络(CNNs)实现它们®,然后构建可用于操作的软件。
冰山识别面临的挑战
SAR图像的分辨率取决于图像所覆盖的面积:图片集中在相对较小的地区高分辨率比那些封面大片的海洋,因此容易分类(图2和3)。在实践中,提取有用的信息从一个数据集的最大的数量,我们必须与各级图像的分辨率,即使是目标只有几个像素宽的图像。
在我们开始使用深度学习之前,我们使用二次判别分析对冰山进行分类,但这涉及分割图像,将目标像素与背景海洋像素分离。图像分割是一个挑战,因为海洋环境变化很大,而恶劣环境造成的视觉杂波使每个目标的轮廓难以确定。在cnn中,不需要区分目标和背景,因为算法是在完整的SAR上训练的芯片,包含单一目标的固定维图像。
Kaggle竞争
我们的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)。
当雷达卫星星座任务卫星今年开始生成数据时,我们将获得更多的SAR图像——太多了,无法通过人工目视检查进行分析。集成深度学习算法的软件系统,如我们在MATLAB中开发的那些,将使C-CORE通过准确、快速和自动地处理这些数据,最大限度地利用这些数据。