【生活娱乐赛道】风格转绘照相机

【标签】 硬件交互

【标题】 【硬件交互赛道】风格转绘照相机

【正文】 0. 先和大家打个招呼 :waving_hand:

我是北京交通大学自动化与智能学院的一名研一学生,平时重度使用 TRAE 做开发。这个 Demo 是我用 TRAE 完整跑出来的一个产品形态验证——把"手势取景框 + 框内风格变换"这个拍照 App 的核心交互逻辑,用 Web 技术完整跑通了。

和 TRAE 配合最深的感受是:我把脑子里的交互逻辑用大白话讲出来(比如"两只手比个框,框里要有风格化效果,三指收拢要锁定"),它能把模糊的自然语言拆成可执行的代码步骤。最难跨过的坎是 WebGPU 的跨域头配置和 ONNX 模型在浏览器的异步推理调度——我原本以为这种底层问题得自己啃文档,结果 TRAE 帮我把 COOP/COEP 头、Promise.allSettled 容错加载、防抖计数器这些细节一次理清了。"原来这么简单"的时刻,是看到双手比框的瞬间,框内画面真的变成了糖果梦幻风。

1. Demo 简介

是什么:一个拍照 App 的产品形态验证 Demo。最终产品形态是手机端 App,当前用 Web 技术跑通了核心交互逻辑——用户通过手势取景框在实时预览中框出区域,框内实时应用 AI 风格迁移,框外保持真实,拍下成片保存到画廊。

面向谁:喜欢拍照、想给日常画面加点艺术感的普通用户;喜欢影像风格表达的年轻用户;对新鲜视觉玩法敏感的内容创作者;以及主播和直播从业者——可以在直播场景中用手势实时框出画面区域做风格化,给观众带来不一样的视觉体验。

主要功能

  • 手势取景:双手拇指与食指张开成 L 形对举,实时框出取景区,框内实时应用风格迁移,框外保持真实
  • 5 种艺术风格:糖果梦幻、马赛克拼贴、抽象艺术、点彩派、雨中公主(基于 ONNX fast_neural_style 模型,WebGPU 加速推理)
  • 手势锁定与拍照:单手三指收拢锁定取景框(变绿固定),双手三指同时收拢触发拍照,保存到右侧画廊

2. Demo 创作思路

灵感来源:小时候大家都用两只手比"相框"取景,这个动作天然带着仪式感。我想把"手就是镜头"这个直觉动作和 AI 风格迁移结合起来——你比出的不只是框,是一幅正在生成的画。核心记忆点是"框外保持真实,框内切换世界",同一画面中真实和风格世界并存。

想解决的问题:传统拍照产品的风格化能力,大多发生在拍照之后,或者是对整张图统一叠加滤镜。这带来两个痛点:用户在拍之前很难直观感受到"另一种世界"会如何出现;画面变化通常是全局的,缺少局部切换带来的戏剧性和玩法感。用户不是为了"再要一个滤镜相机",而是为了体验"通过取景框主动决定哪里要发生变化"。

为什么做这个方向:手势交互 + 实时 AI 推理是浏览器端能力的天花板展示——MediaPipe 21 关键点追踪 + ONNX WebGPU 推理 + 30fps 渲染循环同时跑,能验证这个交互逻辑在移动端的可行性。选 fast_neural_style 是因为模型小(6.7MB/个)、推理快、效果有辨识度。产品后续会走向手机 App,支持手势取景框、相册导入、预设框三种入口和 7-8 种风格切换,当前 Demo 阶段先把手势取景这条最独特的交互主线跑通。

3. Demo 体验地址(需要魔法)

已部署到 Vercel,配置了 COOP/COEP 响应头以启用 WebGPU 加速:

体验链接风格转绘照相机 · Galerie

推荐使用 Chrome / Edge 桌面版访问,需授权摄像头权限。首次加载 5 个风格模型约 10-30 秒。

4. TRAE 实践过程

整个 Demo 在 TRAE 中完成,核心开发流程如下:

第一步:产品定义与设计方案收敛
先用 TRAE 把"手势取景框 + 框内风格变换"这个创意收敛成产品设计文档,明确产品形态是拍照 App、核心记忆点是"框外真实框内切换世界"、三种入口(手势取景框/相册导入/预设框)、视觉方向是奶白柔雾外壳+深色预览核心区。

第二步:报名展示页搭建
用单文件 HTML 搭建报名展示页,落地主界面大图(半身正对镜头+双手比框+框内名画油彩风)、三种入口切换、风格切换区、拍摄按钮,配奶白柔雾视觉体系和微交互(取景框呼吸感、风格切换柔和过渡)。

第三步:核心交互逻辑实现(Web Demo)
搭建 CameraManager 管理摄像头流,接入 MediaPipe HandLandmarker 做双手 21 关键点检测,定义手指状态检测(tip-to-wrist 2D 距离判断伸直/弯曲)和手势识别框架。用双手拇指尖+食指尖 4 个关键点构成取景框,加入平滑滤波消除抖动。接入 5 个 ONNX fast_neural_style 模型,RGBA→NCHW float32 转换后送入推理,采用"最新一帧"异步策略避免推理阻塞渲染循环。

第四步:锁定逻辑优化
解决框锁定后误触消失的问题——加入连续帧防抖(5 帧约 150ms 才触发 toggle)、双手在场前提(单手在场不触发锁定操作避免误清框)、锁定视觉反馈(边框变绿)。

第五步:前端美化与新手引导
落地暗色画廊风格设计系统——深炭背景+金箔强调+衬线标题,配玻璃拟态状态条和金色环形拍照按钮。用 SVG 简笔画做首次访问手势引导弹窗(localStorage 记忆),讲清楚4个手势:比出取景框、锁定取景框、移动或解锁、拍照保存。

第六步:部署与摄像头授权修复
部署到 Vercel 并配置 COOP/COEP 头启用 WebGPU,修复摄像头授权流程(先 getUserMedia 触发授权再 enumerateDevices 填充下拉框,避免授权前拿不到真实 deviceId 导致启动失败)。

关键任务对话 Session ID

  • 〔Session ID 1:产品定义与设计方案〕 .4390781791502473:c16ba633a570e25a387a841675afccb3_6a373abd89cb670e414b0482.6a3cff1b7f39fed90c7af3ad.6a3cff1adbc336e67ce16065:Trae CN.T(2026/6/25 18:12:43)

  • 〔Session ID 2:核心交互逻辑实现(手势识别+ONNX推理)〕 .4390781791502473:c91e6b376dddd2d8d102a7f783ac8702_6a373abd89cb670e414b0482.6a3d29a87f39fed90c7af6a1.6a3d29a7dbc336e67ce16069:Trae CN.T(2026/6/25 21:14:16)

    Session ID 3: .4390781791502473:4afab033d7b570bf3bc256ce85438f0f_6a373abd89cb670e414b0482.6a3e0f8a7f39fed90c7b0708.6a3e0f89dbc336e67ce1608c:Trae CN.T(2026/6/26 13:35:06)

    Session ID 4: .4390781791502473:3d85acc50002d2f3addf0d1d472bebc8_6a373abd89cb670e414b0482.6a3f96e27f39fed90c7b0e01.6a3f96e1dbc336e67ce1608f:Trae CN.T(2026/6/27 17:24:50)

  • 〔Session ID 5:前端美化与Vercel部署〕 .4390781791502473:8e457a5fc8bad1f9dc1258a0920adaac_6a373abd89cb670e414b0482.6a4e4f911c36f53753579b38.6a4e4f905a3aee08a9ff2f30:Trae CN.T(2026/7/8 21:24:33)

5. 对应的报名审核通过的帖子链接

【生活娱乐】手势取景框内风格转绘照相机——给我们的世界开个洞 - TRAE AI 创造力大赛 / 【大赛报名专区】 - TRAE 官方中文社区

1 个赞