AI 创作开放麦 · 2026-08

口袋里的暗房

FilmCvt —— 把 iPhone 对准胶卷负片,取景框里直接看到照片。

负片 正片
负片 ⇌ 正片 · 同一张胶片 · 模型实时转换

John · 机器学习工程师 · 胶片爱好者 · 约 12 分钟

初衷与痛点

拍胶卷的人,都在等

想要的其实很简单:对准,看见,保存。

现场演示

取景框即暗房

自动识别边框 歪了也能拉直 实时负转正 快门直存相册
负片输入
输入 · 手机对准灯箱上的负片
转换输出
输出 · App 实时转换

→ 切手机投屏,现场扫一张

每一帧经过什么

四步流水线

取景帧
1080P
找框
模型 · FRAMENET
矫正
几何 · 透视变换
反相
数学 · 一行
白平衡
模型 · WBNN
正片
30 FPS

橙框 = 神经网络(各一个 ResNet-18)· 青字 = 无参数算法 · 全部跑在手机上

第一步 · 找框 · 先亲手对一次

八个数,对上一张胶片

上下拖动矩阵里的数字,把青色框套到画幅上——右边实时拉直 ↓
相机画面 · 青框 = 你猜的画幅位置
x′·w
y′·w
w
=
·
x
y
1
上下拖动矩阵数字 · 双击恢复 · 右下角固定 1
前两项除以 w 才是坐标:x′ = (x′·w)÷w
这一步除法就是「近大远小」——透视本身
拉直预览 · 青框里的内容

这 8 个数,就是一次「透视变换」的全部自由度——「扫描文档」同款数学,网络看一眼直接报出它们。

第一步 · 找框 · 让网络猜

八个数字定位一张胶片

网络(缩略图) → 8 个数 = 四个角 → 透视变换 → 拉直

检测前
前 · 手机原始画面 + 预测的四角
矫正后
后 · 透视矫正成标准 3:2
数据 · 自己拍

让标注免费

采集现场 · 对准青框,拍下即标注
采集样本
采好的样本 · 绿框 = 随图保存的标签
数据 · 一张变一百张

增强:已知答案的考试

训练时把每张采集的照片随机换窗口、转角度、调亮度、加噪声和假反光——变换是我们施加的,所以角点标签跟着同一个变换走,等于免费多拍了一百倍。

增强后的训练数据
同一批照片增强后的训练样本 · 绿框 = 跟随变换的标签 · 每个 batch 都是新的
冷知识 「把数据揉一揉再让网络做题」是大模型的同款配方——遮住词猜词,揉皱图猜角。自监督学习的通用套路。
微调与验证

它学会了:2.6px

真值与预测对比
绿 = 真实边框 · 红 = 网络预测(按 2.6px 误差模拟) · 右:角点放大 4 倍才能看出两条线
预备知识 · 三十秒

一张照片 = 六百万个数

在照片上移动鼠标,看每个像素的三个数 ↓
照片 = 一格一格的像素
放大 9×9 像素
R – G – B –
第二步 · 反相

不是每步都要模型

正片 = 1 − 负片 // 逐像素、逐通道,一行数学,无参数

在任意一边移动鼠标选一个像素,两边同步显示它的三个数 ↓
源 · 负片
( – , – , – )

每个数 1−x
目标 · 正片
( – , – , – )
第三步 · 白平衡 · 你来试试

你来当调色师

图上移动鼠标选像素(两边同一位置);上下拖动矩阵里的数字,整张图跟着变 ↓
源 · 反相后的蓝图
目标 · 矩阵作用之后
参考答案
参考答案
=
·
上下拖动矩阵数字调色 · 双击恢复 · 9 个自由度

9 个数还只是「线性」调色,已经拧不明白了——那么,交给网络?

第三步 · 白平衡 · 让网络拧

33 个旋钮,网络来拧

φ(r,g,b) = [ r, g, b, r², g², b², rg, rb, gb, rgb, 1 ]ᵀ

[R′,G′,B′]ᵀ = M3×11 · φ(r,g,b) ← M 的 33 个数由网络给出

多项式核出自 Afifi & Brown, “When Color Constancy Goes Wrong” (WB-sRGB), CVPR 2019
11 张基图
一张图先变成 11 张「基图」 · 输出的每个通道 = 它们的线性组合(权重就是 M 的一行)
白平衡的数据

又是「已知答案的考试」

训练集是拼起来的公开数据(BDD100K 街景、鸟类、风景、自然……约 50 万张正常照片)。每张随机加色偏——加偏的是题目,原图就是答案

加色偏的题目与答案
BDD100K 里的一张训练图 · 同一张答案,无数道题目 · 色偏是自己加的,答案永远免费

和找框同一个配方:把好数据弄坏,让网络学会还原。

合起来

完整的一条链

原始
取景
裁切
找框拉直
反相
反相
白平衡
白平衡
AI 协作流程

两天,一场对话

D1
复活两年前的代码 → 转 Core ML → App 装上手机 → 实时模式 + 自动找框
D2
合成训练 → 手机采集 100 张 → 微调到 2.6px
分工
我:想法、胶片、按快门;AI:写代码、查坑、盯训练
Claude CodePyTorchCore MLSwiftUIRTX 3060 · 共 30 分钟
下一步

谢谢,来试试

去反光模型 更浓的色彩 更高分辨率 App Store

手机就在这,欢迎来扫一张你的胶片。
幻灯片与资料:filmcvt.enhuiz.com

filmcvt.enhuiz.com
← → 翻页