跳到内容
当前位置:首页>Excel>学习笔记 EP07:ROV 的传感器与感知

学习笔记 EP07:ROV 的传感器与感知

  • 2026-11-06 09:32:18
学习笔记 EP07:ROV 的传感器与感知

一台遥控潜水器(ROV)能下到多深、能顶住多大的流、机械臂能出多大力,这些都有明确参数。但所有动作共用一个前提:操控员得知道目标在哪里、是什么状态。水下没有卫星定位信号直达,没有稳定的自然光,也没有可预期的背景;相机拍到的、声呐听到的,都是被水体改写过一遍的结果。所以感知从来不是装一台摄像机那么简单——它是从被改写的信号里反演出几何、尺度与状态,并且说清反演的误差有多大。本篇顺着一条因果链展开:信道给了什么限制,声与光各自的上限在哪里,怎么从图像拿到尺度,观测如何反过来约束位姿,什么条件下数据才算可判读的证据,最后把误差收拢成一条可信度链。

封面|ROV 在浑浊水体中同时以光学视锥与声学扇束观测水下结构(程序化重绘,非 AI 图)。

一、水下信息通道——光与声各自的窗口

海水对电磁波与对机械波,是两种完全不同的介质。可见光的衰减由吸收 a 与散射 b 共同决定,总衰减系数 c = a + b;单程照度按指数下降,经目标反射再回到相机还要再走一次。声波的传播损失则写成扩展项加吸收项,前者是球面扩展,后者由频率决定。把两组式子放在一起,会看到一个绕不开的分工:光学给分辨率,声学给距离,而两者被同一片水体以不同方式限制着。

光学:I(r) = I₀·e^(−c·r),c = a + b;往返 e^(−2c·r)
声学:TL(r, f) = 20·lg(r) + α(f)·r
主动单基地声呐:SNR = SL − 2TL + TS − NL ≥ DT

先看光。联合国粮农组织的渔业光学报告给出绿光(514 / 530 nm)下的光束衰减系数:纯海水 0.043 m⁻¹、清澈大洋 0.151、近岸大洋 0.398、浑浊港湾 2.190 m⁻¹。按 1/c 换算成衰减长度,依次约为 23 m、6.6 m、2.5 m、0.46 m(此为量级换算,不等于实际能见度)。Jaffe 1988 年在讨论成像系统时另给了一组口径:深海 0.05、近岸 0.2、海湾 0.33 m⁻¹。两组数值来自不同的水体分类与波长定义,不能合并,但趋势一致——从清澈大洋到浑浊港池,光的有效距离能掉一到两个数量级。

波长选择也不是任意的。Pope 与 Fry 1997 年测得的纯水吸收在约 418 nm 处取最小值 0.0044 m⁻¹,而 676 nm 红光已达 0.456 m⁻¹,相差约两个数量级;Smith 与 Baker 1978 年的数据把最小值放在 450 nm(0.0145 m⁻¹)。两套数据集口径不同,工程上通常笼统取 450–550 nm 为蓝绿窗口。这就是水下图像天然偏蓝绿、红光最先丢失的物理原因,也是人工照明必须补足宽谱的原因。

声这一侧的约束换成频率。Thorp 公式把吸收系数写成频率的分式组合,α 随 f 近似按平方增长;更完整的 Francois–Garrison 模型还把温度、盐度、深度与 pH 纳入,适用范围从 0.2 kHz 一直到 1000 kHz。

Thorp:α ≈ 0.0033 + 0.11f²/(1+f²) + 44f²/(4100+f²) + 0.0003f²
(dB/km,f 以 kHz 计)

100 kHz 时吸收约 30 dB/km;到 1 MHz,按 Francois–Garrison 在 T = 4 °C、S = 35、pH = 8 条件下的结果约 434 dB/km。这里有个容易被忽略的细节:Thorp 公式只对约 50 kHz 以下成立,把它外推到 1 MHz 会得到 315 dB/km 一类的数值,属于无效外推。代入量级更直观——1 MHz 的成像声呐若工作在 40 m,单程吸收已约 17 dB,往返约 35 dB;同样距离下 100 kHz 只有约 1 dB 量级。高频成像声呐“看得细但看不远”,不是工程妥协,是吸收谱直接写死的边界。

