
UniDetector代码架构全景图基于mmdetection 2.18扩展的核心模块完全地图【免费下载链接】UniDetectorCode release for our CVPR 2023 paper Detecting Everything in the Open World: Towards Universal Object Detection.项目地址: https://gitcode.com/gh_mirrors/un/UniDetectorUniDetector 是一个基于 mmdetection 2.18 构建的开放世界通用目标检测框架核心创新是解耦训练策略与 CLIP 语言嵌入让模型能够检测开放世界中的任意物体类别。 本文将带你用一张地图快速看懂它的代码架构新手也能轻松上手。一、架构总览两阶段解耦设计的核心思路UniDetector 最大的特点是解耦训练Decoupled Training——把找物体在哪和物体是什么拆成两个独立阶段阶段任务是否依赖类别第一阶段区域提议CLN 模型❌ 与类别无关专注定位第二阶段RoI 分类 回归✅ 通过 CLIP 文本嵌入实现零样本识别这种设计的妙处在于第一阶段不需要学会分类就能泛化到任意新类别而第二阶段借助 CLIP 的图文对齐能力实现免训练识别新类别。二、骨干网络模块CLIP 视觉编码器全面移植位置mmdet/models/backbones/clipresnet.py这个文件把 CLIP 的完整视觉编码器移植进了 mmdetection 的模块化体系注册了 6 个核心骨干组件CLIPResNet第 108 行CLIP 版 ResNet用于第二阶段与端到端训练CLIPResNetWithAttention第 206 行带注意力池化的变体CLIPVisionTransformer第 444 行ViT 视觉主干CLIPTextEncoder/CLIPTextContextEncoder第 560、630 行文本编码组件为语言嵌入做准备ContextDecoder第 748 行视觉-文本上下文解码模块三、第一阶段模块开放世界区域提议CLN位置mmdet/models/dense_heads/oln_rpn_head.pyOlnRPNHead是 CLN 模型的核心参考了 OLN 论文的三大技巧每位置单锚点而非 3 个泛化能力更强用TBLR 距离回归替代传统框回归用 Centerness 评估定位质量避免分类过拟合前景配套的OlnRoIHeadmmdet/models/roi_heads/oln_roi_head.py进一步输出定位质量分与Shared2FCBBoxScoreHead协作完成提议打分。四、第二阶段模块CLIP RoI 零样本分类位置mmdet/models/roi_heads/bbox_heads/bbox_head_clip.pyBBoxHeadCLIP是零样本识别的关键加载zeroshot_path指向的CLIP 文本嵌入预计算语言特征RoI 特征与类别文本嵌入做余弦相似度打分天然支持任意类别with_clsFalse表示训练时不依赖固定类别表推理时可换成任何数据集的语言嵌入如 LVIS 1200 类此外还有BBoxHeadCLIPPartitionedbbox_head_clip_partitioned.py作为分区分类变体。五、配置文件地图三种训练推理模式位置configs/目录用途代表配置configs/singledataset/单数据集训练clip_end2end_faster_rcnn_r50_c4_1x_coco.py端到端、clip_decouple_faster_rcnn_r50_c4_1x_coco_1ststage.py/2ndstage.py解耦configs/multidataset/多数据集混合训练COCOObjects365OpenImagesclip_decouple_faster_rcnn_r50_c4_1x_oidobjcoco_2ndstage.pyconfigs/inference/开放世界推理LVIS v0.5clip_decouple_faster_rcnn_r50_c4_1x_lvis_v0.5_2ndstage_withcalibration.py含概率校准配置文件采用 mmdetection 标准的_base_继承机制如configs/_base_/default_runtime.py改参数无需碰代码。六、资源文件与上手路径语言嵌入clip_embeddings/ 已预计算 4 个数据集COCO、LVIS、Objects365、OpenImages的 RN50 多提示文本特征也可用 scripts/dump_clip_features_manyprompt.py 自行生成演示脚本demo/image_demo.py 与 demo/video_demo.py 开箱即用文档数据集准备见 docs/datasets.md七、总结一分钟记住这张架构地图骨干层clipresnet.py提供 CLIP 视觉/文本全组件提议层OlnRPNHeadOlnRoIHead组成与类别无关的 CLN 定位器分类层BBoxHeadCLIP用语言嵌入实现零样本识别配置层configs 三个目录覆盖端到端、解耦、开放世界推理全场景掌握这张地图后你可以直接定位感兴趣的模块深入阅读源码快速理解 UniDetector 如何做到检测开放世界的一切。【免费下载链接】UniDetectorCode release for our CVPR 2023 paper Detecting Everything in the Open World: Towards Universal Object Detection.项目地址: https://gitcode.com/gh_mirrors/un/UniDetector创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考