使用Python+OpenCV+DVG-Utils实现人群计数与目标跟踪

dvg-utils是一个Python工具包,简化了使用OpenCV进行图像和视频处理的流程,尤其适用于人群计数和目标跟踪。通过配置文件,它可以方便地在不同平台和设备上捕获视频和图像,处理数据,同时提供性能指标和可视化结果。文章介绍了如何设置和使用dvg-utils进行对象检测、跟踪和计数,以及如何收集和评估算法性能指标。
摘要由CSDN通过智能技术生成

dvg-utils是一组工具,可以帮助你使用OpenCV快速构建图像和视频处理管道。

在不同的平台和设备上进行计算机视觉和深度学习的实验带来了许多挑战,尤其是当你希望与团队共同维护一个代码库而不需要做重复的工作。从不同设备设置视频流的步骤基本上是一样的,该过程我们需要记录日志,读取配置文件,绘制带有标签的框,保存结果,收集一些指标等,为什么不将这些工作放在一起呢?这就是本文向你介绍dvg-utils的意义。

目录

  1. dvg-utils简介

  2. 设置

  3. 命令行工具

  4. 捕获视频

  5. 捕获图像

  6. 例子

  7. 指标

  8. 概要

  9. 资源

dvg-utils简介

自从我写了第一篇关于为图像和视频处理创建一个模块化而且简单的管道的文章以来,差不多过去一年了,从那以后我也一直在学习,学到了很多东西。在这段时间里,我做了许多不同的项目,它们总是需要相同的步骤。

每个计算机视觉管道都需要以下代码块:

  • 设置日志

  • 读取配置文件

  • 捕获图像或视频流

  • 处理数据

  • 可视化结果

  • 显示结果

  • 保存结果

  • 收集指标

这些代码块中的大多数都是在每个项目中会反复出现的模板代码。

为了更轻松,更快速地设置计算机视觉项目,我在SławomirGilewski的帮助下创建了dvg-utils Python软件包。

  • dvg-utils:https://github.com/jagin/dvg-utils

  • SławomirGilewski:https://medium.com/u/1ddaceb8aa71

设置

在开始之前,我建议使用Python虚拟环境。虚拟环境允许你在系统上运行独立的Python环境,更多请看一下RealPython上的这篇文章。

  • https://realpython.com/python-virtual-environments-a-primer/

我假设你正在使用具有Linux或MacOs系统的台式机/笔记本电脑(我没有机会在Windows平台上对其进行测试,但它应该可以运行)。

如果你想从Jetson设备运行一些示例,Jetpack的SDK已经安装了OpenCV,你可以跳过pip install opencv-contrib-python这一步骤。

对于树莓派用户,请在此文章的帮助下安装OpenCV 。

  • https://www.pyimagesearch.com/2019/09/16/install-opencv-4-on-raspberry-pi-4-and-raspbian-buster/

为了浏览库和用法示例,让我们克隆它并安装所需的软件包:

$ git clone https://github.com/jagin/dvg-utils.git
$ cd ./dvg-utils
$ pip install tqdm pyyaml numpy
$ pip install opencv-contrib-python
$ pip install dvg-utils

命令行工具

安装dvg-utils后,你可以访问dvg-utils工具命令:

  • 将视频文件转换为一组图像

$ dvg-utils v2i -i assets/videos/faces.mp4 -o output --display

  • 将一组帧图像转换为视频文件

$ dvg-utils i2v -i output -o output/my_new_file.avi --display

  • 绘制指标(我将在本故事的后面部分对此进行详细介绍)

对于参数描述,请运行以下命令之一:

$ dvg-utils v2i -h
$ dvg-utils i2v -h
$ dvg-utils pm -h

如果可以分别处理每一帧,则将视频转换为图像并返回,你可以并行处理这些帧,然后将它们组合回带有可视注释的视频文件中。

捕获视频

dvg-utils的强大功能来自于从OpenCV cv2.VideoCapture和树莓派相机支持的所有源捕获视频流,使用单线:

video_capture = VideoCapture(conf["videoCapture"]).open()

技巧是使用conf["videoCapture"],其中包含我们的视频捕获配置的字典,该字典从YAML配置文件中读取,参考:https://medium.com/swl

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值