Sea-thru算法讨论整理

5个4000比特大状态置换算法的设计与分析 下面是 5 个概念性、实验性的 4000 位可逆置换设计。它们都保证是双射,但未经过密码分析,不可直接用于生产系统。风格分别覆盖:三维 SPN、Feistel、可逆元胞自动机、ARX、宽轨迹/Keccak 式结构。 这 5 个设计分别代表了 SPN、Feistel、元胞自动机、ARX、宽轨迹 Keccak 五种不同风格,覆盖了主流大状态置换的构造思路。再次强调:它们只是实验性概念,若要用于实际协议,必须经过严格安全性分析。 阅读详情

Sea-thru算法讨论整理

整理日期:2026年8月8日
讨论主题:从数学基础较弱的角度理解Sea-thru的成像模型、指数衰减、后向散射估计、颜色恢复过程,以及距离图的重要性。
论文:Derya Akkaynak and Tali Treibitz, “Sea-Thru: A Method for Removing Water From Underwater Images,” CVPR 2019.


1. Sea-thru解决什么问题

Sea-thru是一种基于水下物理成像模型的颜色恢复方法,不是深度学习网络。

它认为,相机看到的一个水下像素由两部分组成:

I c = D c + B c . I_c=D_c+B_c. Ic​=Dc​+Bc​.

其中:

  • (I_c):相机实际记录的像素值;
  • (D_c):从物体出发、经过水体衰减后到达相机的直达光;
  • (B_c):水中颗粒将光散射进相机产生的后向散射,也就是蓝绿色“水雾”;
  • (c):红、绿、蓝三个颜色通道之一。

例如,某个像素的绿色通道为100,其中60来自物体,40来自水体散射,则:

100 = 60 + 40. 100=60+40. 100=60+40.

Sea-thru首先估计并减去水雾,再补偿物体光在水中传播时损失的部分。


2. Sea-thru的核心成像公式

论文使用的主要模型为:

I c = J c e − β c D ( z ) z + B c ∞ ( 1 − e − β c B z ) . I_c= J_c e^{-\beta_c^D(z)z} +B_c^\infty\left(1-e^{-\beta_c^Bz}\right). Ic​=Jc​e−βcD​(z)z+Bc∞​(1−e−βcB​z).

可以将其拆成两部分:

公式部分物理含义距离增加时的变化
(J_c e{-\beta_cD(z)z})被水体削弱的物体光越来越少
(B_c\infty(1-e{-\beta_c^Bz}))水体产生的后向散射越来越多,最终饱和

符号含义如下:

  • (J_c):假设相机与物体之间没有水时,理论上应当看到的场景信号;
  • (z):相机到场景点的视线距离;
  • (\beta_c^D(z)):直达物体光的有效衰减系数;
  • (\beta_c^B):后向散射随距离增长的有效系数;
  • (B_c^\infty):距离足够远时,画面最终趋近的水体背景颜色。

Sea-thru的核心观点之一是:

β c D ≠ β c B \boxed{\beta_c^D\neq\beta_c^B} βcD​=βcB​​

“物体光消失”和“水雾增加”属于不同的光学过程,因此不应该强制共用同一个系数。


3. 公式里的 (e) 是什么

(e) 是一个固定的数学常数:

e ≈ 2.71828. e\approx2.71828. e≈2.71828.

它和圆周率 (\pi) 类似,不是Sea-thru学习出来的参数,也不代表水体能量。

3.1 为什么光衰减要使用指数函数

光在水中传播时,通常不是“每米固定减少10个单位”,而是“每一小段距离损失当前剩余光的一定比例”。

假设每米损失当前光的10%:

  • 开始为100;
  • 1 m后剩 (100\times0.9=90);
  • 2 m后剩 (90\times0.9=81);
  • 3 m后剩 (81\times0.9=72.9)。

这种按比例连续减少的过程可表示为:

I ( z ) = I 0 e − β z . I(z)=I_0e^{-\beta z}. I(z)=I0​e−βz.

其中,(e^{-\beta z}) 表示光传播后还剩下的比例。

(\beta z)(e^{-\beta z})约等于剩余光比例
01.00100%
0.50.6161%
10.3737%
20.1414%
30.055%

负号表示距离越大,剩余光越少。

恢复时要进行相反的运算:

J = D e + β z . J=D e^{+\beta z}. J=De+βz.

例如:

100 e − 1 ≈ 37 , 100e^{-1}\approx37, 100e−1≈37,

恢复时:

37 e 1 ≈ 100.6. 37e^1\approx100.6. 37e1≈100.6.

因此:

  • (e^{-\beta z}):表示水体削弱光;
  • (e^{+\beta z}):表示算法尝试补回损失的光。

3.2 小写 (e) 与大写 (E) 的区别

  • 小写 (e):数学常数2.71828;
  • 大写 (E):论文中通常表示环境照明或光谱。

二者不是同一个概念。


