video-subtitle-remover - 视频去水印、去字幕


一、关于 video-subtitle-remover

video-subtitle-remover 是基于AI的图片/视频硬字幕去除、文本水印去除,无损分辨率生成去字幕、去水印后的图片/视频文件。无需申请第三方API,本地实现。


主要功能

  • 无损分辨率将视频中的硬字幕去除,生成去除字幕后的文件
  • 通过超强AI算法模型,对去除字幕文本的区域进行填充(非相邻像素填充与马赛克去除)
  • 支持自定义字幕位置,仅去除定义位置中的字幕(传入位置)
  • 支持全视频自动去除所有文本(不传入位置)
  • 支持多选图片批量去除水印文本

在这里插入图片描述


下载地址:

Windows GPU版本v1.1.0(GPU):

仅供具有Nvidia显卡的用户使用(AMD的显卡不行)


演示


GUI版:

在这里插入图片描述


点击查看演示视频👇

在这里插入图片描述


二、源码使用说明

无Nvidia显卡请勿使用本项目,最低配置:

GPU:GTX 1060或以上显卡

CPU: 支持AVX指令集


1、下载安装Miniconda


2、创建并激活虚机环境

(1)切换到源码所在目录:

cd <源码所在目录>

例如:如果你的源代码放在D盘的tools文件下,并且源代码的文件夹名为video-subtitle-remover,就输入 cd D:/tools/video-subtitle-remover-main


(2)创建激活conda环境

conda create -n videoEnv python=3.8
conda activate videoEnv

3、安装依赖文件

请确保你已经安装 python 3.8+,使用conda创建项目虚拟环境并激活环境 (建议创建虚拟环境运行,以免后续出现问题)


3.1 安装CUDA和cuDNN

Linux 用户

1)下载CUDA 11.7
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run

2) 安装CUDA 11.76
sudo sh cuda_11.7.0_515.43.04_linux.run

输入accept


选中CUDA Toolkit 11.7(如果你没有安装nvidia驱动则选中Driver,如果你已经安装了nvidia驱动请不要选中driver),之后选中install,回车


添加环境变量

~/.bashrc 加入以下内容

# CUDA
export PATH=/usr/local/cuda-11.7/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

使其生效

source ~/.bashrc

3)下载cuDNN 8.4.1

国内:cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive.tar.xz 提取码:57mg

国外:cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive.tar.xz


