视觉配准

本页是森林火灾 VIS–IR 配准的统一主笔记:预处理、坐标、主流程、实验协议和阶段记录集中在这里。局部特征、强度一致性、深度特征等方法仍保留独立笔记,避免把不同假设和实验结论混成一个算法。

配准总览:预处理与增强策略

1. 预处理候选及取舍

预处理的目标是建立可比较的公共视场,而不是为了让图像看起来更“满”。当前候选策略如下:

策略 做法 主要风险 当前定位
VIS 固定底板 将完整 IR 依据标定 footprint 映射到 VIS,再共同裁剪并缩放 旧流程中的零填充会丢边缘信息 已被正式流程替代;仅作历史对照
IR 保留优先 完整 IR 先参与标定,再生成公共视场 需要固定裁剪框并处理越界 当前正式流程,详见正式坐标协议
梯度/边缘辅助 从 VIS、IR 或白热图中提取梯度,只把辅助图用于匹配或质量检查 边缘增强不能替代几何标定;过度增强会放大噪声 作为可消融的输入分支,不改原图坐标

“白热图像就是可见光二值化”的说法不准确:白热 JPEG 通常是热成像设备对辐射数据做了自动增益、灰度或伪彩映射,并非 VIS 的二值化结果。因此它可以提供边缘/梯度线索,但不能直接当作可见光真值。若需要二次裁剪,裁剪框必须由标定 footprint 和固定统计规则确定;不能对每一对图重新找公共交集,否则会改变样本坐标系并引入不可复现的偏移。

正式尺寸链只有一条:原始 VIS 1920×1080、完整 IR 640×512 → 标定 footprint 的 1218×975 → 两幅图共同裁取 1216×912 → 等比例缩放至 640×480。精配准时只移动 IR,VIS 不再裁剪或回算。

2. 配准前的增强分支(保持可消融)

传统讨论中提出两条互补思路:

  1. 卷积/滤波增强:在匹配前对两模态分别计算 Sobel、LoG 或轻量卷积特征,突出稳定边缘,再将增强图送入匹配器。增强只作用于匹配输入,不改变原始像素和坐标;卷积核类型、强度和是否使用应作为消融变量。
  2. 边缘框/边缘强化:以边缘响应或 EdgeBoxes 一类候选区域为引导,优先在结构明显的区域估计变换。它适合纹理稀疏、跨模态亮度差异大的场景,但必须配合 RANSAC、几何范围检查和失败回退,不能把边缘候选直接当作最终矩阵。

这两条分支与主流程的关系是“输入增强 → 独立配准器 → 统一评价”,不是再拆成两份笔记。方法族的完整说明见:几何匹配:局部特征、卷积与 RANSAC、强度一致性匹配、深度匹配与 LM²R-Net 候选框架。实验参数和结果统一汇总在配准实验与工程验证,论文叙事与阶段记录见配准总览与研究叙事。

配准教程入口:从输入到验收

目标与适用场景

目标是在森林火灾等跨模态场景中,将同一时刻的可见光(VIS)与长波红外(IR)图像映射到同一 640×480 工作坐标系,减少火区、人员和背景结构的重影,为后续融合、检测和端侧部署提供稳定输入。本流程适用于相机内外参基本固定、两模态视场存在差异但有重叠区域的双光设备;不适用于没有共同视场、时间不同步严重或只有单模态图像的样本。

输入与前置检查

项目 要求
VIS 原图 1920×1080,保留原始文件
IR 原图 640×512,不能先擅自裁掉上下边
标定信息 双模态标定板对应点、初始变换或距离查表
工作画布 固定为 640×480;VIS 是固定底板
质量记录 保存变换矩阵、有效 Mask、失败原因和评价指标

运行前先检查图像尺寸、通道、文件配对和标定矩阵方向;任何一项不满足都先修复输入,不要用“重新裁剪到看起来对齐”掩盖坐标错误。

统一步骤

  1. 建立初始几何关系:用双模态标定板或已验证的距离查表得到初始变换,将完整 IR 映射到 VIS 坐标系。
  2. 生成固定公共视场:依据 IR footprint 对 VIS、IR 与 Mask 做第一次统一裁剪,再共同裁取 4∶3 区域并等比例缩放到 640×480。
  3. 粗配准/候选生成:按当前实验配置运行 XoFTR、局部特征或其他独立方法,使用 RANSAC 和几何范围检查排除明显错配;不同方法的结果分别记录,不能互相覆盖。
  4. 精配准:在固定 640×480 画布中只移动 IR。语义区域可用于 ECC 或残差搜索的评价,但不得移动 VIS 或改变公共坐标系。
  5. 质量门控与回退:同时检查 MI/NMI、EdgeF1、Chamfer、语义区域一致性、黑边比例和变换范围;任一指标越界则记录失败并回退到上一级可信结果。
  6. 输出与审计:直接输出 640×480 的 registered、overlay、checkerboard、Mask 和 metrics;保留每对图的矩阵与参数,保证能够复现和定位失败。