4. 为什么公式中会出现 (\beta_c^D(z)z)

表达式:

β c D ( z ) z \beta_c^D(z)z βcD​(z)z

实际表示:

β c D ( z ) × z . \beta_c^D(z)\times z. βcD​(z)×z.

两个 (z) 的作用不同。

4.1 括号里的 (z)

β c D ( z ) \beta_c^D(z) βcD​(z)

表示衰减系数是距离 (z) 的函数,即不同距离可能对应不同的有效衰减系数。

例如:

  • (\beta(1)=0.5);
  • (\beta(3)=0.3);
  • (\beta(5)=0.2)。

括号表示“把 (z) 输入函数”,不是乘法。

4.2 括号外面的 (z)

后面的 (z) 是光实际传播的距离。

假设:

z = 5 , β ( 5 ) = 0.2 , z=5,\qquad \beta(5)=0.2, z=5,β(5)=0.2,

则:

β ( 5 ) × 5 = 0.2 × 5 = 1 , \beta(5)\times5=0.2\times5=1, β(5)×5=0.2×5=1,

于是:

e − β ( 5 ) × 5 = e − 1 ≈ 0.37. e^{-\beta(5)\times5}=e^{-1}\approx0.37. e−β(5)×5=e−1≈0.37.

这表示物体光传播5 m以后,大约剩下37%。

所以:

e − β c D ( z ) z = e − [ β c D ( z ) × z ] . e^{-\beta_c^D(z)z} =e^{-\left[\beta_c^D(z)\times z\right]}. e−βcD​(z)z=e−[βcD​(z)×z].

这里不是 (z) 乘了两次,也不是 (z^2)。第一个 (z) 是函数输入,第二个 (z) 才是传播距离。


5. Sea-thru算法的七个步骤

整个算法可以概括为:

  1. 输入RGB图像和逐像素距离图;
  2. 把距离划分为10个区间;
  3. 在每个距离区间选择最暗的1%像素;
  4. 利用暗像素拟合后向散射 (B(z));
  5. 从原图中减去后向散射;
  6. 估计随距离变化的直达光衰减系数 (\beta^D(z));
  7. 补偿物体光,再进行全局白平衡和RAW显影。

下面通过一个虚构的冷泉灰色岩石案例解释完整过程。


6. 完整数值案例

假设我们有:

  • 一张 (1000\times1000) 的水下RGB图像;
  • 一张同尺寸的距离图;
  • 有效场景距离为1~11 m;
  • 某块灰色岩石距离相机5 m;
  • 岩石在水下原图中的RGB值为:

I = ( 40 , 90 , 120 ) . I=(40,90,120). I=(40,90,120).

这个像素明显偏蓝绿色。

6.1 输入图像与距离图

RGB图像告诉算法相机看到了什么:

I ( x ) = ( R ( x ) , G ( x ) , B ( x ) ) . I(x)=(R(x),G(x),B(x)). I(x)=(R(x),G(x),B(x)).

距离图告诉算法每个像素对应的物体距离相机多远:

z ( x ) . z(x). z(x).

例如:

场景点RGB值距离
岩石A(40, 90, 120)5 m
珊瑚B(70, 110, 130)3 m
远处海底C(20, 80, 130)10 m

同一个蓝绿色像素既可能是近处原本就呈蓝色的物体,也可能是远处红光损失严重的灰色物体。距离信息可以帮助区分这两种情况。

6.2 把距离划分为10段

将1~11 m划分为:

区间编号距离范围
11~2 m
22~3 m
33~4 m
44~5 m
55~6 m
66~7 m
77~8 m
88~9 m
99~10 m
1010~11 m

分段的目的是在近、中、远距离分别获得水雾样本。如果只在全图选暗像素,样本可能全部集中在某一个距离范围,无法拟合水雾随距离的变化。

“10段”是论文采用的工程参数,不是自然规律。

6.3 每段选择最暗的1%像素

假设1~2 m区间有10万个像素,则选择其中最暗的:

100000 × 1 % = 1000 100000\times1\%=1000 100000×1%=1000

个像素。

其他九个区间同样处理。三个颜色通道应来自同一个空间位置,不能分别在不同位置选择最暗的红、绿、蓝通道。

可能得到如下绿色暗像素趋势:

代表距离暗像素绿色值
1.5 m21
2.5 m29
3.5 m35
4.5 m41
5.5 m45
6.5 m48
7.5 m51
8.5 m53
9.5 m54
10.5 m56

距离越远,最暗场景点的绿色值仍然越高,这部分增加的亮度很可能主要来自水体后向散射。

6.4 拟合后向散射

如果场景点是完全黑色物体,物体本身的信号接近0,则:

I d a r k ≈ B ( z ) . I_{\mathrm{dark}}\approx B(z). Idark​≈B(z).

最简单的后向散射模型为:

