Sea-thru:从数学小白角度的全文精读
论文: Derya Akkaynak and Tali Treibitz, “Sea-Thru: A Method for Removing Water From Underwater Images,” CVPR 2019, pp. 1682–1691.
DOI: 10.1109/CVPR.2019.00178
论文类型: 基于物理模型的水下图像复原方法,不是深度学习方法。
原始PDF:source/Sea-thru_CVPR2019.pdf
先用一句话理解全文
Sea-thru认为相机看到的水下像素由两部分相加而成:
- 物体发来、但在水中被削弱的光;
- 水中悬浮颗粒额外散射进相机的雾光。
它借助每个像素到相机的实际距离,先减去第2部分,再把第1部分损失的能量补回来。
阅读路线
| PDF页 | 内容 | 初学者要抓住什么 |
|---|---|---|
| 1–2 | 动机、相关工作、基本模型 | 为什么“水下图像”不能简单照搬“大气去雾” |
| 3 | 修正水下成像模型、距离图 | 为什么必须知道每个像素有多远 |
| 4 | 后向散射估计 | 为什么暗像素能帮助估计“水雾” |
| 5–6 | 衰减估计与颜色恢复 | 为什么衰减率不是一个固定常数 |
| 6 | 数据集与评价设计 | 作者怎样获得RGBD数据和颜色参照 |
| 7–8 | 实验、误差分析、结论 | 数值结果真正证明了什么、没有证明什么 |
术语账本
| 论文符号/术语 | 中文 | 最朴素的解释 |
|---|---|---|
| (I_c) | 相机观测值 | 水下照片中实际读到的红/绿/蓝数值 |
| (D_c) | 直达信号 | 从物体出发并最终到达相机的光 |
| (B_c) | 后向散射 | 水中颗粒把环境光散射进相机形成的“彩色雾” |
| (J_c) | 未衰减场景 | 假设相机和物体之间没有水时,应当看到的场景光 |
| (z) | range,视线距离 | 相机到某个像素所对应三维点的距离,单位为米 |
| (d) | 摄影深度 | 相机距离海面的垂直深度,不等于 (z) |
| (B_c^\infty) | 无限远背景光/幕光 | 距离足够远时,画面最终趋近的水体颜色 |
| (\beta_c^D) | 直达光有效衰减系数 | 物体光在水中损失得多快 |
| (\beta_c^B) | 后向散射有效系数 | 水体雾光随距离累积得多快 |
| (E) | 环境照明光谱 | 到达场景的光的颜色和强度 |
| (S_c) | 相机光谱响应 | 相机红、绿、蓝通道分别怎样感受不同波长 |
| (\rho) | 物体反射率 | 物体会反射哪些波长、反射多少 |
| RGBD | RGB + Distance/Depth | 彩色图像及与每个像素对应的距离图 |
特别注意: 论文中的 (z) 和 (d) 是两种不同距离。(z) 是相机到物体,(d) 是相机到海面。Sea-thru最需要的是逐像素的 (z)。
Abstract
Original: Robust recovery of lost colors in underwater images remains a challenging problem. The authors argue that this is partly due to using an atmospheric image formation model underwater. Their revised model shows that direct-signal attenuation is not uniform across the scene and that the coefficient controlling backscatter differs from the signal attenuation coefficient.
中文: 稳定恢复水下图像中丢失的颜色仍然很困难。作者认为,一个重要原因是以前的方法把大气去雾模型直接用于水下场景。修正模型指出:直达光衰减在画面中并不是固定的,而且控制后向散射增长的系数与控制物体光衰减的系数不是同一个。
小白解释: 旧模型像是说“水只有一个统一的模糊旋钮”;Sea-thru说至少有两个旋钮,一个控制物体光消失,一个控制水雾增加,而且两个旋钮不必同步。
Original: Sea-thru first estimates backscatter from dark pixels and their known ranges. It then estimates a spatially varying illuminant and a range-dependent attenuation coefficient. More than 1,100 images from two optically different water bodies are used for validation.
中文: Sea-thru先利用暗像素及其已知距离估计后向散射,再估计空间变化的照明和随距离变化的衰减系数。作者用两个光学性质不同水体中的1100多幅图像进行验证。
Fig. 1. Sea-thru处理前后
Placed near: p.1 S002
Source: p.1 C001

