未提供项目描述
项目描述
从鸟瞰固定无人机视频中检测和跟踪多个对象
OfflineMOT是一个用于从鸟瞰静止视频中跟踪多对象的软件包。在这个包中精度优先于运行时,因此它更适合离线处理而不是实时应用程序,因此包的名称。
在这个包中使用预训练的 Yolo 网络进行检测,它应该单独训练。该库包含的网络是 Pytorch 格式的 Yolo v4(经过训练以检测行人、骑自行车的人和汽车)。Yolo模型的加载和运行是在这个项目中的脚本的帮助下完成的(它们都在offlinemot/tool子文件夹中)
对于从头开始训练 YOLOv4,相同的 repo很有用。此外,Darknet 代码可用于训练 YOLO,然后将生成的训练文件转换为 pytorch 格式.pth,如docs所述。
示例视频的示例输出,取自Vehicle-Crowd Interaction (VCI) - CITR 数据集:
这个例子显示了一些小问题,因为场景、背景和无人机的摄像头都在检测网络训练集之外(检测网络以前从未见过)。
然而,这个项目的应用(包括 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 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 1b3bb702cf101d47d63436d748aabee23b96b5efb16add311149ab755ac05de3 |
|
| MD5 | 3f34884b93787e9935a45ba488708fee |
|
| 布莱克2-256 | e0930432f2b60953a8f42d1777bd695fc97611f1358f85496ed1eee0176a238d |