当前位置: 首页 > news >正文

[AI学习:SPIN -win-安装SPIN-工具过程 SPIN win 电脑安装=accoda 环境-第三篇:解决报错]

[AI学习:SPIN -win-安装SPIN-工具过程 SPIN win 电脑安装=accoda 环境-第三篇:解决报错])

  • 1-概述
    • (1)概述
    • (2)操作流程-解决问题
      • 1-问题:ImportError: cannot import name 'int' from 'numpy'
        • 1)-问题原因
        • 2)-解决方式
      • 2-问题:ImportError: cannot import name 'bool' from 'numpy'
        • 1)-问题原因
        • 2)-解决方式
      • 3-问题:TypeError: hmr() missing 1 required positional argument: 'smpl_mean_params'
        • 1)-问题原因
        • 2)-解决方式
      • 4-问题:TypeError: hmr() missing 1 required positional argument: 'smpl_mean_params'
        • 1)-问题原因
        • 2)-解决方式
  • (3)操作流程-安装工具
    • 1-运行脚本
    • 2-确认文件
    • 3-下载问题
        • 1)-问题原因
        • 2)-解放方式
    • 4-下载wget工具
    • 4-继续解问题
      • 1-问题:model=hmr.hmr(SMPL_MEAN_PARAMS).to(DEVICE).eval()
        • 1)-问题原因
        • 2)-解决方式
    • (4)总结

1-概述

(1)概述

上篇已经说了,最近学习AI,看到了SPIN这个工具,可以将图片转换位3D模型,我们继续来尝试,并且将问题记录。

前篇文章:[AI学习:SPIN -win-安装SPIN-工具过程 SPIN win 电脑安装=accoda 环境-第二篇:解决报错]

我们之前布置了环境,之后往后遇到很多问题,今天来继续操作。

(2)操作流程-解决问题

1-问题:ImportError: cannot import name ‘int’ from ‘numpy’

在这里插入图片描述

1)-问题原因

NumPy 版本太新 导致的兼容性问题。
早期的 smplx / chumpy 库在加载 .pkl 时会用到:

from numpy import bool, int, float, complex, object, unicode, str, nan, inf
2)-解决方式

尝试解决:直接安装兼容版本 NumPy

pip install numpy==1.23.5

之后在尝试

python demo_norender.py --checkpoint data/model_checkpoint.pt --img examples\front.jpg

如下图:这张截图显示出目前的 NumPy 降级操作 部分成功,但仍然版本不够低。
SPIN + SMPL + Chumpy 组合必须在 NumPy < 1.24 才能正常工作。
在这里插入图片描述
日志显示如下:

Successfully uninstalled numpy-2.0.2
Successfully installed numpy-1.26.4
ERROR: opencv-python 4.12.0.88 requires numpy<2.3.0,>=2; python_version >= "3.9"

说明还是太新了:

ImportError: cannot import name 'int' from 'numpy'

2-问题:ImportError: cannot import name ‘bool’ from ‘numpy’

在这里插入图片描述

1)-问题原因

chumpy/smplx 还在用 numpy.bool / numpy.int 这些旧别名,当前的 NumPy=1.26.4 已把它们删除了。

2)-解决方式

尝试解决:

pip uninstall -y numpy opencv-python opencv-contrib-python
pip install numpy==1.23.5 opencv-python==4.7.0.72

验证加载SMPL是否陈功

python - << "PY"
import os, sys
sys.path.insert(0, os.getcwd())
from models import SMPL
m = SMPL(model_path="data/smpl", gender="neutral")
print("✅ Loaded SMPL:", m.faces.shape)
PY

如下图:<class ‘numpy.ndarray’> (13776, 3)

<class 'numpy.ndarray'> (13776, 3)

也就是说明库安装成功了

在这里插入图片描述

3-问题:TypeError: hmr() missing 1 required positional argument: ‘smpl_mean_params’

在这里插入图片描述

1)-问题原因

SPIN 的 hmr() 函数定义在 models/hmr.py 文件里,函数原型是:

def hmr(smpl_mean_params):...

