创建实例

创建资源
在这里插入图片描述

租用服务器
在这里插入图片描述
在这里插入图片描述
创建成功
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

创建环境

创建环境

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.png2.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. 常见问题

  1. 适用范围:本模型适合含有人像的图像分割。为了获得最佳效果,建议图像中人像占比不要过小。
  2. 分辨率建议:在分辨率小于 2000×2000 的图像上可取得理想的抠图精细度。
  3. 目标场景:适用于需要高精度图像抠图的场景,如证件照换底、视频后期合成等。
  4. 路径建议:在批量处理或复杂路径下,图片输入路径建议使用绝对路径。

5. 参考资料


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}
}
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