4)安装cuDNN 8.4.1
 tar -xf cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive.tar.xz
 mv cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive cuda
 sudo cp ./cuda/include/* /usr/local/cuda-11.7/include/
 sudo cp ./cuda/lib/* /usr/local/cuda-11.7/lib64/
 sudo chmod a+r /usr/local/cuda-11.7/lib64/*
 sudo chmod a+r /usr/local/cuda-11.7/include/*

Windows 用户

1)下载CUDA 11.7

cuda_11.7.0_516.01_windows.exe


2)安装CUDA 11.7

3)下载cuDNN v8.4.0 (April 1st, 2022), for CUDA 11.x

cudnn-windows-x86_64-8.4.0.27_cuda11.6-archive.zip


4)安装cuDNN 8.4.0

将cuDNN解压后的cuda文件夹中的bin, include, lib目录下的文件复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\对应目录下


3.2 安装GPU版本Paddlepaddle:

windows:

python -m pip install paddlepaddle-gpu==2.4.2.post117 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html

Linux:

python -m pip install paddlepaddle-gpu==2.4.2.post117 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html

3.3 安装GPU版本Pytorch:

conda install pytorch==2.0.1 torchvision==0.15.2 pytorch-cuda=11.8 -c pytorch -c nvidia

或者使用

pip install torch==2.0.1 torchvision==0.15.2 --index-url https://download.pytorch.org/whl/cu118

3.4 安装其他依赖

pip install -r requirements.txt

4、运行程序

运行图形化界面

python gui.py

运行命令行版本(CLI)

python ./backend/main.py

三、常见问题


1、提取速度慢怎么办

修改backend/config.py中的参数,可以大幅度提高去除速度

MODE = InpaintMode.STTN  # 设置为STTN算法
STTN_SKIP_DETECTION = True # 跳过字幕检测,跳过后可能会导致要去除的字幕遗漏或者误伤不需要去除字幕的视频帧

2、视频去除效果不好怎么办

修改backend/config.py中的参数,尝试不同的去除算法,算法介绍

  • InpaintMode.STTN 算法:对于真人视频效果较好,速度快,可以跳过字幕检测
  • InpaintMode.LAMA 算法:对于图片效果最好,对动画类视频效果好,速度一般,不可以跳过字幕检测
  • InpaintMode.PROPAINTER 算法: 需要消耗大量显存,速度较慢,对运动非常剧烈的视频效果较好

2.1 使用STTN算法
MODE = InpaintMode.STTN  # 设置为STTN算法
# 相邻帧数, 调大会增加显存占用,效果变好
STTN_NEIGHBOR_STRIDE = 10
# 参考帧长度, 调大会增加显存占用,效果变好
STTN_REFERENCE_LENGTH = 10
# 设置STTN算法最大同时处理的帧数量,设置越大速度越慢,但效果越好
# 要保证STTN_MAX_LOAD_NUM大于STTN_NEIGHBOR_STRIDE和STTN_REFERENCE_LENGTH
STTN_MAX_LOAD_NUM = 30

2.2 使用LAMA算法
MODE = InpaintMode.LAMA  # 设置为STTN算法
LAMA_SUPER_FAST = False  # 保证效果

如果对模型去字幕的效果不满意,可以查看design文件夹里面的训练方法,利用backend/tools/train里面的代码进行训练,然后将训练的模型替换旧模型即可


3、CondaHTTPError

将项目中的.condarc放在用户目录下(C:/Users/<你的用户名>),如果用户目录已经存在该文件则覆盖

解决方案:https://zhuanlan.zhihu.com/p/260034241


4、7z文件解压错误

解决方案:升级7-zip解压程序到最新版本


5、4090使用cuda 11.7跑不起来

解决方案:改用cuda 11.8

pip install torch==2.1.0 torchvision==0.15.2 --index-url https://download.pytorch.org/whl/cu118

2025-01-10(五)

PySimpleGUI is now located on a private PyPI server. Please add to your pip command: -i https://PySimpleGUI.net/install The version you just installed should uninstalled: python -m pip uninstall PySimpleGUI python -m pip cache purge Then install the latest from the private server: python -m pip install --upgrade --extra-index-url https://PySimpleGUI.net/install PySimpleGUI You can also force a reinstall using this command and it'll install the latest regardless of what you have installed currently python -m pip install --force-reinstall --extra-index-url https://PySimpleGUI.net/install PySimpleGUI Use python3 command if you're running on the Mac or Linux Error: Can not import paddle core while this file exists: C:\Users\11628\.conda\envs\Video-subtitle-remover\lib\site-packages\paddle\base\libpaddle.pyd Traceback (most recent call last): File "F:\pytharm\Video-subtitle-remover\video-subtitle-remover\gui.py", line 17, in <module> import backend.main File "F:\pytharm\Video-subtitle-remover\video-subtitle-remover\backend\main.py", line 12, in <module> import config File "F:\pytharm\Video-subtitle-remover\video-subtitle-remover\backend\config.py", line 10, in <module> import paddle File "C:\Users\11628\.conda\envs\Video-subtitle-remover\lib\site-packages\paddle\__init__.py", line 28, in <module> from .base import core # noqa: F401 File "C:\Users\11628\.conda\envs\Video-subtitle-remover\lib\site-packages\paddle\base\__init__.py", line 36, in <module> from . import core File "C:\Users\11628\.conda\envs\Video-subtitle-remover\lib\site-packages\paddle\base\core.py", line 380, in <module> raise e File "C:\Users\11628\.conda\envs\Video-subtitle-remover\lib\site-packages\paddle\base\core.py", line 268, in <module> from . import libpaddle ImportError: generic_type: type "_gpuDeviceProperties" is already registered!
最新发布
03-19
<think>好的,我现在需要解决用户提到的几个问题:修复PaddlePaddle导入时的ImportError: generic_type异常,正确安装最新版的PySimpleGUI,以及排查PaddlePaddle的_gpuDeviceProperties类型冲突。首先,我得逐个分析这些问题的可能原因,然后找到解决办法。 首先,关于ImportError: generic_type异常。根据经验,这类错误通常与C++扩展模块有关,尤其是在使用Pybind11绑定时可能出现的类型注册冲突。可能的情况是系统中安装了多个版本的PaddlePaddle,或者与其他库存在兼容性问题。用户还提到需要从私有PyPI服务器安装PySimpleGUI,这可能涉及到依赖版本的问题,或者私有仓库的配置是否正确。 接下来是安装PySimpleGUI的问题。用户需要从私有PyPI安装最新版,这可能需要使用pip的额外参数指定仓库地址,并且可能需要认证信息。如果安装过程中出现依赖冲突,比如PySimpleGUI要求的某些包版本与现有环境中的不一致,就会导致安装失败或者后续运行错误。 然后是PaddlePaddle的_gpuDeviceProperties类型冲突。这可能是因为CUDA版本与安装的PaddlePaddle版本不匹配。例如,如果用户安装了针对CUDA 10.2编译的PaddlePaddle,但系统中实际安装的是CUDA 11.x,可能会导致此类问题。另外,多个深度学习框架共存(如同时安装TensorFlow和PaddlePaddle)也可能引发底层库的冲突。 接下来,我需要一步步思考如何解决这些问题: 1. **解决ImportError: generic_type异常**: - 检查PaddlePaddle的安装版本是否正确,是否与Python版本、CUDA版本兼容。用户可能需要卸载当前版本,重新安装正确版本。 - 确认是否存在多个版本的PaddlePaddle共存,比如同时安装了CPU和GPU版本,这可能导致冲突。应该卸载所有版本后重新安装。 - 检查是否有其他库使用了相同模块名称,导致冲突。比如其他基于Pybind11的库可能引发问题,需要隔离环境或更新依赖。 2. **安装PySimpleGUI从私有PyPI**: - 使用pip的`--index-url`参数指定私有仓库地址,并可能需要`--trusted-host`如果仓库使用HTTP。 - 提供认证信息,如果有需要的话,可以通过`--extra-index-url`或者在URL中包含用户名密码。 - 确保私有仓库中的PySimpleGUI版本是最新的,并且与当前环境的其他依赖兼容。可能需要先升级pip,再尝试安装。 3. **排查_gpuDeviceProperties类型冲突**: - 确认CUDA和cuDNN的版本是否与PaddlePaddle官方文档推荐的版本一致。例如,PaddlePaddle的某个版本可能只支持特定的CUDA版本。 - 检查系统中CUDA的环境变量,如`LD_LIBRARY_PATH`是否正确指向了对应版本的CUDA库。 - 如果同时安装了其他深度学习框架,考虑创建虚拟环境,单独安装PaddlePaddle以避免冲突。 可能的步骤总结: - 创建新的虚拟环境,隔离现有环境的影响。 - 卸载所有现有的PaddlePaddle和PySimpleGUI版本。 - 根据CUDA版本安装对应的PaddlePaddle GPU版本。 - 使用正确的pip命令从私有仓库安装PySimpleGUI,处理可能的依赖问题。 - 验证安装后的导入是否正常,检查错误是否解决。 此外,用户可能需要检查系统日志或更详细的错误信息,来定位具体的冲突点。例如,运行Python时使用`-v`选项获得详细的导入信息,或者检查堆栈跟踪中的具体错误位置。 如果问题仍然存在,可能需要深入查看PaddlePaddle的安装日志,或者尝试在干净的Docker环境中复现问题,以排除系统环境的影响。</think>以下是分步解决方案: ### 一、解决PaddlePaddle导入错误 1. **清理旧版本** 执行以下命令彻底卸载冲突版本: ```bash pip uninstall paddlepaddle paddlepaddle-gpu pip cache purge ``` 2. **验证CUDA环境兼容性** 检查CUDA版本与PaddlePaddle版本的对应关系(参考官方文档): $$ \text{PaddlePaddle 2.4+ 需要 CUDA 11.2~11.8 和 cuDNN 8.4+} $$ 通过命令确认CUDA版本: ```bash nvcc --version ``` 3. **安装正确版本** 根据CUDA版本选择对应安装命令(示例为CUDA 11.6): ```bash python -m pip install paddlepaddle-gpu==2.5.1.post116 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html ``` ### 二、安装PySimpleGUI 1. **配置私有仓库认证** 创建`~/.pip/pip.conf`文件: ```ini [global] index-url = https://<用户名>:<密码>@私有仓库地址/simple trusted-host = 私有仓库域名 ``` 2. **指定版本安装** 强制安装最新版并跳过依赖冲突检查: ```bash pip install PySimpleGUI --extra-index-url=https://私有仓库地址/simple --no-deps --force-reinstall ``` ### 三、排查类型冲突 1. **检查设备属性接口** 执行诊断脚本: ```python import paddle paddle.utils.run_check() ``` 若出现`_gpuDeviceProperties`错误,表明存在底层库冲突 2. **隔离冲突库** 创建新的conda环境并指定库版本: ```bash conda create -n paddle_env python=3.8 conda install cudatoolkit=11.6 cudnn=8.4 ``` ### 四、验证解决方案 1. **导入测试** 按顺序加载关键库: ```python import PySimpleGUI # 先导入图形库 import paddle # 后导入计算框架 paddle.fluid.install_check.run_check() ``` 2. **环境完整性检查** 查看关键符号绑定: ```python print(paddle.fluid.core.gpu_device_properties) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程乐园

请我喝杯伯爵奶茶~!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值