参数、验证与失败边界

  • 正式坐标口径、裁剪框和 IR-only 规则以本页正式坐标协议为准;不要沿用旧的“每对重新取公共交集”或“IR 上下各裁 16 像素”口径。
  • 评价至少包含几何误差(landmark RMSE 或 Chamfer)、边缘对齐(EdgeF1)、跨模态统计一致性(MI/NMI)和运行效率(平均耗时、T95/FPS)。只看 ECC 相关系数或肉眼 overlay 不能证明配准可用。
  • 纹理太少、火焰/烟雾遮挡、时间不同步、初始平移超出搜索范围、Mask 为空或 IR 越界过多时,算法可能失败。应输出明确失败原因和回退层级,不得静默接受异常矩阵。

结论与独立方法边界

主流程负责定义统一输入、坐标和验收规则;局部特征匹配、强度一致性匹配、深度匹配、融合羽化和真值驱动实操各自回答不同问题,因此继续保持独立笔记。它们可以在第 3 步作为候选方法接入,但最终都必须在同一 640×480 坐标和同一指标集上比较。

正式坐标协议:完整尺寸链与 IR-only 精配准

本节已吸收“配准算法预处理:第一次标定裁剪、640×480 固定画布与 IR-only 精配准”的完整正式版本;原页面已并入并删除,后续只维护本节。

priority_high
当前正式口径(2026-08-27 最终修正)

原始输入为 VIS 1920×1080 和完整 IR 640×512。先按标定参数放大、移动完整 IR,并依据标定后 IR footprint 对 VIS、IR 与几何 Mask 统一完成第一次裁剪,当前中间画布为 1218×975。由于算法输入固定为 640×480,再对 VIS 与 IR 使用同一个居中 4∶3 裁剪框,当前为 (x=1,y=31,w=1216,h=912),然后共同等比例缩放为 640×480。自动精配准直接在此 640×480 固定画布内进行,只移动 IR:越界 IR 被截去,未覆盖区域补黑;VIS 不再裁剪、移动、缩放或补边。最终结果直接输出 640×480,不反算回 1218×975 或原始坐标。

report
第二次裁剪的唯一含义

第二次精配准后的“裁剪”仅指 IR 移动后超出 640×480 固定画布的部分被截断。不得根据每对图像重新计算 VIS/IR 公共交集,不得再次裁 VIS,也不得为了消除 IR 黑边而改变 VIS。IR 黑边表示该区域没有热红外覆盖,对应 VIS 像素仍然有效并必须保留。

1. 三层坐标与尺寸

原始层:
VIS_raw = 1920×1080
IR_raw  = 640×512(完整保留)

第一次标定裁剪中间层:
VIS_1 / IR_1 / MASK_1 = 1218×975

正式算法与输出层:
共同裁出 1216×912 → 共同等比例缩放 → 640×480
VIS_640 / IR_640 / MASK_640 = 640×480

必须区分:

  • 1218×975 是完成标定映射后的第一次裁剪中间画布;
  • 640×480 是算法精配准的固定工作画布,也是正式输出画布;
  • 640×480 不是旧的 VIS/IR 独立 letterbox,也不是分别独立裁剪;
  • 精配准结果不恢复到 1218×975,直接在 640×480 输出。

2. 原始输入与标定

输入固定为:

VIS_raw:1920×1080
IR_raw: 640×512

要求:

  • 完整保留 IR 640×512,不固定裁除上下各 16 像素;
  • 不根据黑色像素值判断 IR 几何有效区;
  • IR 有效支撑由全 1 Mask 经过相同几何变换得到;
  • 标定矩阵方向固定为 IR 原始坐标 → VIS 原始坐标。

标定矩阵:

[ H_{\mathrm{cal}}= \begin{bmatrix} s&0&dx\ 0&s&dy\ 0&0&1 \end{bmatrix}. ]

当前六对手工标定使用固定尺度 s=1.902,近、中、远距离档使用各自稳健 dx、dy。

3. 第一次裁剪:完整 IR footprint

先把完整 IR 与全 1 Mask 映射到 VIS 原始画布:

IR_cal_raw     = Warp(IR_raw, H_cal, VIS_canvas=1920×1080)
IR_support_raw = Warp(ones(640×512), H_cal, VIS_canvas=1920×1080)

理论 footprint 尺寸为:

s×640 × s×512 = 1217.28 × 973.824

采用确定性整数包围规则后,当前共享第一次裁剪尺寸为:

CROP1_W × CROP1_H = 1218 × 975

当前各距离档第一次裁剪框:

near:(387, 59, 1218, 975)
mid: (403, 77, 1218, 975)
far: (387, 79, 1218, 975)

第一次裁剪同时作用于:

VIS_1  = Crop(VIS_raw, CROP1)
IR_1   = Warp/Crop(IR_raw, H_cal, CROP1)
MASK_1 = Warp/Crop(ones(640×512), H_cal, CROP1)

输出均为 1218×975。这一层只负责完成标定后的同视场统一裁剪。

4. 共同生成正式 640×480 画布

算法硬性输入为 640×480,因此在第一次裁剪后,对 VIS_1、IR_1、MASK_1 使用完全相同的 4∶3 裁剪:

CROP2 = (x=1, y=31, w=1216, h=912)

然后共同等比例缩放:

1216×912 → 640×480
缩放比例 = 640/1216 = 480/912