也就是说,它必须传入一个参数——smpl_mean_params 的路径。
这个路径告诉模型去哪里加载 SMPL 的平均姿态和形状参数(data/smpl_mean_params.npz)。

2)-解决方式

修改 demo_norender.py

找到你文件里这行(大约第 37 行):

model = hmr().to(DEVICE).eval()

把它改成:

from constants import SMPL_MEAN_PARAMS
model = hmr(SMPL_MEAN_PARAMS).to(DEVICE).eval()

如果 constants.py 没有定义 SMPL_MEAN_PARAMS,就在它末尾加上一行:

SMPL_MEAN_PARAMS = 'data/smpl_mean_params.npz'

4-问题:TypeError: hmr() missing 1 required positional argument: ‘smpl_mean_params’

在这里插入图片描述

1)-问题原因

脚本已经能跑到构建 HMR 网络这一步了,报的两个错分别是:

AttributeError: ‘function’ object has no attribute ‘get_hmr’

TypeError: hmr() missing 1 required positional argument: ‘smpl_mean_params’

这两行把问题说得很清楚:导入方式不对 + 少了 smpl_mean_params 文件。

2)-解决方式

尝试和测试:

C:\Users\Admin\SPIN\constants.py

在文件末尾 添加这一行:

SMPL_MEAN_PARAMS = 'data/smpl_mean_params.npz'

保存后,确认在路径:

C:\Users\Admin\SPIN\data\

中间存在:

smpl_mean_params.npz

(3)操作流程-安装工具

1-运行脚本

如下图所示:这是SPIN 项目自带的 fetch_data.sh 脚本内容,它的作用是下载并准备运行 SPIN 所需的全部数据文件。
在这里插入图片描述
脚本整体作用:这是一个 Bash 脚本,用于自动下载 SPIN 的模型参数、预训练权重、初始拟合结果和 SMPL 相关数据。

这里挺尴尬的,其实中间很多工具后来发没有必要自己一个个下。

2-确认文件

如下图所示:现在这张图显示的文件结构说明,已经下载到了几乎 全部 SMPL 模型必要文件,只差一个文件:
在这里插入图片描述

文件名说明状态
model_checkpoint.ptSPIN 预训练模型权重 ✅✅ 已有
SMPL_FEMALE.pkl / SMPL_MALE.pkl / SMPL_NEUTRAL.pklSMPL三种体型模型 ✅✅ 已有
smpl 文件夹存放模型文件的目录✅ 有
SMPL_python_v1.1.0.zip官方SMPL Python SDK✅ 可选,不影响demo
缺少 data/smpl_mean_params.npzHMR初始化用的平均姿态参数❌ 缺失

现在运行 demo_norender.py 报错的真正原因

TypeError: hmr() missing 1 required positional argument: ‘smpl_mean_params’

其实就是因为 SPIN 的 hmr() 需要读取的平均参数文件还没放进来。

3-下载问题

1)-问题原因
tarfile.ReadError: not a gzip file
gzip.BadGzipFile: Not a gzipped file (b'<!')

这里以为下载的是 data.tar.gz,但实际上保存下来的是 HTML/错误页面(开头是 <!),所以 tarfile 解不出来。
在这里插入图片描述

2)-解放方式

这里我们要下载一个win的工具>> wget工具.

4-下载wget工具

这张截图可以看到:已经把 wget.exe 成功放进了 C:\Windows\System32。这意味着:

现在在任意路径的命令行中都能直接使用 wget 命令,不需要再额外安装。
(它在 PATH 环境变量下全局可用。)
在这里插入图片描述
这里同时需要 下载git 工具 ,之后如下图所示,终于 成功地从官方服务器下载了真正的 data.tar.gz 文件。关键点:

  • 返回 HTTP 200 OK ✅

  • Content-Type 是 application/x-gzip ✅

  • 文件大小约 14 MB (14960640 bytes) ✅

这就是 SPIN 官方完整数据包。
在这里插入图片描述


SPIN 运行所需的全部关键文件已经齐全
在这里插入图片描述