声呐方程里为什么是 2TL:发射到目标走一次,回波再走一次,各损失一次传播损失。SL 是源级,TS 是目标强度,NL 是噪声级,DT 是检测阈,信杂比超过检测阈才判有目标。在混响受限的浅水或近底场景,NL 要换成混响级 RL——这一替换本身就说明“看见”依赖环境,而不只是依赖设备。

延伸|衰减长度 L = 1/c 指光强降到 1/e 的距离,不等于人眼或相机的可见距离。Jaffe 特别指出,按单光子极限估出的距离会远大于实际可见距离,因为还要计入相机孔径、目标反射率与光束扩散;他给出的极端例子里,千瓦级 488 nm 光源理论上可到数十个衰减长度,但真实成像远达不到。

二、声学测距与成像声呐——分辨率从哪里来

声呐先给距离,再给角度,两者受不同物理量约束,且各自都有代价。单基地主动测距为 R = c·t/2,海水中 c 常取 1500 m/s(美国海军资料给出的变动范围约 1420–1560 m/s,Wilson 简化式在多数情况下误差小于 0.6 m/s)。要让同一波束内前后两个目标分开,回波在时间上不能重叠,于是距离分辨单元被脉冲宽度锁死。

R = c·t/2 ,c ≈ 1500 m/s
δr = c·τ/2 (未压缩脉冲) → δr = c/(2B) (Chirp 脉冲压缩)
δθ ≈ λ/D = c/(f·D)

τ = 100 μs 时 δr = 7.5 cm;想做到 7.5 mm 就得把脉冲压到 10 μs,但发射能量同步降到十分之一,作用距离跟着掉。这是第一个死结:距离分辨率与发射能量不可兼得。线性调频(Chirp)与脉冲压缩解开这个结——发射一个长脉冲保能量,同时让频率在带宽 B 内扫过,匹配滤波后有效脉宽缩到约 1/B,于是分辨率与脉冲长度脱钩。B = 100 kHz 时 δr = 7.5 mm。7.5 cm 与 7.5 mm 都是按 c ≈ 1500 m/s 代入的量级算例,不是任何设备的实测值;但它们足以解释为什么现代成像声呐几乎都标 CW / CHIRP 双模式:前者稳,后者细。

角度方向的约束是孔径。δθ ≈ λ/D,而 λ = c/f。取 f = 1 MHz、c = 1500 m/s,则 λ = 1.5 mm;若有效孔径 D = 0.1 m,δθ ≈ 0.015 rad ≈ 0.86°。这个量级与厂商规格能对上:Blueprint Subsea 的 Oculus M750d 在 1.2 MHz 档标称角分辨率 0.6°,750 kHz 档为 1°。于是第二个死结浮现:提高频率能收窄波束,却按 α(f) 把作用距离同时压掉。

型号(厂商规格书)
工作频率
标称作用距离
距离分辨率
角分辨率 / 波束
更新率
Teledyne BlueView M900/2250-130
900 kHz / 2250 kHz
100 m / 10 m(最佳 2–60 m / 0.5–7 m)
1.3 cm / 0.6 cm
1° × 20°;768 波束、0.18° 间隔
最高 25 Hz(随距离变化)
Kongsberg M3 Sonar HF
700–1400 kHz
0.2–100 m
1 cm
950 kHz 时 0.8° × 27°;512 波束
最高 40 Hz
Blueprint Subsea Oculus M750d
750 kHz / 1.2 MHz
120 m / 40 m
4 mm / 2.5 mm
1° / 0.6°;512 波束
最高 40 Hz(随距离变化)
Tritech Gemini 720ik
720 kHz CHIRP
0.2–120 m
8 mm(官方手册)
1.0° 声学 / 0.25° 有效;512 波束
5–97 Hz(随距离变化)

表中数值统一取自各厂商规格书或官方手册,不同型号与年代不合并:Kongsberg 官网在线性能页另给 0.2–150 m(视型号而定),Tritech 某经销商目录把 8 mm 写成 4 mm,与官方手册不一致,本文不采用后者。同一份 PDF 被多家经销商原样托管,只计一个独立来源。

图|孔径与波束宽度的几何关系(程序化重绘)。上排为短孔径形成的宽波束,两个等距目标落入同一角分辨单元;下排为长孔径形成的多个窄波束,两个目标分处相邻波束。

多波束真正的价值,是一次发射就拿到一整条角度剖面,把逐点扫描变成逐帧成像;它并没有让单个波束变锐,锐度仍由 λ/D 决定。规格表里反复出现的“更新率随距离变化”也不是话术:声速固定,最大不模糊发射率本就被 2R/c 限制。