生成:

VIS_640  = Resize(Crop(VIS_1, CROP2), 640×480)
IR_640   = Resize(Crop(IR_1, CROP2), 640×480)
MASK_640 = Resize(Crop(MASK_1, CROP2), 640×480)

Mask 使用最近邻插值,图像使用一致的图像插值规则。VIS 与 IR 必须使用同一 CROP2 和同一等比例缩放;不得各自独立中心裁剪、独立 letterbox 或非等比例拉伸。640×480 是正式算法输入与最终输出,不是临时网络副本。

5. 第二次精配准:固定 640×480 中只移动 IR

自动算法直接在 VIS_640、IR_640 上估计 IR→VIS 的精配准矩阵 H_fine_640。

正式输出:

VIS_final  = VIS_640
IR_final   = Warp(IR_640, H_fine_640,
                  canvas=(640,480), border=black)
MASK_final = Warp(MASK_640, H_fine_640,
                  canvas=(640,480), border=0)

严格规则:VIS_final 必须逐像素等于 VIS_640;只允许 IR 和 IR Mask 发生精配准变换;IR 越出 640×480 固定画布的部分被截断;未覆盖区域补黑,Mask 对应区域补 0;不重新裁剪 VIS、不按每张图的精配准位移求新的公共交集、不反算回 1218×975 或 1920×1080。最终 overlay、融合输入、注册图和 Mask 均为 640×480。

多张图像的精配准位移必然不同,因此 IR 黑边宽度可以随样本变化;VIS 画布和输出尺寸始终固定。

6. 最终坐标关系

设 C_1 为原始 VIS 到第一次裁剪坐标的平移,B 为第一次裁剪画布到最终 640×480 的共同裁剪与缩放,则:

[ H_{\mathrm{pre},640}=B C_1 H_{\mathrm{cal}}. ]

最终 IR 原图到 640×480 输出的复合关系为:

[ H_{\mathrm{final},640}=H_{\mathrm{fine},640} B C_1 H_{\mathrm{cal}}. ]

正式实现可从 IR 原图用最终复合矩阵一次重采样到 640×480,以减少插值累积;H_fine_640 不需要反算到 1218×975 或原始 VIS 坐标。

7. 禁止使用的错误流程

禁止固定裁除 IR 上下各 16 像素;标定前把 VIS 与 IR 分别独立 letterbox;第一次裁剪不覆盖完整 IR footprint;VIS 与 IR 使用不同的第二裁剪框;把 1218×975 非等比例拉伸成 640×480;精配准后重新计算公共交集;为消除 IR 黑边而缩小 VIS;把 IR 黑色像素值当作无效 Mask;把精配准矩阵反算回 1218×975 后作为正式输出。

8. 实现检查表

  • 原始 VIS 为 1920×1080,原始 IR 为完整 640×512;
  • 使用正确距离档的 scale、dx、dy;
  • 第一次裁剪来自完整 IR 标定 footprint,并统一为 1218×975;
  • VIS_1、IR_1、MASK_1 使用同一第一次裁剪区域;
  • 第二个共同裁剪为 (1,31,1216,912),等比例缩放到 640×480;
  • 精配准矩阵直接定义在 640×480,且只移动 IR;
  • IR 越界截断、未覆盖区域补黑,VIS 在精配准阶段逐像素不变;
  • 最终输出固定为 640×480,不反算回 1218×975 或原始坐标;
  • IR Mask 使用与 IR 完全相同的几何链。

9. 旧数据、VIS 固定底板与标注回查

FF‑VI3083 现存旧实验虽然也是 640×480,但生成过程与本流程不同,不能自动声称按本流程生成。本流程适用于能够确认 1920×1080 VIS、完整 640×512 IR 和标定参数的新数据。

VIS 作为固定底板是因为分辨率更高、视场更宽;IR 的“放大”只是把热信号插值到 VIS 网格,并不创造细节。IR 有效区域必须由完整 IR 的几何支撑 Mask 确定,不能依据亮度或固定裁掉上下 16 像素。

稳定硬件、分辨率和工作模式下,尺度可以由人工真值统计后固化;在线阶段只以 BASE_DX、BASE_DY 为初值做小范围平移微调。物距变化造成的视差首先表现为深度相关的 dx、dy 变化,不等同于尺度漂移;每帧微调应设门限,超限时记录异常并回退或触发重新配准。

若最终 640×480 图来自 VIS 原图中左上角 (x_offset,y_offset)、尺寸 W_crop×H_crop 的区域,LabelMe 点 (x_label,y_label) 回到 VIS 原图为:

X_1920 = x_label × (W_crop ÷ 640) + x_offset
Y_1920 = y_label × (H_crop ÷ 480) + y_offset

这只用于审计和回查标注;正式配准结果不反算,始终直接输出 640×480。

论文计划与实验安排

