Skip to main content

未提供项目描述

项目描述

从鸟瞰固定无人机视频中检测和跟踪多个对象

GH 行动状态 编解码器 DOI 执照

OfflineMOT是一个用于从鸟瞰静止视频中跟踪多对象的软件包。在这个包中精度优先于运行时,因此它更适合离线处理而不是实时应用程序,因此包的名称。

在这个包中使用预训练的 Yolo 网络进行检测,它应该单独训练。该库包含的网络是 Pytorch 格式的 Yolo v4(经过训练以检测行人、骑自行车的人和汽车)。Yolo模型的加载和运行是在这个项目中的脚本的帮助下完成的(它们都在offlinemot/tool子文件夹中)

对于从头开始训练 YOLOv4,相同的 repo很有用。此外,Darknet 代码可用于训练 YOLO,然后将生成的训练文件转换为 pytorch 格式.pth,如docs所述。

示例视频的示例输出,取自Vehicle-Crowd Interaction (VCI) - CITR 数据集

加载 gif 时出现问题!

这个例子显示了一些小问题,因为场景、背景和无人机的摄像头都在检测网络训练集之外(检测网络以前从未见过)。

然而,这个项目的应用(包括 Yolo 网络训练)是针对一个 Cyclists 数据集视频 [稍后引用]。


安装

pip只需使用以下命令,即可在 python 3.x 上安装该软件包:

pip install offlinemot

对于开发人员

要在最新的开发分支上工作,可以简单地克隆 repo

git clone https://github.com/engyasin/Offline_MOT

然后从 repo root 运行:

pip install -e .

引文信息

如果您在工作中使用该软件,请引用如下

@software{Maan_Yousif_OfflineMOT_A_Python,
author = {Maan Yousif, Yasin and Mukbil, Awad and P. Müller, Jörg},
title = {{OfflineMOT: A Python Package for multiple objects detection and tracking from bird view stationary drone videos}},
url = {https://github.com/engyasin/Offline_MOT}
doi = {10.5281/zenodo.6569417}
}

文档

该文档包括一些示例和运行此包的指南,可在此处获取https://engyasin.github.io/Offline_MOT/

Jupyter 笔记本教程格式也可在此处获得

技术报告可以在这里找到


入门

安装库后,为了测试它提供的示例,以下行可以用作 python 命令:

In [1]: import offlinemot

In [2]: from offlinemot.config import configs

In [3]: cfg = configs() # if you have avaliable configuration file '.ini', you can pass it

In [4]: cfg.print_summary() # show the current values and sections

In [5]: cfg['detect_every_N'] = 3

In [6]: cfg.print_section('Detection') # show parameters of single section

In [7]: cfg['detect_thresh'] = 15

In [8]: offlinemot.core.extract_paths(config=cfg) # no input to run the example video

In [9]: cfg.write('new_config_file.ini') # to be loaded for similar videos

第 2 到 7 行导入和更改运行程序的参数。

第一次运行第 8 行时,将下载示例网络模型(大约 250MB)。并且将显示带有跟踪对象的示例视频窗口。

第 9 行将当前参数集保存到提供的文件名中。

被跟踪的对象将被 5 种不同颜色的框包围。每种颜色都有特定的含义:

  • 绿色:检测到行人。
  • 蓝色:检测到骑自行车的人。
  • 黑色:检测到汽车。
  • 红色:被跟踪对象未能通过当前帧的跟踪步骤
  • 白色:物体正在移动但仍未分类。

当然,对于不同的情况,可以从configs类属性 ( colors_map) 更改颜色。这也取决于要预测的类的数量。

要控制此参数和许多其他参数,可以将值分配给configs实例:

cfg = configs() #input can be named file, or empty for the default values.
cfg['colors_map'] = [(255,0,0),(0,0,255),(0,255,0)]

注意:强烈建议在新视频上运行时设置所有参数。文件中提供了有关其含义的详细说明config此外,此处的文档中提供了参数调整的完整示例

跑步

然后在新视频上运行它,命令是:

offlinemot.core.extract_paths('path_to_video',config=cfg) 
#[directory of the videos, leave empty to run the example video]

要在后处理后在同一视频上显示结果,请使用以下命令:

offlinemot.show_results.show_result('path_to_same_video',config=cfg)
#[directory of the videos, leave empty to run the example video]

最后,要更改包中使用的yolo网络,需要通过configsclass分配完整目录到3个文件:

  • .pth模型权重 cfg['model_name'] = 'directory'
  • .cfg用于 Yolo 配置。cfg['model_config'] = 'directory'
  • .names用于包含类名称的简单文本文件。 cfg['class_file_name'] = 'directory'

用例

该项目可用于:

  • 从视频中提取交通轨迹(它最初是为为 TU-Clausthal 中记录的交通建模研究的骑车人数据集提取轨迹而构建的)。

  • 以离线方式从鸟瞰图跟踪其他物体(如动物)。


测试

该项目有许多测试单元。如果打算开发软件包,则可以在使用以下命令克隆此 repo 后运行它们:

$ pytest -v ./offlinemot/tests

对于前面的命令pytest库是需要安装的。

此外,在推送和拉取请求时,github 操作也会运行 pytest。


支持

如果您想为某个错误修复功能做出贡献,请查看贡献说明页面。它有更多细节。

或者,您可以通过在运行程序时为问题创建问题来做出贡献。如果您的问题与结果的准确性有关(例如未检测到或未能跟踪某些对象),请使用逻辑错误标记问题。还请附上一些图像或 gif 文件,描述视频在运行和运行后的时间中发生的错误。


星星

如果您觉得此存储库有用,请加注星标,或将其用作您研究的一部分。


执照

OfflineMOT是免费软件,并根据MIT License获得许可。版权所有 (c) 2022, Yasin Yousif

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

offlinemot-1.0.6.tar.gz (28.1 MB 查看哈希

已上传 source