怎样把照片转成深度图
添加照片。 点“选择图片”,选 JPEG、PNG 或 WebP(浏览器能打开的话,HEIC 也可以)。手机上会打开相册。手边没有照片,就点“加载示例”。
等待计算深度。 第一次使用时,浏览器会下载深度模型(约 27 MB,用 WebGPU 时为 50 MB)并保存下来,之后的照片马上就能开始。深度图会出现在照片旁边。
按你的软件设置。 选择近处用白色还是黑色(选哪个? )、PNG 用 8 位还是 16 位,以及输出“尺寸”。对比度不够时,用“色阶”调整。
用 3D 检查后下载。 把“显示”切换到“3D 预览”,移动鼠标或倾斜手机,确认远近是否正确,再点“下载深度图”。
什么是深度图
深度图(depth map)是一张灰度图,记录照片里每个位置离镜头有多远。这个工具默认白色为近、黑色为远。
左:骑马面向优胜美地瀑布的三个人,出自 20 世纪初的立体照片卡(Underwood & Underwood;大都会艺术博物馆收藏的 23 张一组之一,公有领域 [7] )。右:这个工具生成的深度图,近处为白色,下方长条里有标记。
深度图不是黑白照片。 黑白照片记录的是明暗,拿去当深度用时,黑色的胡子或阴影会变成一个坑;深度图记录的是远近,和颜色无关。直接拿黑白照片去雕刻,效果常常很奇怪,原因就在这里。
深度是 AI 模型从一张照片推算出来的。模型是 Depth Anything V2 Small,由 Lihe Yang 等人于 2024 年以 Apache-2.0 许可证发布 [1] 。它通过 ONNX Runtime Web 在浏览器里运行:浏览器支持 WebGPU 时用显卡(GPU)计算,否则用处理器(CPU),速度较慢。
得到的是相对深度 :哪些东西更近、表面是什么形状,而不是以米为单位的距离。Depth Anything V2 的作者也是这样说明的,并另外发布了测量距离用的版本 [1] 。激光雕刻、浮雕、置换(displacement)和 ControlNet 需要的正是相对深度:实际雕多少毫米深、效果多强,在读取深度图的软件里设置。
各项设置
设置 可选 什么时候要改
近处颜色 白色(默认)或黑色 有些雕刻软件和应用要求近处为黑色
保存格式 PNG 8 位或 PNG 16 位 Blender 置换、浮雕和 CNC 用 16 位;ControlNet 和大多数应用用 8 位
尺寸 照片原尺寸(长边最多 4,096 px)或模型尺寸 模型尺寸较小,方便分享;要和原照片对齐就用原尺寸
色阶 黑场、白场、中间调 想把灰度集中在你关心的那段远近时
平滑 关闭、弱(默认)、强;保留边缘 平面看起来有颗粒感就选“强”;“关闭”是模型的原始输出。物体边缘始终清晰
8 位还是 16 位。 8 位灰度 PNG 有 256 级,16 位有 65,536 级 [2] 。只有 256 级时,平滑的斜面经过置换或 CNC 做成立体后,可能出现一级一级的台阶纹。这里保存的 16 位是真正的 16 位灰度 PNG,不是把 8 位的值放进 16 位文件,而且从黑到白用满整个范围。大多数图像应用和 ControlNet 用 8 位,软件不支持 16 位就保持 8 位。
色阶。 把黑场调高、白场调低,所有灰度就都用在你设定的那段远近上,对比度更强。“中间调”可以拉开近处或远处的层次,两端不变。
常见问题
白色是近还是远?白色是高还是低?
取决于读取深度图的软件。LightBurn 的 3D Sliced 模式中,越亮的像素雕刻遍数越少,纯白完全不雕,所以越暗的地方雕得越深 [5] :近处为白色时,近的东西会像硬币上的图案一样凸起。它的“Negative Image”设置正好相反,越亮的地方雕得越深 [5] ,做模具时用这个设置。ControlNet 的深度模型是用白色为近、黑色为远的深度图训练的 [3] 。Blender 的 Displace(置换)修改器中,比“Midlevel”亮的值会把表面往外推,暗的往里压 [4] ,所以白色为近时,近的东西会凸出来。软件要求相反时,就选黑色;不确定时,先做一小块试试。
可以用于激光雕刻或 CNC 浮雕吗?
可以。雕刻和浮雕软件会把深度图当作高度图读取,每一级灰度对应一个高度或雕刻深度。软件支持的话,按照片原尺寸下载 16 位 PNG,并先把下方的长条裁掉(见下文 ),否则长条也会被雕进去。平面看起来有颗粒感,就把平滑调到“弱”或“强”。
雕出来太平,或者有一级一级的纹路?
太平通常是因为主体的远近只占了灰度的一小段,软件能用的深度级数太少:用“色阶”的黑场、白场把范围拉开。台阶纹是灰度级数或雕刻遍数太少造成的:用 16 位文件,增加雕刻遍数,或增加浮雕软件的层数。
深度图下面那个长条是什么?
那是“made with owl3d.com”标记。我们把它放在深度图下方另加的长条里,不会改动任何深度值。如果软件需要和照片完全一样大,比如在 Blender 或 After Effects 里和照片对齐,就把图裁回照片的高度,深度图本身一点都不会少。
怎样在 Blender 里使用深度图?
按照片原尺寸下载 16 位 PNG,裁掉下方长条。添加一个细分过的平面,加上 Displace(置换)修改器,把深度图指定为图像纹理。每个顶点会按纹理的亮度移动,“Strength”决定移动多少,“Midlevel”决定哪种灰色算作不动 [4] 。在同一个平面上贴上原照片作为颜色纹理,就成了一张立体照片。
可以用在 ControlNet(ComfyUI、Stable Diffusion WebUI)里吗?
可以。近处选白色、保存为 8 位 PNG,裁掉下方长条,再把深度图作为控制图载入;深度图已经生成好了,预处理器(preprocessor)选 none。ControlNet 的深度模型是用多种估计方法生成的灰度深度图训练的 [3] [6] 。
深度相机和这个工具有什么不同?
深度相机用硬件测量深度:比如用两个镜头像双眼一样比对画面,投射特殊图案(结构光),或测量光线发出再反射回来的时间(飞行时间,ToF)[8] 。这个工具不需要深度相机,也不需要两张照片:AI 从一张普通照片推算远近,所以是估计值,不是测量值。
深度图是以米为单位的距离吗?
不是。深度图表示的是远近的顺序和物体的形状,不是测出来的距离。同一场景的两张照片,同样的距离可能变成不同的灰色。
为什么玻璃、镜子、天空的深度不对?
模型是根据画面的样子推算深度的,所以看起来和实际远近不一致的东西会让它判断出错:倒影、窗户、照片里的海报或风景照、雾。天空会被当成最远的地方。小错误可以在图像编辑软件里直接修改深度图。
照片会上传吗?
不会。模型在你的设备上、在浏览器里运行。唯一需要下载的是模型本身,而且只在第一次。
想要 3D 视频或 3D 照片,而不是深度图
如果你最终想要的是 3D 照片或 3D 视频,而不是深度图,Owl3D 应用 是 Windows 和 Mac 的电脑软件(界面为英文),在你自己的电脑上用 AI 把 2D 照片和视频转成立体 3D。可以保存为左右并排(SBS)、半宽左右并排(Half SBS)、上下,Mac 版还可以输出 Apple Vision Pro 的空间视频;它不能输出深度图。和所有 AI 转换一样,深度是软件推算的。
延伸阅读
用一张照片做 3D 图片:Wigglegram Maker (左右晃动的 3D 照片)、Anaglyph Maker (戴红蓝眼镜看)。用深度图做 3D 立体图:Magic Eye Maker (以上为英文页面)。