Skip to main content

使用 reTerminal 和 Pi 摄像头通过 OpenCV 进行物体跟踪

简介

物体跟踪是在视频的连续帧中持续定位特定物体的过程。在单物体跟踪器领域,初始帧作为参考,目标物体由边界矩形标记。随后的帧使用跟踪算法来跟随和追踪物体的运动。通常,这些跟踪器在实际应用中与物体检测器一起使用,结合两种技术的优势以提高准确性和效率。

开始使用

在开始这个项目之前,您可能需要按照此处描述的方式提前准备硬件和软件。

硬件准备

软件准备

我们推荐从官方网站安装 BullesyeBookworm 版本的 Raspberry Pi 64 位操作系统。如果您希望安装新的 Raspbian 操作系统,请按照此指南中概述的步骤进行操作。

note

我们强烈推荐查看我们之前关于OpenCV 入门的教程,因为本教程是我们系列教程的延续。

跟踪 vs. 检测

在之前的教程中,我们介绍了人脸颜色检测,但注意到它们的间歇性特点。以下是快速比较:

  1. 速度优势: 跟踪比检测更快。通过利用先前帧的数据,跟踪算法预测对象位置,而检测算法通常在每一帧中从头开始。
  2. 处理失败: 如果人脸检测器由于遮挡而失效,跟踪算法表现出色。它们可以处理部分遮挡,在检测不足时提供稳健的性能。
  3. 身份持续性: 对象检测提供检测到的对象的矩形框,但缺乏身份持续性。跟踪在保持跨帧的一致对象身份方面表现出色,这对许多实际应用至关重要。

跟踪领域有哪些算法?

以下是一些主要的对象跟踪算法及其优缺点

BOOSTING

  • 优点:简单且实时。在一致运动中表现良好。
  • 缺点:在复杂运动模式和遮挡中表现不佳。
  • 速度:快。
  • 准确性:中等。

MIL (Multiple Instance Learning)

  • 优点:在处理遮挡和对象外观变化方面有效。
  • 缺点:可能对噪声和背景杂乱敏感。
  • 速度:中等。
  • 准确性:良好。

KCF (Kernelized Correlation Filter)

  • 优点:高速性能。对尺度变化具有鲁棒性。
  • 缺点:对视野外场景敏感。
  • 速度:快。
  • 准确性:中等到高。

TLD (Tracking, Learning, and Detection)

  • 优点:自我更新且能够重新检测丢失的对象。
  • 缺点:容易漂移,在快速运动中可能有困难。
  • 速度:中等。
  • 准确性:中等。

MEDIANFLOW

  • 优点:在处理突然运动变化和遮挡方面稳健。
  • 缺点:在显著对象外观变化时可能表现不佳。
  • 速度:快。
  • 准确性:中等。

MOSSE (Minimum Output Sum of Squared Error)

  • 优点:极快且适合实时应用。
  • 缺点:在挑战性条件下鲁棒性有限。
  • 速度:非常快。
  • 准确性:中等。

CSRT (Channel and Spatial Reliability Tracker)

  • 优点:高准确性和对挑战性场景的鲁棒性。
  • 缺点:计算成本更高。
  • 速度:中等。
  • 准确性:高。

让我们运行代码

确保您在正确的文件夹中。如果不是

cd Seeed_Python_ReTerminal/samples/Opencv_and_piCam

Then or Even you can use Thonny IDE to run the python script.

python Tracking.py

上面的 Python 脚本旨在跟踪人脸。以下代码片段处理跟踪失败的场景,提示系统启动新的检测过程,反之亦然。

python DetectandTrack.py

技术支持

感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...