星图AI创建环境,创建 BSHM人像抠图环境,BSHM模型部署
创建资源租用服务器创建成功。
创建实例
创建资源
租用服务器

创建成功


创建环境
创建环境
conda create -n bshm_matting python=3.7 -y

激活虚拟环境
conda activate bshm_matting

原版 TensorFlow 1.15 只支持 CUDA 10.0。对于 4090D 硬件架构太新,物理上无法运行 CUDA 10。而 +cu113 版本让 1.15 能够调用 CUDA 11 的驱动,从而在 4090D 上跑起来。
解决报错,安装 ModelScope 专供的 cu113 版本,命令如下:
pip install https://modelscope.oss-cn-beijing.aliyuncs.com/releases/dependencies/tensorflow-1.15.5%2Bcu113-cp37-cp37m-linux_x86_64.whl
conda install cudnn=8.2.1
验证命令
python -c "import tensorflow as tf; print('可用的 GPU 列表:', tf.config.experimental.list_physical_devices('GPU'))"

安装modelscope
pip install modelscope==1.6.1 -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
报错:
ImportError: libnccl.so.2: cannot open shared object file: No such file or directory
安装适配 CUDA 11 的 NCCL 包
pip install nvidia-nccl-cu11
记得改环境名
find /opt/miniconda3/envs/bshm_matting -name "libnccl.so.2"

1. 立即设置环境变量(解决当前运行问题)
在你的终端里直接执行下面命令:
export LD_LIBRARY_PATH=/opt/miniconda3/envs/bshm_matting/lib:$LD_LIBRARY_PATH

2. 立即验证
执行你之前的验证命令,看看这次是否能通过:
python -c "import tensorflow as tf; print('加载成功!'); print('GPU 列表:', tf.config.experimental.list_physical_devices('GPU'))"
为了确保环境配置永久生效,推荐使用 Conda 激活脚本法。因为它能确保只有当你进入 bshm_matting 环境时才会加载这个路径,退出环境时会自动失效,不会干扰其他环境。
请按顺序,一行一行复制执行:
方法一:Conda 环境激活
第一步:创建存放激活脚本的目录
mkdir -p /opt/miniconda3/envs/bshm_matting/etc/conda/activate.d
第二步:创建存放退出脚本的目录
mkdir -p /opt/miniconda3/envs/bshm_matting/etc/conda/deactivate.d
第三步:写入激活时的路径设置
echo 'export LD_LIBRARY_PATH=/opt/miniconda3/envs/bshm_matting/lib:$LD_LIBRARY_PATH' > /opt/miniconda3/envs/bshm_matting/etc/conda/activate.d/env_vars.sh
pip install protobuf==3.20.1
第四步:验证(先退出环境,再重新进入)
conda deactivate
conda activate bshm_matting
第五步:检查变量是否生效
echo $LD_LIBRARY_PATH
(如果输出中包含了 /opt/miniconda3/envs/bshm_matting/lib,说明成功了!)
方法二:全局生效
如果你觉得上面的太麻烦,想让这个路径对当前 Linux 用户永久生效,请执行这两行:
第一步:将路径写入用户配置文件
echo 'export LD_LIBRARY_PATH=/opt/miniconda3/envs/bshm_matting/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
第二步:使配置立即生效
source ~/.bashrc
由于用的是 Python 3.7,pip 安装的 .so 文件经常会被放在一个深层目录下,Linux 系统默认找不到。
第一步:找到安装出来的文件在哪里
find /opt/miniconda3/envs/cartoon -name "libnccl.so.2"
(通常会在:.../site-packages/nvidia/nccl/lib/libnccl.so.2)
第二步:把文件“骗”到系统能看见的地方
假设你的环境路径是 /opt/miniconda3/envs/cartoon,请执行以下命令:
cd /opt/miniconda3/envs/cartoon/lib/
ln -s /opt/miniconda3/envs/cartoon/lib/python3.7/site-packages/nvidia/nccl/lib/libnccl.so.2 libnccl.so.2
设置环境变量
为了确保你的 Gradio/Flask 网页启动时能自动加载这个库,请务必执行以下命令:
# 激活环境时自动加载 lib 目录
mkdir -p /opt/miniconda3/envs/cartoon/etc/conda/activate.d
echo 'export LD_LIBRARY_PATH=/opt/miniconda3/envs/cartoon/lib:$LD_LIBRARY_PATH' > /opt/miniconda3/envs/cartoon/etc/conda/activate.d/env_vars.sh
pip install "opencv-python<4.7"
pip install "numpy<1.20"
pip install "Pillow<10.0.0"
pip install scipy==1.7.3
pip install scikit-image==0.19.3
pip install easydict pyyaml
pip install gradio
完成上述操作后,你直接运行你的推理脚本 python inference_bshm.py 就可以了,再也不会报 libnccl.so.2 找不到的错误!
如果验证通过了,如何永久固定?
为了让你以后每次 conda activate bshm_matting 都能自动生效,不需要手动 export,请执行以下“自动化”脚本:
# 创建 Conda 自动启动脚本目录
mkdir -p /opt/miniconda3/envs/bshm_matting/etc/conda/activate.d
# 将变量写入启动脚本
echo 'export LD_LIBRARY_PATH=/opt/miniconda3/envs/bshm_matting/lib:$LD_LIBRARY_PATH' > /opt/miniconda3/envs/bshm_matting/etc/conda/activate.d/env_vars.sh
# 同时也建议写一份到 .bashrc
echo 'export LD_LIBRARY_PATH=/opt/miniconda3/envs/bshm_matting/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
阿里镜像源
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=11.3
原版的 tensorflow1.15.0-gpu 安装方法
注意事项:
查看可供安装的CUDA版本
我需要安装cuda版本是10.0的
conda install cudatoolkit=10.0.130
先查找可安装的cudnn版本
conda search cudnn