**模块** **当前状态** **需新增/修改** **预估工时**
Abstract 需修改 重写,强调结构化人工+多指标门控 0.5天
1. 引言 需大幅修改 新增1.3痛点(人工瓶颈)、重写1.4贡献 1天
2. 相关工作 需新增 整节新写(人机协同、异构计算) 1天
3.1 总体流程 已有基础 更新流程图,微调文字 0.5天
3.2 两阶段粗配准 需重写 整小节新写,含两阶段设计依据 1天
3.3 卷积增强 需新增 整小节新写 0.5天
3.4 ECC精配准 已有 微调,强调增强输入 0.25天
3.5 多指标门控 需新增 整小节新写,含三指标定义与阈值依据 1天
3.6 多路兜底与批处理 需大幅修改 原2.3扩展为三路分支+批处理 1天
3.7 闭环反哺 需新增 整小节新写 0.5天
3.8 异构并行加速 需新增 整小节新写 0.5天
3.9 标签迁移 已有 基本不变 0天
4.1-4.2 配准实验 需更新 按新方法重新跑数据,更新表格 2天
4.2.3 消融实验 需新增 设计并执行消融实验,制表 1.5天
4.2.4 操作员一致性 需新增 设计并执行一致性实验 1天
4.3 计算效率分析 需新增 画三条曲线,写分析 1.5天
4.4 鲁棒性分析 需新增 设计扰动实验,画曲线 1天
4.7 闭环反哺实验 需新增 微调LoFTR+对比实验 2天
5. 讨论 需新增 整节新写 1天
6. 结论 需修改 更新局限性与未来工作 0.5天
参考文献 需补充 新增5-8篇 0.5天
通读润色 全文 统一术语、检查逻辑、格式调整 2天
### **实验工作量**
**实验项目** **数据需求** **代码改动** **预估工时**
两阶段粗配准数据采集 需重新标注部分样本以记录两阶段平移量 需修改标注工具记录dx1,dy1,dx2,dy2 2天
卷积增强ECC 在现有数据上重新跑ECC 新增LoG滤波模块 1天
多指标门控实现 全量数据 MI/Chamfer/梯度互相关等计算模块 2天
三路分支逻辑 全量数据 修改主流程控制逻辑 1天
LoFTR批处理兜底 失败子集 集成LoFTR+批处理推理 2天
CPU-GPU并行优化 全流程 任务划分+CUDA流优化 2天
消融实验 全量数据 按配置分别运行并记录 1.5天
操作员一致性实验 50对×3人 组织3人标注并统计 1天
速度-精度曲线 已有各方法耗时数据 整理绘图 0.5天
鲁棒性扰动实验 抽样100对 编写扰动脚本+批量测试 1天
闭环微调实验 高质量池样本 LoFTR微调代码+评测 2天
**类别** **预估工时** **备注**
论文写作 20天 含新增章节和全文润色
实验实施 16天 含代码开发和数据重跑
图表绘制 4天 流程图、曲线图、架构图
投稿准备 2天 格式调整、补充材料、投稿信
**合计** **42天** 约8-9周(全职)或3-4个月(兼职)

森林火灾 RGB-红外配准论文:完整实验流程重构

核心定位

这篇论文不能再写成“跑了 B8/B9/B11,然后在 1116 上统计通过率”。新的主线应该是:

原始双光图像为什么不对齐
↓
用双模态标定板建立初配准
↓
用语义区域引导精配准
↓
用 ECC 做逐图微调
↓
用实例级残差修正小目标
↓
用定量、定性、消融、端侧部署证明方法有效

论文要从工程日志改成标准方法论文。1116 只是 FFVI3083 中划分出的最终测试子集,不是额外独立数据集,也不能写成 3083 + 1116。

1. 数据获取与原始问题展示

这一部分回答三个问题:

生图在哪里?
为什么需要配准?
不同设备的 RGB 和红外为什么不能直接叠加?

1.1 原始双光图像采集

数据来源包括多种双光设备或平台:

M300 / Mavic2 / 海康双光 / SC-DM13 / 预二设备

每种设备都要展示一组原始图:

第一列:RGB 原图
第二列:IR 原图
第三列:RGB-IR 直接叠加图

图注要突出三类不一致:

1. 尺度不一致:RGB 分辨率高,红外分辨率低。
2. 视场不一致:两个相机的视角和安装位置不同。
3. 设备偏移规律不一致:有的向左偏,有的向下偏,有的存在尺度拉伸。

这张图的作用是告诉审稿人:原始双光图确实不能直接用于火区和消防员空间关系判断,所以配准是必要步骤。

1.2 数据集口径

正确写法:

FFVI3083 数据集共包含 3083 对 RGB-红外图像。其中一部分用于训练语义检测器、方法开发和参数确定;其中 1116 对作为最终保留测试子集,不参与检测器训练和参数调节,只用于最终推理验证。

不要写:

3083 + 1116

更准确的叫法:

1116 held-out test subset
1116 保留测试子集
最终测试子集

它可以说“独立于训练过程”,但不能说成独立于 FFVI3083 总数据集的外部独立数据集。

2. 初配准准备实验

初配准是整个流程的几何起点,需要明确说明其来源、计算过程与验证方式。 建议写成以下 5 小节:

2.1 双模态标定板设计
2.2 多距离多点拍摄
2.3 对应点提取
2.4 初始变换矩阵或查表生成
2.5 裁剪与统一尺度

2.1 双模态标定板设计

这部分是一个小工作量,必须展现出来。 写法:

