DETR作为Transformer应用于目标检测领域的开山之作,后续有大量的算法都是在其基础上改进而来,如Deformable-DETR,DAB-DETR,DN-DETR,DINO等。这些模型尽管都是采用DETR的基本架构,但其改进创新却各有千秋,能否有一个框架将这些算法融合在一起方便我们使用呢?
CVR团队分别开源了DAB-DETR, DN-DETR, DINO后,CVR团队一直计划做一个统一的DETR系列代码框架,支持DETR系列的算法工作,并且希望这套codebase可以拓展到更多相关的任务上,终于在9.21号,CVR团队正式开源detrex,整合重构复现了之前的开源工作并且吸纳了一系列DETR系列算法。
下载地址
https://github.com/IDEA-Research/detrex
其支持的算法足够丰富,目前已经支持的算法有:
为方便使用,detrex在代码易用性上做了以下的改进,并做了模块化设计:
- 模块化设计:detrex解耦了DETR系列算法中的一些必要组件,方便用户替换其中的模块,例如在backbone上不仅支持了ResNet,Swin等必要的backbone,还额外支持了Timm以及Torchvision的Backbone,并且代码结构足够清晰,用户可以方便添加自己的backbone。
- 项目管理:detrex对于每个算法,都在projects下进行了单独的维护,保证了每个算法之间不会互相影响,并且用户可以单独看具体某个算法的实现代码,不会有额外的信息干扰。
- 轻量化的config system与training engine:detrex基于detectron2的LazyConfig进行二次开发,
整理训练代码十分简洁,配置文件十分清晰,方便用户实现自己的配置需求以及custom自己的训练流程。
其环境配置也与原本的DETR类模型别无二致。