UltimateLabeling 项目介绍
UltimateLabeling 是一个功能齐全的视频标注图形用户界面(GUI),由Python开发并集成了最新的检测和跟踪技术。它使用了PyQt5技术,提供了多种高级功能,方便用户在视频中进行精确的对象和姿态标记。
项目特点
- SSH远程连接支持:可以通过SSH连接到远程GPU服务器,为用户提供强大的计算能力。
- 集成YOLO和OpenPifPaf对象与姿态检测:无论是单帧还是视频模式,均能进行对象检测和人体姿态估计。
- 匈牙利算法用于轨迹ID分配:确保标签的准确和高效分配。
- SiamMask视觉对象跟踪:帮助标记缺失或标签错误的对象。
- 视频缩放与可调整大小的边框和骨架:提供灵活的标注体验。
- 黑暗模式:支持夜间操作,保护视力。
演示
该项目展示了多种应用场景下的效果图,包括人群中的姿态辨识和交通圆环中的车辆跟踪。
安装步骤
要使用UltimateLabeling,用户应先克隆项目仓库到本地计算机:
git clone https://github.com/alexandre01/UltimateLabeling.git
cd UltimateLabeling
建议在虚拟环境中安装所需的软件包,避免库版本冲突:
virtualenv --no-site-packages venv
source venv/bin/activate
pip install -r requirements.txt
在主Python环境中安装也可以:
pip install -r requirements
最后,通过以下命令打开GUI:
python -m ultimatelabeling.main
远程服务器配置
为了配置远程GPU服务器,用户需克隆相应的服务器代码并按步骤进行安装:
git clone https://github.com/alexandre01/UltimateLabeling_server.git
cd UltimateLabeling_server
pip install -r requirements.txt
bash siamMask/setup.sh
bash detection/setup.sh
数据图像和视频应放在data
文件夹中。要提取视频文件,可使用以下脚本:
bash extract.sh data/video_file.mp4
输入/输出
要开始对视频进行标注,应将图像文件夹或视频文件放在data
文件夹中:
- 导入标签:按
Cmd+I
(或Ctrl+I
) 可以导入现有的CSV标签。每帧需一个CSV文件,格式为:"class_id", "xc", "yc", "w", "h"。 - 导出标签:标注内部保存在
output
文件夹中。按Cmd+E
(或Ctrl+E
) 可导出为一个CSV文件。
如需其他格式,请在GitHub上提出问题或提交PR。
快捷键与鼠标控制
-
键盘操作:
- A(或左键):下一个帧
- D(或右键):前一个帧
- W/S:类向上/向下
- T:开始/停止跟踪
- 数字键盘:分配类ID
- 空格键:播放视频
-
鼠标操作:
- 点击:选择边框
- 点击并按住:在图像中移动
- Cmd + 点击并按住:创建新边框
- 右键点击:删除边框
- 滚轮(或上下滑动):图像缩放
改进/问题
如果在使用中遇到问题或建议改进,可以在GitHub上写下issue,或者更好的是,提交pull request!
许可证
该项目由Alexandre Carlier创作,使用MIT许可证发布。
UltimateLabeling项目通过其强大的功能集成和便捷的操作成为视频标注工作者的利器。通过SSH连接远程计算资源和高级对象检测技术,用户可以高效、准确地处理大规模的视频数据。