ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

DF-VO配置文件全解:dataset、depth、deep_flow、tracking六大模块一次看懂

DF-VO配置文件全解:dataset、depth、deep_flow、tracking六大模块一次看懂 DF-VO配置文件全解dataset、depth、deep_flow、tracking六大模块一次看懂【免费下载链接】DF-VODepth and Flow for Visual Odometry项目地址: https://gitcode.com/gh_mirrors/df/DF-VODF-VODepth and Flow for Visual Odometry是一个基于单目深度估计与光流网络的视觉里程计开源项目。它的全部运行行为——用哪个数据集、加载什么深度模型、选哪种跟踪器——都由 YAML 配置文件驱动。本文带你快速看懂 DF-VO 配置文件中的 dataset、depth、deep_flow、tracking 等六大核心模块只需几分钟就能自由切换数据集与网络结构。 DF-VO配置文件加载机制默认 自定义合并DF-VO 采用默认配置 自定义配置的双文件机制实现见 libs/general/configuration.py 中的ConfigLoader默认配置options/examples/default_configuration.yml包含全部参数相当于参考模板自定义配置只需写你想改动的参数未写的部分自动继承默认值运行入口为 apis/run.py# 仅用默认配置运行 python apis/run.py -d options/examples/default_configuration.yml # 默认 自定义配置合并运行-s 可临时指定序列号 python apis/run.py -d options/examples/default_configuration.yml -c options/examples/kitti_tracking.yml -s 10⚠️新手常见坑文档中若某个选项取值为None请留空该字段不要真的写上字符串None否则 YAML 会把它当成普通字符串。1️⃣ dataset 基础设置数据集、图像与目录这是配置的总开关决定了 DF-VO 处理什么数据参数含义可选值/示例dataset数据集类型kitti_odom、kitti_raw、tum-1/2/3、adelaide1/2、robotcarimage.height/width输入图像分辨率KITTI 默认 192×640image.ext图像扩展名jpg/pngTUM 用 pngseq运行的序列号10、rgbd_dataset_freiburg3_...frame_step采帧步长1逐帧TUM 示例中用5加速cam_mode相机模式mono/stereodirectory子节则负责四个路径directory: result_dir: result/tmp/0/ # 结果保存目录 img_seq_dir: dataset/kitti_odom/odom_data_jpg/ # 图像序列目录 gt_pose_dir: dataset/kitti_odom/gt_poses/ # 真值位姿可选仓库内自带00-10共11条 depth_dir: # 外部真值深度可选项目已内置 KITTI 真值位姿如 dataset/kitti_odom/gt_poses/00.txt用于轨迹评估与可视化。2️⃣ depth 深度模块单目深度估计配置DF-VO 的深度来源由depth_src控制留空 用网络预测gt 用真值深度depth: depth_src: # 留空使用单目深度网络预测 deep_depth: network: monodepth2 # 深度网络当前为 monodepth2 pretrained_model: model_zoo/depth/kitti_odom/stereo/ # depth.pth 与 encoder.pth 所在目录 max_depth: 50 # 深度截断上限米 min_depth: 0 # 深度截断下限换数据集时的典型改法见 options/examples/tum_rgbd_slam.yml网络仍为monodepth2但pretrained_model换成对应域的训练权重如model_zoo/depth/nyuv2/self_supervised/KITTI 单目场景见 options/examples/kitti_mono_sc_train_icra.yml3️⃣ deep_flow 光流模块LiteFlowNet 配置光流网络决定了像素怎么动当前版本使用 LiteFlowNetdeep_flow: network: liteflow # 光流网络可选 [liteflow] flow_net_weight: model_zoo/optical_flow/LiteFlowNet/network-default.pytorch forward_backward: True # 同时预测前/后向光流并计算前后向一致性forward_backward: True非常重要——它产生的前后向一致性误差forward-backward consistency是后续特征点筛选的核心依据。网络源码位于 libs/deep_models/flow/lite_flow_net/。4️⃣ kp_selection 对应点选择质量的隐形开关kp_selection决定从光流中挑哪些像素作为跟踪对应点。默认启用local_bestN分块局部最优参数作用默认值num_bestN选取特征点总数2000num_row / num_col图像分块行列数10×10score_method打分方式flow前后向L2差/flow_ratioflowthre光流一致性掩膜阈值0.1其他可选策略包括bestN全局最优、sampled_kp均匀采样消融实验用、rigid_flow_kp尺度恢复用。消融对比配置可参考 options/examples/ablation_correspondences_best_n.yml。5️⃣ tracking 跟踪模块hybrid、尺度恢复与 PnPtracking_method是跟踪策略的总开关hybridE-tracker PnP 混合默认或PnP。tracking_method: hybrid e_tracker: # 基于本质矩阵的相对位姿估计 ransac: reproj_thre: 0.2 # 内点重投影阈值 repeat: 5 # 重复RANSAC次数 validity: method: GRIC # E-tracker有效性判据 [flow, GRIC] kp_src: kp_best # 使用best-N选出的对应点 scale_recovery: # 单目尺度恢复核心 method: simple # [simple, iterative] ransac: method: depth_ratio # 拟合目标使三角化深度/网络深度≈1 thre: 0.1 pnp_tracker: # PnP绝对位姿跟踪 ransac: iter: 100 reproj_thre: 1三者分工E-tracker估计相对位姿 →scale_recovery用深度图恢复真实尺度 →PnP-tracker提供绝对位姿兜底。相关实现分别在 libs/tracker/E_tracker.py、libs/tracker/pnp_tracker.py 与 libs/tracker/gric.py。6️⃣ visualization 可视化与其他实验模块visualization控制运行时的仪表盘光流向量图、特征点连线、预测/真值轨迹对比、深度图显示等全部可用enable类开关精细控制。单目结果无真实尺度时可用mono_scale如 TUM 示例设为100对齐真值轨迹再作可视化。此外还有三个进阶区默认均关闭deep_pose位姿回归网络仅实验版使用stereoHD3 立体匹配网络online_finetune在线微调光流/深度网络含学习率、损失权重等 快速上手换数据集只需三步改dataset与seq如dataset: tum-1seq: rgbd_dataset_freiburg3_long_office_household改directory指向你的图像与真值位姿目录img_seq_dir、gt_pose_dir换pretrained_model选择与数据集域匹配的 model_zoo 深度权重仓库已提供多份现成范例options/examples/tum_rgbd_slam.yml、options/examples/adelaide_driving.yml、options/examples/oxford_robotcar.yml、options/examples/kitti_tracking.yml复制一份按需修改即可。 总结模块管什么新手最常改的参数dataset/directory数据从哪来dataset、seq、img_seq_dirdepth深度从哪来pretrained_model、max_depthdeep_flow光流从哪来flow_net_weight、forward_backwardkp_selection选哪些点跟踪num_bestN、thretracking位姿怎么算tracking_method、scale_recoveryvisualization结果怎么看enable、vis_gt_traj掌握以上六大模块你就能完全驾驭 DF-VO 的配置体系从 KITTI 无缝切换到 TUM、Adelaide 或任意自定义数据集。【免费下载链接】DF-VODepth and Flow for Visual Odometry项目地址: https://gitcode.com/gh_mirrors/df/DF-VO创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进