本文设计双模态标定板,使同一物理标定点能够同时在可见光图像和红外图像中被检测。标定点由可见光 LED 发光点和红外发热点组成,二者在空间上重叠或保持固定相对位置。RGB 图像中提取 LED 亮点中心,红外图像中提取热源中心,由此形成 RGB-IR 对应点。

需要画标定板示意图:

RGB 视角:LED 亮点
IR 视角:热源亮点

或者画成:

同一标定点
├── 可见光:LED 发光点
└── 红外:发热点

图名:

图 X 双模态标定板结构示意图

图注:

标定点同时包含可见光发光特征和红外热特征,用于建立 RGB 与红外图像之间的对应关系。

2.2 多距离多点拍摄

当前记录使用蒋志在教室采集的图像作为初步样本,并按 1、2、3、4、5 五个距离档位整理;后续补拍森林或室外样本时,应以同一采集规范替换并重新记录结果。

距离档位 场景类型 采集内容 作用
A 近距离 标定板 + 室内背景 近距离偏移估计
B 中近距离 标定板 + 人员 常规偏移估计
C 中距离 标定板 + 复杂背景 坐标换算拟合
D 中远距离 标定板 + 小目标 小目标偏移验证
E 远距离 室外/森林背景 远距离泛化验证
数量应区分“图像组数”和“对应点总数”,避免将 39 组图像误写成 390 张图像。例如: ```plain text 本文共采集 39 组双模态标定图像,并在每组图像中提取多个标定点,累计获得约 390 个 RGB-IR 对应点。 ``` ### 2.3 对应点提取 写法: ```plain text 对每组标定图像,分别提取 RGB 图像中的 LED 中心点和红外图像中的热源中心点。设第 i 个红外标定点坐标为 (x_i^ir, y_i^ir),对应 RGB 标定点坐标为 (x_i^rgb, y_i^rgb),则每组图像可得到若干 RGB-IR 坐标对应关系。 ``` 需要配图: ```plain text 左:RGB 标定点提取 右:IR 标定点提取 中间:对应点连线 ``` ### 2.4 初始变换矩阵或查表生成 公式不要复杂,先用仿射矩阵。 ```plain text [x_rgb, y_rgb, 1]^T = H0 [x_ir, y_ir, 1]^T ``` 其中: ```plain text H0 = [a b tx c d ty 0 0 1] ``` 解释: ```plain text a、b、c、d 表示尺度、旋转和轻微剪切关系,tx、ty 表示两模态之间的平移偏移。 ``` 如果不同距离下偏移不同,就用查表: ```plain text H0 = Lookup(d) ```
距离档位 tx ty sx sy 初始矩阵
--- ---: ---: ---: ---: ---
A 未测量 未测量 未测量 未测量 HA
B 未测量 未测量 未测量 未测量 HB
C 未测量 未测量 未测量 未测量 HC
D 未测量 未测量 未测量 未测量 HD
E 未测量 未测量 未测量 未测量 HE
公式是理论表达,查表是工程实现。 ### 2.5 裁剪与统一尺度 初配准后会有黑边和无效区域,需要裁剪。 写法: ```plain text 初始变换后,红外图像被映射到 RGB 坐标系,但边界区域可能出现无效黑边。本文根据有效重叠区域裁剪图像,并统一输出尺寸,用于后续语义检测、ECC 精配准和定量评价。 ``` 裁剪的作用: ```plain text 1. 减少无效黑边对配准指标的干扰。 2. 减少后续搜索范围,提高 FPS。 ``` --- ## 3. 完整方法流程 方法章节统一写为 4 个阶段;早期工程编号 B8/B9/B11 仅在首次出现时作为历史对照。 ```plain text 阶段一:初始坐标换算 阶段二:语义区域构建 阶段三:语义引导 ECC 精配准 阶段四:实例级残差校正与有效性判断 ``` 工程编号可以删掉,最多第一次括号说明“早期工程实现中对应 B8/B9/B11”。 ### 阶段一:初始坐标换算 输入: ```plain text 原始 RGB 图像 原始 IR 图像 标定查表或初始矩阵 H0 ``` 输出: ```plain text 粗配准后的 IR 图像 统一尺度的 RGB-IR 图像对 ``` 目的: ```plain text 解决设备级固定偏移和尺度差异。 减少后续精配准搜索范围。 提高整体 FPS。 ``` 理论依据: ```plain text 利用标定板对应点估计初始仿射变换。 ``` 消融时可以取消它,看计算量和 FPS 是否变差。 ### 阶段二:语义区域构建 不要写“标签引导”,写“语义引导”。 输入: ```plain text RGB 图像 语义检测器或多边形标注 ``` 输出: ```plain text fire ROI firefighter ROI smoke ROI semantic mask ``` 写法: ```plain text 本文中的语义引导不是简单类别标签,而是将火区、消防员和烟雾等具有明确物理意义的区域以多边形或 ROI 形式显式表示。火区提供热源锚点,消防员提供救援主体约束,烟雾提供遮挡环境信息。 ``` 需要放示意图: ```plain text RGB 原图 火区多边形 消防员多边形 烟雾多边形 最终语义 ROI mask ``` 如果用了 YOLO 训练检测器,这一节要说明检测器输出怎么变成语义区域。 ### 阶段三:语义引导 ECC 精配准 要解释为什么选 ECC: ```plain text RGB 与红外虽然灰度分布不同,但火区轮廓、人员边缘和局部结构在两种模态中仍具有一定相关性。ECC 通过最大化增强相关系数估计几何变换,能够在亮度差异存在时利用结构相似性完成配准。 ``` 公式: ```plain text H* = argmax ECC(I_rgb(R), Warp(I_ir, H)(R)) ``` 其中: ```plain text R 表示由火区、消防员和烟雾构成的语义 ROI。 H 表示待优化的几何变换矩阵。 ``` 目的: ```plain text 不是全图配准,而是在语义区域内精配准。 避免背景纹理、大面积火光或黑边主导配准。 ``` 输出: ```plain text 精配准矩阵 H* 精配准后的 IR 图像 语义区域内的相似性指标 ``` 消融时取消 ECC,观察仅靠初配准和语义区域时是否只能粗对齐。 ### 阶段四:实例级残差校正与有效性判断 这一阶段可以把原来的 IRR 和 SSG 简化合并。 输入: ```plain text 语义引导 ECC 后的配准图 消防员实例区域 火区区域 边界黑区信息 ``` 操作: ```plain text 对消防员实例附近做小范围局部搜索。 修正全局矩阵无法解决的小目标偏移。 判断火区、人员、方向、边界黑区是否合理。 ``` 目的: ```plain text 全局配准可能让火区对齐,但消防员小目标仍然偏移。 实例残差用于提升救援主体的一致性。 有效性判断用于过滤方向错误、黑边过大或主体关系异常的结果。 ``` 输出: ```plain text 最终配准图 火区一致性 人员一致性 边界黑区标记 有效/无效判断 ``` 消融时取消这一阶段,看消防员主体一致性是否下降。 --- ## 4. 训练设置 只要用了语义检测器,就必须写训练参数。这里训练的主要是 fire / firefighter / smoke 语义检测器,不是训练配准网络。 如果最终仍使用当前配置,可以写:
参数 设置
检测模型 YOLOv8n
预训练权重 yolov8n.pt(Ultralytics 预训练权重)
输入尺寸 960 × 960
Batch size 8
Epochs 100
类别 fire / firefighter / smoke
训练集 non1116 train
验证集 non1116 dev_val
测试集 1116 held-out test subset
优化器 按 YOLO 默认配置,最终补真实设置
数据增强 按 YOLO 默认配置,最终补真实设置
如果最终换成 YOLOv11 或别的版本,必须改成真实配置。 需要写清楚: ```plain text 1116 不参与检测器训练,不参与参数调节,只用于最终测试。 ``` --- ## 5. 实验环境 实验章节开头先写环境。表中“未记录”表示尚未完成记录,不构成实验结论;补齐后应同时记录软件版本、硬件型号和日期。
项目 配置
操作系统 Ubuntu / Windows
CPU 未记录
GPU RTX 5080 / 真实实验 GPU
内存 未记录
Python 未记录
OpenCV 未记录
PyTorch 未记录
CUDA 未记录
写法: ```plain text 数据整理与可视化检查在 Windows 环境下完成,模型训练与配准实验在 Ubuntu 工作站上完成。 ``` 如果部署到 RDK X5,也单独写一张部署环境表。 --- ## 6. 评价指标 指标不要只写 semantic_uob。要写成通用指标 + 语义指标 + 效率指标。 ### 6.1 像素相关性指标 最重要的是相关性: ```plain text NCC:归一化互相关 MI:互信息 ECC:增强相关系数 ``` 作用: ```plain text 衡量 RGB 与 IR 配准后在像素或结构上的相关程度。 ``` ### 6.2 边缘/重影指标 重影可以用边缘指标体现: ```plain text Gradient NCC Edge Correlation Edge Overlap Laplacian variance / Tenengrad 清晰度 ``` 解释: ```plain text 配准不好时,叠加图中边缘会出现双边缘和重影;配准后边缘响应更集中,边缘相关性更高。 ``` ### 6.3 语义主体一致性指标 这是论文特色: ```plain text fire_ok:火区是否对齐 firefighter_ok:消防员是否对齐 all_firefighter_ok:全部消防员是否保持一致 visual usability:人工目视可判读比例 ``` ### 6.4 效率指标 用于端侧部署: ```plain text 平均处理时间 / ms FPS 显存 / 内存占用 ``` 最终指标表可以是:
指标类别 指标 含义
像素相关 NCC 衡量两图相关性
信息一致性 MI 衡量跨模态信息一致性
优化目标 ECC 衡量增强相关系数
边缘重影 Grad-NCC / Edge Corr 衡量边缘是否重合
语义主体 fire/person consistency 衡量火区和人员是否对齐
效率 Time / FPS 衡量部署潜力

