You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PixelLib做视频背景模糊时出现UnboundLocalError报错如何解决

报错原因

该报错是PixelLib库blur_video方法的内部实现bug导致的:当你指定detect="person"仅检测人员目标时,库的帧处理逻辑没有提前声明output变量,只有在单帧画面检测到符合要求的person目标时才会给该变量赋值。一旦视频中某一帧没有检测到人员,逻辑分支就会调用未初始化的output变量,直接触发该报错。
此外你的代码存在冗余赋值问题:blur_video方法不需要将返回值重新赋值给原change_bg对象,虽然这不是本次报错的直接诱因,但属于不规范写法。

解决方案
  • 先修正代码的冗余赋值,将最后一行的赋值操作改为直接调用方法:
import pixellib
from pixellib.tune_bg import alter_bg

change_bg = alter_bg(model_type = "pb")
change_bg.load_pascalvoc_model("xception_pascalvoc.pb")

# 去掉多余的change_bg = 赋值
change_bg.blur_video(video_path="Cut52-1.mp4", extreme = True, frames_per_second=10, output_video_name="blur2_video.mp4", detect = "person")
  • 如果你使用的是0.7.0及以上版本的PixelLib,该版本存在上述已知bug,可回退到无bug的稳定版本:
    pip install pixellib==0.6.1
  • 若不想降级版本,可手动修改库源码的tune_bg.py文件,在blur_video方法的帧处理逻辑前提前初始化output变量即可。
  • 额外验证xception_pascalvoc.pb模型文件是否存放在代码运行的同级目录,且文件完整未损坏,模型缺失/损坏也可能触发同类变量初始化异常。

内容的提问来源于stack exchange,提问作者Ahmed Abousari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 08:24:06