目录

实验二:基于光流点跟踪的运动对象速度估计(单目运动测速)

课程: 计算机视觉
教员: 易任娇
助教: 范文刚、肖建锋
时间: 2026-07-04 ~ 2026-07-18

项目结构

point_tracking/
├── main.py              # 主程序入口
├── config.py            # 配置参数(视频路径、测距参数、追踪参数等)
├── calibration.py       # 交互标定模块(选参考线、锚点、跑动方向)
├── tracking.py          # Shi-Tomasi 角点 + 金字塔 LK 光流追踪
├── cross_ratio.py       # 交比不变量测距 + 滑动窗口测速
├── visualization.py     # 可视化叠加绘制
├── videos/              # 输入视频目录
├── output/              # 输出结果目录
└── .gitignore

算法流程

  1. 标定 — 在首帧上交互选点:三条参考线交点、初始跟踪点、跑动方向
  2. 角点检测 — Shi-Tomasi(goodFeaturesToTrack)在锚点局部窗口内提取特征
  3. 光流追踪 — 金字塔 Lucas-Kanade(calcOpticalFlowPyrLK)前后向追踪
  4. 错误剔除 — 前后向一致性检查 + 最大位移过滤 + 中位数更新锚点
  5. 测距测速 — 有向交比不变量测距 + 滑动窗口中心差分测速

用法

# 默认配置
python main.py

# 指定视频和帧率
python main.py --video my_clip.mp4 --fps 60

# 后台处理(不显示预览窗口)
python main.py --no-display

依赖

  • Python 3.8+
  • OpenCV (cv2)
  • NumPy

评分要点

模块 分值
选点读坐标 10
Shi-Tomasi 角点 10
LK 光流追踪 10
交比测距测速 20
错误剔除 + 锚点更新 10(加分)
可视化效果 20
实验报告 20
关于

基于光流点跟踪的运动对象速度估计

74.0 KB
邀请码