6.5 论文指标口径

论文表格中的指标统一按下面的口径解释,避免把“指标”和“方法”混在一起:

  • Usable registration rate (%):EdgeF1@3 > 0.3 的样本比例,即达到可接受边缘对齐标准的图像对占比。
  • Time (s):处理一对图像所需的运行时间,反映方法的效率。
  • MI ↑:互信息(Mutual Information)评价值,衡量配准后跨模态图像的统计一致性;这里是评价指标,不是方法名称。
  • EdgeF1@3 ↑:3 px 容差内的边缘对齐 F1 分数,综合 precision 与 recall,越高越好;它也是 usable rate 的判定依据。
  • Chamfer ↓ (px):两组边缘/轮廓点之间的平均最近距离,越低表示边界越贴合。
  • Landmark RMSE:每张图选取 10 个人工对应点,先计算该图的 RMSE,再在 50 张图的 per-image RMSE 分布上报告 Mean、Median 和 P95。计算方式为 RMSE_image = sqrt((1/N) * Σ d_i²), N = 10;P95 是分布统计量,不是另一种 RMSE 算法。该指标用于比较模块能力,不作为 usable/pass-fail 门槛。

论文中的实验组和历史结果仍保留在论文:术语与早期实验设计,当前工程验收统一使用本节口径。