f_ping ≤ c/(2R)

把 R = 120 m、c = 1500 m/s 代入,上限约 6.3 Hz,正好对应厂商标注的远距离档“从 5 Hz 起”;而 97 Hz 只在约 8 m 以内才成立。一个看似商务性的脚注,背后是往返飞行时间的硬约束。

延伸|多波束与合成孔径都属于“用阵列换角度分辨率”的思路:前者用实孔径一次成阵,后者借平台运动合成一个远大于物理尺寸的孔径。后者对运动估计精度与航线可重复性要求极高,恰好印证本篇反复出现的一点——感知上限常常由平台而非传感器决定。此处不展开。

三、光学成像与水体退化——为什么加灯未必看得更清

Jaffe 1988 年给出的经典分解,把相机接收到的光写成三个分量的线性叠加:未经散射的直射分量、小角散射后仍来自目标的前向散射分量,以及根本没有碰到目标就返回的后向散射分量。前向散射主要模糊边缘,后向散射则整体抬高背景、压低对比度,是可见距离缩减的主因;国内《红外与激光工程》的综述也把后向散射列为图像对比度下降的首要因素。

I = I_d + I_fs + I_bs ; I_d ∝ J·e^(−2c·r) ; 衰减长度 L = 1/c

同一篇文献还划出两种受限区:若相机视场与照明光束在水中的交叠体积产生大量后向散射,系统受对比度限制;若散射不严重但到达传感器的光子太少,系统受功率限制。两者的对策完全不同,混为一谈就会做出错误设计。在对比度受限区加大灯功率,目标回波与后向散射按近似同一比例增长,对比度不会改善,甚至可能因散射增强而变差——这不是“功率越高图像越差”的绝对规律,而是“此时功率不是有效的旋钮”。

真正有效的是缩小共同散射体积,也就是把灯从相机光轴旁移开。Jaffe 给出的经验是:灯与相机同轴时通常只能在约 1 个衰减长度内得到好图像;分离布置后可到 2–3 个衰减长度,ROV 上典型的分离距离为 3–5 m。按他给的 c 值换算,深海 0.05 m⁻¹ 对应 1 个衰减长度约 20 m,2–3 个即 40–60 m;海湾 0.33 m⁻¹ 对应约 3 m,2–3 个也只有 6–9 m。同一套灯在不同水体里表现差一个数量级,原因不在灯,而在 c。这一组与第一章 FAO 表格属于不同口径,须分列。

再往远走就要换机制:距离选通用脉冲激光加门控,按飞行时间只接收目标回波时段,屏蔽途中的后向散射;偏振差分利用目标反射光与散射光的偏振差异做正交抑制;同步扫描用窄光束与视场同步扫过,从几何上压掉共同体积。三者各付各的代价——门控需要高峰值脉冲与精密时序,偏振受退偏振与光能损失限制,同步扫描牺牲帧率并增加结构复杂度。已发表的同步扫描实测在 19.6 FTU 浊度下把对比度提升 3.88 倍、13 m 处提升 5.57 倍,但这类数值高度依赖水体与装置,不能当作通用指标。

延伸|图像增强与颜色恢复能改善观感,却无法凭空恢复已被散射抹掉的对比度与空间高频。后处理改变的是显示,不是信噪比;把去散射后的“好看”当成“看清”,是水下图像工程里最常见的误判。

四、从图像到尺度——误差为什么随距离平方放大

单目图像给方向,不给距离。双目用两台基线为 B 的相机,把同一点在两幅图上的横向位置差 d(视差)换成深度:由 u_L = fX/Z + c_x 与 u_R = f(X − B)/Z + c_x 相减即可得到。但更该记住的是第二个式子——对 Z 求 d 的微分,视差估计误差会被放大成与 Z² 成正比的深度误差。爱丁堡大学对高速立体视觉传感器的性能表征与浙江大学的立体视觉讲义都给出这一形式,并明确指出深度分辨率随距离二次下降。

d = u_L − u_R = f·B/Z → Z = f·B/d
|dZ/dd| = f·B/d² = Z²/(f·B) → σZ ≈ [Z²/(f·B)]·σd

代入量级:取 f = 500 px、B = 0.1 m、σd = 0.25 px(亚像素匹配精度),则 Z = 2 m 时 σZ ≈ 0.02 m;Z = 10 m 时约 0.5 m;Z = 20 m 时约 2 m。距离放大 10 倍,误差放大 100 倍。这是按上述参数代入的量级算例,不是某台设备的实测精度,却足以解释两个工程事实:水下摄影测量必须贴着目标飞,而且必须引入独立的尺度基准。

