Sea-thru:从数学小白角度的全文精读

从双目视差到多基线测距:原理、误差公式与机器人视觉实践 从主动/被动双目、RealSense D405/D435i/D455,到基线、最小测距、深度误差及三目多基线视觉方案,一篇讲清楚。 阅读详情

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认为相机看到的水下像素由两部分相加而成:

  1. 物体发来、但在水中被削弱的光;
  2. 水中悬浮颗粒额外散射进相机的雾光。

它借助每个像素到相机的实际距离,先减去第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)物体反射率物体会反射哪些波长、反射多少
RGBDRGB + Distance/Depth彩色图像及与每个像素对应的距离图

特别注意: 论文中的 (z) 和 (d) 是两种不同距离。(z) 是相机到物体,(d) 是相机到海面。Sea-thru最需要的是逐像素的 (z)。


Abstract


Source: p.1 S001

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说至少有两个旋钮,一个控制物体光消失,一个控制水雾增加,而且两个旋钮不必同步。


Source: p.1 S002

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

Fig. 1

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


Source: p.1 S003

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.

中文: 水下照片可以想象成:空气中正常照片外面覆盖了一层浓厚彩色雾,同时照明的颜色和强度还随距离改变。已有方法往往不稳定、对参数敏感,或者只在短距离内有效。

小白解释: 这同时包含两个问题:一是“隔着水看”造成的雾,二是“照到物体上的光本来就在变色”。只去雾而不管照明变化,颜色仍然不会正确。


Source: p.1–2 S004

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


Source: p.2 S005

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按完全相同速度衰减,就无法解释为什么深水照片明显偏蓝或偏绿。


Source: p.2 S006

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 第一条总账:观测 = 直达光 + 水雾


Source: p.2 S007

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

Fig. 2

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 完整成像模型


Source: p.3 S008

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​=Jc​e−βcD​(vD​)z+Bc∞​(1−e−βcB​(vB​)z).(2)

中文: 第一项是物体原始信号 (J_c) 乘以一个小于等于1的透射比例;第二项是随距离增加并最终饱和的后向散射。

先不要怕指数函数

指数项 (e^{-\beta z}) 只表达一句话:传播距离越长、衰减系数越大,剩下的光越少。

(\beta z)(e^{-\beta z})约等于意义
01.00没有传播距离,光没有损失
0.50.61剩约61%
10.37剩约37%
20.14剩约14%
30.05只剩约5%

边界检查: 当 (z=0) 时,(e^0=1),所以 (I_c=J_c),后向散射为0;当 (z\to\infty) 时,物体光趋近0,图像趋近 (B_c^\infty)。这正符合直觉。


Source: p.3 S009

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 论文中最吓人的积分公式,其实在说什么


Source: p.3 S010

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系数不可能只是水体的固定属性。


Source: p.3 S011

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 距离图从哪里来


Source: p.3 S012

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

Fig. 3

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 最终反演公式


Source: p.3–4 S013

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​=Dc​eβcD​(z)z.(8)

中文: 先从观测图中减去后向散射,得到直达光 (D_c);再乘以指数补偿项,把传播途中损失的光补回来。

为什么这里是正指数? 成像时是乘 (e^{-\beta z}) 让光变小;恢复时要做逆运算,所以乘 (e^{+\beta z})。

数字例子: 若物体原来是100,水中只剩37,则成像为 (100e^{-1}\approx37)。恢复时计算 (37e^1\approx101),就接近原值。

风险: 如果 (\beta) 或 (z) 估计过大,指数补偿会把噪声一起放大,造成过曝、红斑和颜色爆炸。

4.3 后向散射怎样估计


Source: p.4 S014

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来自不同空间位置,失去“这是同一个物理点”的意义。


Source: p.4 S015

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−βcB​z)+Jc′​e−βcD′​z.(10)

中文: 选出的暗像素可能只是深灰色,仍包含少量物体光。因此拟合曲线除了后向散射项,还加入一个会随距离衰减的残余直达光项。

小白理解: 不要把“暗像素≈水雾”当成完全相等;作者允许暗像素中还混有一点物体贡献,以减少系统性高估 (B_c)。

Fig. 4. 用已知距离的色卡验证后向散射

Placed near: p.4 S015
Source: p.4 C004

Fig. 4

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 衰减系数为何随距离变化


Source: p.4–5 S016

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

Fig. 5

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 先粗估照明,再用已知距离修正


Source: p.5 S017

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)。对数在这里只是把指数关系“拉直”。


Source: p.5–6 S018

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


Source: p.4,6 S019

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场景摄影深度方向后向散射水体图像数
D1reef10 m向下低清澈559
D2reef10 m向下高清澈318
D3reef4 m多方向低清澈68
D4canyon4–9 m向下高浑浊153
D5reef5 m向前中清澈59


