
人工智能计算机视觉深度学习预训练微调【免费下载链接】Vim[ICML 2024] Vision Mamba: Efficient Visual Representation Learning with Bidirectional State Space Model项目地址https://gitcode.com/gh_mirrors/vim2/Vim点击查看免费下载DensePose CSEContinuous Surface Embeddings连续表面嵌入是 DensePose 项目中用于稠密姿态估计的第二种核心范式模型不再预测离散的 UV 坐标而是同时学习网格顶点与图像像素的嵌入描述子并通过匹配把每个像素定位到三维物体表面。本文以仓库内 DENSEPOSE_CSE.md 为骨架结合 DensePose 子项目的配置、源码与评测模块系统讲解 CSE 的架构流水线、数据集约定、完整模型库Model Zoo基线、hard/soft 损失设计、嵌入器机制以及动物类别微调实战读完即可独立复现与扩展 CSE 模型。一、概述CSE 的核心思想与流水线1.1 从离散图表到连续表面DensePose 项目中存在两条并行的技术路线见 DensePose 主 README基于图表的估计Chart-basedDENSEPOSE_IUV将三维网格切分成多个 chart为每个像素预测图表索引I与局部坐标(U, V)连续表面嵌入CSE本文主题让模型同时学习网格顶点的描述子和图像像素的描述子将两者放入同一嵌入空间并建立对应关系从而推导出每个像素在三维模型上的位置。CSE 的优势在于它不依赖预定义的图表划分天然支持把同一套方法迁移到新类别例如动物只要该类别存在一个三维网格模型即可。1.2 架构流水线CSE 流水线以Faster R-CNN Feature Pyramid NetworkFPN为元架构Meta Architecture。对每一个被检测到的目标模型预测两路输出粗分割Scoarse segmentation2 个通道即前景 / 背景嵌入Eembedding16 个通道即每个像素的连续表面嵌入向量16 维嵌入空间。与此同时嵌入器embedder为对应的三维网格产生顶点嵌入Ê。通用的位置嵌入E像素侧与顶点嵌入Ê网格侧被匹配起来从而为每个像素推导出其连续表面嵌入即在三维表面的位置。这一流程在源码中可以得到直接印证DensePose 的 CSE 预测器 predictors/cse.py 中的DensePoseEmbeddingPredictor对头部特征并行执行两次转置卷积——embed_lowres输出通道数为CSE.EMBED_SIZEcoarse_segm_lowres输出通道数为NUM_COARSE_SEGM_CHANNELS随后经双线性插值上采样最终返回DensePoseEmbeddingPredictorOutput(embeddingembed, coarse_segmcoarse_segm)# densepose/modeling/predictors/cse.py要点摘录 self.coarse_segm_lowres ConvTranspose2d( dim_in, n_segm_chan, kernel_size, stride2, paddingint(kernel_size / 2 - 1)) self.embed_lowres ConvTranspose2d( dim_in, embed_size, kernel_size, stride2, paddingint(kernel_size / 2 - 1))其中embed_size cfg.MODEL.ROI_DENSEPOSE_HEAD.CSE.EMBED_SIZE其默认值为16定义在 densepose/config.py 的add_densepose_head_cse_config中n_segm_chan NUM_COARSE_SEGM_CHANNELS在 CSE 基础配置 Base-DensePose-RCNN-FPN.yaml 中被设为 2前景 / 背景与文档描述完全一致。1.3 训练数据CSE 模型训练与验证使用的数据集细节请参考仓库文档 DENSEPOSE_DATASETS.md人体基于 COCO 2014 的 CSE 标注densepose_coco_2014_train_cse、valminusminival_cse、minival_cse动物DensePose LVIS 中 9 个动物类别cat、dog、sheep、horse、zebra、giraffe、elephant、cow、bear的 CSE 标注划分出ds1_train与ds2_train两个训练集详见 数据集文档的 CSE 标注章节。数据集使用注意事项来自数据集文档ds2_train复用了部分ds1_train的标注且ds1_train中的部分标注出现在ds2_val中——因此若要在ds2_val上评估不应在ds1_train上训练以免数据泄漏。二、模型库Model Zoo与基线表现以下表格完整继承自 DENSEPOSE_CSE.md 的模型库章节。其中lr sched为学习率调度s1x / 4K / 16k 分别对应 13 万、4 千、1.6 万次迭代的训练协议dl后缀对应 DeepLab 风格的 DensePose 头部仓库中对应 roi_heads/deeplab.py 的实现可据此推断。2.1 人体 CSE 模型hard assignment 损失 ℒ采用 Neverova et al, 2020 的训练协议使用硬分配损失 ℒ对应源码中的EmbeddingLoss名称配置lr sched训练时间 (s/iter)推理时间 (s/im)训练显存 (GB)box APsegm APdp. AP GPSdp. AP GPSmmodel idR_50_FPN_s1xs1x0.3490.0606.361.167.164.465.7251155172R_101_FPN_s1xs1x0.4610.0717.462.367.264.765.8251155500R_50_FPN_DL_s1xs1x0.3990.0617.060.867.865.566.4251156349R_101_FPN_DL_s1xs1x0.5040.0748.361.568.065.666.62511566062.2 人体 CSE 模型soft assignment 损失 ℒσ使用软分配损失 ℒσ对应源码中的SoftEmbeddingLoss名称配置lr sched训练时间 (s/iter)推理时间 (s/im)训练显存 (GB)box APsegm APdp. AP GPSdp. AP GPSmmodel idR_50_FPN_soft_s1xs1x0.3570.0579.761.366.964.365.4250533982R_101_FPN_soft_s1xs1x0.4640.07110.562.167.364.566.0250712522R_50_FPN_DL_soft_s1xs1x0.4270.06211.360.868.066.166.7250713703R_101_FPN_DL_soft_s1xs1x0.4830.07112.261.568.266.267.12507130612.3 动物 CSE 模型基于ds1_train微调将人体 CSE 模型在ds1_train动物数据上以软分配损失 ℒσ 微调得到数据集细节见 DensePose LVIS 章节名称配置lr sched训练时间 (s/iter)推理时间 (s/im)训练显存 (GB)box APsegm APdp. AP GPSdp. AP GPSmmodel idR_50_FPN_soft_chimps_finetune_4k4K0.5690.0514.762.059.032.239.6253146869R_50_FPN_soft_animals_finetune_4k4K0.3810.0617.344.955.521.328.8253145793R_50_FPN_soft_animals_CA_finetune_4k4K0.4120.0597.153.459.525.433.4253498611缩写说明CAclass agnostic类别无关训练——将所有被标注的实例映射到单一类别中进行训练。2.4 动物 CSE 模型基于ds2_train含 cycle loss 方案将人体 CSE 模型在ds2_train上以软分配损失 ℒσ 微调部分调度还叠加了循环一致性损失cycle losses详见 RELEASE_2021_06.md 与 Neverova et al, 2021名称配置lr sched训练时间 (s/iter)推理时间 (s/im)训练显存 (GB)box APsegm APdp. AP GPSdp. AP GPSmGErrGPSmodel idR_50_FPN_soft_animals_I0_finetune_16k16k0.3860.0588.454.267.029.038.613.285.4270727112R_50_FPN_soft_animals_I0_finetune_m2m_16k16k0.5080.05612.254.167.328.638.412.587.6270982215R_50_FPN_soft_animals_I0_finetune_i2m_16k16k0.4830.0569.754.066.628.938.311.088.92707274612.5 指标口径说明box AP/segm AP标准的目标检测与实例分割平均精度dp. AP GPS/dp. AP GPSmDensePose 姿态估计的 AP 指标基于测地线点相似度Geodesic Point Similarity, GPS度量GPSm为均值版本GErr测地线误差越小越好GPS测地线点相似度越大越好。这两列仅出现在ds2_train动物模型中对应 CSE 场景下的网格对齐评估仓库中的评估实现见 evaluation/mesh_alignment_evaluator.py。各行的model id用于区分不同训练运行对应模型权重与metrics.json训练日志的下载入口请见原文档 DENSEPOSE_CSE.md 模型库表格中的 download 列。三、配置体系与源码级解析3.1 基础配置Base-DensePose-RCNN-FPN.yaml所有 CSE 模型共享的基础配置 Base-DensePose-RCNN-FPN.yaml 定义了 CSE 任务的骨架主干与 FPNbuild_resnet_fpn_backboneFPN 输入为[res2,res3,res4,res5]输出[p2,p3,p4,p5,p6]供 RPN 使用ROI 头部ROI_HEADS.NAME DensePoseROIHeadsNUM_CLASSES 1人体单类DensePose 头ROI_DENSEPOSE_HEAD.NAME DensePoseV1ConvXHeadNUM_COARSE_SEGM_CHANNELS 2前景 / 背景PREDICTOR_NAME DensePoseEmbeddingPredictorLOSS_NAME DensePoseCseLossCSE 专属配置CSE.EMBED_LOSS_NAME可选EmbeddingLoss硬分配或SoftEmbeddingLoss软分配求解器IMS_PER_BATCH 16、BASE_LR 0.01、梯度裁剪norm 类型、值 1.0评估DENSEPOSE_EVALUATION.TYPE cse、STORAGE file。其中DensePoseCseLoss的实现位于 losses/cse.py它把总损失组织为loss_densepose_S INDEX_WEIGHTS × segm_loss 粗分割损失 loss_densepose_E{mesh} EMBED_LOSS_WEIGHT × embed_loss 每网格的嵌入损失 loss_shape2shape / loss_pix2shape 可选的循环一致性损失3.2 人体 CSE 基线与嵌入器配置Base-DensePose-RCNN-FPN-Human.yaml 为人体 CSE 引入了核心的**顶点嵌入器embedder**配置MODEL: ROI_DENSEPOSE_HEAD: CSE: EMBEDDERS: smpl_27554: TYPE: vertex_feature # 嵌入器类型 NUM_VERTICES: 27554 # SMPL 网格顶点数 FEATURE_DIM: 256 # 顶点特征维度 K FEATURES_TRAINABLE: False # 顶点特征LBO 特征固定 IS_TRAINABLE: True # 映射矩阵参与训练 INIT_FILE: ... # 预计算的 LBO 特征文件 DATASETS: CLASS_TO_MESH_NAME_MAPPING: 0: smpl_27554 # 类别 0 对应 SMPL 网格由此可看到 CSE 的关键设计顶点特征来自拉普拉斯-贝尔特拉米算子LBO预计算并固定FEATURES_TRAINABLE: False只训练把特征映射到嵌入空间的参数矩阵。3.3 顶点嵌入器vertex_direct 与 vertex_feature仓库在 modeling/cse/embedder.py 中定义了两种嵌入器类型EmbedderType枚举并通过create_embedder()依据配置创建vertex_directVertexDirectEmbedder见 vertex_direct_embedder.py直接把每个顶点映射为一个可学习的[N, D]嵌入张量N 顶点数D 嵌入维度forward输出normalize_embeddings(self.embeddings)vertex_featureVertexFeatureEmbedder见 vertex_feature_embedder.py先加载固定顶点特征F形状[N, K]再与可学习映射E形状[K, D]做矩阵乘法F * E得到[N, D]顶点嵌入并归一化。这正是人体 / 动物配置中使用的类型。嵌入器容器Embedder支持多网格每个网格一个子模块embedder_{mesh_name}并支持从已有模型检查点非严格加载strictFalse以便在不同网格间做微调例如把人体模型迁移到动物网格。3.4 损失函数hard 与 soft assignmentEmbeddingLoss硬分配losses/embed.py 实现。对每个网格计算观测像素嵌入与所有网格顶点嵌入的平方欧氏距离矩阵除以EMBEDDING_DIST_GAUSS_SIGMA默认 0.01作为未归一化得分然后对 GT 顶点 ID 做交叉熵F.cross_entropy即每个像素被硬性指派到最匹配的顶点SoftEmbeddingLoss软分配losses/soft_embed.py 实现。得分同时考虑嵌入距离EMBEDDING_DIST_GAUSS_SIGMA默认 0.01与网格顶点间的测地线距离GEODESIC_DIST_GAUSS_SIGMA默认 0.01先对 GT 顶点按测地线距离做softmax得到软目标再与嵌入距离的log_softmax加权求和使损失对相邻顶点更平滑——这正是软分配损失在动物模型以及_soft_系列人体模型中被采用的原因。相关超参数全部集中在 densepose/config.py 的add_densepose_head_cse_config中除上述两个 sigma 外还包括配置项默认值说明CSE.EMBED_SIZE16嵌入空间维度 DCSE.EMBED_LOSS_WEIGHT0.6嵌入损失权重CSE.EMBED_LOSS_NAMEEmbeddingLoss硬 / 软分配损失切换CSE.FEATURES_LR_FACTOR1.0顶点特征学习率因子CSE.EMBEDDING_LR_FACTOR1.0嵌入参数学习率因子3.5 循环一致性损失Cycle Losses对于跨类别迁移如ds2_train上的m2m/i2m方案文档提到部分调度叠加了循环损失源码中对应两类shape-to-shape 循环损失SHAPE_TO_SHAPE_CYCLE_LOSS默认ENABLED: FalseWEIGHT: 0.025NORM_P: 2TEMPERATURE: 0.05MAX_NUM_VERTICES: 4936在两个网格的顶点嵌入之间做循环一致性约束pixel-to-shape 循环损失PIX_TO_SHAPE_CYCLE_LOSS默认ENABLED: FalseWEIGHT: 0.0001NUM_PIXELS_TO_SAMPLE: 100PIXEL_SIGMA: 5.0等在像素嵌入与网格顶点嵌入之间做循环一致性约束。实现分别位于 losses/cycle_shape2shape.py 与 losses/cycle_pix2shape.py并由DensePoseCseLoss根据配置按权重叠加。3.6 评估配置CSE 评估通过DENSEPOSE_EVALUATION段配置densepose/config.pyTYPEcse或iouCSE 模型用前者STORAGEnone/ram/file其中file最省内存EVALUATE_MESH_ALIGNMENTCSE 场景下是否评估网格对齐动物模型配置中设为TrueMESH_ALIGNMENT_MESH_NAMES指定要评估的网格。四、训练与微调实战要点4.1 从头训练人体 CSE 模型以 densepose_rcnn_R_50_FPN_s1x.yaml 为例hard 分配损失_BASE_: Base-DensePose-RCNN-FPN-Human.yaml MODEL: WEIGHTS: detectron2://ImageNetPretrained/MSRA/R-50.pkl # ImageNet 预训练主干 RESNETS: DEPTH: 50 ROI_DENSEPOSE_HEAD: CSE: EMBED_LOSS_NAME: EmbeddingLoss # 硬分配损失 SOLVER: MAX_ITER: 130000 STEPS: (100000, 120000) # s1x 调度13 万迭代将EMBED_LOSS_NAME换成SoftEmbeddingLoss即得到 densepose_rcnn_R_50_FPN_soft_s1x.yaml。训练入口为 train_net.py环境搭建与快速开始请参考 GETTING_STARTED.md。4.2 微调动物 CSE 模型ds1_train类别无关densepose_rcnn_R_50_FPN_soft_animals_CA_finetune_4k.yaml 展示了从人体模型迁移到动物的完整配方权重初始化MODEL.WEIGHTS指向人体软分配模型densepose_rcnn_R_50_FPN_soft_s1xmodel id250533982的权重实现跨类别迁移粗分割改用掩码监督COARSE_SEGM_TRAINED_BY_MASKS: True损失平滑增强EMBEDDING_DIST_GAUSS_SIGMA: 0.1、GEODESIC_DIST_GAUSS_SIGMA: 0.1比人体默认的 0.01 更大9 个动物网格嵌入器cat_5001 / dog_5002 / sheep_5004 / horse_5004 / zebra_5002 / giraffe_5002 / elephant_5002 / cow_5002 / bear_4936均使用vertex_feature类型、FEATURE_DIM: 256、FEATURES_TRAINABLE: False类别白名单与类别无关映射WHITELISTED_CATEGORIES只保留 9 个动物 LVIS 类别 IDCATEGORY_MAPS把所有动物类别映射到单一类别如sheepID 943实现CAclass agnostic训练CLASS_TO_MESH_NAME_MAPPING给出类别到网格的对应CA 模式下网格由 GT 数据决定调度MAX_ITER: 4000、STEPS: (3000, 3500)4K 协议评估EVALUATE_MESH_ALIGNMENT: True。4.3 微调动物 CSE 模型ds2_train多类别 循环损失densepose_rcnn_R_50_FPN_soft_animals_I0_finetune_16k.yaml 则展示了多类别版本ROI_HEADS.NUM_CLASSES: 9CLASS_TO_MESH_NAME_MAPPING为 9 个类别分别指定网格bear_4936、cow_5002、cat_7466、dog_7466、elephant_5002、giraffe_5002、horse_5004、sheep_5004、zebra_5002权重从densepose_rcnn_R_50_FPN_soft_animals_finetune_maskonly_24k微调而来调度为MAX_ITER: 16000、STEPS: (12000, 14000)16k 协议I0表示不启用循环损失的基准m2m/i2m变体在 对应配置 中启用不同方向的循环一致性损失。五、引用References如果使用基于连续表面嵌入的 DensePose 方法请引用以下文献BibTeX 条目与 DENSEPOSE_CSE.md 一致连续表面嵌入InProceedings{Neverova2020ContinuousSurfaceEmbeddings, title {Continuous Surface Embeddings}, author {Neverova, Natalia and Novotny, David and Khalidov, Vasil and Szafraniec, Marc and Labatut, Patrick and Vedaldi, Andrea}, journal {Advances in Neural Information Processing Systems}, year {2020}, }循环一致性损失Universal Canonical MapsInProceedings{Neverova2021UniversalCanonicalMaps, title {Discovering Relationships between Object Categories via Universal Canonical Maps}, author {Neverova, Natalia and Sanakoyeu, Artsiom and Novotny, David and Labatut, Patrick and Vedaldi, Andrea}, journal {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, year {2021}, }总结DensePose CSE 以像素嵌入 ↔ 顶点嵌入的通用嵌入空间为核心摆脱了图表划分的约束使稠密姿态估计能够平滑迁移到人体之外的任意网格类别。结合仓库内 configs/cse 下 19 份配置与 densepose/modeling 中的嵌入器、预测器、损失实现你可以从 s1x 人体基线出发通过软分配损失、类别无关映射与循环一致性损失逐步构建并微调属于自己的动物稠密姿态模型。赞分享人工智能计算机视觉深度学习预训练微调【免费下载链接】Vim[ICML 2024] Vision Mamba: Efficient Visual Representation Learning with Bidirectional State Space Model项目地址https://gitcode.com/gh_mirrors/vim2/Vim点击查看免费下载相关推荐DensePose 连续表面嵌入CSE技术全解从人类到动物的稠密姿态估计与模型实战DensePose 连续表面嵌入CSE技术全解从人类到动物的稠密姿态估计与模型实战 导读 本文围绕 DensePose 项目的 Continuous Su人工智能计算机视觉深度学习机器学习Vim 仓库 DensePose 项目实战指南IUV 图表估计与 CSE 连续表面嵌入双范式全解析Vim 仓库 DensePose 项目实战指南IUV 图表估计与 CSE 连续表面嵌入双范式全解析 本指南以 Vim 仓库中 det/projects/Den人工智能计算机视觉深度学习预训练微调DensePose in Detectron2面向 IDM-VTON 的人体稠密姿态估计与预处理实战指南DensePose in Detectron2面向 IDM VTON 的人体稠密姿态估计与预处理实战指南 DensePose 将传统稀疏人体关键点提升为稠密计算机视觉深度学习媒体生成上一篇Apache MXNet社区用户案例如何用MXNet解决实际业务问题下一篇Dgraph事务日志管理大小限制与轮转策略创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考