Original caption: The Sea-thru method removes water from underwater images. Best viewed online for color and details.
中文图注: Sea-thru从水下图像中移除水体视觉效应;应在线查看颜色和细节。
Reading note: “Removing water”是一种形象说法。算法没有真的知道珊瑚在空气中的绝对颜色,而是按照物理模型反演出一个经过白平衡的场景估计。
1 Introduction
Original: An underwater photograph is like an image taken in air but covered in thick colored fog, under an illuminant whose white point and intensity change with distance. Existing reconstruction methods are unstable, sensitive, or limited to short ranges.
中文: 水下照片可以想象成:空气中正常照片外面覆盖了一层浓厚彩色雾,同时照明的颜色和强度还随距离改变。已有方法往往不稳定、对参数敏感,或者只在短距离内有效。
小白解释: 这同时包含两个问题:一是“隔着水看”造成的雾,二是“照到物体上的光本来就在变色”。只去雾而不管照明变化,颜色仍然不会正确。
Original: Sea-thru takes an RGBD image. It estimates backscatter using the known range map, then estimates a range-dependent attenuation coefficient using an illuminant map derived from local space average color. The distance-dependent coefficient is represented by a two-term exponential.
中文: Sea-thru的输入是RGBD图像。它利用距离图估计后向散射,再从局部空间平均颜色得到照明图,并据此估计随距离变化的衰减系数。为了减少未知数,作者用两个指数函数之和表示这个系数。
小白流程:
R G B + 距离图 → 估计水雾 B → I − B 得到直达光 D → 估计衰减率 β D ( z ) → 补回损失得到 J → 白平衡 \boxed{RGB+距离图} \rightarrow \boxed{估计水雾B} \rightarrow \boxed{I-B得到直达光D} \rightarrow \boxed{估计衰减率\ \beta^D(z)} \rightarrow \boxed{补回损失得到J} \rightarrow \boxed{白平衡} RGB+距离图→估计水雾B→I−B得到直达光D→估计衰减率 βD(z)→补回损失得到J→白平衡
2 Related Work
Original: Atmospheric dehazing models were often simplified to use one attenuation coefficient, sometimes shared by all color channels. Underwater, using one shared coefficient is a crude approximation because attenuation is strongly wavelength dependent.
中文: 大气去雾模型经常使用单个衰减系数,有时RGB三个通道还共用一个值。但水下不同波长的衰减差异很强,使用统一系数是非常粗糙的近似。
小白解释: 红光通常比蓝绿光更快消失。如果让RGB按完全相同速度衰减,就无法解释为什么深水照片明显偏蓝或偏绿。
Original: Ocean-optics instruments can measure attenuation, but those measurements cannot be directly used for image reconstruction because cameras have different spectral sensitivities and acceptance angles. The coefficients are therefore preferably estimated from images.
中文: 海洋光学仪器可以测量衰减,但仪器测得的物理参数不能原封不动地代入相机模型,因为不同相机的光谱响应和接收角不同。因此论文倾向于直接从图像估计有效RGB系数。
小白解释: “红通道”不是单一红色波长,而是一段波长经过相机传感器加权后的总和。因此Sea-thru中的 (\beta_R) 是“相机看到的有效红通道衰减”,不是水体某一个波长的实验室常数。
3 Scientific Background
3.1 第一条总账:观测 = 直达光 + 水雾
Original: Underwater image formation is governed by
I c = D c + B c . (1) I_c=D_c+B_c. \tag{1} Ic=Dc+Bc.(1)
中文: 对每个颜色通道 (c\in{R,G,B}),相机记录的值 (I_c) 等于直达物体信号 (D_c) 加上后向散射 (B_c)。
数字例子: 假设某像素绿色通道为100,其中60来自物体,40来自水雾,那么 (100=60+40)。Sea-thru第一步就是设法估计这40并减掉。
Fig. 2. 直达光减少、后向散射增加
Placed near: p.2 S007
Source: p.2 C002