图|双目视差与深度不确定度(程序化重绘)。基线两端为两台相机,中轴上由近及远的虚线椭圆表示深度误差随距离放大。

基线的取舍也由此而来:从 σZ 看 B 越大越好,但 B 增大会让近处视差超出匹配搜索范围,并放大两台相机之间的遮挡差异,所以“长基线更准”只在既定工作距离内成立。厂商把基线做成出厂标定好的固定值,本质是把 B 与 f 变成已知常数,让模型自带度量尺度,作业时不必再布设参考标尺。

激光标尺走的是另一条路:两束平行激光在目标上留下已知间距的两个光点,只提供一个尺度约束,用来消除运动恢复结构(SfM)的尺度歧义与长航程尺度漂移,并不独立解算深度或位姿。法国海洋开发研究院(IFREMER)专门评估过这一点:已报道的激光尺度误差范围从 0.85% 到 17%,较新的方法可到 2%–3%;而激光标尺长期只用于定性视觉缩放,很少被用来评定三维模型的精度。“有尺度”与“有精度”,是两件事。

激光片光与结构光则直接给出高密度三维。Voyis Recon LS 标称 1.2–7 m 量程、X 向 1.1 mm@3 m / 1.9 mm@5 m / 2.6 mm@7 m;Cathx HUNTER II 标称 1.3 mm@2 m、2.6 mm@4 m,并在规格书中推荐相机与 LED 分离 800–1400 mm、与激光分离 1000–1600 mm——正好呼应上一章的灯-相机分离原则。不同厂商口径不合并。

手段
输出
已核验的量级
主要约束
双目立体
逐像素深度、带尺度三维
σZ ∝ Z²(见上算例)
需纹理、基线与水中标定、受浊度限制
激光标尺
单一尺度约束
IFREMER 评估:已报道 0.85%–17%,新方法 2%–3%
只定尺度、要求共面与光轴平行
激光片光 / 结构光
高密度点云
Voyis 1.1 mm@3 m;Cathx 1.3 mm@2 m
作用距离短、对悬浮物敏感
SfM 摄影测量
三维网格与正射影像
NOAA 规范:重投影误差 ≤ 0.4 px、4 根 0.25 m 尺度杆、旁向约 60% / 航向约 80% 重叠
需重叠率、正交视角与可追溯日志

还有一层常被跳过:水下相机隔着耐压窗与密封舱成像,光线经过玻璃—水界面折射,空气中做的标定不能直接搬用,标定必须在水中、在接近工作深度的条件下完成。2026 年 7 月 EMSO SmartBay 的一次 ROV 航次,就在定制平台上装了带折射光学校正的同步立体相机,把这项校正当作工程必选项而非可选项。

五、感知与位姿的耦合——两套系统互相喂数据

观测要落在正确的空间位置才有意义,而位置本身又常常要从观测里反推。这就是感知与导航的耦合:短时相对运动由惯性、多普勒测速与深度等推算给出,长时约束由观测提供,两者在位姿图里合成——节点是位姿,边是约束,回环边把累积漂移压回去。这里谈的是观测如何约束位姿,而非位姿本身如何解算。

水下的回环比陆上难得多。IEEE Access 2023 年的综述列得很直白:水体阻断卫星定位等无线电信号、浊度与悬浮颗粒压缩视觉距离、声学数据的分辨率显著低于光学;MDPI《Sensors》2024 年进一步指出,视觉 SLAM 在浑浊水域失效、声呐受分辨率限制、惯性测量单元随时间漂移。国内《数字海洋与水下攻防》2024 年的综述把水下 SLAM 分为前视声呐、水下光学与测深信息三类,各自依赖不同的观测模型。

更麻烦的是错误回环:一旦把两处不对应的场景误认成同一处,这个错误约束会通过图优化传播到全局,而不是只在局部留个瑕疵。已有综述明确提示“错误关联可能全局传播”,且当某个可观测方向被移除后,优化无法凭空补回信息。所以水下 SLAM 的工程重心往往不是算法多先进,而是关联是否可信。