B c ( z ) = B c ∞ ( 1 − e − β c B z ) . B_c(z)=B_c^\infty\left(1-e^{-\beta_c^Bz}\right). Bc​(z)=Bc∞​(1−e−βcB​z).

但实际暗像素可能只是深灰色,并非完全不反光。因此Sea-thru加入一个残余直达光项:

B ^ c ( z ) = B c ∞ ( 1 − e − β c B z ) + J c ′ e − β c D ′ z . \hat B_c(z)= B_c^\infty\left(1-e^{-\beta_c^Bz}\right) +J_c'e^{-\beta_c^{D'}z}. B^c​(z)=Bc∞​(1−e−βcB​z)+Jc′​e−βcD′​z.

其中:

  • 第一项是真正的水体后向散射;
  • 第二项是暗物体仍然残留的少量物体光。

假设绿色通道拟合得到:

B G ∞ = 60 , β G B = 0.25 , B_G^\infty=60,\qquad \beta_G^B=0.25, BG∞​=60,βGB​=0.25,

J G ′ = 8 , β G D ′ = 0.8. J_G'=8,\qquad \beta_G^{D'}=0.8. JG′​=8,βGD′​=0.8.

在5 m处:

B ^ G ( 5 ) = 60 ( 1 − e − 0.25 × 5 ) + 8 e − 0.8 × 5 . \hat B_G(5)=60(1-e^{-0.25\times5})+8e^{-0.8\times5}. B^G​(5)=60(1−e−0.25×5)+8e−0.8×5.

第一项约为:

60 ( 1 − e − 1.25 ) ≈ 42.81 , 60(1-e^{-1.25})\approx42.81, 60(1−e−1.25)≈42.81,

残余项约为:

8 e − 4 ≈ 0.15. 8e^{-4}\approx0.15. 8e−4≈0.15.

因此:

B ^ G ( 5 ) ≈ 42.96. \hat B_G(5)\approx42.96. B^G​(5)≈42.96.

如果忽略残余物体光,算法可能把深灰色物体自己的亮度也当作水雾,从而高估后向散射,并在减雾时造成过度扣除。

6.5 从原图减去后向散射

对于距离5 m的灰色岩石:

I = ( 40 , 90 , 120 ) . I=(40,90,120). I=(40,90,120).

假设RGB三个通道估计出的后向散射为:

B ( 5 ) = ( 15 , 43 , 64 ) . B(5)=(15,43,64). B(5)=(15,43,64).

直达信号为:

D = I − B . D=I-B. D=I−B.

代入数值:

D = ( 40 , 90 , 120 ) − ( 15 , 43 , 64 ) = ( 25 , 47 , 56 ) . D=(40,90,120)-(15,43,64)=(25,47,56). D=(40,90,120)−(15,43,64)=(25,47,56).

通道原图后向散射减雾后
红401525
绿904347
蓝1206456

减去水雾后,蓝绿色偏色减轻,但图像可能变暗,因为物体光在传播途中损失的部分还没有补回来。

6.6 估计直达光衰减系数

减掉后向散射后:

D c = J c e − β c D ( z ) z . D_c=J_c e^{-\beta_c^D(z)z}. Dc​=Jc​e−βcD​(z)z.

Sea-thru在距离相似的相邻像素中进行迭代局部颜色平均,估计变化较慢的局部照明:

E ^ c ( z ) . \hat E_c(z). E^c​(z).

假设在5 m处估计得到:

E ^ ( 5 ) = ( 0.286 , 0.497 , 0.670 ) . \hat E(5)=(0.286,0.497,0.670). E^(5)=(0.286,0.497,0.670).

这意味着:

  • 红光剩余约28.6%;
  • 绿光剩余约49.7%;
  • 蓝光剩余约67.0%。

由:

E = e − β z E=e^{-\beta z} E=e−βz

可得到:

β = − log ⁡ E z . \beta=-\frac{\log E}{z}. β=−zlogE​.

红色通道为:

β R ( 5 ) = − log ⁡ ( 0.286 ) 5 ≈ 0.25. \beta_R(5)=-\frac{\log(0.286)}{5}\approx0.25. βR​(5)=−5log(0.286)​≈0.25.

同理可得:

β D ( 5 ) ≈ ( 0.25 , 0.14 , 0.08 ) . \beta^D(5)\approx(0.25,0.14,0.08). βD(5)≈(0.25,0.14,0.08).

红色通道衰减最快,蓝色通道衰减最慢。

由于每个像素计算出来的 (\beta) 都可能含有噪声,Sea-thru使用双指数函数进行约束:

β c D ( z ) = a e b z + c e d z . \beta_c^D(z)=ae^{bz}+ce^{dz}. βcD​(z)=aebz+cedz.

算法调整 (a,b,c,d) 四个参数,使衰减曲线预测出来的距离尽量接近真实距离图。

6.7 补偿损失的物体光

恢复公式为:

J c = D c e β c D ( z ) z . J_c=D_c e^{\beta_c^D(z)z}. Jc​=Dc​eβcD​(z)z.

