You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于DensePose输出生成SURREAL格式SMPL UV纹理图方法咨询

基于DensePose输出生成SURREAL格式SMPL 24部件UV纹理方案

前置输出适配

你当前用show模式只能得到uv可视化结果,需要先切换dump模式获取全量预测字段,执行命令:
python3 apply_net.py dump configs/densepose_rcnn_R_101_FPN_DL_WC2M_s1x.yaml model_final_de6e7a.pkl input.jpg --output dump_result.pkl
输出的pkl文件中,除了你已知的uv张量(维度[2, H, W],第一通道为dp_u、第二通道为dp_v,值域[0,1]),还包含每个像素对应的SMPL 24部件分类标签,以及原图坐标映射关系,这是生成纹理的必要字段。


核心实现步骤

  • 第一步:初始化SURREAL标准SMPL纹理模板
    SURREAL采用固定的24部件分块排布的UV纹理,通常使用2048×2048分辨率的空白画布:
    每256×256的子区域对应1个SMPL身体部件,按4行6列排布,多余的空白区域统一填充黑色即可。
  • 第二步:像素映射填充
    逐点遍历DensePose有效预测区域的像素:
    1. 取当前像素的部件标签seg(取值范围1~24,对应SMPL定义的24个身体部件)
    2. 取当前像素对应的dp_u、dp_v值,以及原图对应位置的RGB三通道值
    3. 计算该点在纹理模板上的坐标:
      子区域起始x = (seg - 1) % 6 * 256
      子区域起始y = (seg - 1) // 6 * 256
      纹理坐标x = 子区域起始x + int(dp_u * 255)
      纹理坐标y = 子区域起始y + int(dp_v * 255)
      
    4. 将纹理模板对应坐标位置的RGB值设置为原图提取的RGB值即可
  • 第三步:空洞补全优化
    单张图存在遮挡导致的纹理空白区域,可通过邻域像素插值补全;如果有多视角同人体的图像,可叠加多组DensePose预测结果填充,得到完整的纹理图。

内容的提问来源于stack exchange,提问作者Ahmed Shoukr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 00:36:04