收益也需要有量级概念。《Sensors》2025 年的一篇综述里,前视声呐因子图配合 SO-CFAR 与加权迭代最近点,相对纯航位推算的均方根误差改善为 8.52%。这个数字值得停下来看一眼:引入一整套声呐感知与图优化,换来的仍是个位数百分比的改善。感知对位姿的作用是抑制漂移,不是消除漂移;把它当成替代导航的手段,会明显高估能力。

感知精度也从来不由传感器参数表单独决定。蒙特雷湾水族馆研究所(MBARI)的便携式测绘系统把毫米级摄影测量、厘米级测深与地理参考位姿放进同一套 ROV 载荷:视觉侧有立体相机、单目相机、推扫式高光谱与激光片光,声学侧有前视声呐、多波束测深与近距三维声呐,导航侧是姿态航向参考、惯性测量单元、多普勒测速仪与深度传感器,再由 10 Gbps 光纤统一供电与通信,并做四自由度闭环控制以执行定高“割草机”式航线。这套配置传递的信息是:航线是否平稳、重叠是否足够、照明是否一致,和相机分辨率一样属于感知指标。

延伸|ROV 的遥控属性还带来一个陆上自主平台没有的余量:操控员可以在疑似回环处主动重访并复核,把纯算法的关联问题转成“人在回路”的确认动作。这也是为什么在同等传感器条件下,有人值守的作业往往比全自动采集更容易拿到可复算的结果。

由此得到一个反直觉但实用的结论:把相机换成更贵的一台,往往不如把 ROV 飞得更稳、把标定做得更勤。

六、从“看见”到“可判读”——证据需要什么

图像是观感,测量才是证据。前面几章的物理量,最终要落到一份能被第三方复算、能支撑维修决策的记录上。ROV 携带的无损检测信号各有分工:交流场测量(ACFM)通过电磁场识别表面裂纹,可穿透非导电涂层、无需打磨到裸金属,厂商资料称由潜水员或 ROV 部署已超过三十年;超声测厚给出剩余壁厚,中文工程文献给的量级是 1–250 mm 量程、0.1 mm 精度、可穿透 20 mm 厚涂层,多回波技术用于扣除涂层与海水影响;磁粉检测需要清理表面;阴极保护电位以银/氯化银参比电极读取,是少数直接给出数值判据的感知量。这些量测的是状态而不是外观,因此无法由视频替代。

三维模型的门槛更高。NOAA 渔业部门的结构光摄影测量规范给了一份可参照的清单:样带布设 4 根 0.25 m 尺度杆、旁向约 60% 与航向约 80% 重叠、重投影误差 ≤ 0.4 px、DEM 像素 0.001 m,并保留控制点残差、独立检查点与例外区域说明。行业侧对“决策级”三维的要求与之同构:尺度控制(双激光或靶标)、正交与斜视两组视角、主光加补光的照明纪律、UTC 时码与采集日志、按区域给出的不确定度表。换句话说,一个能用的模型必须回答三件事——它支撑什么决策、该决策需要多大容差、哪些区域置信度不足。

工程落点上,2026 年 4 月 16 日 DeepOcean 发布的官方稿显示,其与 Woodside 在塞内加尔近海 Sangomar 油田完成一次覆盖 69 座水下结构(含 17 棵采油树)的作业,把常规巡检与全三维扫描合并为同一次 ROV 下潜;手段包括摄影测量、ROV 视频、声呐、CAD 对照与数字孪生。官方给出的量化表述是:耗时“略高于传统分两次作业的一半”,数据产出翻倍;三维重建用于发现裂纹或变形,并判断其与关键部件的邻近关系。这里值得注意的不是“扫得更快”,而是感知改变了作业的组织方式——原本两次下潜变成一次,因为采集与判读被并进了同一条数据流。

标准的边界也要说清。ISO 13628-8 与 API RP 17H 规定的是 ROV 与水下生产系统之间的接口(热插拔、扭矩工具、对接与干预等),并不规定无损检测的检出精度或三维模型的验收数值。把接口标准当成检测精度依据,是资料里常见的误读;同样,网络流传的“±10% 测厚公差”多出自教学示例,不能当作规范值引用。

于是又有一条反直觉结论:模型越精细、越“好看”,不代表越可用;能复算、带不确定度、写清例外区域的模型,才配叫证据。

七、能力边界与可信度——看得见不等于判得准

把前面的误差源串起来,会得到一条可信度链:水体的 c 决定光学有效距离,声呐的 δr 与 δθ 决定一个分辨单元里能塞进几个目标,双目的 σZ 决定三维点的散布,位姿图的残差决定这些点被放在哪里,最终测量报告的不确定度决定结论能不能用。每一环都继承并放大上一环的误差;任何一环松掉,后面的精度都无从谈起。

