前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自动驾驶中基于光流的运动物体检测

自动驾驶中基于光流的运动物体检测

作者头像
点云PCL博主
发布2022-09-13 18:18:29
1.4K0
发布2022-09-13 18:18:29
举报
文章被收录于专栏:点云PCL点云PCL

文章:Optical Flow Based Motion Detection for Autonomous Driving

作者:Ka Man Lo

编译:点云PCL

代码:https://github.com/kamanphoebe/MotionDetection

来源:arXiv 2022

欢迎各位加入免费知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。未经博主同意请勿擅自转载。

简介

运动物体的检测是自动驾驶的一项基本且具有挑战性的任务,在高速公路等特殊场景中,为了更好地控制决策,必须对远处的对象给予一定的关注度,针对远距离车辆,我们训练了一个神经网络模型,以光流场信息为输入对运动状态进行分类,实验结果具有较高的精度,并表明我们的想法是可行的和有前途的,经过训练的模型还实现了附近车辆的可接受性能。我们的工作在PyTorch中实现。使用开放式工具和数据集包括nuScenes、FastFlowNet和RAFT。

视频演示:http://mpvideo.qpic.cn/0bc3imaayaaaluahnwqp4frvaq6dbrbqadaa.f10002.mp4?

基本介绍

运动检测或者运动物体检测是一种计算机视觉相关技术,用于检测物体相对于其背景的物理运动,它广泛应用于各个领域,在自动驾驶方面也发挥着关键作用,为了在驾驶过程中制定更好的规划控制,车辆需要很好地监控路况,对于允许高速行驶的场景,如高速公路或普通道路,需要仔细检查远处的环境。然而,激光雷达和雷达传感器的感知范围并不总是远到足以覆盖远距离目标,因此,在这些情况下,应采用基于计算机视觉的方法,传统的运动检测方法依赖于帧之间的像素差,因此,检测远距离运动,尤其是径向运动,是一个具有挑战性的问题,因为它们通常只是几个像素的变化。

光流估计是运动检测任务中用于提供速度信息的常用技术,它是基于亮度恒定约束计算的,假设两个连续帧的时间戳足够接近,使得真实世界中相同位置的亮度保持不变,在本文中,我们使用不同的算法从nuScenes数据集获取30至70米范围内车辆的光流场信息,并将其作为输入输入到神经网络ResNet18,然后,模型输出运动状态的两种预测,即静止或移动,实验表明,运动目标检测成功,准确率高,还使用训练的模型来推断附近的车辆,并获得合理的精度。

FastFlowNet和RAFT在估计光流场方面分别实现了最先进的速度和精度,FastFlowNet比RAFT快10倍,而RAFT在KITTI数据集上的F1误差为5.10%,仅为FastFlow Net值的一半,所以在我们的工作中使用了这两种算法并进行了比较。图1描述了使用相同原始图像对的FastFlowNet和RAFT的示例。

图1:nuScenes数据集上的光流预测示例,从左到右:关键帧对的前一个原始图像,FastFlowNet和RAFT的流动可视化。

主要内容

A、框架介绍

此项工作框架概述如下

  • 从nuScenes中选择包含目标车辆的关键帧信息
  • 通过FastFlowNet或RAFT为所有关键帧对生成光流场
  • 通过估计对象的速度将对象标记为静止或移动
  • 在一些预处理之后,提取修改后的2D边界框内的对象的光流信息,并将其输入到神经网络中
  • 使用ResNet18从头开始训练二进制分类器,并对层进行一些必要的调整。

B、 标签

在每个标签中记录2D边界框和是否运动真值数据,前者由坐标xmin、xmax、ymin和ymax标记,通过选取x和y的最小值和最大值,从原始三维边界框的八个角简单地推导出,运动真值基于以下计算的速度确定:

这里的𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛 相对于全局坐标系给出,如果速度的绝对值≥ 2 m/s,则对象被标记为移动否则即为静止状态。

C、 数据预处理

为了确定物体是否在移动,不仅需要物体本身的光流信息,还需要周围背景的光流,因此,在输入到网络之前,必须对2D边界框进行一些预处理,如框架中的第四步所述,首先,将长方体重塑为边长为正方形𝑚𝑎𝑥(𝑤𝑖𝑑𝑡ℎ, ℎ𝑒𝑖𝑔ℎ𝑡). 如果需要的话,将框框的边长增加三倍,用边值填充框,最后,切断方框外的数据,并使用双线性插值将其调整为224×224。

实验

A、 数据集

我们的模型在过滤后的nuScenes数据集上进行训练和评估,nuScenes包括1000个不同的场景,涵盖不同的地点、时间和天气条件,为了简单起见,这里排除了“夜”、“雨”和“闪电”的场景,因此保留了604个场景,然后,通过收集关键帧数据,这些关键帧包含特定距离和可见性范围内的七种车辆中的任何一种,如表1所示。

然后,通过FastFlowNet或RAFT计算帧对的光流场,并保存为.npy文件,结果总共获得了18460个对象,其中16467个用作训练集,1993个用于评估,考虑到数据量相当小,执行概率为0.5的随机水平翻转以进行数据增强。

B、 深度学习方案

使用的模型架构为ResNet18,然而,由于输入不是RGB图像的形式,我们必须从头开始训练模型,而不是应用预训练模型,因此,第一卷积层的输出信道数被修改为64,以使网络适应我们的输入,最终输出的大小也更改为1,该值应为[0,1]内的数字,如果输出值大于0.5,则对象将被分类为移动,否则它将静止,模型结构的其余部分保持不变,表2列出了超参数的设置。

C、 实验结果

我们的模型的精度大于90%,如表3所示。

使用FastFlowNet输入训练的模型出乎意料地具有比使用RAFT生成的输入训练的更好的性能,这实现了最先进的光流估计精度,请注意,直接将我们的结果与其他运动检测方法进行比较是不公平的,因为我们简化了很多数据,尽管如此,这些实验结果仍然反映了我们工作理念的可行性,预测是可视化的,以便直观了解模型性能。图2描述了几种正确和不正确的推论。

图2:使用FastFlowNet输入训练的模型进行推理可视化,蓝色框和红色框分别表示静止和移动对象,这些是广义数据集的帧,因此也会检测到附近的对象。

这里总结了错误分类的两个主要原因:

• 远程或慢速物体的光流不明显,由于视觉世界中距离的微小差异,这些类型的对象总是很难处理,因此不明显的移动物体会混淆网络。

• 受背景或前景影响,周围流量信息也包括在输入中,因此,当涉及其他对象时,可能会产生错误检测。

D、 概括

通过添加nuScenes中的非关键帧和附近对象来扩展过滤后的数据集进行推理,如表4所示在广义数据集上评估的定量性能,展示了在KITTI上训练光流算法的预训练模型。

总结

本文通过将光流信息输入到神经网络中,研究了带标签的远处车辆的二种运动分类的效果,实验结果表明,我们的模型能够成功完成对运动物体的检测,并且说明了我们的想法的是具有一定的潜力的。对于无法正确判断的移动物的情况主要是由于不明显的光流和误导性的流动的环境信息信息造成的。但是我们的训练的模型不太适用于附近的对象,但如果用它们训练模型,性能可能会显著提高,我们的工作仍有很大的改进余地:

  • 改进对过滤数据的规则比较严格,以适应具体应用
  • 从头开始训练光流模型(通过自监督学习),而不是应用预训练模型
  • 构建端到端分类网络体系结构,使生成光流场的中间阶段成为隐式的。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 点云PCL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档