使用rembg移除图片背景反复触发ONNXRuntimeError求助
移除图片背景时出现ONNXRuntimeError的问题及解决办法
问题场景
运行以下代码移除图片背景时,反复触发ONNXRuntimeError:
from rembg.bg import remove import numpy as np import io from PIL import Image input_path = 'crop.jpeg' output_path = 'out.png' f = np.fromfile(input_path) result = remove(f) img = Image.open(io.BytesIO(result)).convert("RGBA") img.save(output_path)
报错信息(翻译后)
C:\Sauhard\Internships\TEST IMAGES>python -u "c:\Sauhard\Internships\TEST IMAGES\a.py" Traceback (most recent call last): File "c:\Sauhard\Internships\TEST IMAGES\a.py", line 10, in <module> result = remove(f) File "C:\Users\Sauhard Saini\AppData\Local\Programs\Python\Python39\lib\site-packages\rembg\bg.py", line 133, in remove session = new_session("u2net") File "C:\Users\Sauhard Saini\AppData\Local\Programs\Python\Python39\lib\site-packages\rembg\session_factory.py", line 60, in new_session ort.InferenceSession( File "C:\Users\Sauhard Saini\AppData\Local\Programs\Python\Python39\lib\site-packages\onnxruntime\capi\onnxruntime_inference_collection.py", line 347, in __init__ self._create_inference_session(providers, provider_options, disabled_optimizers) File "C:\Users\Sauhard Saini\AppData\Local\Programs\Python\Python39\lib\site-packages\onnxruntime\capi\onnxruntime_inference_collection.py", line 395, in _create_inference_session sess.initialize_session(providers, provider_options, disabled_optimizers) RuntimeError: D:\a\_work\1\s\onnxruntime\core\session\provider_bridge_ort.cc:1029 onnxruntime::ProviderLibrary::Get [ONNXRuntimeError] : 1 : 失败 : 尝试加载 "C:\Users\Sauhard Saini\AppData\Local\Programs\Python\Python39\lib\site-packages\onnxruntime\capi\onnxruntime_providers_tensorrt.dll" 时,LoadLibrary调用失败,错误码126
问题原因
报错核心是加载TensorRT相关的ONNXRuntime插件失败,常见诱因:
- 未正确配置TensorRT、CUDA、cuDNN等GPU加速依赖,版本不兼容
- ONNXRuntime默认尝试启用TensorRT GPU加速,但系统缺少必要运行库
- 缺失微软Visual C++运行时库,导致无法加载DLL文件
解决办法
方法1:强制使用CPU运行(快速修复)
绕过GPU加速逻辑,直接用CPU执行,修改代码如下:
from rembg.bg import remove from rembg.session_factory import new_session # 新增导入 import numpy as np import io from PIL import Image input_path = 'crop.jpeg' output_path = 'out.png' f = np.fromfile(input_path) # 指定使用CPU执行器 result = remove(f, session=new_session("u2net", providers=['CPUExecutionProvider'])) img = Image.open(io.BytesIO(result)).convert("RGBA") img.save(output_path)
方法2:修复GPU加速依赖(若需GPU支持)
- 确认你的NVIDIA GPU支持TensorRT,前往NVIDIA官网下载并安装对应版本的CUDA、cuDNN和TensorRT,注意三者版本必须相互兼容
- 卸载现有ONNXRuntime,安装GPU适配版本:
pip uninstall onnxruntime -y pip install onnxruntime-gpu
方法3:安装VC++运行时库
下载并安装对应系统版本的Microsoft Visual C++ Redistributable for Visual Studio,修复DLL加载依赖问题。
内容的提问来源于stack exchange,提问作者Sauhard Saini
相关产品推荐
相关产品推荐