一个反直觉的现场证据来自 EMSO 2026 年 10 月 19 日发布的 SmartBay 航次记录:2026 年 7 月,XYZ Engineering 用定制 ROV 搭载同步立体相机(含水下折射校正)采集爱尔兰 Galway Bay 观测站核心区,8 月生成三维网格。项目组原本担心水体清晰度,实测却发现水色与清晰度并未显著影响图像质量;真正干扰图像匹配与重建的是穿过视场的鱼群,此外厚重的海生物附着影响表面纹理。这类动态目标与表面覆盖物,恰恰是实验室里去散射算法最不容易覆盖的部分。该页面同时记录了另一类平台的作业,本文只引用其中 ROV 航次部分。

还有一层是判读本身。声呐图像的自动目标识别近年进展很快,但 2025 年《吉林大学学报(工学版)》的综述指出,现有算法“未能充分考虑声呐图像的采集过程”——成像物理与识别网络被割开了。声光跨模态融合、联合目标检测是活跃方向,可一旦脱离具体成像条件,检出率与误报率就很难迁移。人的判读同样受疲劳与画面质量影响,所以工程上才强调重复性、交叉复核与例外清单。

收束成一句:感知系统的上限通常不在传感器,而在“水体、平台运动、判读流程”三者中最弱的一环。同一台 ROV 在不同海况、不同操控员手里,交付数据的可信度可以差得很远,原因就在这里。

八、延伸——正在进入但尚未成熟的方向

偏振去散射、距离选通、事件相机、水下高光谱、声光跨模态联合检测,以及把大模型引入水下目标判读,都是近两年综述里反复出现的方向。2025 年 IEEE YAC 的《Perception and Sensing Technologies for Underwater Robots: A Review》把声学与光学列为两条主模态并讨论多模态融合;2024–2025 年多篇中文核心综述集中在成像声呐目标识别、前视声呐去噪与水下 SLAM。它们共同指向一个趋势:从“把传感器装上去”转向“把成像物理写进算法”。

但要明确的是,这些工作大多以仿真、实验室水槽或受控水域数据为主,尚不构成可验收、可复算的工程能力。本文不展开,也不把它们计入前述能力边界。


资料来源

可靠信息源(经典理论与官方发布)

DOSITS(美国罗德岛大学海洋研究生院,页面标注改编自 Urick 1983):主动声呐方程 SNR = SL − 2TL + TS − NL、检测阈与双程传播损失的说明;Urick《Principles of Underwater Sound》公开章节给出含指向性指数 DI 的等价形式。

美国海军《Principles of Underwater Sound》第 8 章:海水声速 1420–1560 m/s、工程常用 1500 m/s、Wilson 简化式及其精度说明。

奥斯陆大学 IN3015《Introduction to Sonar》讲义(2021):δR = c/(2B)、短脉冲与能量的取舍、β ≈ λ/D 及其与频率的关系;美国海军研究生院与 HAL 博士论文给出脉冲压缩前后分辨率的等价推导。

Springer《Fundamentals of Ocean Acoustics》、Stojanovic 教科书章、TU Delft 水声讲义:Thorp 公式、Francois–Garrison 模型适用频带,以及 Thorp 仅适用于约 50 kHz 以下的限定。

Jaffe, J. S., 1988, Oceanography 1(2): 40–41:水下成像三分量模型、对比度受限与功率受限二分、1 与 2–3 个衰减长度、ROV 上 3–5 m 典型灯-相机分离、深海/近岸/海湾的 c 值。国内《红外与激光工程》《中国光学》与《中国图象图形学报》综述给出等价表述与后向散射主因判断。

FAO 渔业光学报告表 2.2、Pope & Fry 1997(NASA / Moss Landing 航次技术备忘录)、Smith & Baker 1978(Optics Express 2017 引表):绿光光束衰减系数、纯水吸收谱与蓝绿窗口;Optics & Laser Technology 175 (2024) 110849 给出同步扫描在 19.6 FTU 下的对比度提升实测。

爱丁堡大学《Performance Characterization of a High-Speed Stereovision Sensor》、浙江大学 CAD&CG 立体视觉讲义:σ_z = z²·σ_d/(b·f) 与深度分辨率随距离二次下降;CCVCL 立体视觉讲义给出 Z = fB/d 的完整推导。