Source: p.6 S020

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


Source: p.6 S021

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 灰色色卡角度误差


Source: p.6 S022

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

Fig. 6

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°。


Source: p.7 S023

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

Fig. 7

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°。


Source: p.7–8 S024

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


Source: p.8 S025

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证明了不能把直达光衰减和后向散射共用一个系数,也不能忽略直达光有效系数的距离依赖。论文只重点恢复了距离依赖,物体反射率依赖仍留作未来工作。


Source: p.8 S026

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​=∑x​M(x)∑x​M(x) ​I(x)−J^(x)L^(x)T^(x)−B^(x) ​​.

这比直接把Sea-thru用于你的图像更合理,也自然对应你的黑角、潜器阴影和人工照明问题。


客观评价

论文最强的地方: 它指出了旧水下去雾模型的物理错误,并给出了可以实际估计修正模型参数的完整流程。

论文最薄弱的地方: 它强依赖准确距离图、RAW流程和自然照明;真实场景没有完整GT,而且Sea-thru在灰色色卡角误差上并非始终最好。

与你课题最相关的结论: Sea-thru适合作为你方法的物理理论起点和对比基线,但不适合作为1500 m人工照明潜器图像的最终解决方案。你真正可以发展的方向,是“Sea-thru物理分解 + 局部潜器灯建模 + 有效视场掩膜 + 视频时序一致性”。

基于单目深度估计的Sea-Thru水下图像增强技术研究 设立“Zero-Shot Depth Estimation”挑战任务,要求模型在未见过的水质条件下直接推理,评估指标包括RMSE、δ<1.25、Abs Rel。 阅读详情

相关推荐

sea-thru-master.rar

论文《Improving Sea-Thru With Monocular Depth Estimation Methods》

Sea-thru: A Method For Removing Water From Underwater Images论文研读

Sea-thru: A Method For Removing Water From Underwater Images论文研读 摘要 针对于水下图像颜色恢复问题,目前来看仍然是一个挑战。我们最近表明,这部分是由于大气图像形成模型普遍适用于水下图像,并提出了物理上准确的模型。修改后的模型如下:1)信号的衰减系数在整个场景中不是均匀的,而是取决于物体的范围和反射率。2)控制反向散射随距离增加的系数不同于信号衰减系数。 在这里,我们介绍了第一种使用RGBD图像通过修改后的模型恢复颜色的方法。Sea-thru

ISP行业的忠实粉丝 9383

《工程测量学》笔记/期末复习资料

《工程测量学》笔记/期末复习资料。

@HNUSTer的博客 5562

【亲测免费】 Sea-thru 项目教程

Sea-thru 项目教程 项目介绍 Sea-thru 是一个开源项目,旨在通过深度学习和图像处理技术,实现水下图像的颜色校正和清晰化。该项目由 Hain H. 开发,基于 PyTorch 框架,适用于需要处理水下图像的研究人员和开发者。Sea-thru 的核心算法能够有效地去除水下图像中的色偏和模糊,恢复图像的自然色彩和细节。 项目快速启动 环境准备 安装 Python 3.7 或更高版本。 ...

gitblog_01198的博客 818

基于因果推理的LLM去毒:精准定位注意力头实现高效干预

在大型语言模型(LLM)的部署与应用中,模型安全与可控性是核心挑战之一。传统方法如全参数微调成本高昂,且可能损害模型通用能力。本文聚焦于一种基于因果推理的精准干预技术,其原理在于利用因果发现算法定位Transformer模型中与“毒性”输出存在强因果关联的特定注意力头。该技术通过分析注意力头的激活模式与生成文本毒性分数之间的因果关系,识别出关键责任单元,而非依赖传统的相关性分析。其技术价值在于实现了轻量级、高可解释性的模型行为修正,能以极低的参数改动代价有效降低模型在敏感话题上的有害输出。在应用场景上,该方

weixin_32667439的博客 312

别再手动算了!用Excel函数一键搞定AQI和首要污染物分析(附完整公式模板)

本文介绍如何利用Excel函数自动化计算AQI和首要污染物分析,大幅提升数据处理效率。通过构建标准化输入模板、智能计算IAQI、自动判定AQI与首要污染物,并生成可视化仪表盘,帮助环保工作者快速完成每日监测报告。

weixin_30443075的博客 345

水下图像颜色恢复方法 matlab_Sea-thru算法告诉你:没有水的水下照片才最真