7. 主实验

主实验应按完整流程运行一遍,并保存中间结果与最终指标。 输入:

RGB/IR 原始图像

流程:

初始坐标换算
↓
裁剪统一尺度
↓
语义检测器提取 fire / firefighter / smoke
↓
语义 ROI 构建
↓
语义引导 ECC 精配准
↓
实例级残差校正
↓
有效性判断

主表不要一上来写复杂门控字段,建议这样:

方法阶段 NCC ↑ MI ↑ Edge Corr ↑ fire_ok ↑ firefighter_ok ↑ Time/ms ↓ FPS ↑
--- ---: ---: ---: ---: ---: ---: ---:
原始未配准 - -
初配准
语义引导 ECC
完整方法
已有 1116 结果可以作为补充结果表,但不要替代这个主表。 --- ## 8. 与现有方法定量比较 baseline 可以保留: ```plain text SIFT+RANSAC ORB+RANSAC AKAZE+RANSAC ECC SuperPoint+LightGlue DISK+LightGlue LoFTR XoFTR Ours ``` 表格:
方法 NCC ↑ MI ↑ Edge Corr ↑ fire_ok ↑ firefighter_ok ↑ Time/ms ↓ FPS ↑
--- ---: ---: ---: ---: ---: ---: ---:
SIFT+RANSAC
ORB+RANSAC
AKAZE+RANSAC
ECC
LoFTR
XoFTR
Ours
公平性要求: ```plain text 同一输入图像 同一裁剪尺度 同一评价指标 同一测试划分 同一失败统计口径 ``` 不要拿不同数据、不同口径的历史结果混着比。 --- ## 9. 定性比较 必须给叠加图。 每组样例建议这样排: ```plain text 第 1 行:RGB 原图 第 2 行:IR 原图 第 3 行:未配准直接叠加 第 4 行:初配准后叠加 第 5 行:完整方法配准后叠加 第 6 行:局部放大图 ``` 如果要对比多个方法,可以列成: ```plain text 列 1:未配准 列 2:SIFT 列 3:ECC 列 4:LoFTR 列 5:Ours ``` 图注重点: ```plain text 未配准叠加图中火区和消防员边缘存在明显错位;传统方法在烟雾、火光和植被背景下容易出现局部偏移;本文方法经过初配准、语义引导和实例残差修正后,火区与消防员主体重影明显减小。 ``` --- ## 10. 消融实验 消融必须每次只去掉一个关键模块,不能一下去掉多个。
配置 初配准 语义引导 ECC 精配准 实例残差/有效性判断 NCC ↑ MI ↑ Edge Corr ↑ fire_ok ↑ firefighter_ok ↑ FPS ↑
--- --- --- --- --- ---: ---: ---: ---: ---: ---:
原始未配准 × × × × -
w/o 初配准 × √ √ √
w/o 语义引导 √ × √ √
w/o ECC √ √ × √
w/o 实例残差 √ √ √ ×
Ours √ √ √ √
每个消融解释: ```plain text w/o 初配准:搜索范围变大,计算量上升,FPS 下降,容易陷入局部错误。 w/o 语义引导:全图纹理、植被、火光可能主导配准,火区和消防员关系不稳定。 w/o ECC:只有粗配准,难以完成逐图微调。 w/o 实例残差:火区可能对齐,但消防员小目标仍然偏移。 ``` 要体现主次: ```plain text 语义引导可能是主模块,取消后性能明显下降; 实例残差是提升模块,取消后总体还能跑,但消防员指标下降; 初配准是效率模块,取消后 FPS 降低、稳定性变差。 ``` --- ## 11. 1116 测试子集放置方式 推荐写法: ```plain text 为进一步验证完整流程在未参与训练和调参样本上的效果,本文使用 FFVI3083 中划分出的 1116 对保留测试子集进行最终推理测试。该子集不参与语义检测器训练、标定参数估计和方法阈值调整,仅用于完整流程的最终评价。 ``` 如果定量定性比较需要体现泛化: ```plain text 主定量/定性比较:选取不同设备、不同场景、不同距离的测试样本。 1116 测试子集:放在最终大规模推理或部署实验部分。 ``` --- ## 12. 端侧部署实验 端侧部署用于验证方法在低算力设备上的可运行性和实时性,不能与离线精度结果混为一谈。 本次部署实验不接入实时摄像头,而是直接读取已有 RGB-IR 图像对进行测试;若后续接入摄像头,应另行记录采集延迟与丢帧率。 实验流程: ```plain text 把完整流程部署到 RDK X5 / 低算力开发板 ↓ 读取测试图像对 ↓ 执行初配准、裁剪、语义区域、ECC、残差修正 ↓ 统计单对图像处理时间 ↓ 计算 FPS ``` 表格:
平台 输入尺寸 平均时间/ms FPS 内存占用 说明
--- ---: ---: ---: ---: ---
RTX 工作站 主实验平台
RDK X5 / RK 板 端侧测试
CPU only 低算力参考
写法: ```plain text 该实验不依赖实时摄像头输入,而是使用已有测试图像进行离线推理,用于评估方法在森林防火双光设备端侧实时处理中的部署潜力。 ``` highlight: ```plain text 本文方法不仅完成算法验证,还进一步在低算力开发板上测试运行效率,证明其具备端侧实时双光配准的应用潜力。 ``` --- ## 13. 最终论文图表清单 ### 必备图 ```plain text 图 1:原始双光图像不对齐示例 图 2:双模态标定板结构示意图 图 3:五个距离档位标定图像 图 4:整体方法流程图 图 5:语义区域构建示意图 图 6:未配准/初配准/完整配准叠加对比 图 7:不同方法定性对比图 图 8:消融实验可视化 图 9:端侧部署流程图 ``` ### 必备表 ```plain text 表 1:采集设备与图像分辨率 表 2:多距离标定设置 表 3:初始坐标换算参数/查表 表 4:训练数据划分 表 5:检测器训练参数 表 6:实验环境 表 7:评价指标定义 表 8:主实验结果 表 9:与现有方法定量比较 表 10:消融实验 表 11:端侧运行效率 ``` --- ## 14. 实际执行顺序 ```plain text 1. 整理原始 RGB/IR 生图,做“不配准为什么不行”的展示图。 2. 整理蒋志教室里的标定板图,先做 5 个距离档位占位图。 3. 画双模态标定板示意图:LED 发光点 + 红外发热点。 4. 写初始坐标换算公式 H0 或距离查表 Lookup(d)。 5. 明确裁剪和统一尺度流程。 6. 整理语义检测器训练参数表。 7. 重新跑或统计 NCC、MI、ECC、Edge Corr、fire/person 一致性、FPS。 8. 做主实验表。 9. 做 SIFT/ORB/AKAZE/ECC/LoFTR/XoFTR 对比表。 10. 做未配准、初配准、完整方法的叠加图。 11. 做消融实验:一次只去掉一个模块。 12. 用 1116 held-out test subset 做最终大规模推理或部署测试。 13. 在 RDK X5 / 低算力板上离线跑图像,测平均时间和 FPS。 ``` 最终目标: ```plain text 把论文改成一个从双模态标定板初配准,到语义引导 ECC 精配准,再到实例级残差修正,最后能够端侧部署的完整森林火灾 RGB-红外配准流程。 ```