IFREMER《Scale Accuracy Evaluation … Using Laser Photogrammetry》:激光尺度误差 0.85%–17%、较新方法 2%–3%,以及激光标尺长期只作定性缩放的定位;NOAA Fisheries 摄影测量规范(NOAA 71123)给出尺度杆、重叠率与重投影误差要求。

厂商一手规格书:Teledyne BlueView M900/2250-130(©2015)、Kongsberg Discovery M3 Sonar HF、Blueprint Subsea Oculus M750d、Tritech Gemini 720ik 官方手册 0742-SOM-00002-02a、Voyis Recon LS、Cathx HUNTER II 数据表、Deep Trekker SPECTRA 官方发布稿;Eddyfi / TSC 官方应用页(ACFM 可透涂层、ROV 部署年限);欧盟 CORDIS SUBCTEST 成果稿。

综述与标准辨析:IEEE Access 11 (2023) 10308592;MDPI Sensors 24(23):7490 (2024)、25(11):3258 (2025);Remote Sensing 15(10):2496 (2023);Ocean Engineering 2024 / 2025 两篇 SLAM 综述;《数字海洋与水下攻防》2024, 7(4):356-364;《吉林大学学报(工学版)》2025, 55(4):1163-1175;《电子与信息学报》2024 声呐图像识别综述;IEEE YAC 2025 感知技术综述;《热力发电》海上风电水下资产检测(超声测厚量程与精度);ISO 13628-8 与 API RP 17H 的接口范围。

工程一手发布:DeepOcean 2026-04-16 官方新闻稿(Woodside Sangomar,69 座结构、17 棵采油树、巡检与三维扫描同步);EMSO 2026-10-19 官方稿(DIGI4ECO / SmartBay,ROV 立体摄影测量、折射校正、鱼群干扰与海生物附着);MBARI Portable Mapping System 官方技术页(多模态载荷与四自由度闭环控制,页面标注 2025–present 配置及 2026 年 3 月 Sur Ridge 航次)。

交叉验证源(独立来源与同源排除)

三方互证:声呐方程由 DOSITS、Urick 公开章节与 Southampton ISVR 论文各自表述;脉冲压缩分辨率由奥斯陆大学讲义、美国海军研究生院论文与 HAL 博士论文各自推导;双目深度误差由爱丁堡大学与浙江大学两处独立给出;水下光学衰减由 FAO 表、Pope & Fry 与 Smith & Baker 三套独立数据集交叉,但波长与定义域不同,正文按来源分列、不合并。

同源排除:Teledyne ©2015 M900 规格书被 bluezonegroup、Ashtead Technology、Envirent 原样托管,只计 1 个独立源;Tritech Gemini 720ik 官方手册为 8 mm,某日本经销商目录写 4 mm,后者不改作规格依据;DeepOcean Sangomar 稿被 MSGBC 等行业媒体转述、Acteon 2024 稿被 keyfactsenergy 转载,均不计独立交叉源;标注为厂商供稿的行业文章同样排除。

未采用:Thorp 公式对 1 MHz 的外推值(超出其有效频带);Deep Trekker SPECTRA“up to 1% measurement accuracy”仅见经销商页面、官网未给,不采用;网络流传的“±10% 测厚公差”出自教学示例,不作规范值;第三方细分市场估算不用于推断技术指标或公司数据;未标日期的厂商案例不补写年份。

量级算例说明:文中 7.5 cm / 7.5 mm(δr)、0.86°(δθ)、6.3 Hz(f_ping)、23 m / 6.6 m / 2.5 m / 0.46 m(衰减长度)、40–60 m 与 6–9 m(分离布置成像距离)、0.02 m / 0.5 m / 2 m(σZ)均为按公开公式与标明参数代入的量级算例,不是任何设备的实测值。

图片来源

本文 3 张配图均由程序化重绘生成(matplotlib 平涂几何,非 AI 生成图、非工程图纸),图内不含任何标注文字,几何含义由正文与图注说明:fig_cover.png(封面,光学视锥与声学扇束叠加的侧视剖面)、fig_sonar_geometry.png(孔径与波束宽度、角分辨单元)、fig_stereo_geometry.png(双目基线、视线与深度不确定度)。生成脚本为 _build/make_fig_g14.py,仅供学习引用。

