开源技术 * IBM 微讲堂:Kubeflow 系列(观看回放 | 下载讲义) 了解详情

使用 OpenCV 和深度学习对视频中的对象进行跟踪

此 Code Pattern 已纳入 IBM Maximo Visual Inspection 入门学习路径

摘要

不管您是统计马路上的汽车数量,还是计算传送带上的产品数量,关于利用计算机视觉技术处理视频的用例都非常之多。以视频作为输入内容,您可以使用自动标记功能创建更有效的分类器,减少手动工作。本 Code Pattern 展示了如何创建分类器并使用它来识别移动对象,然后在对象进入指定关注区域后进行跟踪和计数。

描述

无论是车流量、人流量还是传送带上的产品数量,有许多应用程序都可用于跟踪潜在客户数、实际客户数、产品数或其他资产数。随着视频摄像头的普及,企业可以借助计算机视觉技术从这些摄像头中获取一些有用信息。将此技术应用于视频要比一些老办法(例如,使用特殊硬件或者人工计算车流量)实用得多。

本 Code Pattern 介绍如何使用 IBM Maximo Visual Inspection Video Data Platform、OpenCV 和 Jupyter Notebook 创建视频车辆计数器。您将使用少量手动标记操作和大量自动标记操作来训练对象分类器,用于识别高速公路上的车辆。您会将另一个车辆视频加载到 Jupyter Notebook 中,在这里您将处理单独的帧,并对视频加以注解。

您将使用已部署的模型进行推理,定期检测帧样本上的车辆,然后使用 OpenCV 在推理期间逐帧跟踪车辆。除了在检测到时进行车辆计数,您还将在每条车道上的车辆穿过“终点线”时进行计数,车辆每秒显示一次。

完成本 Code Pattern 后,您将掌握如何:

  • 使用自动标记功能从视频中创建对象检测分类器
  • 使用 Jupyter Notebook、OpenCV 和 IBM Maximo Visual Inspection 处理视频的帧
  • 使用 IBM Maximo Visual Inspection 检测视频帧中的对象
  • 使用 OpenCV 逐帧跟踪对象
  • 在移动对象进入关注区域后进行计数
  • 使用边框、标签和统计数据对视频加以注解

流程

对象检测

  1. 使用 IBM Maximo Visual Inspection Web UI 上传视频
  2. 使用自动标记功能并训练模型。
  3. 部署该模型以创建 IBM Maximo Visual Inspection 推理 API。
  4. 使用 Jupyter Notebook 对视频中的车辆进行检测、跟踪和计数。

操作说明

可以在 README 中找到本 Pattern 的详细步骤。这些步骤将展示如何:

  1. 在 Video Data Platform 中创建数据集。
  2. 训练并部署模型。
  3. 自动标记对象。
  4. 运行该 Notebook。
  5. 创建带注解的视频。

本文翻译自:Object tracking in video with OpenCV and Deep Learning(2019-5-11)