一、项目背景与效果展示
1.词云舞背景
- 结合 B 站弹幕文化与动态视觉特效,实现技术与创意的融合
- 用于短视频创作、数据分析可视化、个性化视频模板
2.效果展示 (视频见动态)
二、技术栈与工具链
-
核心工具
- you-get:B 站视频 / 弹幕一键下载(Python 库)
- PaddleSeg:飞桨人像分割模型(AI 算法)
- OpenCV:视频分帧与图像处理(CV 基础)
- ffmpeg:视频合成与参数优化(工业级工具)
-
扩展技术
- jieba:中文分词(弹幕文本预处理)
- wordcloud:词云生成(动态文字布局)
三、详细实现步骤
-
视频下载与弹幕提取
# 安装you-get pip install you-get # 下载视频(示例) you-get -o ./videos https://www.bilibili.com/video/BV123456789
- 关键参数:
-o
指定输出目录,自动生成danmaku.xml
- 关键参数:
-
人像分割
- 模型选择:PP-HumanSegV2-Lite(轻量级部署)
- 安装 PaddleSeg:
❗安装PaddleX前请先确保您有基础的Python运行环境。(注:当前支持Python 3.8 ~ Python 3.10下运行,更多Python版本适配中)。
-
# cpu python -m pip install paddlepaddle==3.0.0b2 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/ # gpu,该命令仅适用于 CUDA 版本为 11.8 的机器环境 python -m pip install paddlepaddle-gpu==3.0.0b2 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/ # gpu,该命令仅适用于 CUDA 版本为 12.3 的机器环境 python -m pip install paddlepaddle-gpu==3.0.0b2 -i https://www.paddlepaddle.org.cn/packages/stable/cu123/
❗ 更多飞桨 Wheel 版本请参考飞桨官网。
-
pip install paddlex==3.0.0b2
❗ 更多安装方式参考PaddleX安装教程
-
代码实现:
python src/seg_demo.py --config inference_models/portrait_pp_humansegv2_lite_256x144_inference_model_with_softmax/deploy.yaml --video_path "D:\program\download\芒种,一想到你我就…… (P1. --save_dir data/videos_result/video_heng_v2.avi
-
视频分帧与黑白化处理
4.弹幕处理与词云生成
5.词云舞合成
四、优化技巧与避坑指南
-
人像分割优化
- 调整 PaddleSeg 模型输入尺寸(
--input_shape
参数) - 开启 GPU 加速(
use_gpu=True
)
- 调整 PaddleSeg 模型输入尺寸(
-
弹幕同步技巧
- 按时间戳匹配视频帧与弹幕(需解析 XML 时间参数)
- 使用
moviepy
库实现动态文字动画
-
性能优化
- 多线程处理视频分帧(
ThreadPoolExecutor
) - 视频压缩参数调优(
-crf 23
为平衡画质与体积)
- 多线程处理视频分帧(
五、效果对比与应用场景
-
前后效果对比图
- 原图 vs 黑白蒙版 vs 词云填充效果
- 动态视频对比(插入 Gif 或视频片段)
-
创意应用场景
- 短视频片头制作
- 直播弹幕可视化
- 数据新闻动态展示
六、参考资料
七、总结与扩展
-
技术总结
- 核心流程:视频下载 → 人像分割 → 帧处理 → 弹幕分析 → 合成
- 关键技术点:AI 分割、动态词云、视频编解码
-
扩展方向
- 增加粒子特效(使用
pygame
库) - 结合实时弹幕(WebSocket 获取直播数据)
- 3D 动态效果(Three.js+WebGL)
- 增加粒子特效(使用
3.代码获取(已上传至GitHub)