11月17日消息,据悉,一种名为Sea-thru的新算法已由工程师和海洋学家Derya Akkaynak开发而成,该算法可以消除水下照片的视觉失真。Sea-thru算法旨在通过逐像素的逆转因水扭曲和水中光线影响而带来图像失真,恢复水中物体本来的颜色,为水下照片带来更高的清晰度和真实性。就以水下珊瑚礁的拍摄为例,珊瑚礁本身是一种色彩十分丰富的生物,但如果没有人造光,珊瑚礁的照片成像就会显得暗淡无光,...

weixin_39641450的博客 2546

乐视三合一体感摄像头--基本信息及windows下部分开发

乐视三合一体感摄像头--基本信息及windows下部分开发Introduction基本信息Windows下使用安装驱动使用openNI使用imageJ调用RGB图像Q:参考资料 Introduction       乐视三合一体感摄像头是乐视对标kinect,做的一款3D体感摄像头;设计目的为用于电视机上体感使用的,包括其USB结构都是为了符合电视机直接操作的,同时是支持相应的游戏操作;但是自从乐视倒闭之后,价格从之前标价899降到了现在140+左

GRF-Sunomikp31 1万+

水下图像处理算法Sea-thru

水下图像处理算法Sea-thru,出自CVPR 2019,被称之为将彻底改变水下计算机视觉的“革命性工具”。 代码开源 https://github.com/jgibson2/sea-thru (非官方) 还没发现预训练模型地址

jacke121的专栏 5352

机器学习实例(预测房价中位数)(附代码)

