一、轻量化部署方向工作总结#
1、研究动机#
在前期实验中,基于 RAFT-Stereo 的 refinement head、边缘感知损失以及 partial unfreeze 等改进方法,并未在 Middlebury 数据集上取得稳定、显著的精度提升,说明原始 raftstereo-middlebury 模型本身已经具有较强性能,小规模真实域数据下难以通过小幅结构改动进一步提升整体指标。
因此,后续工作将研究重点由“继续提升精度”转向“在尽量保持精度的前提下降低模型部署开销”,即探索 RAFT-Stereo 在边缘设备上的轻量化部署方案。
2、轻量化研究思路#
本阶段主要围绕以下两个方向展开:
(1)、官方轻量模型对比:realtime 版本#
首先,选择官方提供的 raftstereo-realtime.pth 作为轻量化基线模型,与高精度的 raftstereo-middlebury.pth 进行对比。该模型通过减少网络规模、降低迭代次数、共享部分骨干结构等方式提升实时性,目标是在更低资源消耗下完成双目匹配任务。
这一实验的目的在于验证:直接采用官方轻量模型,是否能够在保证可接受精度的前提下实现部署端优化。
(2)、半精度部署:FP16#
在发现 realtime 模型精度下降较明显后,进一步尝试 FP16 半精度部署方案。该方案不改变原始 RAFT-Stereo 网络结构,也不重新训练模型,而是直接将高精度的 raftstereo-middlebury.pth 转换为半精度权重模型,并在推理与评测阶段采用 FP16 进行部署测试。
这一方案的核心思想是:
- 保留原始高精度模型结构;
- 避免重新训练带来的额外成本;
- 通过降低数值精度减少模型文件大小、显存占用和推理时间;
- 在尽量保持原始精度的前提下,实现更适合边缘设备的部署形式。
3、实验设置#
(1)、模型与环境#
| 项目 | 设置 |
|---|---|
| 高精度基线模型 | RAFT-Stereo (raftstereo-middlebury.pth) |
| 轻量化对照模型 | RAFT-Stereo Realtime (raftstereo-realtime.pth) |
| 半精度模型 | RAFT-Stereo FP16 (raftstereo-middlebury-fp16.pth) |
| 推理设备 | GPU:NVIDIA 4090 |
| correlation | reg |
(2)、对比方案#
本阶段主要设置了三组对比:
- Baseline FP32:原始
raftstereo-middlebury.pth - Realtime:官方轻量化实时模型
raftstereo-realtime.pth - FP16:由
raftstereo-middlebury.pth转换得到的半精度模型raftstereo-middlebury-fp16.pth
(3)、评价维度#
为了从部署角度评价模型轻量化效果,本阶段不仅关注匹配精度,还额外统计了以下指标:
- EPE:平均像素误差
- D1:离群点比例
- 模型大小:模型文件存储开销
- Average Inference Time:平均推理时间
- FPS:每秒处理帧数
- Max CUDA Memory Allocated:推理阶段显存占用峰值
4、实验结果#
(1)、官方 realtime 模型与高精度模型对比#
| 模型 | 参数量 | EPE | D1 |
|---|---|---|---|
| RAFT-Stereo Middlebury | 11.14M | 2.3758 | 12.0526 |
| RAFT-Stereo Realtime | 9.89M | 11.1557 | 28.5460 |
从结果可以看出,官方 realtime 模型参数量相较高精度 Middlebury 模型有所减少,但在 Middlebury2014 数据集上的精度下降非常明显:
- EPE 由 2.3758 上升到 11.1557
- D1 由 12.0526 上升到 28.5460
这说明:直接采用官方轻量模型虽然能够降低模型规模,但会带来较大的精度损失,不适合作为当前任务的最终部署方案。
(2)、FP16 半精度部署结果#
| 模型 | EPE | D1 | 平均推理时间 | FPS | 最大显存占用 | 模型大小 |
|---|---|---|---|---|---|---|
| Baseline FP32 | 2.3758 | 12.0526 | 209.80 ms | 4.77 | 844.91 MB | 43 MB |
| FP16 | 2.3535 | 12.0593 | 173.59 ms | 5.76 | 662.34 MB | 22 MB |
进一步计算可得:
- 模型大小:43 MB → 22 MB,下降约 48.8%
- 显存占用:844.91 MB → 662.34 MB,下降约 21.6%
- 平均推理时间:209.80 ms → 173.59 ms,缩短约 17.3%
- FPS:4.77 → 5.76,提升约 20.8%
而在精度方面:
- EPE:2.3758 → 2.3535,基本保持一致
- D1:12.0526 → 12.0593,几乎不变
这说明:将高精度 Middlebury 模型直接转换为 FP16 半精度模型后,模型精度基本保持稳定,同时明显降低了模型存储、显存占用和推理时间。
| 原图 | baseline | fp16 |
|---|---|---|
![]() | ![]() | ![]() |
5、结果分析#
通过本阶段实验,可以得到如下分析:
a、官方 realtime 轻量模型存在明显精度代价#
虽然 realtime 模型在参数量上比高精度 Middlebury 模型更小,但在 Middlebury2014 数据集上的 EPE 和 D1 均大幅恶化,说明这种结构级轻量化方式是以显著牺牲匹配精度为代价实现的。
b、FP16 半精度部署是一种更稳妥的轻量化方式#
与直接更换轻量模型不同,FP16 方案不改变原始网络结构,因此保留了高精度模型已经学习到的匹配能力。实验表明,在几乎不损失精度的情况下,FP16 能够显著减小模型文件体积,并降低显存和时间开销。
c、对于当前任务,部署优化比结构替换更合适#
结合前面对 refinement 系列方法和 realtime 模型的实验可以看出,对于 Middlebury 这种偏高精度需求的双目匹配任务,直接替换为更小的轻量结构往往会带来较大精度损失;相比之下,在保持主模型结构不变的基础上做半精度部署,更适合作为当前阶段的轻量化方案。
6、实验结论#
通过本次轻量化部署实验,可以得到以下结论:
- 官方
raftstereo-realtime模型虽然在参数规模上更小,但在 Middlebury2014 数据集上的精度下降明显,难以满足高精度双目匹配任务需求; - 基于
raftstereo-middlebury.pth的 FP16 半精度部署方案,在不改变原始模型结构、也不重新训练的前提下,实现了模型体积、显存占用和推理时间的有效下降; - FP16 模型在 EPE 和 D1 指标上与原始 FP32 模型基本保持一致,说明其能够在较好保留模型性能的同时降低部署开销;
- 相较于直接采用官方轻量化结构,FP16 半精度部署是一种更适合当前任务场景的轻量化方法;
- 该方法工程实现成本较低,部署路径清晰,具有进一步面向边缘设备应用的可行性。
7、后续规划#
后续可以继续围绕以下方向展开:
- 在 FP16 部署基础上,进一步补充不同输入分辨率下的推理速度与显存测试;
- 尝试在 Jetson 等边缘硬件平台上验证实际部署效果;
- 进一步探索剪枝、蒸馏等轻量化方法,与 FP16 方案形成对比;
- 在保持精度的前提下,研究更适合嵌入式或低功耗场景的双目匹配部署策略。


