阿里重磅开源 LHM:开源3D数字人神器

项目介绍

  1. 阿里巴巴通义实验室开源的LHM(Large Animatable Human Reconstruction Model) 是当前3D建模领域的突破性工具,能够从单张图像快速生成高质量可动画化的3D人体模型。仅需单张图片输入,5秒内生成可动画的3D模型,无需复杂后处理,支持实时渲染(30FPS)和姿态控制,动态调整模型动作。LHM通过单图闪电建模和实时动画控制,大幅降低了3D内容创作门槛,尤其适合需要快速原型设计的场景。其开源策略进一步推动行业生态发展,开发者可基于此探索更多创新应用。
  2. GitHub 地址lingtengqiu.github.io/LHM/
  3. 项目地址lingtengqiu.github.io/LHM/
  4. 论文地址arxiv.org/pdf/2503.10...
  5. star 数:1.9k
  6. star变化图

项目教程

  1. 快速开始:B 站提供快速开始教程

  2. 从Docker中构建环境

    bash 复制代码
    # CUDA 121
    # step0. download docker images
    wget -P ./lhm_cuda_dockers https://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/share/aigc3d/data/for_lingteng/LHM/LHM_Docker/lhm_cuda121.tar 
    
    # step1. build from docker file
    sudo docker load -i  ./lhm_cuda_dockers/lhm_cuda121.tar 
    
    # step2. run docker_file and open the communication port 7860
    sudo docker run -p 7860:7860 -v PATH/FOLDER:DOCKER_WORKSPACES -it lhm:cuda_121 /bin/bash
  3. 环境配置

    bash 复制代码
    # 克隆代码
    git clone [email protected]:aigc3d/LHM.git
    cd LHM
    # 安装依赖
    # cuda 11.8
    sh ./install_cu118.sh
    pip install rembg
    
    # cuda 12.1
    sh ./install_cu121.sh
    pip install rembg
  4. 模型参数:如果你没下载模型,模型将会自动下载

ini 复制代码
*   从HuggingFace下载:

```bash
	from huggingface_hub import snapshot_download 
	# MINI Model
	model_dir = snapshot_download(repo_id='3DAIGC/LHM-MINI', cache_dir='./pretrained_models/huggingface')
	# 500M-HF Model
	model_dir = snapshot_download(repo_id='3DAIGC/LHM-500M-HF', cache_dir='./pretrained_models/huggingface')
	# 1B-HF Model
	model_dir = snapshot_download(repo_id='3DAIGC/LHM-1B-HF', cache_dir='./pretrained_models/huggingface')
```

*   从ModelScope下载:

