高通导航器软件开发包使用指南(16)

10 基于视觉的应用

本章进一步详细介绍了与 Qualcomm Navigator 集成的基于视觉的应用程序。

10.1 光流(DFT)

要进入依赖于光流的任何模式,snav_dft_app 必须在应用程序处理器上运行。 此应用程序从相机驱动程序获取帧数据,处理帧上的光流,并将结果数据传递给飞行控制器的 Qualcomm Navigator。

运行以下命令将 Qualcomm Navigator 配置为使用 Optic Flow:
$ sudo /etc/snav/configure_dft.sh

Qualcomm Navigator 在向下摄像头上启用 Optic Flow 的情况下重新启动。
查看所有可用选项:
$ sudo /etc/snav/configure_dft.sh -h

警告:光流 (DFT) 仅支持朝下的相机。 不要尝试在相机倾斜 45 度的情况下运行此过程。

注意:光流 (DFT) 仅支持具有工作声纳的飞行器。

默认启用相机参数调整,因此相机曝光和增益会在运行时根据环境进行调整。 因此,飞行器可以在不同的照明场景下以光流飞行,从昏暗的室内照明到明亮的室外阳光。 当飞越纹理非常少的表面时,性能可能会下降。

10.2 视觉惯性里程计(VIO)

要进入 VIO 模式,snav_dft_vio_app 必须在应用程序处理器上运行。 此应用程序从相机驱动程序获取帧数据,处理帧上的 VIO 数据,并将结果数据传递给飞控的 Qualcomm Navigator。

运行以下命令将 Qualcomm Navigator 配置为使用 VIO:
$ sudo /etc/snav/configure_vio.sh

Qualcomm Navigator 在向下倾斜 45 度的摄像头上启用 VIO 后重新启动。

查看所有可用选项:
$ sudo /etc/snav/configure_vio.sh -h
通过运行以下命令,可以在严格朝下的相机上使用 VIO:
$ sudo /etc/snav/configure_vio.sh -c downward

注意:使用倾斜 45 度的向下摄像头时,VIO 性能会提高。

默认启用相机参数调整,因此相机曝光和增益会在运行时根据环境进行调整。 因此,从昏暗的室内照明到明亮的室外阳光,飞行器可以在不同的照明场景下与 VIO 一起飞行。 当飞越纹理非常少的表面时,性能可能会下降。

警告:在尝试以 VIO 模式飞行之前,请确保通过 /etc/snav/mount.snav_dft_vio_app.xml 中的参数准确捕获相机和 IMU 之间的平移和旋转。 该文件是为 VIO 配置系统时设置的符号链接。

注意:VIO 是在为 8x96 板安装 Qualcomm Navigator 时自动配置的。

10.3 视觉避障(VOA)

要使用 VOA,snav_voa_app 必须在应用程序处理器上运行。 此外,此应用程序依赖于来自 VIO 的有效姿态估计,因此 snav_dft_vio_app 也必须在应用程序处理器上运行。 VOA 应用程序从立体相机接收图像并计算深度估计。 生成的深度图和来自 VIO 的姿势用于确定在障碍物附近导航时的安全速度。

运行以下命令将 Qualcomm Navigator 配置为使用 VOA:
$ sudo /etc/snav/configure_voa.sh

Qualcomm Navigator 重新启动,并在倾斜 45 度的向下摄像头上启用 VOA 处理立体图像和 VIO。
查看所有可用选项:
$ sudo /etc/snav/configure_voa.sh -h

通过运行以下命令,可以在严格朝下的相机上使用 VOA 和 VIO:
$ sudo /etc/snav/configure_voa.sh -c downward

注意:使用倾斜 45 度的向下摄像头时,VIO 性能会提高。

警告:VOA 需要准确的立体声校准。 在未先执行充分的立体相机校准之前,请勿尝试运行此应用程序。 校准后,使用校准参数编辑 /etc/snav/app_params.snav_voa_app.xml 和/或 /etc/snav/calibration.stereo.xml。

10.4 视觉相关应用的参数

Qualcomm Navigator有多个视觉相关的应用,包括snav_dft_app、snav_dft_vio_app、snav_voa_app。 这些应用程序具有相应的参数文件,用于设置与每个应用程序关联的参数,位于 /etc/snav/app_params.<app_name>.xml 中。

10.4.1 一般应用参数

  • enable_dft 启用 (1) 或禁用 (0) DFT
  • enable_vio 启用 (1) 或禁用 (0) VIO
  • enable_srw_writer 启用 (1) 或禁用 (0) 记录图像序列。 请参阅第 3.1.2 节。

10.4.2 DFT 特有的参数

  • mv_dft_max_nr – 强制作为光流输入的特征的最大数量。 更多功能提供更高的稳定性,但运行速度更慢。
  • mv_dft_min_nr – 强制作为光流输入的最小特征数。 较少的特征会导致纹理较差区域的稳定性降低。

10.4.3 特定于 VIO 的参数

这些参数将在稍后记录。

10.4.4 VOA 特有的参数

这些参数将在稍后记录。

10.4.5 相机配置参数

以下参数可在相应的相机文件 /etc/snav/camera.<camera_name>.xml 中找到。

  • pixel_width – 用于配置的相机分辨率宽度。
  • pixel_height – 用于配置的相机分辨率高度。
  • memory_stride – 用于配置的相机图像步幅。
  • fps – 每秒帧数。
  • default_exposure – 归一化到 [0.0, 1.0] 的范围。
  • default_gain – 归一化到 [0.0, 1.0] 的范围。
    以下参数与自动相机参数调整(CPA)有关。
  • enable_cpa – 启用 (1) 或禁用 (0) CPA 过程。
  • mv_cpa_type – Legacy (0) or cost-based (1).
  • mv_cpa_filter_size – 用于曝光和增益变化的内部过滤器尺寸(过滤器尺寸越大,收敛越慢(0 = 无过滤))。
  • mv_cpa_exposure_cost – 增加曝光的代价。
  • mv_cpa_gain_cost – 增加增益的代价。

增益代价和曝光代价的总和影响亮度代价的加权程度。 MV SDK 为基于代价的方法定义了如下指南:

  • 如果增益代价加上曝光代价大于 1.0,则最小化增益和曝光值的权重高于亮度目标。
  • 如果总和小于1.0,则亮度目标的权重更高。
    mv_cpa_gain_cost 和 mv_cpa_exposure_cost 的比率是增益值和曝光值之间的比率。

10.4.6 相机标定参数

这些参数位于相应的校准文件 /etc/snav/calibration.<camera_name>.xml 中。

  • calib_pixel_width – 用于校准的相机分辨率宽度。
  • calib_pixel_height – 用于校准的相机分辨率高度。
  • calib_memory_stride – 用于校准的相机图像步幅。
  • principal_point_x – X 轴上的相机主点偏移。
  • principal_point_y – Y 轴上的相机主点偏移。
  • focal_length_x – X 轴上的相机焦距(以像素为单位)。
  • focal_length_y – Y 轴上的相机焦距(以像素为单位)。
  • distortion_model – 无 (0)、多项式模型(4、5、8)或鱼眼模型 (10)。
  • distortion_<0-7> – 失真系数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值