已知:

D = ( 25 , 47 , 56 ) , D=(25,47,56), D=(25,47,56),

β D ( 5 ) = ( 0.25 , 0.14 , 0.08 ) , z = 5. \beta^D(5)=(0.25,0.14,0.08),\qquad z=5. βD(5)=(0.25,0.14,0.08),z=5.

红色通道:

J R = 25 e 0.25 × 5 ≈ 25 × 3.49 ≈ 87. J_R=25e^{0.25\times5}\approx25\times3.49\approx87. JR​=25e0.25×5≈25×3.49≈87.

绿色通道:

J G = 47 e 0.14 × 5 ≈ 47 × 2.01 ≈ 95. J_G=47e^{0.14\times5}\approx47\times2.01\approx95. JG​=47e0.14×5≈47×2.01≈95.

蓝色通道:

J B = 56 e 0.08 × 5 ≈ 56 × 1.49 ≈ 84. J_B=56e^{0.08\times5}\approx56\times1.49\approx84. JB​=56e0.08×5≈56×1.49≈84.

所以:

J ≈ ( 87 , 95 , 84 ) . J\approx(87,95,84). J≈(87,95,84).

完整变化为:

阶段RGB值
水下原图(40, 90, 120)
减去后向散射(25, 47, 56)
补偿光衰减(87, 95, 84)

6.8 全局白平衡

距离补偿后,整幅图像仍可能存在统一的环境光偏色。

假设全局白点为:

W = ( 0.96 , 1.04 , 0.92 ) . W=(0.96,1.04,0.92). W=(0.96,1.04,0.92).

白平衡可近似写成:

J s = J W . J_s=\frac{J}{W}. Js​=WJ​.

于是:

J s = ( 87 0.96 , 95 1.04 , 84 0.92 ) ≈ ( 91 , 91 , 91 ) . J_s= \left( \frac{87}{0.96}, \frac{95}{1.04}, \frac{84}{0.92} \right) \approx(91,91,91). Js​=(0.9687​,1.0495​,0.9284​)≈(91,91,91).

原来偏蓝绿色的灰色岩石:

( 40 , 90 , 120 ) (40,90,120) (40,90,120)

最终恢复为接近中性灰的:

( 91 , 91 , 91 ) . (91,91,91). (91,91,91).

整个案例可压缩为:

( 40 , 90 , 120 ) → 减水雾 ( 25 , 47 , 56 ) → 补衰减 ( 87 , 95 , 84 ) → 白平衡 ( 91 , 91 , 91 ) \boxed{ (40,90,120) \xrightarrow{\text{减水雾}} (25,47,56) \xrightarrow{\text{补衰减}} (87,95,84) \xrightarrow{\text{白平衡}} (91,91,91) } (40,90,120)减水雾 ​(25,47,56)补衰减 ​(87,95,84)白平衡 ​(91,91,91)​

以上数值是为了解释算法而构造的示例,不是原论文某张图像的实测结果。


7. RAW显影的作用

Sea-thru最好在线性RAW数据上处理。恢复物理信号后,还需要经过相机显影流程,例如:

  • 黑电平校正;
  • 去马赛克;
  • 相机颜色矩阵转换;
  • 白平衡;
  • 亮度与色调映射;
  • Gamma校正;
  • 转换到sRGB图像。

JPEG和普通压缩视频已经经过白平衡、Gamma、色调映射和压缩,像素值与真实光强不再保持简单的线性关系。因此仍然可以开展增强实验,但物理参数的解释和估计精度会弱于RAW数据。


8. 为什么距离图对颜色恢复至关重要

Sea-thru的恢复公式为:

J c = [ I c − B c ( z ) ] e β c D ( z ) z . J_c=\left[I_c-B_c(z)\right]e^{\beta_c^D(z)z}. Jc​=[Ic​−Bc​(z)]eβcD​(z)z.

距离 (z) 同时决定:

  1. 应该减掉多少后向散射 (B(z));
  2. 应该补回多少损失的物体光。

假设两个像素都是:

I = ( 40 , 90 , 120 ) . I=(40,90,120). I=(40,90,120).

如果物体距离相机1 m,水体影响较小,它可能本身就是蓝绿色物体;如果距离相机8 m,它原来可能是灰色、棕色甚至红色,只是红光在传播过程中严重损失。

没有距离信息,仅凭最终RGB值无法唯一判断物体的原始颜色。

因此,对Sea-thru这类物理复原方法,可以认为:

逐像素距离图是核心输入。 \boxed{\text{逐像素距离图是核心输入。}} 逐像素距离图是核心输入。​

但这不等于所有水下图像增强方法都必须输入距离图。只使用RGB的深度学习方法仍然可以改善白平衡、颜色和对比度,只是其输出更接近数据驱动的颜色推测,物理可解释性通常更弱。

8.1 距离误差会被指数放大