15. 阶段运行记录:2026-05-23

15.1 环境自检

在 5080 工作站运行实验前,先确认关键依赖可导入;其中 PyTorch 版本和 CUDA 状态使用合法属性名读取:

python -c "import cv2; print('cv2 ok')"
python -c "import matplotlib._path; print('matplotlib ok')"
python -c "import pandas; print('pandas ok')"
python -c "import pytorch_lightning; print('pl ok')"
python -c "import torch; print(torch.__version__, torch.cuda.is_available())"

GPU 运行期间可用 nvtop 或 watch -n 1 nvidia-smi 观察显存、利用率和温度。环境检查只验证运行条件,不代表配准质量已经达标。

15.2 B5 闭环的耗时来源

这次运行的 B5_label_guided_semantic_residual_fusion 不是单次 XoFTR 配准,而是“粗配准—语义约束—残差修正—质量选择”的闭环。主要开销来自:

  1. 每对图像先运行 XoFTR 全局匹配,得到粗配准候选;
  2. 在候选附近进行局部残差搜索,枚举多个 dx/dy;
  3. 对每个候选执行 warp、语义质量、黑边、方向合法性检查并排序;
  4. 保存 overlay、checkerboard、registered 等中间证据,产生额外 I/O。

因此日志中的 [13/1967] 表示正在处理完整 3083-non-1116 的第 13 对,总量是 1967 对,并不是只处理 100 对。目录名 b5_non1116_head100_v5 属于旧命名,不能据此判断当前 manifest 的规模。

2026.5.23配准日志-01.png

15.3 记录的结论边界

  • “GPU 吃算力”是该闭环包含全局匹配、残差搜索和多指标筛选的正常现象;不能仅凭 GPU 利用率判断算法是否正确。
  • 处理进度、显存和 I/O 只说明运行状态;最终是否可用仍以 EdgeF1、Chamfer、MI、语义一致性和失败率等指标为准。
  • 该阶段记录用于解释历史运行,不改变当前正式流程的尺寸、坐标和测试集口径。