Original caption: Underwater image formation follows (I_c=D_c+B_c). Direct signal contains the attenuated scene; backscatter is an additive degradation that eventually dominates with distance.
中文图注: 水下观测由衰减后的场景信号和加性的后向散射组成。距离变远时,直达信号趋近于零,后向散射逐渐占主导。
Reading note: 图中 (I_c) 最后没有降到零,因为即便物体几乎看不见,相机仍会看到水体本身的蓝绿雾光。
3.2 完整成像模型
Original: The expanded model is
I c = J c e − β c D ( v D ) z + B c ∞ ( 1 − e − β c B ( v B ) z ) . (2) I_c=J_c e^{-\beta_c^D(\mathbf v_D)z} +B_c^\infty\left(1-e^{-\beta_c^B(\mathbf v_B)z}\right). \tag{2} Ic=Jce−βcD(vD)z+Bc∞(1−e−βcB(vB)z).(2)
中文: 第一项是物体原始信号 (J_c) 乘以一个小于等于1的透射比例;第二项是随距离增加并最终饱和的后向散射。
先不要怕指数函数
指数项 (e^{-\beta z}) 只表达一句话:传播距离越长、衰减系数越大,剩下的光越少。
| (\beta z) | (e^{-\beta z})约等于 | 意义 |
|---|---|---|
| 0 | 1.00 | 没有传播距离,光没有损失 |
| 0.5 | 0.61 | 剩约61% |
| 1 | 0.37 | 剩约37% |
| 2 | 0.14 | 剩约14% |
| 3 | 0.05 | 只剩约5% |
边界检查: 当 (z=0) 时,(e^0=1),所以 (I_c=J_c),后向散射为0;当 (z\to\infty) 时,物体光趋近0,图像趋近 (B_c^\infty)。这正符合直觉。
Original: (\beta_c^D) depends on range (z), object reflectance (\rho), ambient spectrum (E), camera response (S_c), and water attenuation. (\beta_c^B) has a different set of dependencies, dominated by illumination and water optical properties.
中文: 直达光有效衰减系数不仅取决于水,还与物体颜色、距离、环境光和相机响应有关。后向散射系数的依赖关系不同,更多受环境照明和水体光学性质控制。
核心创新: 旧模型常假设 (\beta_cD=\beta_cB),Sea-thru坚持把它们分开。这是全文最重要的物理观点。
3.3 论文中最吓人的积分公式,其实在说什么
Original: Equations (3) and (4) integrate wavelength-dependent light, reflectance, water attenuation, and camera sensitivity over the visible interval (400)–(700,\mathrm{nm}) to define effective RGB coefficients.
中文: 式(3)和式(4)把400–700 nm范围内的许多细波长综合起来,得到相机RGB通道能使用的有效系数。
小白解释: 积分符号 (\int) 可以暂时理解为“把许多很细的颜色波段加起来”。红通道不是只看一个红色波长,而是:
红通道读数 = ∑ 很多波长 光强 × 物体反射 × 相机敏感度 × 水中剩余比例 . \text{红通道读数} =\sum_{\text{很多波长}} \text{光强}\times\text{物体反射}\times\text{相机敏感度}\times\text{水中剩余比例}. 红通道读数=很多波长∑光强×物体反射×相机敏感度×水中剩余比例.
你不需要亲自计算式(3)(4)才能理解或复现Sea-thru;它们主要用于证明:有效RGB系数不可能只是水体的固定属性。
Original: Ambient light at camera depth (d) is
E ( d , λ ) = E ( 0 , λ ) e − K d ( λ ) d . (5) E(d,\lambda)=E(0,\lambda)e^{-K_d(\lambda)d}. \tag{5} E(d,λ)=E(0,λ)e−Kd(λ)d.(5)
中文: 从海面向下传播的环境光也会随摄影深度 (d) 衰减,而且不同波长衰减不同。
区别: (d) 控制“光从海面走到相机附近后变成什么颜色”,(z) 控制“光从物体走到相机又损失多少”。你的1500 m潜器场景主要由人工灯照明,式(5)的自然光假设不再适用。
4 The Sea-thru Method
4.1 距离图从哪里来
Original: Sea-thru requires a range map because (\beta_c^D) strongly depends on (z). The authors obtain it using structure from motion (SfM). SfM gives geometry only up to scale, so objects of known size are placed in the scene. Stereo or vehicle navigation sensors are alternatives.
中文: Sea-thru要求每个像素都有到相机的距离 (z)。作者通过多幅照片的SfM建立三维模型;由于SfM只有相对尺度,他们在场景中放置已知尺寸的色卡确定米制比例。双目相机或潜器导航传感器也能提供距离信息。
Fig. 3. 从多张照片得到三维模型和距离图
Placed near: p.3 S012
Source: p.3 C003