假设红色通道:

β R = 0.25   m − 1 . \beta_R=0.25\ \mathrm{m}^{-1}. βR​=0.25 m−1.

真实距离为5 m,却被估计成6 m,多出来1 m的补偿比例为:

e 0.25 × 6 e 0.25 × 5 = e 0.25 ≈ 1.28. \frac{e^{0.25\times6}}{e^{0.25\times5}} =e^{0.25} \approx1.28. e0.25×5e0.25×6​=e0.25≈1.28.

也就是说,距离只多估计1 m,红色补偿就可能增加约28%。可能造成:

  • 红色过度增强;
  • 远处颜色爆炸;
  • 噪声被放大;
  • 前景和背景颜色不连续;
  • 视频中出现颜色闪烁。

所以不仅需要距离图,还需要尽量准确、连续并具有时序稳定性的距离图。

8.2 相机深度与场景距离不是同一个概念

需要区分:

  • (d):潜器或相机距离海面的深度,例如1500 m;
  • (z):相机到某个冷泉生物或海底结构的距离,例如2 m、5 m或10 m。

Sea-thru真正需要的是每个像素对应的 (z),而不仅是潜器所在的1500 m水深。


9. 对1500 m南海潜器数据的启示

原始Sea-thru方法不能直接无条件应用于这批数据,主要原因包括:

  1. 原论文使用逐像素米制距离图;当前数据只有照片和视频;
  2. 1500 m场景主要由潜器人工灯照明,而原论文主要使用自然光;
  3. 潜器灯存在照明热点、距离衰减和硬阴影;
  4. 圆形耐压玻璃造成黑角;
  5. 耐压玻璃折射可能破坏标准针孔相机假设;
  6. 逐帧独立处理可能导致视频颜色闪烁。

9.1 视频可以用于恢复距离图

虽然没有直接记录深度,但视频仍可能通过以下流程生成距离信息:

  1. 对水下相机和耐压玻璃系统进行标定;
  2. 建立圆形有效视场掩膜,排除黑角;
  3. 从视频中选择重叠充分且存在视差的关键帧;
  4. 使用SfM恢复相机轨迹和稀疏三维点;
  5. 使用MVS恢复稠密三维结构;
  6. 利用潜器导航信息或已知尺寸物体恢复米制尺度;
  7. 将三维模型投影回视频帧,生成逐像素距离图。

如果相机只是原地旋转、场景缺少纹理、照明变化剧烈或者视频压缩严重,三维重建质量可能明显下降。

9.2 黑角必须提前遮罩

圆形耐压玻璃造成的黑色四角不是水下场景点:

  • 没有有效距离;
  • 不包含正常的后向散射;
  • 几乎一定会进入“最暗1%”;
  • 会严重污染后向散射拟合。

因此在暗像素选择前必须建立有效视场掩膜 (M(x)),仅允许真实场景像素参与拟合。

9.3 潜器阴影需要区别对待

完全阴影中的真实水体场景点,可能因为直达光较少而帮助估计后向散射。但是潜器人工灯造成的硬阴影也表明照明高度不均匀,可能破坏Sea-thru对照明平滑变化的假设。

因此不能简单地将所有阴影都当作理想暗像素,应结合:

  • 有效场景掩膜;
  • 阴影检测;
  • 距离信息;
  • 人工灯照明模型;
  • 视频时序一致性。

9.4 更适合深海人工照明的模型

对于潜器人工灯场景,可以将直达光进一步拆分为:

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),

其中:

  • (J_c(x)):物体自身的反射颜色;
  • (L_c(x)):潜器灯在该位置产生的非均匀照明;
  • (T_c(x)):水体透射率;
  • (B_c(x)):后向散射。

因此,适合这批南海数据的研究方向可以概括为:

Sea-thru物理分解 + 潜器灯光建模 + 有效视场掩膜 + 视频时序一致性 \boxed{ \text{Sea-thru物理分解} +\text{潜器灯光建模} +\text{有效视场掩膜} +\text{视频时序一致性} } Sea-thru物理分解+潜器灯光建模+有效视场掩膜+视频时序一致性​

距离图解决“光在水中传播了多远”,灯光模型解决“物体原本受到怎样的照明”,二者不能互相替代。


10. 本次讨论的核心结论

  1. Sea-thru不是普通的颜色滤镜,而是基于水下成像物理模型的颜色恢复方法。
  2. 小写 (e) 是数学常数2.71828,用来描述光按比例连续衰减。
  3. (\beta(z)z) 表示“距离 (z) 处的有效衰减系数乘以传播距离”,不是 (z^2)。
  4. 后向散射是额外加进相机的光,因此需要从原图中减掉。
  5. 物体光衰减相当于原始信号被乘小,因此恢复时需要进行指数补偿。
  6. 暗像素用于估计后向散射,但暗像素并不一定是完全黑色,所以模型加入残余物体光项。
  7. 对原始Sea-thru而言,逐像素米制距离图是核心输入。
  8. 距离图误差会被指数补偿放大,尤其容易影响远处物体和红色通道。
  9. 1500 m潜器人工灯场景不能直接照搬原始Sea-thru的自然光假设。
  10. 南海数据更适合发展“物理分解、人工灯建模、黑角掩膜与视频一致性”相结合的方法。

