支持遥感图像了,Jittor开源物体检测算法库JDet

8月4日,清华大学计图(Jittor)团队发布了遥感图像物体检测算法库JDet,支持S2ANet,Gliding,RetinaNet,Faster R-CNN等主流的遥感图像物体检测模型。希望借助Jittor的性能优势和能较好地支持国产操作系统和芯片的特点,为我国的遥感领域的进步做贡献。

Part 1

遥感图像物体检测的背景和意义

遥感图像处理关注目标检测、语义分割和实例分割等不同视觉任务在遥感图像中的应用,在灾害防控、城市规划、环境监测和国土安全等领域有着重要作用(示例见图1)。然而,遥感图像具有物体尺度差异较大、物体分布较密集、图像分辨率高、旋转变化大等特点,因此针对自然图像的通用算法和模型效果往往不佳,需要专用的遥感算法和模型。

图1 遥感图像物体检测示例

遥感图像物体检测任务旨在从遥感图像中检测出所关注物体的旋转包围盒(Oriented Bounding Box, OBB),并得到所检测出物体的类别。目前学术界已有很多优秀的遥感物体检测算法,并且部分已经开源,但是这些开源代码在运行接口、构建方式、运行所需的软、硬件环境等方面不统一,使得用户在测试和修改模型时的环境配置成本和学习成本较大,降低了研究和开发的效率。

Part 2

遥感检测库JDet****

Jittor团队基于Jittor深度学习框架开发了遥感图像物体检测算法库JDet,对现主流遥感图像物体检测算法进行整理重构,统一接口,提升易用性,并且借助Jittor深度学习平台的优势,使其更高效、稳定运行。

目前JDet已经支持4个模型,正在支持6个模型,共计划支持15个以上主流及基础模型。目前,JDet支持光学遥感影像的处理,后续JDet也将支持SAR图像的处理!

性能提升

我们对其中精度最高的S2ANet与Pytorch实现的版本在NVIDIA3090上进行了对比,其性能相较pytorch有较大提升,可以显著缩短模型训练所需要的时间。

表1 JDet和mmdet(PyTorch)的性能对比

接口统一

JDet还支持了COCO、DOTA和FAIR等目标检测数据集,集成了这些数据集的相关辅助工具,包括数据预处理、后处理等,方便用户使用。此外,JDet还集成了不同的数据增强策略,和数据均衡化等一些目标检测领域常用的优化技巧。

易用性提升

由于Jittor动态编译的特性及code算子对python内联C++及CUDA的支持,JDet在不同环境下无需对任何算子进行手动编译,即可轻松运行不同模型,免去了用户对不同模型分别配置环境的负担,同时方便用户对不同方法进行更公平的比较。此外,JDet的设计易于拓展,用户可以基于JDet已有的模型和功能方便地开展进一步的研究和开发。

未来,JDet将继续完善模型库,并支持更多的目标检测数据集,还将提供FPS、FLOPS、参数量自动测试等功能。

Part 3

实践案例

下面,我们将简要介绍如何使用JDet训练一个基础模型。

首先,下载数据集到原始数据集目录。

通过脚本preprocess.py对原始数据进行预处理,得到处理后的数据集。然后即可对模型进行训练,训练后JDet将会自动对模型在测试集上进行测试、后处理和打包。整个过程只需要运行两个脚本即可完成数据集预处理、模型训练、模型测试、结果后处理和打包等过程,尽可能地降低了用户的使用成本。

图2 JDet遥感物体检测算法输出结果示例

JDet全部代码已开源在:GitHub - Jittor/JDet: JDet is an object detection benchmark based on Jittor. Mainly focus on aerial image object detection (oriented object detection).

欢迎大家使用Jittor的遥感目标检测库JDet开展研究工作。

如果大家在使用过程中发现有什么问题,请大家在github提交issue或者PR。也可以加入Jittor开发者的QQ交流群,期待您提出宝贵的意见。

预告

Jittor作为中国科学院空天信息创新研究院主办的第五届“中科星图杯”国际高分遥感图像解译大赛官方指定深度学习框架之一,针对大赛所使用的数据集和提交方式提供了相关支持和工具。在未来几天,我们将发布使用JDet参赛的详细图文和视频教程,以及答疑服务,届时欢迎各位选手使用。

大赛地址:

http://sw.chreos.org/challenge