Original caption: A 3D model is created from 68 photographs; the corresponding range map is measured in meters. A color chart on the seafloor sets the scale.
中文图注: 使用68张照片建立三维模型,并生成以米为单位的距离图;海底色卡用于确定绝对尺度。
对你的意义: 你虽然没有现成深度,但有视频。如果相邻帧存在重叠和视差,可以通过SfM/MVS生成距离图。不过耐压玻璃造成的折射以及四角小范围黑边必须先校准或遮罩,否则深度会偏差。这里的黑边只是四角的局部区域,并非大面积圆形视场。
4.2 最终反演公式
Original: After estimating backscatter, (D_c=I_c-B_c), and the scene is recovered by
J c = D c e β c D ( z ) z . (8) J_c=D_c e^{\beta_c^D(z)z}. \tag{8} Jc=DceβcD(z)z.(8)
中文: 先从观测图中减去后向散射,得到直达光 (D_c);再乘以指数补偿项,把传播途中损失的光补回来。
为什么这里是正指数? 成像时是乘 (e^{-\beta z}) 让光变小;恢复时要做逆运算,所以乘 (e^{+\beta z})。
数字例子: 若物体原来是100,水中只剩37,则成像为 (100e^{-1}\approx37)。恢复时计算 (37e^1\approx101),就接近原值。
风险: 如果 (\beta) 或 (z) 估计过大,指数补偿会把噪声一起放大,造成过曝、红斑和颜色爆炸。
4.3 后向散射怎样估计
Original: If object reflectance approaches zero, or the point is in complete shadow, the captured intensity approaches backscatter. Sea-thru partitions the range map into ten evenly spaced bins and finds the bottom 1% darkest RGB triplets in each bin.
中文: 如果一个位置几乎是纯黑物体,或者完全没有直达照明,那么相机看到的亮度主要来自水体后向散射。因此作者把距离分成10段,在每个距离段寻找最暗的1% RGB像素,用它们约束后向散射随距离的曲线。
为什么必须分距离找暗像素? 如果只找全图最暗点,它们可能都在近处,无法知道远处水雾如何增长。按距离分箱可以在近、中、远距离各取得样本。
为什么找RGB三元组而不是每个通道分别找最暗? 分别找会让R、G、B来自不同空间位置,失去“这是同一个物理点”的意义。
Original: Dark pixels are not always perfectly black, so the fitted model includes a small residual direct-signal term:
B ^ c ( z ) = B c ∞ ( 1 − e − β c B z ) + J c ′ e − β c D ′ z . (10) \hat B_c(z)=B_c^\infty(1-e^{-\beta_c^Bz}) +J_c'e^{-\beta_c^{D'}z}. \tag{10} B^c(z)=Bc∞(1−e−βcBz)+Jc′e−βcD′z.(10)
中文: 选出的暗像素可能只是深灰色,仍包含少量物体光。因此拟合曲线除了后向散射项,还加入一个会随距离衰减的残余直达光项。
小白理解: 不要把“暗像素≈水雾”当成完全相等;作者允许暗像素中还混有一点物体贡献,以减少系统性高估 (B_c)。
Fig. 4. 用已知距离的色卡验证后向散射
Placed near: p.4 S015
Source: p.4 C004