11. 相关材料

QT5.14.2+VS2019安装配置教程Windows QT5.14.2+VS2019安装使用教程Windows前言一. QT的下载与安装1. QT的下载2. QT的安装二. 配置Visual Studio编译器环境1. 扩展工具下载2. 扩展工具配置 前言 由于Visual Studio 的功能强大,很多开发人员比较熟悉使用,所以可以通过将QT配置到Visual Studio中进行开发。 一. QT的下载与安装 1. QT的下载 QT5.14.2下载地址 2. QT的安装 断开网络!断开网络!!断开网络!!! 安装QT之前,需要断开电脑的网络连接,这样就 阅读详情

相关推荐

ESXI添加硬盘时提示 无法创建 VMFS 数据存储 - 无法更改主机配置

ESXI添加硬盘时提示 无法创建 VMFS 数据存储 - 无法更改主机配置1.打开ESXI的SSH2.找到不能添加的硬盘路径3.用SSH操作 1.打开ESXI的SSH 2.找到不能添加的硬盘路径 我的是第一个,找到你要添加但是不能添加的那个硬盘,点进去。 完整的路劲为:1/2 比如我的: /vmfs/devices/disks/t10.ATA_____ST500LT0122D1DG142___________________________________S3PHRNHQ (比较长哈!) 3.用SSH

AI_DOG的博客 2万+

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

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

weixin_39641450的博客 2547

图像去噪实战:Noise2Noise与Noise2Void在医学影像中的应用(附代码)

本文深入探讨了Noise2Noise与Noise2Void在医学影像去噪中的革命性应用,通过自监督学习技术有效解决临床数据配对难题。文章提供详细的代码实现和临床部署方案,展示如何提升低剂量CT、MRI等影像的诊断质量,特别适用于辐射敏感场景和急诊快速处理。

weixin_29092579的博客 241

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 203

怎样自己亲手搭建一个四比特加法器

如何用三极管搭建一个四比特加法器 一、前言 作为大一上学期第一个大作业,最终还是拖到了冬学期的第八周,从第七周的周六开始,一直到第八周周五上午课上展示,中间连续熬了好几天的夜,另外,白天凡是有时间都用在研究它了,最终大约是用了30个小时,完成了这个四比特加法器的“从零到一”。 最终,小组得分92,个人分数100(贡献比35%),也不枉自己投入的心血 二、器材 电阻 1 包(10kΩ×100,1kΩ×50) 三极管 1 包(9013×100,LED×6) 跳线 3 短 1.5 长 电源 1 个 USB 线

qq_34771124的博客 1万+

Codex入门19-数据库操作(解放双手:用自然语言写SQL、建表和数据迁移)

写 SQL 是后端开发的日常,但复杂的 JOIN、子查询、窗口函数总让人头疼。本文教你用 Codex CLI 实现:自然语言直接生成 CREATE TABLE、复杂 SQL 查询、数据库迁移脚本(Prisma/Knex/Alembic)、ORM 模型代码(SQLAlchemy/TypeORM)、甚至自动生成数据库文档。重点强调安全红线——永远不要让 AI 直接连接生产数据库。从需求描述到完整数据库层代码,一篇搞定。

yueyeguzhuo的专栏 234

【算法拾光】链表 哈希表|K个一组翻转链表 + 两数之和

K个一组翻转链表需分段反转,借助哑节点与前驱指针维护连接,避免断链;两数之和利用哈希表实现O(1)查找,空间换时间,高效定位目标组合。前者考察链表指针操作,后者聚焦映射关系构建,均为面试高频题。

wuqingyigexiaoba的博客 311

YOLOv8改进,YOLOv8添加DCNv4可变性卷积(windows系统成功编译),全网最详细教程

DCNv4通过两项关键增强解决了其前身DCNv3的局限性:1. 移除空间聚合中的softmax归一化,以增强其动态特性和表达能力;2. 优化内存访问以最小化冗余操作,从而加速计算。这些改进使得DCNv4相比DCNv3显著加快了收敛速度,并且处理速度大幅提升,前向传播速度超过三倍。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 6469

排序算法深度笔记(下):非比较类排序的线性突破与工程边界

排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序O(N^2)(O(1))不稳定是冒泡排序O(N^2)(O(1))稳定是插入排序O(N^2)(O(1))稳定是归并排序O(N\log N)(O(N))稳定是快速排序O(N\log N)O(log N)不稳定是堆排序O(N\log N)O(1)不稳定是计数排序(O(N + M))O(M))稳定否基数排序O(N)稳定否桶排序平均O(N) / 最坏O(N^2)

