开源图像后处理实测:抠图/超分/修脸本地部署全攻略(含 7 个踩坑,2026)
2026/6/30 11:01:32 网站建设 项目流程

关键词:开源抠图、BiRefNet、RMBG、Real-ESRGAN、CodeFormer、图像超分、人脸修复、本地部署、basicsr 安装报错

本文真机实测 RTX 4090(但 6G 卡足够)上的 5 个开源图像后处理模型,给出耗时/显存/PSNR 硬数据,并完整记录 basicsr/opencv/transformers 的依赖地狱怎么填平。

0. 模型清单与定位

子方向模型网络许可
抠图RMBG-1.4ISNet非商用
抠图BiRefNet双边参考网络MIT
超分Real-ESRGAN x4plusRRDBNetBSD-3
超分realesr-general-x4v3SRVGGNetCompactBSD-3
修脸CodeFormerTransformer codebook研究免费

1. 环境(关键:版本要锁死)

这套老牌 CV 工具对版本极其敏感,照抄:

conda create-nimgprocpython=3.10-y&&conda activate imgproc pipinstalltorch==2.1.2torchvision==0.16.2 --index-url https://download.pytorch.org/whl/cu121 pipinstall"setuptools<81""numpy<2"# 关键:见坑1、坑2pipinstall"transformers==4.46.3"# 关键:见坑3pipinstall"opencv-python==4.9.0.80"# 关键:见坑2pipinstallbasicsr --no-deps --no-build-isolation# 关键:见坑1pipinstallrealesrgan gfpgan facexlib --no-deps --no-build-isolation pipinstalladdict yapf lmdb future pyyaml tqdm filterpy numba lpips scikit-image

2. 实测数据

抠图(1024 输入):RMBG-1.4 = 0.09s/张、1.09G;BiRefNet = 0.17s/张、3.35G(发丝边缘更干净)。

超分(4×,对 4× 降质 + JPEG q30 的输入,与 GT 比对):

模型PSNRSSIM耗时显存
Real-ESRGAN x4plus29.700.8860.10s0.66G
general-x4v329.190.8950.04s0.05G

有意思:x4plus PSNR 更高但 SSIM 更低(更锐但偶有 GAN 伪纹),general-v3 更平滑、快一倍、显存几乎为 0。

修脸:CodeFormer(w=0.7)= 3.9s/张、PSNR 27.17、SSIM 0.869、1.81G。注:修脸 PSNR 偏低是因为它重新生成五官(像素改写),主观清晰度才是重点。

3. 七个踩坑(本文核心价值)

坑 1:basicsr 安装两连击

  • setuptools>=81删了pkg_resources→ basicsr 编译报ModuleNotFoundError: pkg_resourcessetuptools<81
  • basicsr 声明tb-nightly等装不上的依赖 → 用--no-deps --no-build-isolation,再手动补addict yapf lmdb future

坑 2:numpy 2.x ABI 把 opencv 打废

numpy<2(basicsr 需要)后,为 numpy2 编译的opencv-python 4.10出现module 'cv2' has no attribute 'cvtColor'(C 扩展半加载)。opencv-python==4.9.0.80

坑 3:transformers 5.x 检测不到 torch

transformers==5.12+torch 2.1.2AutoModelForImageSegmentation requires the PyTorch library but it was not foundtransformers==4.46.3

坑 4:RMBG-2.0 是 gated 仓库

HuggingFace 上briaai/RMBG-2.0需登录审批 + 非商用 → 匿名报Access denied用开放的 BiRefNet(MIT)或 RMBG-1.4 替代

坑 5:RMBG-1.4 与 BiRefNet 输出格式不同

  • BiRefNet:model(x)[-1].sigmoid()
  • RMBG-1.4(ISNet):model(x)[0][0]然后min-max 归一(不是 sigmoid)

坑 6:修脸模型的隐藏网络阻塞

facexlib 的 RetinaFace 用pretrained=True的 ResNet50 backbone → torchvision 直连download.pytorch.org下 ImageNet 权重。如果你像下 HF 模型那样unset了代理,这里会卡死修脸模型不碰 HF,反而要开代理

os.environ["http_proxy"]=os.environ["https_proxy"]="http://127.0.0.1:10808"

并预缓存resnet50-0676ba61.pthdetection_Resnet50_Final.pthparsing_parsenet.pth

坑 7:GFPGAN 段错误 → 换 CodeFormer

GFPGAN 在numpy1.26 + opencv4.9 + torch2.1下 exit 1 无 traceback(疑似 ABI 段错误)。改用 CodeFormer:补lpips,并在仓库basicsr/下手建version.py(仓库 vendored basicsr 的版本文件未生成)。

4. 核心代码(抠图)

fromtransformersimportAutoModelForImageSegmentationfromtorchvisionimporttransforms model=AutoModelForImageSegmentation.from_pretrained("BiRefNet",trust_remote_code=True).cuda().eval()tf=transforms.Compose([transforms.Resize((1024,1024)),transforms.ToTensor(),transforms.Normalize([0.485,0.456,0.406],[0.229,0.224,0.225])])x=tf(img).unsqueeze(0).cuda()mask=model(x)[-1].sigmoid().cpu()[0].squeeze()# RMBG-1.4 改 model(x)[0][0] + minmax

完整脚本(含超分 PSNR/SSIM、CodeFormer 封装、显存采样)见仓库scripts/

5. 选型结论

  • 抠图商用 →BiRefNet(MIT);极轻量 → RMBG-1.4
  • 超分性价比 →general-x4v3(0.05G 显存、快一倍);极致锐利 → x4plus
  • 修脸 →CodeFormer(身份保真 + 强度可调)
  • 这套工具6G 显卡就够,秒级、可常驻,是最易落地的 AI 能力。

实测:RTX 4090 24G / 2026-06。数据可复现。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询