文件/文件夹作用状态
smpl/存放 SMPL 模型(含 Male/Female/Neutral pkl)✅ 存在
SMPL_NEUTRAL.pkl中性 SMPL 模型
SMPL_MALE.pkl男性 SMPL 模型
SMPL_FEMALE.pkl女性 SMPL 模型
smpl_mean_params.npzSMPL 参数均值文件(模型初始化必需)
model_checkpoint.pt预训练的 HMR/SPIN 模型权重
data.tar.gz原始下载压缩包,可保留以备份
static_fits/, dataset_extras/训练前对齐文件(非必须运行 demo,但属于完整数据)
gmm_08.pklJ_regressor_h36m.npyHMR 的人体先验文件
train.h5vertex_texture.npySMPL 训练和纹理数据

4-继续解问题

1-问题:model=hmr.hmr(SMPL_MEAN_PARAMS).to(DEVICE).eval()

在这里插入图片描述

1)-问题原因

这表示在文件 demo_norender.py 中,这一行:

model = hmr(SMPL_MEAN_PARAMS_PATH).to(DEVICE).eval()

或者

model = hmr.hmr(SMPL_MEAN_PARAMS).to(DEVICE).eval()

中,hmr 被识别成了一个 函数对象(function),而不是类(class)。

换句话说,Python 现在认为你导入的 hmr 是一个函数,而不是模型类。

2)-解决方式

打开文件:

C:\Users\Admin\SPIN\demo_norender.py

找到大约第 20~40 行的导入部分,修改为如下

from models.hmr import hmr  # ✅ 确保是这样导入的
from utils.imutils import preprocess_image
from utils.renderer import Renderer
from utils.smpl import SMPL
from utils.eval_utils import compute_similarity_transform
from utils.geometry import batch_rodrigues, perspective_projection
import constants

(4)总结

问题还是太多了,这也是最折磨人地方,准备再分开写吧。

http://www.dtcms.com/a/494559.html

相关文章:

  • 我有域名怎么做网站免费开网店app
  • iOS八股文之 多线程
  • C++ 方向 Web 自动化测试入门指南:从概念到 Selenium 实战
  • 掌握 iOS 26 App 运行状况,多工具协作下的监控策略
  • 软考 系统架构设计师系列知识点之杂项集萃(176)
  • Apache RocketMQ在Windows下的保姆级安装教程(含可视化界面安装)
  • TypeScript类型系统:从原始到对象的实战精要
  • Git 提交消息规范:理解 fix、feature 等关键词的含义
  • PostgreSQL 表达式
  • 库早报|新华社:增材制造作为新质生产力持续突围;刘宇宁自曝是3D打印玩家;易加三维中标1166.8万元项目
  • 建设模板类网站北京时间网站建设
  • 如何使用现有工具进行 .NET 8 迁移 Wpf
  • 云计算生态及学习方向和就业领域方向
  • 探域科技在AI电商应用调研报告
  • 做淘宝客网站需要什么五种网站类型
  • 期中考试几何命题难?大角几何让出卷效率翻倍,支持导出黑白试题风!
  • 前后端学习的交界
  • 爱站网影院阿里巴巴新网站怎么做运营
  • 且未县建设局网站海口正规官网设计公司
  • Redhat 8,9(及复刻系列) 一键部署Oracle26ai rpm
  • iOS移动端H5键盘弹出时页面布局异常和滚动解决方案
  • 能耗在线监测系统:革新能源管理模式,助推企业节能减排
  • Redis(66)Redis如何实现分布式锁?
  • 机器学习特征筛选中的IV值详解:原理、应用与实现
  • 海淀区企业网站建设网页升级紧急通知拿笔记好
  • Android 网络层最佳实践:Retrofit + OkHttp 封装与实战
  • vue3:el-progress
  • 大模型-高效优化技术全景解析:微调 量化 剪枝 梯度裁剪与蒸馏 上
  • Go的http响应数据写入顺序错误,造成实际响应头与预期不一致问题
  • 小型企业网站建设模板找人做jsp网站