2401_87069538的博客 571

18-XLINX的XC7A100T的BANK0引脚说明

DXP_0和 DXN_0是纯输入引脚,Xilinx Artix-7 FPGA 内部集成的一个片上监控模数转换器​ 的差分模拟输入对,模数转换器​的模拟信号输入端,将外部的模拟电压​ 采样并转换为内部的数字值,是一个单向的信号采集过程。它是与 VCCADC配对的关键引脚,共同为内部的精密模数转换器提供一个纯净、安静、独立的参考地平面。多FPGA同步配置: 在多FPGA系统中,主FPGA配置完成后,可以拉低从FPGA的 INIT_B使其等待,等所有FPGA都准备好后,再同时释放,实现同步启动。

weixin_44479192的博客 232

视觉测量实战:C#上位机+OpenCVSharp 实现工业零件尺寸自动检测(精准像素级,工业级可落地)

本次开发的上位机界面遵循工业现场操作规范简洁、直观、按钮大、文字清晰、参数可视化调节,操作人员为车间工人/质检员,无需复杂操作,所有控件均为WinForms原生控件,拖拽即可完成布局本次实战完成了C#上位机+OpenCVSharp 工业零件尺寸自动检测系统的完整开发,这套方案是工业视觉测量的标准落地方案,适配95%的规则几何零件的尺寸检测场景,从五金件、塑胶件到电子元件,全覆盖无死角。测量效率提升100倍、精度提升10倍、无人工误差、可适配流水线实时检测。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 848

算法日常・每日刷题--<动态规划>42

本题为“不相交的线”,与最长公共子序列问题相似。使用动态规划求解:定义 dp[i][j] 表示 nums1[0:i] 与 nums2[0:j] 的最大不相交连线数。若元素相等,则继承左上值加1;否则取上方或左方最大值。最终返回 dp[m][n],即两数组的最大不相交连线数。时间复杂度 O(mn),空间复杂度 O(mn)。

2503_92261635的博客 20

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C语言程序设计题|有序数组插入数字冒泡排序

题目要求将一个数插入有序数组末尾,并用冒泡排序实现整体升序。代码先将输入数存入数组最后位置,再通过双重循环进行冒泡排序,每轮将较大元素向后移动,最终输出11个升序元素。该方法虽时间复杂度为O(n²),但符合题目要求,逻辑清晰,适合初学者理解排序原理。

2301_81429079的博客 749

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【算法拾光】模拟|外观数列 + 数青蛙

本文总结两道模拟题解法:外观数列通过迭代统计连续数字个数生成下一项,关键在于处理末尾字符;数青蛙则模拟青蛙叫声“croak”状态转移,维护各阶段青蛙数量,记录最大并发数并确保全部完成。共性在于严格遵循流程、细致处理边界与非法情况,锻炼字符串遍历与状态管理能力。

wuqingyigexiaoba的博客 367

IDEA的使用指南

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

牛客周赛165C题(前后缀性质,递推,排序,枚举)

题目大意:给定长度为 `n` 的数组,选择 `k ∈ [1,n]`,将前 `k` 个元素整体翻转,后面的元素不变。要求操作后的整个数组非递减,统计满足条件的 `k` 的数量。题目链接:https://ac.nowcoder.com/acm/contest/141721/C。时间复杂度:O(nlogn)

2501_94316951的博客 170

【数据结构-3】算法美学之降复杂度

在while循环的循环体内,首先用临时变量保存最后一个位置的数据,再通过for循环把所有元素往后移动一位,最后把tmp中保存的值放到下标为0的位置上去。方法二的思路是:创建新数组,让原数组中后k个数据移动到新数组中前面的位置,让原数组中前numsSize-k个数据移动到新数组中后面的位置,这。这段代码的思路是:三次逆置,第一次逆置前numsSize-k个数据,第二次逆置后k个数据,最后整体逆置。这篇博文分享一道解法不一的算法题,求解过程的目的在于降低算法的时间复杂度,题源力扣。,属于空间换时间的操作。

weixin_44218929的博客 82

算法61,判定是否为字符重排

两字符串能互为重排 ⇔。

sheshibenniaodan的博客 217

算法日常・每日刷题--<动态规划>32

给定严格递增的正整数数组,求最长斐波那契子序列长度。使用二维DP,dp[i][j]表示以arr[i]、arr[j]为最后两项的序列长度,初始化均为2。通过哈希表快速查找前一项target = arr[j] - arr[i],若存在且下标小于i,则状态转移:dp[i][j] = dp[k][i] + 1。遍历更新全局最大长度,最终若结果小于3则返回0。时间复杂度O(n²),空间复杂度O(n²)。

2503_92261635的博客 178

算法札记:几何分布在算法题UVA1262的运用

