术语表

光流

探索光学流在计算机视觉中的强大功能。了解它如何估算运动、增强视频分析以及推动人工智能创新。

使用Ultralytics HUB 对YOLO 模型进行简单培训

了解更多

光流(Optical Flow)描述了视觉场景中的物体、表面和边缘因观察者(如摄像机)与场景之间的相对运动而产生的明显运动模式。它是计算机视觉(CV)中的一个基本概念,用于估计视频序列连续帧之间单个像素或特征的运动。这项技术提供了有关场景动态的宝贵信息,使机器能够理解运动,类似于生物视觉系统感知运动的方式。它是涉及视频数据分析的各种人工智能(AI)机器学习(ML)应用的关键组成部分。

光流如何工作

光流计算的核心理念是 "亮度恒定 "假设,即当物体在图像平面上移动时,对应于物体上特定点的像素强度在短时间间隔内保持恒定(或发生可预测的变化)。算法从一帧到下一帧跟踪这些强度模式,计算每个像素或特定兴趣点的运动矢量。

计算光流的常用技术包括

光流与相关概念

将光流与相关任务区分开来非常重要:

  • 物体检测这项任务使用边界框识别和定位单帧图像中的物体,通常使用的模型包括 Ultralytics YOLO11.它关注的是物体的内容位置,而不是其在帧间的运动。您可以探索不同YOLO 模型在检测任务中的比较
  • 物体跟踪这涉及在多个帧中跟踪检测到的特定物体,并在一段时间内保持其特征。虽然光流可以作为跟踪算法(如DeepSORT一个组成部分,但跟踪的重点是物体轨迹和特征保持,这是比像素运动估算更高层次的任务。Ultralytics 模型支持物体跟踪模式
  • 运动估计:这是一个更宽泛的术语,包含各种确定运动的技术。光流是一种特殊的运动估算类型,侧重于图像平面中像素的明显二维运动,通常有别于估算世界中物体的真实三维运动。
  • 图像分割这包括将图像分割成多个片段或区域,通常是为了隔离物体或区域。虽然来自光流的运动线索可以帮助分割(运动分割),但主要目标是空间划分,而不是运动矢量计算。实例分割等任务为每个对象实例提供每个像素的掩码。

实际应用

光流对于许多需要从视频中理解运动的应用来说至关重要:

  • 视频压缩: MPEG等标准使用与光流类似的运动估计技术,根据前一帧预测后一帧。通过只对运动矢量和预测误差(残差)进行编码,可实现显著的数据压缩。
  • 自主系统: 自动驾驶汽车机器人使用光流进行视觉测距(估计自身运动)、障碍物探测以及了解环境中物体的相对运动。例如,它可以帮助自动驾驶汽车估计其相对于道路的速度或跟踪附近的车辆。Waymo等公司在很大程度上依赖于运动感知。探索自动驾驶汽车中的人工智能,了解更多详情。
  • 动作识别:要理解视频中的人类动作,通常需要分析从光流中得出的运动模式。
  • 视频稳定:数字图像稳定技术可利用光流来估计相机抖动并进行补偿,从而产生更流畅的视频。
  • 医学图像分析用于跟踪组织运动,如超声心动图中的心肌运动或手术过程中的器官变形。请参阅 "放射学 "等资源:人工智能》等资源,了解相关进展。
  • 机器人使机器人能够导航、与物体互动,并根据对周围环境运动的视觉反馈执行任务。与ROS等系统的集成通常包括运动分析。

工具和实施

OpenCV等库提供了经典光流算法的实现(OpenCV 光流教程)。对于深度学习方法,像 PyTorchTensorFlow等框架,通常利用通过以下平台提供的预训练模型 Hugging Face.训练这些模型需要具有地面真实流量信息的大规模视频数据集,如FlyingThings3DSintel 数据集Ultralytics HUB等平台可以帮助管理数据集和模型训练工作流,不过它们主要侧重于检测和分割等任务,而不是直接进行光流估算。

阅读全部