Original caption: A color chart is imaged from 8.0 to 1.3 m. Estimated backscatter values closely match chart-based ground truth.
中文图注: 色卡从8.0 m逐渐接近到1.3 m;Sea-thru估计的RGB后向散射与色卡计算的参照值基本一致。
与你的数据相关: 潜器阴影不一定全是坏事。若某片区域真的是“没有直达灯光但仍看到水体散射”,它可以帮助估计 (B)。但画面四角小范围的黑边不是水体像素,必须用贴合其实际轮廓的局部掩膜排除,否则会被错误选为最暗点;不应使用内接圆裁剪整幅画面。
4.4 衰减系数为何随距离变化
Original: Experiments and simulations show that the effective direct attenuation coefficient (\beta_c^D(z)) decays with range. It is modeled as a two-term exponential:
β c D ( z ) = a e b z + c e d z . (11) \beta_c^D(z)=a e^{bz}+c e^{dz}. \tag{11} βcD(z)=aebz+cedz.(11)
中文: 有效直达光衰减系数本身也随距离变化。作者发现两个指数项的和能描述这种变化。
不要混淆: 式(2)说“光强随距离指数衰减”;式(11)又说“有效衰减系数也随距离变化”。这是因为RGB通道混合了许多波长:传播越远,容易消失的波长先被过滤掉,剩下光谱的组成发生变化,于是相机测得的有效系数也变了。
Fig. 5. 三种途径得到的衰减系数都随距离下降
Placed near: p.5 S016
Source: p.5 C005

Original caption: (\beta_c^D(z)) is obtained from paired photographs, ambient-light white points, and spectral simulation. All three indicate a two-term exponential decay with range.
中文图注: 作者分别从成对照片、环境光白点和光谱模拟计算 (\beta_c^D(z)),三种方法都显示它随距离呈双指数下降。
4.5 先粗估照明,再用已知距离修正
Original: After backscatter removal, the direct signal is (D_c=J_c e{-\beta_cD(z)z}). Sea-thru estimates a local illuminant map (\hat E_c(z)) and forms a coarse attenuation estimate:
β ^ c D ( z ) = − log E ^ c ( z ) z . (12) \hat\beta_c^D(z)=-\frac{\log\hat E_c(z)}{z}. \tag{12} β^cD(z)=−zlogE^c(z).(12)
中文: 减掉后向散射后,作者先估计局部照明剩余比例 (\hat E_c),再用负对数除以距离得到粗略衰减系数。
为什么有对数? 因为 (E=e^{-\beta z})。对两边取自然对数得 (\log E=-\beta z),移项就是 (\beta=-\log E/z)。对数在这里只是把指数关系“拉直”。
Original: Local space average color is iteratively computed over four-connected neighboring pixels with similar range. The refined two-term exponential is found by predicting range
z ^ = − log E ^ c β c D ( z ) (16) \hat z=-\frac{\log\hat E_c}{\beta_c^D(z)} \tag{16} z^=−βcD(z)logE^c(16)
and minimizing
min β c D ( z ) ∥ z − z ^ ∥ . (17) \min_{\beta_c^D(z)}\lVert z-\hat z\rVert. \tag{17} βcD(z)min∥z−z^∥.(17)
中文: 作者在距离相似的相邻像素间迭代平均颜色,得到局部照明估计。随后把候选衰减曲线代入,算出它所预测的距离 (\hat z),并调整四个参数,使预测距离尽量接近真实距离图 (z)。
什么是“最小化”? 可以想象有四个旋钮 (a,b,c,d)。算法不断转动它们;每转一次就看预测距离和真实距离差多少。让总差异最小的旋钮位置,就是拟合结果。这叫非线性优化,不要求手工解方程。
4.6 白平衡与Photofinishing
Original: After range-dependent correction, a global white point remains. For scenes with diverse colors the authors use Gray World; for monochromatic scenes they use a spatial-domain illuminant method. The result is then inserted into a raw camera-processing pipeline.
中文: 校正距离相关衰减后,还要去掉相机所在深度处环境光的整体偏色。多彩场景使用灰度世界假设,颜色单一的场景使用空间方法;最后再经过RAW相机显影流程输出标准色彩空间图像。
重要: Sea-thru不只是对普通JPEG套一个公式。作者的数据以RAW拍摄,并把复原结果放进受控相机处理管线。JPEG中已经发生的白平衡、色调映射和压缩会增加复现不确定性。
5 Datasets
Table 1. 作者贡献的五组RGBD数据
Source: p.6 T001