集卡问题求解核心:将集齐n种优惠券的过程分为n个阶段,每个阶段期望购买次数为 $ \frac{n}{k} $(k为剩余种类数),总期望为 $ n \cdot H_n $(调和数)。通过自洽方程推导单阶段期望,无需几何分布或无穷级数,逻辑清晰且适用于大一水平。例如,n=5时期望约11.42,非5。题目要求以带分数形式输出精确结果,算法上需累加分数并化简。

Keven_11的博客 349

不同的二叉搜索树

互不相同的二叉搜索树的种数,以 j (1<=j<=i)为头节点,左子树是 j-1 个数,右子树就是 i - (j - 1) -1 = i - j个数。所以dp[3] = dp[0] * dp[2] + dp[1] * dp[1] + dp[2] * dp[0]头1 = 左子树0节点 * 右子树2节点,二叉搜索树就是排序树,左子树<根节点<右子树,左右子树也满足左子树<根节点<右子树。头2 = 左子树1节点 * 右子树1节点。所以dp[i] += dp[j-1] * dp[i-j]个节点组成且节点值从。

qq_44721738的博客 152

考拉兹猜想 - 7

本文通过引入虚数单位重构Collatz猜想的迭代逻辑,指出偶数减半与奇数“乘3加1”的过程在虚数坐标下等价于归结操作。关键在于:乘3加1使奇数跃升至偶数,随后持续减半,而虚数单位代表“无限减1”,实现无限向有限的转化。无论初始值如何,减半始终主导,最终归结为4-2-1循环。该视角消解了正向思维中的速度竞争疑虑,证明归结是必然结果。

杨铸人的博客 42

SSL证书选RSA还是ECDSA:公钥算法、CA签名与兼容性怎么核对

申请SSL证书时,RSA和ECDSA该怎么选?先分清站点公钥算法、CA签名算法和TLS实际兼容性,再用隔离OpenSSL实验读取两类材料,核对申请、续期和部署交接,避免只看Signature Algorithm就选错。

谁呀!的博客 399

贪心题目:可以到达的最远建筑

为了到达尽可能远的建筑物,在将砖块替换成梯子时,应将高度差最大位置的砖块替换成梯子,此时剩余的砖块数量最多,如果将高度差较小位置的砖块替换成梯子,则剩余的砖块数量较少,能到达的最远建筑物下标不可能更大。开始向后面的建筑物移动,移动过程中维护优先队列存储正高度差,优先队列的队首元素是最大元素,每次遇到正高度差时优先考虑使用砖块,如果砖块数量不够则使用梯子替换最大高度差位置的砖块,直到砖块和梯子都使用完毕时,到达的建筑物即为最远建筑物。如果以最佳方式使用给定的梯子和砖块,返回可以到达的最远建筑物的下标。

stormsunshine的博客 183

从曲线到储层:Techlog/KAPPA 全流程算法、UltraLAB 选型与本地 AI 部署实战

以高频 CPU 保证交互,以充足内存承载多井与多任务,以 NVMe 打通项目和知识库 I/O,再按本地模型、上下文与并发配置 GPU。对 UltraLAB 用户而言,更合理的采购方式是带着真实项目做选型:一组典型井、一套完整解释模板、一个目标大模型、一次多人并发测试。用实测结果确定配置,才能把预算转化为解释效率,而不是闲置算力。软件模块、操作系统与许可条件以厂商当前正式说明为准;硬件建议需结合项目实测。AI 输出只能作为辅助证据,不能替代岩石物理与油藏工程专业审核。

wdf8088的博客 181

【Deep-OC-SORT 01】多轨迹算法Deep-OC-SORT源码分析

本工程基于Deep-OC-SORT核心模块,重构并适配了EmbeddingComputer(外观特征提取)、CMCComputer(相机运动补偿)与OCSort(主跟踪器)三类。前者实现整框/网格模式的特征提取与L2归一化;后者通过稀疏光流或SIFT匹配估计仿射变换,补偿相机运动;主跟踪器融合IoU、外观相似度与方向一致性,支持模块开关与自定义组件,实现高效多目标跟踪。

Jayson 博客 336

【Deep-OC-SORT 05】多轨迹算法Deep-OC-SORT-IoU代价与VDC方向一致性融合过程

本工程在DeepOcSort中实现三路融合关联:IoU(位置重叠)、VDC(速度方向一致性)与外观相似度,通过加权求和生成总相似度,取负作为匈牙利算法的代价。其中,VDC利用轨迹惯性方向与检测方向的点积判断运动一致性,抑制反向误匹配;外观分采用网格化余弦距离并结合动态权重AW,提升遮挡场景下的鲁棒性。支持关闭外观分支(--emb_off),且通过快路径优化加速多数帧处理。最终配对经IoU复核,确保位置合理性,有效减少密集场景下的ID切换。

Jayson 博客 335
上一篇: 深海载人潜器水下图像增强:20 篇核心文献精读(含关键定量结果)
下一篇: 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、付费专栏及课程。

余额充值