```bash
	from modelscope import snapshot_download
	# MINI Model
	model_dir = snapshot_download(model_id='Damo_XR_Lab/LHM-MINI', cache_dir='./pretrained_models')
	# 500M-HF Model
	model_dir = snapshot_download(model_id='Damo_XR_Lab/LHM-500M-HF', cache_dir='./pretrained_models')
	# 1B-HF Model
	model_dir = snapshot_download(model_id='Damo_XR_Lab/LHM-1B-HF', cache_dir='./pretrained_models')
```
  1. 加载先验模型权重bash # 下载先验模型权重 wget https://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/share/aigc3d/data/LHM/LHM_prior_model.tar tar -xvf LHM_prior_model.tar

  2. 下载后的完整目录

    bash 复制代码
    ├── configs
    │   ├── inference
    │   ├── accelerate-train-1gpu.yaml
    │   ├── accelerate-train-deepspeed.yaml
    │   ├── accelerate-train.yaml
    │   └── infer-gradio.yaml
    ├── engine
    │   ├── BiRefNet
    │   ├── pose_estimation
    │   ├── SegmentAPI
    ├── example_data
    │   └── test_data
    ├── exps
    │   ├── releases
    ├── LHM
    │   ├── datasets
    │   ├── losses
    │   ├── models
    │   ├── outputs
    │   ├── runners
    │   ├── utils
    │   ├── launch.py
    ├── pretrained_models
    │   ├── dense_sample_points
    │   ├── gagatracker
    │   ├── human_model_files
    │   ├── sam2
    │   ├── sapiens
    │   ├── voxel_grid
    │   ├── arcface_resnet18.pth
    │   ├── BiRefNet-general-epoch_244.pth
    ├── scripts
    │   ├── exp
    │   ├── convert_hf.py
    │   └── upload_hub.py
    ├── tools
    │   ├── metrics
    ├── train_data
    │   ├── example_imgs
    │   ├── motion_video
    ├── inference.sh
    ├── README.md
    ├── requirements.txt
  3. 本地部署:现在支持用户自定义动作输入,但是由于动作估计器内存占比,LHM-500M 在用户自定义动作输入gradio中需要22GB 的内存, 也可以提前处理好,然后用项目之前的接口。

    bash 复制代码
    # Memory-saving version; More time available for Use.
    # The maximum supported length for 720P video is 20s.
    python ./app_motion_ms.py  
    python ./app_motion_ms.py  --model_name LHM-1B-HF
    
    # Support user motion sequence input. As the pose estimator requires some GPU memory, this Gradio application requires at least 24 GB of GPU memory to run LHM-500M.
    python ./app_motion.py  
    python ./app_motion.py  --model_name LHM-1B-HF
    
    # preprocessing video sequence
    python ./app.py
    python ./app.py --model_name LHM-1B
  4. 推理过程:已经支持半身图像了。

    bash 复制代码
    # MODEL_NAME={LHM-500M, LHM-500M-HF, LHM-1B, LHM-1B-HF}
    # bash ./inference.sh  LHM-500M ./train_data/example_imgs/ ./train_data/motion_video/mimo1/smplx_params
    # bash ./inference.sh  LHM-1B ./train_data/example_imgs/ ./train_data/motion_video/mimo1/smplx_params
    # bash ./inference.sh  LHM-500M-HF ./train_data/example_imgs/ ./train_data/motion_video/mimo1/smplx_params
    # bash ./inference.sh  LHM-1B-HF ./train_data/example_imgs/ ./train_data/motion_video/mimo1/smplx_params
    
    # export animation video
    bash inference.sh ${MODEL_NAME} ${IMAGE_PATH_OR_FOLDER}  ${MOTION_SEQ}
    # export mesh 
    bash ./inference_mesh.sh ${MODEL_NAME} 
  5. 处理视频动作数据

    • 下载动作提取相关的预训练模型权重
    bash 复制代码
    wget -P ./pretrained_models/human_model_files/pose_estimate https://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/share/aigc3d/data/LHM/yolov8x.pt
    wget -P ./pretrained_models/human_model_files/pose_estimate https://virutalbuy-public.oss-cn-hangzhou.aliyuncs.com/share/aigc3d/data/LHM/vitpose-h-wholebody.pth
    • 安装额外的依赖
    bash 复制代码
    cd ./engine/pose_estimation
    pip install mmcv==1.3.9
    pip install -v -e third-party/ViTPose
    pip install ultralytics
    • 运行以下命令,从视频中提取动作数据
    bash 复制代码
    # python ./engine/pose_estimation/video2motion.py --video_path ./train_data/demo.mp4 --output_path ./train_data/custom_motion
    
    python ./engine/pose_estimation/video2motion.py --video_path ${VIDEO_PATH} --output_path ${OUTPUT_PATH}
    
    # 对于半身视频,比如./train_data/xiaoming.mp4,我们推荐使用以下命令:
    python ./engine/pose_estimation/video2motion.py --video_path ${VIDEO_PATH} --output_path ${OUTPUT_PATH} --fitting_steps 100 0
    • 使用提取的动作数据驱动数字人
    bash 复制代码
    # bash ./inference.sh LHM-500M-HF ./train_data/example_imgs/ ./train_data/custom_motion/demo/smplx_params
    
    bash inference.sh ${MODEL_NAME} ${IMAGE_PATH_OR_FOLDER}  ${OUTPUT_PATH}/${VIDEO_NAME}/smplx_params

在线体验

  1. 网址1(Motionshop2):modelscope.cn/studios/Dam...
  2. 网址 2(huggingface):huggingface.co/spaces/3DAI...

演示过程

  1. 以Motionshop2为例,具体的操作过程也很简单,小白都可以直接上手。

    • 上传输入视频分析,直接用官方提供的示例视频

    • 用示例图片替换绿框里人物

    • 点击"开始",等待结果

    • 展示结果:动作贴合效果还不错,但还是可以看到背后李小龙的身影。

参考

相关推荐
James. 常德 student35 分钟前
门控循环单元(GRU)
pytorch·深度学习·gru
GoMaxAi35 分钟前
开源Midjourney替代方案:企业级AI绘画+PPT生成系统+AI源码
人工智能·ai作画·开源·自动化·aigc·powerpoint·midjourney
卧式纯绿2 小时前
卷积神经网络基础(四)
人工智能·python·深度学习·神经网络·机器学习·cnn
-一杯为品-3 小时前
【深度学习】#8 循环神经网络
人工智能·rnn·深度学习
量子位4 小时前
挤爆字节服务器的 Agent 到底啥水平?一手实测来了
人工智能·aigc
量子位4 小时前
狸谱 App 负责人一休:从 “叫爸爸” 小游戏到百万月活 AI 爆款,社交传播有这些底层逻辑丨中国 AIGC 产业峰会
人工智能·aigc
发呆的猫熊015 小时前
我用AI+低代码从零打造心理小程序
低代码·aigc