| Set | 场景 | 摄影深度 | 方向 | 后向散射 | 水体 | 图像数 |
|---|---|---|---|---|---|---|
| D1 | reef | 10 m | 向下 | 低 | 清澈 | 559 |
| D2 | reef | 10 m | 向下 | 高 | 清澈 | 318 |
| D3 | reef | 4 m | 多方向 | 低 | 清澈 | 68 |
| D4 | canyon | 4–9 m | 向下 | 高 | 浑浊 | 153 |
| D5 | reef | 5 m | 向前 | 中 | 清澈 | 59 |
Original: All five datasets were captured under natural illumination, in raw format, with constant exposure settings within each set, and contain multiple images with color charts.
中文: 五组数据全部采用自然照明和RAW格式;同一组内保持曝光设置不变,并包含多张带色卡图像。总数为1157张。
与你的差异: 你的1500 m场景依赖潜器人工灯,存在明显照明热点、阴影和可能的灯—相机非共址效应。Sea-thru的实验条件不能直接代表你的深海成像条件。
6 Results: Validation and Error Analysis
Original: Five scenarios are compared: S1 global contrast stretch; S2 old model with DCP backscatter; S3 old model with correct backscatter and one shared coefficient; S4 revised model using an illuminant map without explicitly fitting (\beta_c^D(z)); and S5 full Sea-thru with distinct coefficients and range-dependent (\beta_c^D(z)).
中文: 作者设计五个逐步增强的对照:只拉对比度;旧模型加DCP;旧模型但给正确后向散射;修正模型直接除以照明图;以及完整Sea-thru。这样能定位问题究竟出在后向散射估计、旧模型假设还是距离相关衰减上。
6.1 灰色色卡角度误差
Original: Color correction is evaluated using the RGB angular error between six grayscale patches and the pure gray direction. Lower angle indicates a more neutral gray.
中文: 对六块灰色色卡,作者把RGB看成三维向量,并测量它与理想灰色方向 ((1,1,1)) 的夹角。夹角越小,说明R、G、B越相等,灰色偏色越少。
二维类比: 两支箭头方向一样时夹角为0;长度不同但方向一样,角度仍为0。因此该指标主要评价颜色比例,不评价亮度是否正确。
6.2 本文数据集结果
Fig. 6. D1–D5上的方法比较
Placed near: p.7 S023
Source: p.7 C006

Original caption: Average angular errors are raw 20.57°, S1 12.49°, S2 14.38°, S3 21.77°, S4 4.13°, and Sea-thru 6.33°.
中文图注: 平均角误差依次为:原图20.57°、S1 12.49°、S2 14.38°、S3 21.77°、S4 4.13°、Sea-thru 6.33°。
Original: Global contrast stretch works when scene ranges are nearly uniform. DCP often overestimates backscatter and may hallucinate colors. A constant attenuation coefficient fails when the scene has large range variation. S4 can score better on color charts, but S5 is judged better over complete scenes.
中文: 景深比较一致时,全局对比度拉伸已经有效;DCP常高估水雾并制造紫绿伪色;使用固定衰减系数在大景深场景中明显失败。S4在色卡上数值更低,但作者认为完整Sea-thru在整幅场景上更好。
重要批判: 在作者自己的D1–D5上,Sea-thru的色卡平均误差6.33°,并不是最低;S4是4.13°。因此论文的优势不能简单写成“Sea-thru所有定量指标第一”。作者的论点是:色卡局部指标没有覆盖整幅图的距离变化和视觉质量。
6.3 外部立体数据集结果
Fig. 7. 外部立体RGBD数据集结果
Placed near: p.8 S024
Source: p.8 C007

