跳到正文
W Winse Blog
life 1 min read

从静态生成到数据驱动:人像视频相册持续的进化

前段时间,我基于视频关键帧提取 + 人像识别,做了一个自动分类的视频相册系统。 系统会从视频中抽取关键帧,通过人脸识别进行聚类分类,然后自动生成首页和人物列表页面。

我用 AI,把微信家族群里零碎的视频,变成了孩子的一本“成长相册”

这次过年回老家,我在原有基础上做了一轮系统性优化,同时把项目封装成 Docker 镜像,规范重构了目录结构。现在如果后续新增图片或视频,只需要重新构建一次数据,就可以快速生成更新后的相册。

代码已经开源在 GitHub,感兴趣的同学可以一起参与优化改进: https://github.com/winse/video-face-gallery

下面是这次的几个核心优化点。

一、数据驱动改造

最早的版本是 Python 生成的纯静态页面,不需要服务器,打开即用。优点是简单,但每次数据变动都必须重新生成页面,流程比较繁琐。

而且随着功能增加,比如后面要支持标签系统,仅靠纯静态页面已经不够用了。

这次我改成了“数据驱动”的方式:

•启动一个轻量级服务器•视频元数据在生成阶段写入 JSON 文件•页面通过读取 JSON 数据动态渲染•浏览器侧使用 IndexedDB 进行缓存

改造完成后,页面样式和交互优化变得非常轻松。 只要改前端 UI,刷新浏览器就能看到效果,不再需要重新生成整套页面。

这一步,本质上是把“页面生成”升级成“数据 + 渲染分离”的架构,后续扩展空间一下子打开了。

二、增加标签系统

AI 分类并不是百分之百准确。 有时会误分,有时会把同一个人拆成多个类别(尤其是不同年龄阶段的孩子)。

虽然可以通过调整识别参数改善,但这条路比较费精力,而且不够灵活。

所以这次增加了标签功能:

•支持手动合并分类•支持自定义标签(例如:喜、怒、哀、乐)•支持按标签筛选浏览

标签数据同样缓存在浏览器 IndexedDB 中。 当需要持久化时,可以导出 tags.json,替换应用数据目录中的文件,然后清理缓存完成同步。

这样既保留了离线体验,又提供了人工干预能力。 AI 负责“初步整理”,人负责“精细修正”。

三、播放列表页面

新增了一个合集播放器页面。

可以把选中的视频加入播放列表,进行循环播放或顺序播放。 这样不仅可以按人物查看,也可以做成一个完整的成长合集播放页面。

体验上更像一个真正的“家庭相册系统”,而不只是分类工具。


这次优化完成后,录制了一个完整流程的视频,从配置、构建到查看结果,全流程演示了一遍。 (演示素材没直接使用小孩日常视频,而是用的软件视频教程做示例,避免一些隐私问题)。

整个项目从最初的“技术验证”,逐步变成一个可以长期维护、持续迭代的小系统。

现在写个工程做项目,就像整理生活。 AI 帮你把碎片收集起来,而真正赋予它意义的,还是你自己。

如果你也在做类似的视频整理、家庭相册、个人归档项目,欢迎一起交流、一起优化。

在 GitHub 上讨论

欢迎通过 GitHub Issue 留言或反馈。每条讨论都会关联到对应文章的源文件路径。

2026-03-04-从静态生成到数据驱动:人像视频相册持续的进化.md

Related posts