COCO预训练模型

发布于:2025-09-08 ⋅ 阅读:(12) ⋅ 点赞:(0)
  1. 命名与定位
    Common Objects in Context(COCO)是微软研究院 2014 年开源的 multi-task 视觉基准,覆盖目标检测、实例分割、全景分割、关键点检测与图像描述五项任务。其设计目标是“对象级上下文理解”,强调复杂场景下的精细标注与长尾分布。

  2. 数据规模与标注粒度
     • 图像量:123 k 张训练 + 40 k 验证 + 20 k 测试(2017 split)。
     • 类别:80 thing 类(人、车、动物等)+ 91 stuff 类(可扩展,用于全景分割)。
     • 实例框:1.5 M 个轴对齐 bbox,全部人工绘制,IoU>90 % 通过二次质检。
     • 分割掩膜:instance mask 采用 uncompressed RLE,平均顶点数 ≈ 200,支持像素级 IOU 评估。
     • 关键点:17 点骨架,标注人数 > 250 k,遮挡点统一赋 vis=1。
     • 平均图像分辨率:640×480;最小对象 16×16 像素,保证下游小目标训练价值。
     • 元数据:每张图附带 5 句人工英文描述,用于视觉-语言预训练。

  3. 标注管线与质量控管
     a. 分段式标注:先画 bbox → 生成超像素 → 人工修正 mask → 交叉验证 → 质检。
     b. 质检指标:mask 精度 < 1 pixel 误差;bbox 一致性 IoU>0.95;关键点半自动地真值对比。
     c. 版本冻结:2017 版后不再扩充,保证 benchmark 一致性;新增数据以“COCO-Stuff”、“LVIS”外挂形式发布。

  4. 评估协议(官方 metric)
     • 检测:mAP@0.50:0.95(primary)、mAP@0.50(PASCAL 兼容)、mAP@small/medium/large。
     • 分割:mask mAP(同检测指标),RLE 直接参与计算。
     • 关键点:OKS-based mAP,σ 按人体部位动态加权。
     • 全景分割:PQ = SQ × RQ,统一 thing & stuff 评估。

  5. 与下游任务的接口
     a. 检测/实例分割:提供 COCO API(Python/C++),RLE ↔ polygon 互转,支持 COCOeval 一键算分。
     b. 预训练权重:ImageNet-1k → COCO 微调后的 ResNet、Swin、ConvNeXt、ViT 检测/分割 checkpoint,已成为 torchvision、Detectron2、MMDetection 的默认初始化。
     c. 长尾修正:LVIS 在 COCO 基础上引入 1 k+ 类别与 federated 采样,解决 rare 类 AP 塌陷。
     d. 视觉-语言:COCO Captions + VG Regions → CLIP、ALIGN、BLIP 等预训练语料。

  6. 工业界落地价值
     • 低成本冷启动:用 COCO 预训练权重初始化,10 % 自定义数据即可达到 95 % 终版性能,节省 70 % 标注与 GPU 费用。
     • 端侧部署:80 类覆盖交通、安防、零售高频目标,结合量化后 4 MB YOLO-Nano 可在 RK3588 / Snapdragon 7 Gen1 上 30 FPS 运行。
     • 合规审计:COCO 采用 CC BY 4.0,商用仅需署名,无 GDPR 人脸风险(已匿名化)。

  7. 版本演进与兼容性
      2014 → 2015 → 2017(现行主版本)→ 2018 Keypoints → 2020 Panoptic。
      API 0.5+ 支持无缝切换,评估脚本向下兼容;老模型迁移只需改类别映射表。

  8. 一键复现(Detectron2 示例)

pip install detectron2 -f https://dl.fbaipublic.com/detectron2/wheels/cu118/torch2.1/index.html
wget http://images.cocodataset.org/zips/val2017.zip
wget http://images.cocodataset.org/annotations/annotations_trainval2017.zip
from detectron2.config import get_cfg
from detectron2.engine import DefaultPredictor
cfg = get_cfg()
cfg.merge_from_file("detectron2/configs/COCO-Detection/faster_rcnn_R50_FPN_3x.yaml")
cfg.MODEL.WEIGHTS = "detectron2://COCO-Detection/faster_rcnn_R50_FPN_3x/137849458/model_final_280758.pkl"
predictor = DefaultPredictor(cfg)
  1. 结论
    COCO 以严格的标注质量、多任务兼容性与工业级工具链,成为计算机视觉的“黄金初始化”。无论是云端大模型还是终端小芯片,先加载 COCO 权重再微调,仍是目前性价比最高的性能下限提升策略。

网站公告

今日签到

点亮在社区的每一天
去签到