星纹舢影 · ROV 学习笔记

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-11-08 08:54:56 HTTP/1.1 GET : http://h.sjds.net/a/577001.html
  2. 运行时间 : 0.084336s [ 吞吐率:11.86req/s ] 内存消耗:4,429.45kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=49ab94699e0da1695970bb548f929f18
  1. /www/wwwroot/h.sjds.net/public/index.php ( 0.79 KB )
  2. /www/wwwroot/h.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /www/wwwroot/h.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /www/wwwroot/h.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /www/wwwroot/h.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /www/wwwroot/h.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /www/wwwroot/h.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /www/wwwroot/h.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /www/wwwroot/h.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /www/wwwroot/h.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /www/wwwroot/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /www/wwwroot/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /www/wwwroot/h.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /www/wwwroot/h.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /www/wwwroot/h.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /www/wwwroot/h.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /www/wwwroot/h.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /www/wwwroot/h.sjds.net/app/provider.php ( 0.19 KB )
  23. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /www/wwwroot/h.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /www/wwwroot/h.sjds.net/app/common.php ( 0.03 KB )
  27. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /www/wwwroot/h.sjds.net/config/app.php ( 0.95 KB )
  30. /www/wwwroot/h.sjds.net/config/cache.php ( 0.78 KB )
  31. /www/wwwroot/h.sjds.net/config/console.php ( 0.23 KB )
  32. /www/wwwroot/h.sjds.net/config/cookie.php ( 0.56 KB )
  33. /www/wwwroot/h.sjds.net/config/database.php ( 2.48 KB )
  34. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /www/wwwroot/h.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /www/wwwroot/h.sjds.net/config/lang.php ( 0.91 KB )
  37. /www/wwwroot/h.sjds.net/config/log.php ( 1.35 KB )
  38. /www/wwwroot/h.sjds.net/config/middleware.php ( 0.19 KB )
  39. /www/wwwroot/h.sjds.net/config/route.php ( 1.89 KB )
  40. /www/wwwroot/h.sjds.net/config/session.php ( 0.57 KB )
  41. /www/wwwroot/h.sjds.net/config/trace.php ( 0.34 KB )
  42. /www/wwwroot/h.sjds.net/config/view.php ( 0.82 KB )
  43. /www/wwwroot/h.sjds.net/app/event.php ( 0.25 KB )
  44. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /www/wwwroot/h.sjds.net/app/service.php ( 0.13 KB )
  46. /www/wwwroot/h.sjds.net/app/AppService.php ( 0.26 KB )
  47. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /www/wwwroot/h.sjds.net/vendor/services.php ( 0.14 KB )
  53. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /www/wwwroot/h.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /www/wwwroot/h.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /www/wwwroot/h.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /www/wwwroot/h.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /www/wwwroot/h.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /www/wwwroot/h.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /www/wwwroot/h.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /www/wwwroot/h.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /www/wwwroot/h.sjds.net/app/Request.php ( 0.09 KB )
  84. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /www/wwwroot/h.sjds.net/app/middleware.php ( 0.25 KB )
  86. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /www/wwwroot/h.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /www/wwwroot/h.sjds.net/route/app.php ( 1.72 KB )
  100. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /www/wwwroot/h.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /www/wwwroot/h.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /www/wwwroot/h.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /www/wwwroot/h.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /www/wwwroot/h.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /www/wwwroot/h.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /www/wwwroot/h.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /www/wwwroot/h.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /www/wwwroot/h.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /www/wwwroot/h.sjds.net/runtime/temp/c1d6e8c94b2c2fa10e259903674c804d.php ( 8.11 KB )
  140. /www/wwwroot/h.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000757s ] mysql:host=172.18.0.4;port=3306;dbname=h_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001016s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000523s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000343s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000582s ]
  6. SELECT * FROM `set` [ RunTime:0.000297s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000644s ]
  8. SELECT * FROM `article` WHERE `id` = 577001 LIMIT 1 [ RunTime:0.000501s ]
  9. UPDATE `article` SET `lasttime` = 1794099296 WHERE `id` = 577001 [ RunTime:0.001973s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000339s ]
  11. SELECT * FROM `article` WHERE `id` < 577001 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000419s ]
  12. SELECT * FROM `article` WHERE `id` > 577001 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000377s ]
  13. SELECT * FROM `article` WHERE `id` < 577001 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000635s ]
  14. SELECT * FROM `article` WHERE `id` < 577001 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001354s ]
  15. SELECT * FROM `article` WHERE `id` < 577001 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000575s ]
0.095252s