DTPOI

Latest Logs

ALL →

视频作品集

Projects

TuttiCam 齐拍即合

TuttiCam

齐拍即合 · 多机同步相机

与AI开发的App,主要为了解决自己拍摄3dgs的iPhone与相机的多设备同步快门需求,目前已上架AppStore

多机同步 大范围延时 3DGS 采集 iOS / Android

TuttiCam Android

齐拍即合的安卓原生移植。网络协议与 iOS 版逐字节兼容,安卓手机和 iPhone 可以在同一个会话里同步拍摄,任意一端都能当主机。

  • 对时:NTP 式往返测量,每轮连发 30 个探测,取往返最短的一次计算主机与本机的时钟偏差;指令走 TCP,对时和状态走 UDP。
  • 按时刻取帧:Camera2 连续输出全尺寸画面,按 SENSOR_TIMESTAMP 选出曝光开始时刻最接近约定时刻的一帧,偏差回报给主机。
  • 静止判定:陀螺仪与相机帧共用 elapsedRealtimeNanos 时基,用角速度 × 快门 × 焦距估算每张照片的模糊像素。
  • 跨平台兼容:协议层是不依赖 Android 的纯 Kotlin 模块,测试用 iOS 版本的报文做双向编解码校验。
Kotlin Camera2 Jetpack Compose NSD · TCP / UDP

Netdisk to VRChat

把 QQ闪传、iCloud、OneDrive、飞书等 6 个网盘的分享链接解析成临时直链,给 VRChat 的 AVPro 播放器提供一个能直接播放的固定 .mp4 地址。

  • 纯边缘函数:整套服务跑在 EdgeOne Pages + Edge Functions 上,不用数据库、KV 或对象存储;每次请求实时解析,不会缓存已过期的直链。
  • 播放器适配:VRChat 路由保留 .mp4 后缀,接受 GET / HEAD / OPTIONS 并补齐 CORS 头,解决 AVPro 发起 HEAD 和跨域请求时播放失败的问题。
  • 飞书转发:飞书匿名下载依赖会话 Cookie,改由边缘函数实时转发,并透传 Range / Content-Range,播放时可以拖动进度。
  • 加密参数:小飞机网盘的请求参数要用 AES-ECB 加密,而 WebCrypto 只提供 CBC,于是用零 IV 逐块加密来模拟 ECB,在边缘节点上跑通。
JavaScript EdgeOne Edge Functions WebCrypto

MaskYOLO

因为3dgs对于全景图像的蒙版处理没有一个方案,因此使用最新YOLO26做了一个先拆Cubemap再拼接的生成蒙版方案

  • 全景去畸变:先用 py360convert 把 ERP 全景拆成 6 个立方体面再识别,避开等距柱状投影的畸变对 YOLO 的干扰,识别结果再投影回原图尺寸。
  • 批量推理:一次把 4 张全景共 24 个面打包送进 GPU,提高显卡利用率;普通平面照片可跳过拆分,绕开只能用 CPU 的投影转换。
  • 对接 3DGS:各实例 Mask 取并集后膨胀 7–11 像素消除边缘残留,默认反相输出(目标黑、背景白),可直接用于 GUT 这类全景输入的训练。
Python YOLO26-seg PyTorch CUDA Flet

VRChat & 3DGS

痛一会-2026二次元痛车文化展 3DGS 预览图

痛一会-2026二次元痛车文化展

(已取得主办方授权公开发布)

  • 拍摄设备:osmo360全景相机拍摄7776x3888照片+iPhone 14Pro拍摄3024x4032照片
  • 拍摄软件:齐拍即合TuttiCam
  • 耗时2小时,共3709张照片
  • 使用旋影工坊Spirula的SIFT空三+3dgs基元训练高斯、共60000步,预算12,000,000高斯点
  • 渲染GPU:RTX5090,在原始图像直接输入训练下占用了17G显存
  • 高斯成果编辑器:Litchfield
发布到 VRChat 后,和朋友们一起参观

我的房间

我的房间的高斯泼溅重建,
用自己做的App“齐拍即合”多机同步拍摄
设备:iPhone17Pro+14Pro,
17Pro侧采用超广角8068x6048分辨率照片拍摄,
共1235张照片,

空三+高斯训练软件:Mipmap
最终3dgs成果共6045952高斯点