Original caption: Average errors are raw 22.28°, S1 6.83°, S2 10.03°, S3 12.04°, S4 4.46°, and Sea-thru 4.94°.
中文图注: 平均角误差依次为原图22.28°、S1 6.83°、S2 10.03°、S3 12.04°、S4 4.46°、Sea-thru 4.94°。
Original: Range maps are often least accurate far from the camera, which increases reconstruction difficulty. The authors also note that angular color error can favor visibly artifacted outputs and is not an optimal complete-scene metric.
中文: 距离图通常在远处最不准确,而远处又正是指数补偿最强的位置,因此颜色误差会被放大。作者还承认,RGB角误差可能给有明显伪影的结果较低分,所以不是完美评价指标。
7 Conclusions
Original: Sea-thru demonstrates that direct attenuation and backscatter coefficients are distinct and that the range dependence of direct attenuation cannot be ignored. The paper focuses on range dependence and leaves reflectance dependence for future work.
中文: Sea-thru证明了不能把直达光衰减和后向散射共用一个系数,也不能忽略直达光有效系数的距离依赖。论文只重点恢复了距离依赖,物体反射率依赖仍留作未来工作。
Original: Ground truth cannot be attained in real underwater environments. Future deep networks should therefore be trained using carefully designed simulations based on a correct image formation model. Evaluation remains difficult even with multiple color charts.
中文: 真实水下环境难以获得完整清晰GT。作者认为未来深度网络应建立在正确物理模型生成的精心仿真数据上;即便布置多个色卡,整幅图像的评价仍然困难。
数学小白版:把算法完整走一遍
假设你有一张水下RGB图和对应的米制距离图。
第一步:给每个像素贴距离标签
距离图告诉算法:这个像素对应的海底点离相机1 m、3 m还是8 m。没有这张图,算法无法区分“本来就是蓝色的近物体”和“红光损失严重的远物体”。
第二步:从每个距离段找最暗点
把1–8 m分成10个小区间,在每个区间找最暗的1%像素。它们近似代表该距离上的水雾颜色。
第三步:拟合水雾曲线
用式(10)找一条从0开始、随距离增加、最终趋于 (B^\infty) 的曲线。对R、G、B分别拟合。
第四步:减去水雾
D = I − B . D=I-B. D=I−B.
这一步主要改善“发白、发蓝、对比度低”。
第五步:估计局部照明
在距离相似的邻域中平均颜色,估计不同位置还剩多少照明。距离相似的点才互相平均,是为了避免把前景和远背景混在一起。
第六步:拟合衰减率曲线
先用 (\beta=-\log E/z) 得到许多粗糙点,再用双指数曲线平滑约束,使其预测距离与真实距离尽量一致。
第七步:补回物体光
J = ( I − B ) e β D ( z ) z . J=(I-B)e^{\beta^D(z)z}. J=(I−B)eβD(z)z.
远处补偿更多,近处补偿更少;不同颜色通道分别补偿。
第八步:全局白平衡和RAW显影
去掉相机所在深度的整体环境光偏色,再经过相机处理流程得到最终图像。
你最可能产生的十个困惑
1. Sea-thru是不是深度学习?
不是。它是基于物理模型、暗像素、局部颜色平均和非线性拟合的传统优化方法。
2. 它是否只需要一张RGB图片?
不是。原始Sea-thru需要RGB和逐像素距离图,而且最好是米制距离。单张普通照片不能忠实运行原方法。
3. 深度 (d) 和距离 (z) 有什么不同?
(d) 是相机离海面的深度;(z) 是相机到场景点的斜距。图像中每个像素的 (z) 不同,但同一张照片的相机深度 (d) 基本相同。
4. 为什么暗像素等于后向散射?
不严格相等,只是近似。当物体不反光或完全在阴影里时,物体直达光接近0,剩下的主要是水雾。式(10)特意加入残余项修正“暗但不全黑”的情况。
5. 为什么不能使用一个固定 (\beta)?
RGB通道包含一段波长。随着距离增加,光谱被水选择性过滤,所以相机看到的有效衰减率也随距离变化。
6. 为什么一定要分开 (\beta^D) 和 (\beta^B)?
一个描述物体光消失,一个描述水雾累积;二者来自不同光路和物理过程,不应强制相等。
7. 论文恢复的是“真实颜色”吗?
是物理模型意义下的估计,不是直接测得的绝对GT。真实场景的完整无水颜色无法获得,论文主要用灰色色卡偏色和视觉结果验证。
8. 距离图误差会怎样影响结果?
距离进入指数项。近处小误差影响有限,远处误差会造成明显欠补偿或过补偿。论文也承认远处距离图最不准。
9. 潜器阴影对算法是好还是坏?
完全阴影中的水体像素可以帮助估计后向散射;但硬阴影也说明照明高度非均匀,可能破坏论文的自然光和局部平滑照明假设。
10. 四角小范围黑边能否当作暗像素?
绝对不能。这些黑边只是四个角的局部小范围区域,并非大面积圆形遮挡;但它们仍不是水中场景点,没有有效距离,也不含正常后向散射。应使用四角局部有效视场掩膜精确排除,不能用内接圆裁剪,以免损失大量有效图像区域。
对你的1500 m南海潜器数据意味着什么
可以利用Sea-thru的地方
- 你的视频可能通过SfM/MVS重建距离图,因此不是完全没有使用Sea-thru的条件。
- 论文提供了一个非常清晰的物理实验框架:后向散射估计、距离相关衰减、介质与场景分离。
- Sea-thru可以作为传统物理基线,与SLURPP、WaterNet、Histoformer等学习方法比较。
不能直接照搬的地方
- 原论文全部使用自然照明;1500 m几乎完全依赖潜器人工灯。
- 灯光有明显距离平方衰减、照明热点、硬阴影和灯—相机几何关系。
- 相机耐压玻璃会引入折射;标准针孔SfM生成的距离可能有系统偏差。
- 黑角会污染暗像素选择。
- 逐帧独立拟合会让视频颜色随帧波动。
更适合你的扩展模型
可将直达光写成:
I c ( x ) = J c ( x ) L c ( x ) T c ( x ) + B c ( x ) , I_c(x)=J_c(x)L_c(x)T_c(x)+B_c(x), Ic(x)=Jc(x)Lc(x)Tc(x)+Bc(x),
其中 (L_c(x)) 专门表示潜器灯在空间中的非均匀照明,(T_c(x)) 表示水体透射。再加入有效视场掩膜 (M(x)):
L p h y s i c s = ∑ x M ( x ) ∣ I ( x ) − J ^ ( x ) L ^ ( x ) T ^ ( x ) − B ^ ( x ) ∣ ∑ x M ( x ) . \mathcal L_{physics} =\frac{\sum_x M(x)\left|I(x)-\hat J(x)\hat L(x)\hat T(x)-\hat B(x)\right|} {\sum_x M(x)}. Lphysics=∑xM(x)∑xM(x) I(x)−J^(x)L^(x)T^(x)−B^(x) .
这比直接把Sea-thru用于你的图像更合理,也自然对应你的黑角、潜器阴影和人工照明问题。
客观评价
论文最强的地方: 它指出了旧水下去雾模型的物理错误,并给出了可以实际估计修正模型参数的完整流程。
论文最薄弱的地方: 它强依赖准确距离图、RAW流程和自然照明;真实场景没有完整GT,而且Sea-thru在灰色色卡角误差上并非始终最好。
与你课题最相关的结论: Sea-thru适合作为你方法的物理理论起点和对比基线,但不适合作为1500 m人工照明潜器图像的最终解决方案。你真正可以发展的方向,是“Sea-thru物理分解 + 局部潜器灯建模 + 有效视场掩膜 + 视频时序一致性”。
9383



被折叠的 条评论
为什么被折叠?