1、下载数据: 下载一个压缩文件housing.tgz即可,其包含housing.csv(已经包含书有数据。),用 tax xzf housing.tgz 来解压提取CSV文件。 import os import tarfile import urllib.request DOWNLOAD_ROOT = "https://raw.githubusercontent.com/ageron/handson-ml2/master/" HOUSING_PATH = os.path.join("datasets",

qq_51153436的博客 2758

14003.xilinx系统移植

文章目录1 xilinx 系统移植 sd卡版本1.1 创建项目1.2 拷贝 *.hdf 到工程目录1.3 根据hdf文件对系统进行配置1.3.1 设置内核源码路径为本地1.3.2 设置分区的名称与大小1.4 清除本地缓存并编译成功1.5 打包生成BOOT.BIN并拷贝到sd卡1.6 问题1.7 系统启动成功1.8 配置设备树文件丰富系统外设 1 xilinx 系统移植 sd卡版本 芯片型号 ZYNQ UltraScale+ XAZU2EG ,对应厂家提供的demo板为 zu102或zu104 1.1 创建

写给自己的笔记 481

基于Sea-Thru的水下图像增强技术在Atlantis项目中的应用

基于Sea-Thru的水下图像增强技术在Atlantis项目中的应用 水下图像增强技术概述 水下图像增强是计算机视觉领域的一个重要研究方向,主要解决水下拍摄图像存在的颜色失真、对比度低和模糊等问题。由于水对光线的吸收和散射作用,水下图像往往呈现蓝绿色调,细节模糊不清,这给后续的图像分析和处理带来了很大挑战。 Sea-Thru算法原理 Sea-Thru是一种先进的水下图像增强算法,它通过物理模型来还...

gitblog_07405的博客 390

moveit——基于octomap的碰撞检测

机械臂对棚顶进行碰撞检测。

如果想成为中心,那么就到中心去吧。 1355

Sea-thru算法讨论整理

Sea-thru水下图像恢复算法摘要 Sea-thru是一种基于物理模型的水下图像颜色恢复方法,主要解决两个问题:去除水体后向散射(蓝绿色水雾)和补偿光衰减损失。其核心成像模型将像素分解为衰减的物体光和水体散射光两部分,通过距离图辅助估计不同距离下的后向散射和衰减系数。算法流程包括:距离分段、暗像素选择、散射光拟合、物体光补偿等步骤。关键创新在于区分了光衰减和散射两个独立过程,采用不同系数进行建模。该方法不依赖深度学习,而是基于水下光学物理特性,通过指数函数模拟光的衰减过程,最终实现水下场景的真实色彩还原。

dejahu的博客 196

STM32F103C8T6驱动DHT11温湿度传感器程序

本程序基于 STM32F103C8T6 微控制器,通过 GPIO 模拟单总线通信时序实现对 DHT11 温湿度传感器的数据采集,主机采用拉低数据线的方式触发传感器启动,并通过检测高电平持续时间区分逻辑“0”和“1”,依次读取湿度和温度的整数数据及校验位,经过校验后将有效结果存入缓存数组,实现对环境温湿度的周期性测量与处理。

加斯顿工程师的博客 200

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Sea-thru水下图像恢复:基于物理模型与三维重建的清晰化技术

水下图像恢复是计算机视觉和图像处理领域的重要课题,旨在解决因水体吸收和散射导致图像模糊、颜色失真的问题。其核心原理基于水下光学成像模型,通过建模光线在水中的直接衰减和后向散射效应,逆向恢复场景的真实色彩与细节。这项技术的价值在于为海洋科研、水下考古、生态监测等应用提供高质量的视觉数据基础,并支撑后续的目标检测、三维重建等高级视觉任务。Sea-thru方法创新性地结合运动恢复结构(SfM)技术获取精确几何距离,并利用色卡或图像统计估计水体光学参数,实现了物理可解释的高质量恢复。本文以Sea-thru为例,详解

weixin_29038303的博客 278

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

50. 从暗通道先验去雾到海底图像修复-三维重建辅助计算摄影

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达 推荐阅读 42个pycharm使用技巧,瞬间从黑铁变王者Google C++项目编程风格指南 ...

小白学视觉 1589

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Sea-thru 项目教程

Sea-thru 项目教程 1. 项目的目录结构及介绍 sea-thru/ ├── data/ │ ├── README.md │ └── sample_data/ │ ├── README.md │ └── ... ├── src/ │ ├── __init__.py │ ├── sea_thru.py │ └── utils.py ├── tests...

gitblog_00939的博客 461

【SCIENTIFIC AMERICAN December 2019】【OPTICS】Ocean Vision

A new algorithm takes the water out of underwater photographs 一种新的算法可以去掉水下图片中的水。 Coral reefs are among nature’s most complex and colorful living formations. But as any underwa...

一瓶绿茶三元钱 2549

NeRF相关文章记录

当输入的位姿不准确时,也可以通过错误的位姿获得正确的建图。

weixin_47343723的博客 465

【导航与地图】MapTR论文精读

MapTR 精读:环视→BEV→DETR 式并行解码,直接输出在线矢量化 HD 地图;置换等价点序是核心建模洞见。

Felaim的博客 319

APEX系统中LV值计算详解

摘要(149字): EV反映相机曝光设置,受光圈、快门、ISO影响,不能直接表征场景亮度。LV = EV - log₂(ISO/100)通过抵消增益项,剥离相机参数,使结果仅与场景亮度L相关。推导表明,AE收敛时H×G=常数,导致EV中隐含的log₂(G)与显式的log₂(ISO)相消,最终LV = log₂(L) + 常数,成为独立于设备设置的场景亮度状态量。100为归一化基准,便于统一比较。

大熊 863

ESP32-P4 和 ESP32-S3 怎么选:先看屏幕、相机和无线的系统边界

按屏幕与摄像接口、RAW/ISP 和 H.264 需求、无线架构及同负载验证条件,判断 ESP32-P4 与 ESP32-S3 哪种方案应先做原型。

zedyer的博客 346

康谋分享 |一文吃透激光雷达-相机联合标定:从几何原理到重卡实测闭环

外参不准,算法白搭!康谋带您详解 L-C 联合标定五步闭环,解决点云图像对不齐、孔位匹配易错等难题,附重卡实车验证效果。

hongkeaimotek的博客 321

运动相机电池采购坑②|保护板偷工减料,看着有电,一上电就炸机

本文聚焦运动相机电池很容易被忽略的保护板风险,通过真实跨境售后案例,拆解供应商保护板偷料三大主流套路:MOS 降规格、删减 NTC 温控、取消均衡电路。这类减配在静态容量测试中很难发现,只有长时间大负载、低温使用才会暴露断电、鼓包问题。文中给到采购可落地的现场核验方案:封样比对、持续负载测试、温控验证、BOM 锁定,把风控动作前置,避免大批量海外售后损失。

FLJwu的博客 444

从基础明场到荧光成像:CKX53加装LED荧光模块与高灵敏相机升级路径

做荧光成像时,建议搭配高灵敏或制冷相机,弱信号也能拍出干净图像。如果只偶尔看荧光、不要求定量拍照,先加装荧光模块、用现有相机观察也是可以的。原有的明场、iPC相差、人体工学观察体验全部保留,只是在光路中增加了荧光激发与滤块。从明场相差到荧光成像,CKX53留出的不是一个固定终点,而是一条可以按节奏走的升级路径。先把日常观察做扎实,需要荧光时再模块化扩展,这是很多细胞实验室的实际成长方式。上加装LED荧光模块和合适的相机,就能把设备升级成荧光观察平台。·先相差对焦,再切荧光,避免在暗视野里找细胞。

Laite_tech的博客 202
上一篇: Sea-thru算法讨论整理
下一篇: 声纳数据集汇总
肆十二
肆十二 优质创作者: 人工智能技术领域 优质创作者: 人工智能技术领域
博客等级 码龄9年 2万+粉丝 241原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肆十二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值