宝宝每天都在变化,但相册里的照片很难直接比较。拍摄距离、头部角度、画面比例和光线一直在变,快速翻看时,人的注意力往往先被构图差异带走。
Baby Camera 想做的事情很具体:选择一组不同日期的正脸照片,在浏览器里自动对齐双眼和脸部大小,再把它们连成一段可以播放、调整和导出的成长记录。

先把隐私边界写进产品
这类工具面对的是家庭照片。是否上传、保存多久、原图会不会被修改,都不应该藏在隐私条款里。
所以当前版本把处理边界做得很窄:照片只在当前浏览器会话中读取,人脸关键点分析在本机完成,不上传照片,也不写回或压缩原图。刷新页面后需要重新导入,暂时没有云备份和账号同步。
这些限制会牺牲一点便利,但它们让第一版先把最重要的信任关系讲清楚。工具可以帮助整理变化,不应该顺便接管家庭影像。
对齐的目标不是修改长相
每张照片先通过 MediaPipe Face Landmarker 识别面部关键点。程序根据双眼中心计算平移、等比缩放和轻微旋转,把不同画面统一到 4:5 的播放区域。
这个过程只调整取景关系,不做生成式补脸,也不会强行把侧脸改成正脸。识别失败、角度偏大、距离过远或可能模糊的照片仍然留在时间轴里,由使用者决定保留或排除。
产品里还保留了“原始裁切”和“人脸对齐”的切换。它不是多余的技术开关,而是一个直接的对照:只有能看见处理前后的差异,使用者才知道自动对齐到底做了什么。
时间轴要让变化自己出现
对齐后的照片按文件名日期或文件修改日期排序。播放速度可以选择 4、8 或 12 帧每秒,既能慢慢观察,也能把几个月的变化压缩成几秒钟。

上图使用的是生成测试素材,不是真实家庭照片。星形缩略图负责提示序列关系,左侧保留当前帧,右侧允许微调位置、大小和旋转。自动识别负责把工作推进到可用状态,人仍然保留最后的判断。
导出是一张可以带走的纪念票
当前会话确认完成后,可以直接在浏览器里导出 4:5 WebM 视频或 GIF 动画。导出沿用当前日期顺序、播放速度和手动调整结果,不需要把照片交给服务器等待处理。
我把这一段界面做成“成长电影票”,因为导出不是技术流程的终点。真正被带走的是一小段可以发给家人、也可以留给未来自己的时间。
这一版刻意没有做什么
Baby Camera 目前只验证 10 到 50 张照片的体验。它没有长期相册、每日拍摄提醒、跨设备同步和云备份,也没有为大批量照片做 Worker 性能优化。
先把导入、对齐、比较、微调、播放和导出串成一个可信的闭环,比一次做成完整家庭相册更重要。下一步是否增加长期保存,应该继续以清晰的隐私边界和真实使用反馈为前提。
如果你想看看它如何工作,可以打开 Baby Camera。全部实现与测试保留在私有 GitHub 仓库中。