前面cuda安装10.0,那么对应cudnn版本可以是7.6.0的
conda install cudnn=7.6.0

安装 tensorflow-gpu==1.15
pip install --upgrade tensorflow-gpu==1.15
在 Linux 服务器(如星图 AI、AutoDL 等云平台)上,将文件夹复制到 /root 目录下,主要使用 cp 命令。
以下是具体的执行步骤和命令:
1. 复制整个文件夹
如果你想把当前目录下的 BSHM 文件夹整个复制到 /root 下,请使用 -r 参数(表示递归复制):
cp -r BSHM /root/
2. 如果你在文件夹内部,想复制到 root
如果你已经进入了 BSHM 文件夹,想把里面的所有内容复制到 /root 下的一个新文件夹中:
# 先创建目标文件夹
mkdir -p /root/BSHM
# 复制所有内容
cp -r ./* /root/BSHM/
3. 移动文件夹(如果不想要原位置的备份)
如果你想直接把文件夹“剪切”过去:
mv BSHM /root/
4. 验证是否复制成功
复制完成后,你可以查看 /root 目录确认一下:
ls -l /root
BSHM 人像抠图模型镜像
本镜像基于 BSHM (Boosting Semantic Human Matting) 算法构建,预装了完整的 BSHM 人像抠图运行环境。特别针对 RTX 4090/40系列 显卡进行了底层驱动与框架的兼容性优化,支持发丝级精细度的人像分割。
1. 镜像环境说明
本环境采用了以下核心配置:
| 组件 | 版本 |
|---|---|
| Python | 3.7 |
| TensorFlow | 1.15.5+cu113 |
| PyTorch | 1.11.0+cu113 |
| CUDA / cuDNN | 11.3 / 8.2 |
| ModelScope | 1.6.1 |
| 代码位置 | /root/BSHM |
2. 快速上手
2.1 激活推理环境
镜像启动后,请先进入工作目录并激活预置的 Conda 环境:
# 进入工作目录
cd /root/BSHM
# 激活环境
conda activate bshm_matting
2.2 模型推理测试
镜像内已预置了推理脚本 inference_bshm.py,支持灵活指定输入输出。/root/BSHM/image-matting/ 目录下已存放两张测试图片 1.png 与 2.png。
使用默认参数测试(默认输入 1.png):
python inference_bshm.py
指定测试图片 2 进行验证:
python inference_bshm.py --input ./image-matting/2.png
执行完成后,结果将自动保存在当前目录下的 results 文件夹中。
3. 推理脚本参数说明
脚本支持指定输入文件路径及输出目录,若输出目录不存在将由脚本自动创建。
| 参数 | 缩写 | 描述 | 默认值 |
|---|---|---|---|
--input |
-i |
输入图片的路径 (支持本地路径或 URL) | ./image-matting/1.png |
--output_dir |
-d |
保存结果的目录 (自动创建) | ./results |
1. 指定保存到自定义目录:
python inference_bshm.py -i ./image-matting/1.png -d /root/workspace/output_images
2. 使用默认目录(./results):
python inference_bshm.py -i ./image-matting/2.png
4. 常见问题
- 适用范围:本模型适合含有人像的图像分割。为了获得最佳效果,建议图像中人像占比不要过小。
- 分辨率建议:在分辨率小于 2000×2000 的图像上可取得理想的抠图精细度。
- 目标场景:适用于需要高精度图像抠图的场景,如证件照换底、视频后期合成等。
- 路径建议:在批量处理或复杂路径下,图片输入路径建议使用绝对路径。
5. 参考资料
- 官方模型地址:iic/cv_unet_image-matting
6. 引用
@inproceedings{liu2020boosting,
title={Boosting semantic human matting with coarse annotations},
author={Liu, Jinlin and Yao, Yuan and Hou, Wendi and Cui, Miaomiao and Xie, Xuansong and Zhang, Changshui and Hua, Xian-sheng},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={8563--8572},
year={2020}
}
更多推荐


所有评论(0)