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