• 正文
    • 光流的基本概念
    • 光流和其他图像识别方法的区别
    • 光流的应用场景
  • 相关推荐
申请入驻 产业图谱

光流直观解

02/08 08:44 来源:直观解
1233
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

光流的基本概念

光流(Optical Flow)是指图像中像素或特征点在时间序列上的运动轨迹。它反映了物体在场景中的运动信息,广泛应用于计算机视觉、视频处理等领域。

光流是在连续运动的视频中识别运动物体的识别方法。

这里强调物体的运动属性(运动的影像,拖影就是流)。就像青蛙捕虫,虫子不动是不会被青蛙发现的。

光流如何在动态视频中识别出运动物体?

核心点在于,在动态视频中,运动物体的像素点的运动方式和静止物体的像素点运动方式不一样。

如果载体(无人机,车辆,船只等)本身静止不动,那么所有静止物体的像素点在第t帧和第t+1帧的位置是不变的,像素点的运动矢量(就是像素点x从第t帧位置往第t+1帧位置的有向连线)是0向量。

如果载体(无人机,车辆,船只等)本身运动,那么所有静止物体的像素点在第t帧和第t+1帧的位置会“均匀”的改变,像素点的运动矢量(就是像素点x从第t帧位置往第t+1帧位置的有向连线)是载体本身运动矢量的逆。

凡是不按上述方式运动的像素点,这些“叛逆分子”就代表运动物体。

图二中的光流,由于是全部是静物环境,所以都按相同规律超中心射影点汇聚。假设出现一些“倒行逆施”的像素点,那么它们必然是运动物体。

光流这个名字的直观记忆方法是运动拖影。虽然在现实中我们拍摄到的动态图像由于使用高速摄影机根本没有拖影。但是我们确实是使用“拖影”原理来表现光流,所谓拖影也就是前面帧和后面帧的像素位置差异。

光流和其他图像识别方法的区别

前面举例青蛙捕虫,虫子不动的话青蛙就发现不了,这是因为青蛙用光流这种方法来识别运动物体;但对于某些不依赖光流方法的捕食者,即使目标静止不动也会被发现,因为这些捕食者是依靠静态图像识别

一言以蔽之,光流是依靠连续图像的帧与帧之间像素位置变化,挑选出不符合静物特征的像素点群作为运动物体来识别。只有单帧图像时,光流无法工作。

其它图像识别算法是以单帧图像为基础来识别其中的物体。所以,直观的讲,非光流方法的图像识别可以识别不动的目标物体。

非光流方法中最有代表性的是图像语义识别。这里的语义不是说和自然语言处理有任何关系,而是说给出被识别物体的语义称谓,通俗的说就是不仅识别出物体,还识别出该物体在人类语言体系中叫什么。比如一只黄白相间圆头圆脑毛茸茸的小动物会被识别为“猫”,猫就是语义。

光流的应用场景

视频监控

1. 目标跟踪

利用光流可以直观地跟踪视频中的目标。例如在商场监控中,通过对人体特征点的光流分析,可以持续跟踪顾客的行动轨迹,无论是在平地上行走还是在上下楼梯,光流都能提供准确的运动方向和速度信息,方便安保人员监控异常行为。

2. 人群流动分析

在大型活动场所,如体育场或者演唱会现场,光流可以用来分析人群的整体流动方向和速度。通过计算大量像素或者特征点的光流,可以得到人群的动态分布情况,有助于场地管理和安全保障。

自动驾驶

1. 环境感知

车辆周围的物体运动信息对于自动驾驶至关重要。光流可以直观地提供道路标志、其他车辆和行人的运动情况。例如,通过分析路边树木或者路灯杆的光流,车辆可以判断自己的行驶速度和方向是否正确;通过跟踪其他车辆的光流矢量,可以提前做出避让或者跟车决策。

2. 视觉里程计

光流有助于计算车辆相对于周围环境的运动距离。就像我们通过观察周围景物的移动来感觉自己走了多远一样,车辆利用光流可以更精确地确定自己的行驶里程,提高导航和定位的准确性。

虽然光流有很多应用场景,在笔者的日常工作中,我们用的最多的是用光流来进行环境感知。我们结合图像语义识别和光流法来识别运动型障碍物的存在以及运动方式,再用匈牙利算法之类的匹配算法将图像语义识别和光流法分别识别到的运动障碍物一一对应起来,并剔除误识别的障碍物。这种方法也被称为“后融合”。

点赞
收藏
评论
分享
加入交流群
举报

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录