
人工智能计算机视觉深度学习预训练微调【免费下载链接】Vim[ICML 2024] Vision Mamba: Efficient Visual Representation Learning with Bidirectional State Space Model项目地址https://gitcode.com/gh_mirrors/vim2/Vim点击查看免费下载本文以本项目 det/projects/DensePose 的官方文档 DENSEPOSE_IUV.md 为主线系统讲解 chart-based DensePose 方法的原理、网络结构、损失函数、训练配置、模型库以及将 DensePose 从人体迁移到近亲动物类别的 Bootstrapping 训练管线。读完本文你将掌握I/U/V参数化的核心机制、四路输出的模型结构并能在仓库内找到对应源码、配置文件与预训练模型直接复现或二次开发。Chart-Based DensePose 的核心思想在像素与 3D 网格之间建立稠密对应Chart-based DensePose 方法的目标是在图像像素与 3D 物体网格之间建立稠密对应关系dense correspondences。其实现方式是将 3D 网格拆分成若干charts局部区域/补丁然后为图像中的每个像素估计两个量chart 索引I该像素属于网格上的哪一块局部区域局部 chart 坐标(U, V)该像素在对应 chart 内的二维参数化坐标。用于人体估计的 chart 划分如图 1见 DENSEPOSE_IUV.md所示人体表面被划分为 24 个部分body parts每个部分由U、V两个坐标参数化取值均在[0, 1]区间内。因此DensePose IUV 中的 IUV 正是指这组输出——chart 索引 I 加上两个局部坐标 U、V。从数据侧看这种参数化方式对应一种特定的注释类型chart-based annotations。仓库文档 DENSEPOSE_DATASETS.md 对其做了详细定义该类注释假设数据集中的所有实例共享同一个 3D 模型模型被拆分为 charts每个 chart 通过内部坐标U、V独立参数化。注释由**点级注释point-based annotations与分割注释segmentation annotations**两部分构成点级注释dp_x/dp_y是注释点相对包围盒左上角的归一化图像坐标以256x256为基准dp_I指定该点所属的细分割 chart 索引dp_U/dp_V是点在对应 chart 上的坐标。分割注释dp_masks是以 RLEcountssize编码的稠密掩码通常在包围盒内以256x256尺寸定义分割区域。当与点注释关联的 charts 比与分割掩码关联的 charts 更精细时注释中会区分细分割fine segmentation与点注释关联和粗分割coarse segmentation与掩码关联——这与下文模型中细分割I与粗分割S的双通道设计一一对应。网络架构基于 Faster R-CNN FPN 的 DensePose 扩展DensePose 采用 Faster R-CNN 配合 Feature Pyramid NetworkFPN作为元架构。对于每个检测到的对象模型预测四类输出粗分割S2 或 15 通道——前景/背景或背景 14 个预定义身体部位细分割I25 通道——背景 24 个预定义身体部位局部 chart 坐标U局部 chart 坐标V。源码中的实现证据在仓库中这一结构由 DensePoseROIHeads 实现。它是 detectron2 标准ROIHeads的扩展核心要点如下通过ROI_HEADS_REGISTRY.register()注册配置中ROI_HEADS.NAME指定为DensePoseROIHeads即启用见 Base-DensePose-RCNN-FPN.yaml_init_densepose_head依据MODEL.DENSEPOSE_ON决定是否构建 DensePose 分支若开启MODEL.ROI_DENSEPOSE_HEAD.DECODER_ON还会构建一个Decoder模块——这是 Panoptic FPN 论文Kirillov et al., 2019描述的语义分割头将 FPN 各层级特征融合为单一输出roi_head.py训练时经过densepose_data_filter过滤前景 proposal →ROIPooler池化 → DensePose 头 → 预测器 → 损失推理时则对每个检测框执行相同的池化、预测流程最后调用densepose_inference写回结果。预测器的输出形状定义在 DensePoseChartPredictor 中它接收 DensePose 头输出通过四个ConvTranspose2d步长 2 的上卷积分别产生粗分割[N, K, H, W]、细分割[N, C, H, W]、U 坐标[N, C, H, W]与V 坐标[N, C, H, W]四个张量再经UP_SCALE因子做双线性插值上采样。其中K是粗分割通道数2 前景/背景15 14 个身体部位/背景C是细分割通道数24 个细身体部位/背景N为实例数。基础配置文件要点Base-DensePose-RCNN-FPN.yaml 给出了完整的骨架配置可直接作为理解模型行为的入口配置项取值说明MODEL.META_ARCHITECTUREGeneralizedRCNN通用检测元架构MODEL.DENSEPOSE_ONTrue开启 DensePose 分支MODEL.ROI_HEADS.NAMEDensePoseROIHeads使用自定义 ROI 头MODEL.ROI_HEADS.NUM_CLASSES1单类别人检测MODEL.ROI_BOX_HEADFastRCNNConvFCHeadNUM_FC: 2池化7x7标准 box 头MODEL.ROI_DENSEPOSE_HEAD.NAMEDensePoseV1ConvXHead原始全卷积 DensePose 头MODEL.ROI_DENSEPOSE_HEAD.NUM_COARSE_SEGM_CHANNELS2粗分割通道数DATASETS.TRAINdensepose_coco_2014_traindensepose_coco_2014_valminusminival训练集DATASETS.TESTdensepose_coco_2014_minival验证集SOLVER.MAX_ITER90000迭代次数损失函数U/V 回归与 I/S 分割联合训练Chart-based 训练使用的损失定义在 DensePoseChartLoss 中其构成与权重如下损失项计算方式配置权重loss_densepose_U估计与真值 U 坐标的smooth L1 回归损失POINT_REGRESSION_WEIGHTSloss_densepose_V估计与真值 V 坐标的 smooth L1 回归损失POINT_REGRESSION_WEIGHTSloss_densepose_I细分割24 部位未归一化分数的交叉熵PART_WEIGHTSloss_densepose_S粗分割分数的交叉熵INDEX_WEIGHTS实现细节上U/V真值通过BilinearInterpolationHelper在预测热图尺寸HEATMAP_SIZE上做双线性插值提取再与真值点比较chart.py细分割损失按标注点提取分数后做交叉熵粗分割损失则通过MaskOrSegmentationLoss处理chart.py。当COARSE_SEGM_TRAINED_BY_MASKS开启时粗分割也可由实例分割掩码监督。值得注意的一个工程细节当某 batch 中没有合适真值数据时损失类会生成值为 0 的假损失fake lossestensor.sum() * 0目的是在 DDP 多卡训练中保证各 GPU 计算图一致、规约正常chart.py。推理流程将预测结果写回检测实例推理阶段调用 densepose_inference它将预测器输出的张量按图像切分成块每个块对应一张图上的若干检测并以pred_densepose字段写入对应Instances对象。若某个 field 为None例如未预测的置信度输出则保持原样从而支持不同预测器类型有无置信度共用同一推理入口。该函数也在测试时增强test-time augmentation等下游场景中复用见forward_with_given_boxes。训练配置速览从 s1x 到 DeepLabV3 头与置信度变体s1x 基本调度以 densepose_rcnn_R_50_FPN_s1x.yaml 为例其在基础配置之上仅做了少量修改_BASE_: Base-DensePose-RCNN-FPN.yaml MODEL: WEIGHTS: detectron2://ImageNetPretrained/MSRA/R-50.pkl RESNETS: DEPTH: 50 SOLVER: MAX_ITER: 130000 STEPS: (100000, 120000)即ResNet-50 主干 ImageNet 预训练权重训练 13 万迭代学习率在 10 万、12 万迭代处衰减s1x 调度。DeepLabV3 头 置信度变体DL/WC改进基线中有一类使用 DeepLabV3 头Chen et al., 2017并同时估计 U/V 置信度与分割置信度的配置如 densepose_rcnn_R_50_FPN_DL_WC1M_s1x.yaml_BASE_: Base-DensePose-RCNN-FPN.yaml MODEL: WEIGHTS: detectron2://ImageNetPretrained/MSRA/R-50.pkl RESNETS: DEPTH: 50 ROI_DENSEPOSE_HEAD: NAME: DensePoseDeepLabHead UV_CONFIDENCE: ENABLED: True TYPE: iid_iso SEGM_CONFIDENCE: ENABLED: True POINT_REGRESSION_WEIGHTS: 0.0005 SOLVER: CLIP_GRADIENTS: ENABLED: True MAX_ITER: 130000 STEPS: (100000, 120000)这里UV_CONFIDENCE.TYPE: iid_iso表示对 U/V 坐标使用各向同性高斯i.i.d. isotropic不确定度建模沿袭 Neverova et al., 2019 的相关不确定性思路SEGM_CONFIDENCE则开启分割置信度并搭配梯度裁剪。这些配置与文档中带置信度的模型族WC1/WC2/WC1M/WC2M一一对应。Bootstrapping将 DensePose 从人体迁移到近亲动物类别Bootstrapping 管线由 Sanakoyeu et al.2020提出目的是把在人体上训练的 DensePose 模型迁移到近亲动物类别以黑猩猩 chimpanzee 为例。目前该管线仅针对 chart-based 模型实现完整细节见 BOOTSTRAPPING_PIPELINE.md。训练分两个阶段阶段一训练 master 模型Master 模型在**源域source domain人类含完整S/I/U/VDensePose 注释与支撑域supporting domain动物仅有分割注释**数据上训练。为保证目标域结果质量只通过category filters从支撑域挑选部分动物类别参与训练。配置文件 configs/evolution/Base-RCNN-FPN-Atop10P_CA.yamlAtop10P 前 10 种动物 person中的过滤示例WHITELISTED_CATEGORIES: base_coco_2017_train: - 1 # person - 16 # bird - 17 # cat - 18 # dog - 19 # horse - 20 # sheep - 21 # cow - 22 # elephant - 23 # bear - 24 # zebra - 25 # girafe训练采用**类别无关class-agnostic**方式所有被选中的类别都映射到单一类别person即CA后缀的含义CATEGORY_MAPS: base_coco_2017_train: 16: 1 # bird - person 17: 1 # cat - person 18: 1 # dog - person 19: 1 # horse - person 20: 1 # sheep - person 21: 1 # cow - person 22: 1 # elephant - person 23: 1 # bear - person 24: 1 # zebra - person 25: 1 # girafe - person阶段二训练 student 模型Student 模型在源域、支撑域以及**目标域target domain黑猩猩**数据上训练。目标域注释由 master 模型对包含目标类别的图像进行推理、筛选高置信度检测并采样稀疏注释获得——这一过程即bootstrapping。执行该流程的核心组件是InferenceBasedLoader与CombinedDataLoaderInferenceBasedLoader从数据加载器取图 → 用模型推理 → 按选定标准过滤输出 → 采样过滤结果作为注释CombinedDataLoader按指定比例合并各 loader 的数据标准 loader 默认比例 1.0bootstrap 数据集的比例在配置中指定比例越高该 loader 样本进入 batch 的概率越大。文档给出的一份完整 bootstrap 配置取自 densepose_R_50_FPN_DL_WC1M_3x_Atop10P_CA_B_uniform.yamlBOOTSTRAP_DATASETS: - DATASET: chimpnsee RATIO: 1.0 IMAGE_LOADER: TYPE: video_keyframe SELECT: STRATEGY: random_k NUM_IMAGES: 4 TRANSFORM: TYPE: resize MIN_SIZE: 800 MAX_SIZE: 1333 BATCH_SIZE: 8 NUM_WORKERS: 1 INFERENCE: INPUT_BATCH_SIZE: 1 OUTPUT_BATCH_SIZE: 1 DATA_SAMPLER: # supported types: # densepose_uniform # densepose_UV_confidence # densepose_fine_segm_confidence # densepose_coarse_segm_confidence TYPE: densepose_uniform COUNT_PER_CLASS: 8 FILTER: TYPE: detection_score MIN_VALUE: 0.8 BOOTSTRAP_MODEL: WEIGHTS: https://dl.fbaipublicfiles.com/densepose/evolution/densepose_R_50_FPN_DL_WC1M_3x_Atop10P_CA/217578784/model_final_9fe1cc.pkl对该配置的逐项解读chimpnsee被注册为VIDEO_LIST数据集见 densepose/data/datasets/chimpnsee.py由一个文本文件列出若干视频构成IMAGE_LOADER.TYPE: video_keyframe只考虑关键帧既保证采样帧之间的时间间隔也加快 seek 操作SELECT.STRATEGY: random_kNUM_IMAGES: 4表示每段视频最多随机选 4 个关键帧TRANSFORM将帧缩放到短边 800、长边 1333与 detectron2 标准训练尺度一致随后用标准 PyTorch DataLoaderBATCH_SIZE: 8批量加载InferenceBasedLoader将上述 batch 拆分为INPUT_BATCH_SIZE大小送入 master 模型输出按FILTER.TYPE: detection_score、MIN_VALUE: 0.8过滤只保留检测分数 ≥ 0.8 的实例DATA_SAMPLER.TYPE: densepose_uniformCOUNT_PER_CLASS: 8表示对每个类别均匀采样 8 个点作为稀疏注释。当前实现支持均匀采样与基于置信度的采样后者要求 master 模型输出置信度估计示例中的WC1Mmaster 模型即同时输出 U/V 与三类分割置信度采样结果最终组合为OUTPUT_BATCH_SIZE大小的 batch 用于 student 训练训练日志中可通过batch/、batch/base_coco_2017_train、batch/densepose_coco_2014_train等条目跟踪带注释数据集与 bootstrap 数据集的采样占比文档示例最近 20 个迭代平均每个 bootstrap 样本对应 6.4 个base_coco_2017_train样本与 3.85 个densepose_coco_2014_train样本。模型库Model Zoo与基线文档提供了完整的预训练模型基线表按训练方式分为五组。所有表格中lr sched为学习率调度train time为训练耗时秒/迭代inference time为推理耗时秒/图train mem为训练显存GBbox AP/segm AP为检测与分割 APdp. AP GPS/dp. AP GPSm为 DensePose 在 GPS 与 GPSm 两组 ground truth 稀疏注释子集上的平均精度model id为对应权重标识权重与训练指标文件由官方模型页托管。1. Legacy 模型Güler et al., 2018 调度名称lr sched训练(s/iter)推理(s/im)显存(GB)box APsegm APdp. AP GPSdp. AP GPSmmodel idR_50_FPN_s1x_legacys1x0.3070.0513.258.158.252.154.9164832157R_101_FPN_s1x_legacys1x0.3900.0634.359.559.353.256.01648321822. 改进基线原始全卷积头Improved schedules Panoptic FPN head这些模型使用改进的训练调度与 Panoptic FPN headKirillov et al., 2019。名称lr sched训练(s/iter)推理(s/im)显存(GB)box APsegm APdp. AP GPSdp. AP GPSmmodel idR_50_FPN_s1xs1x0.3590.0664.561.267.263.765.3165712039R_101_FPN_s1xs1x0.4280.0795.862.367.864.566.21657120843. 改进基线DeepLabV3 头在上一组基础上额外使用 DeepLabV3 头Chen et al., 2017。名称lr sched训练(s/iter)推理(s/im)显存(GB)box APsegm APdp. AP GPSdp. AP GPSmmodel idR_50_FPN_DL_s1xs1x0.3920.0706.761.168.365.666.7165712097R_101_FPN_DL_s1xs1x0.4780.0837.062.368.766.367.61657121164. 带置信度估计的基线Neverova et al., 2019这些模型额外估计回归 U/V 坐标的置信度。缩写WC1 对 U/V 使用类型 1 置信度模型WC2 类型 2。名称lr sched训练(s/iter)推理(s/im)显存(GB)box APsegm APdp. AP GPSdp. AP GPSmmodel idR_50_FPN_WC1_s1xs1x0.3530.0644.660.567.064.265.4173862049R_50_FPN_WC2_s1xs1x0.3640.0664.860.766.964.265.7173861455R_50_FPN_DL_WC1_s1xs1x0.3970.0686.761.168.165.867.0173067973R_50_FPN_DL_WC2_s1xs1x0.4100.0706.860.867.965.666.7173859335R_101_FPN_WC1_s1xs1x0.4350.0765.762.567.664.966.3171402969R_101_FPN_WC2_s1xs1x0.4500.0785.762.367.664.866.4173860702R_101_FPN_DL_WC1_s1xs1x0.4790.0817.962.068.466.267.2173858525R_101_FPN_DL_WC2_s1xs1x0.4910.0827.661.768.365.967.21732948015. 带掩码置信度估计的基线Sanakoyeu et al., 2020这些模型同时估计 U/V 坐标置信度以及粗、细分割的置信度。缩写WC1M 类型 1 的 U/V 置信度 掩码置信度WC2M 类型 2。名称lr sched训练(s/iter)推理(s/im)显存(GB)box APsegm APdp. AP GPSdp. AP GPSmmodel idR_50_FPN_WC1M_s1xs1x0.3810.0664.860.666.764.065.4217144516R_50_FPN_WC2M_s1xs1x0.3420.0685.060.766.964.265.5216245640R_50_FPN_DL_WC1M_s1xs1x0.3710.0686.060.768.065.266.7216245703R_50_FPN_DL_WC2M_s1xs1x0.3850.0716.160.868.165.066.4216245758R_101_FPN_WC1M_s1xs1x0.4230.0795.962.067.364.866.0216453687R_101_FPN_WC2M_s1xs1x0.4360.0805.962.567.464.566.0216245682R_101_FPN_DL_WC1M_s1xs1x0.4530.0796.862.068.166.467.1216245771R_101_FPN_DL_WC2M_s1xs1x0.4640.0806.961.968.266.167.12162457906. Bootstrapping 基线目标类别黑猩猩master 与 student 模型均通过上文所述的 bootstrapping 管线以黑猩猩为目标类别训练Sanakoyeu et al., 2020在 DensePose Chimps 数据集上评估。此表额外包含放宽指标dp. APex GPS。名称lr sched训练(s/iter)推理(s/im)显存(GB)box APsegm APdp. APex GPSdp. AP GPSdp. AP GPSmmodel idR_50_FPN_DL_WC1M_3x_Atop10P_CA3x0.5220.0739.761.359.136.220.030.2217578784R_50_FPN_DL_WC1M_3x_Atop10P_CA_B_uniform3x1.9390.07210.160.958.537.221.531.0256453729R_50_FPN_DL_WC1M_3x_Atop10P_CA_B_uv3x1.9850.0729.661.458.938.322.232.1256452095R_50_FPN_DL_WC1M_3x_Atop10P_CA_B_finesegm3x2.0470.07210.360.958.536.720.730.7256452819R_50_FPN_DL_WC1M_3x_Atop10P_CA_B_coarsesegm3x1.8300.0709.661.359.237.921.531.6256455697缩写与指标说明WC1M类型 1 的 U/V 置信度 掩码置信度估计Atop10P训练使用人与最合适的 10 个动物类别CA类别无关训练所有标注实例映射到单一类别B_...带 bootstrapping 的调度...为结果采样策略如uniform、uv、finesegm、coarsesegmdp. APex GPSSanakoyeu et al.2020用于评估 DensePose 结果的放宽指标在标准评估协议的阈值之外额外考虑 0.2、0.3、0.4 三个匹配阈值其最小阈值由配置项DENSEPOSE_EVALUATION.MIN_IOU_THRESHOLD控制。许可协议所有可下载模型的权重均采用 Creative Commons Attribution-ShareAlike 3.0 许可。参考引用若在你的研究或产品中使用 chart-based DensePose 方法请按以下 BibTeX 条目引用来源DENSEPOSE_IUV.mdDensePose bootstrapping 管线InProceedings{Sanakoyeu2020TransferringDensePose, title {Transferring Dense Pose to Proximal Animal Classes}, author {Artsiom Sanakoyeu and Vasil Khalidov and Maureen S. McCarthy and Andrea Vedaldi and Natalia Neverova}, journal {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, year {2020}, }带置信度估计的 DensePoseInProceedings{Neverova2019DensePoseConfidences, title {Correlated Uncertainty for Learning Dense Correspondences from Noisy Labels}, author {Neverova, Natalia and Novotny, David and Vedaldi, Andrea}, journal {Advances in Neural Information Processing Systems}, year {2019}, }原始 DensePoseInProceedings{Guler2018DensePose, title{DensePose: Dense Human Pose Estimation In The Wild}, author{R\{i}za Alp G\uler, Natalia Neverova, Iasonas Kokkinos}, journal{The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, year{2018} }延伸阅读DensePose Bootstrapping 管线master/student 两阶段训练的完整配置与组件说明DensePose 数据集chart-based 与连续表面嵌入CSE两类注释格式、DensePose COCO / PoseTrack / Chimps / LVIS 数据集说明DensePose CSE基于连续表面嵌入的 DensePose 变体DensePose 入门指南安装、数据准备、训练与评估的上手路径工具文档apply_net.py模型应用与 query_db.py数据集查询核心实现源码DensePoseROIHeads、DensePoseChartLoss、DensePoseChartPredictor。赞分享人工智能计算机视觉深度学习预训练微调【免费下载链接】Vim[ICML 2024] Vision Mamba: Efficient Visual Representation Learning with Bidirectional State Space Model项目地址https://gitcode.com/gh_mirrors/vim2/Vim点击查看免费下载相关推荐Detectron2 图表化 DensePoseI/U/V稠密人体与动物姿态估计原理、Bootstrapping 训练管线与 Model Zoo 详解Detectron2 图表化 DensePoseI/U/V稠密人体与动物姿态估计原理、Bootstrapping 训练管线与 Model Zoo 详解 导人工智能计算机视觉深度学习机器学习RuView WiFi-DensePose 神经网络架构解析从 1D CSI 信号到 2D 稠密人体姿态估计RuView WiFi DensePose 神经网络架构解析从 1D CSI 信号到 2D 稠密人体姿态估计 本篇技术指南系统讲解 RuView 项目中 Wi人工智能计算机视觉物联网智能家居后端嵌入式DensePose in Detectron2面向 IDM-VTON 的人体稠密姿态估计与预处理实战指南DensePose in Detectron2面向 IDM VTON 的人体稠密姿态估计与预处理实战指南 DensePose 将传统稀疏人体关键点提升为稠密计算机视觉深度学习媒体生成上一篇iPhone畅玩Minecraft Java版PojavLauncher iOS完整教程下一篇构建企业级高性能计算平台OpenHPC完整部署策略创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考