Code Monkey home page Code Monkey logo

labeltrack's Introduction

LabelTrack

LabelTrack是为多目标跟踪MOT写的一个自动标注工具

安装

git clone https://github.com/DD-DuDa/LabelTrack.git
cd LabelTrack/Tracking
pip install -r requirements.txt
pip install cython
pip install 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
pip install cython_bbox
python setup.py develop

主要功能

  • 导入mp4文件或视频帧文件夹
  • 手动标注
  • 修改标注框,包括大小,标签,ID等信息
  • 采用SOTA目标跟踪模型对视频帧进行预跟踪
  • 导出和导入VisDrone格式数据集

快捷键

键位 功能
w 标注
s, del 删除所选标注框
ctrl + 滚轮 放大,缩小

使用方法

  1. 下载对应模型权重
  1. 修改./Tracking/configs中的yaml文件(exp_file, ckpt)
cd LabelTrack
python main.py

./Tracking/videos 有demo视频

已更新

  • 【2022.9.20】手动标注框的更新
  • 【2022.7.16】上传权重文件(百度网盘)
  • 【2022.5.31】取消所有标注框,手动标注框延续所有帧
  • 【2022.5.14】标注图片大小缩放,拖拽;工具栏等按钮完善;标注类别有11种

待更新

  • 操作错误提醒完善
  • 手动标注框的ID从没有出现的开始
  • 关于视频帧的加载
  • 更多需要的功能

参考

  1. https://github.com/tzutalin/labelImg
  2. https://github.com/ifzhang/ByteTrack

B站视频

https://www.bilibili.com/video/BV15Y4y137Fp/

labeltrack's People

Contributors

dd-duda avatar muziing avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

labeltrack's Issues

为项目添加依赖项声明的提议

我正在尝试在本地运行本项目。然而因为缺乏 requirements.txtpyproject.toml 这样的依赖项声明文件,导致我不能确认我正在使用的依赖项是否全面、是否与作者机器上的版本兼容(事实上,在我的机器上貌似已经因为 Python 和 PyQt5 版本兼容问题而导致无法运行了)。

故提议添加这样的依赖项声明文件。以下是我尝试编写的一版 pyproject.toml,但在具体版本上似乎存在问题,需要作者将其修正。

# 不准确的 pyproject.toml 样板

[tool.poetry]
name = "labeltrack"
version = "0.1.0"
description = "针对于多目标跟踪的图形化自动标注平台"
authors = ["DD-DuDa <[email protected]>"]
license = "BSD-3-Clause"
repository = "https://github.com/DD-DuDa/LabelTrack"

# 使用清华pypi镜像
[[tool.poetry.source]]
name = "tsinghua"
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
default = true

[tool.poetry.dependencies]
python = "^3.9"
PyQt5 = "^5.15.7"
opencv-python = "^4.6.0"
qt-material = "^2.12"


[tool.poetry.dev-dependencies]
black = "^22.6.0"
isort = "^5.10.1"

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

如果不太熟悉 Poetry 工具或 pyproject.toml 配置文件,可以参考我的这篇译文:使用 Python Poetry 进行依赖项管理(翻译)

为本项目添加LICENSE的建议

我注意到本项目缺乏项目描述和许可证文件。

建议作者添加这些内容。个人理解,没有开源许可的项目从某种意义上失去开源的意义:社区其他开发者无法使用这样的项目的代码,也很难为其进行贡献。

由PyQt5迁移到PySide6的探讨

我注意到本项目的 GUI 部分目前是使用 PyQt5 实现。然而在对代码改动很小(几乎只需要修改 import 语句即可)的前提下即可迁移至 PySide2 / PySide6。

相比 PyQt,PySide 主要有如下优势:

  • 由 Qt 官方提供支持
  • 使用更加宽松的 LGPL 协议

更多信息可参考这篇文章:PyQt vs PySide Licensing

而基于 Qt 6 的 PySide6 比基于 Qt5 的 PyQt5 有性能更佳、对高分辨率显示器支持更好等优势。

综上,如果项目作者有意将本项目的 GUI 部分从 PyQt5 迁移至 PySide6,请在本 issue 下讨论。我将在近期完成迁移工作并提交 PR。

来自天边另一位自动标注人的呼唤

刚完成本科毕业设计设计不久,看到自动标注的关键字简直DNA动了๐•ᴗ•๐

  • 兄弟的代码功力和学习能力了得,前端漂亮实用,接近落地水平了。(看到你在B站自信地展现自我,作为同龄人的我也是备受鼓舞的)

  • 相较于你做的融合追踪模块的自动标注项目,我的项目思路与功能主要是:

  1. 使用Yolov5(单阶段目标检测)做定位和初步分类再用Clip(多模态相似度计算)做二次分类实现了人物面部与肢体情绪识别(其实还可以做很多事的,只不过这个最好玩)
  2. 分别基于单阶段目标检测/孪生网络实现了自动生成目标检测/分类数据集(.txt格式)
  • 看到兄弟的项目刚好和我的相近且互补,就忍不住@了,希望以后能向你学习(◍•ᴗ•◍)

我的项目地址:https://github.com/1844520476/Undergraduate-Graduation-Project

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.