1 Star 1 Fork 0

qdu-rm-2022 / LabelRoboMaster

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

RoboMaster智能数据集标注工具

基于[Qt5+OpenCV(with OpenVINO)],用于标注RoboMaster装甲板4个顶点的位置,灯条颜色,以及贴纸类型。

开发中分支,建议下载release里的软件和源码

本人的首个Qt项目,写的不好的地方见谅

项目介绍

基于深度学习的自瞄识别算法逐渐走进RoboMaster的赛场。相比于传统视觉识别算法,基于深度学习的算法具有更强的鲁棒性和适应性,受到了不少队伍的青睐。

然而常规深度学习的目标检测算法只能识别出目标的外接矩形,这给后续算法中的单目测距带来了困难。

本项目希望能够建立一个便利的4点数据集标注工具,可以快速而准确的完成数据集的制作。

主要功能亮点

  • 将标准装甲板贴纸图像叠加到图片上,便于观察选取结果。
  • 选点时局部放大,便于观察选点位置。
  • 智能预识别,减轻人力。(需要带OpenVINO支持的OpenCV,可以不用OpenVINO,但速度会变慢)
  • 图像的缩放与拖动。
  • 使用OpenVINO进行int8加速。(无OpenVINO时无法使用)
  • 一键自动标定所有图片。(暂不支持中途停止以及断点恢复)

TODO:目前智能预识别模型不正常识别基地贴纸,且大目标识别效果较差。有待进一步更新。 模型已更新。

TODO:(希望有个有缘人能帮助一起开发)

  • 缺少扩展性,每次添加新的目标需要修改源码重新编译。
  • 部分装甲板贴图svg文件缺失。 已修复

感谢川大老哥的友情合作开发

目前已知的BUG

  • 图片文件名中不要包含点,否则会导致文件后缀名识别错误(程序会将第一个点后面的内容都当成后缀名)
  • openvino转化后模型在不同版本间会报错,目前能正常运行的版本为openvino-2021.2.200 已更换为onnx格式

程序界面图

由于github图像缩放,可能导致看不太清楚,可以点击查看大图。

demo

编译运行

支持使用cmake进行编译。

cmake编译方法:

mkdir build
cd build
cmake ..
make

Qt5.15 & Qt5.12上编译成功,低版本Qt不确定能否正常编译运行。

OpenCV With OpenVINO的安装方法:官网链接,安装OpenVINO SDK包,其中自带OpenCV With OpenVINO。

使用方法

  • 首先选择图片文件夹目录,程序会自动查找目录下所有图片文件。(jpg、jpeg、png)
  • 点击smart自动预标注当前图片。或点击Add Label开始标注一个装甲板。
  • 按照装甲板左侧灯条上端、左侧灯条下端、右侧灯条下端、右侧灯条上端的顺序,依次点击。
  • 双击右上方的当前目标项,选择当前目标的类别。
  • 根据需求,微调4个点的位置,使得叠加的标准装甲板边缘和实际图像中的装甲板边缘对齐。(标准装甲板边缘默认图像没有畸变,追求标注精度的话,需要对数据集中的图片进行去畸变)。
  • 点击保存或勾选自动保存完成当前图片的标注。
  • 右键拖动,滚轮缩放。右键双击恢复默认视图。

装甲板类别命名与类别编号

贴纸↓颜色→ B(蓝色) R(红色) N(熄灭) P(紫色)
G(哨兵) 0 9 18 27
1(一号) 1 10 19 28
2(二号) 2 11 20 29
3(三号) 3 12 21 30
4(四号) 4 13 22 31
5(五号) 5 14 23 32
O(前哨战) 6 15 24 33
Bs(基地) 7 16 25 34
Bb(基地大装甲) 8 17 26 35

数据集文件格式

标定后的数据集文件和图片位于同一文件夹,将图片后缀名修改为txt即为数据集文件。

txt文件中每一行代表一个目标,如果一个文件有多行,则说明对应图片内有多个目标。

一行共计9个数字,以空格分割。从左到右依次为:

  • 装甲板类别编号
  • 左上角归一化x坐标
  • 左上角归一化y坐标
  • 左下角归一化x坐标
  • 左下角归一化y坐标
  • 右下角归一化x坐标
  • 右下角归一化y坐标
  • 右上角归一化x坐标
  • 右上角归一化y坐标

注:归一化x坐标指像素x坐标除以图像宽度,归一化y坐标指像素y坐标除以图像高度。


如果觉得该项目对你有帮助请点一个Star:)

MIT License Copyright (c) 2021 xinyang Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

暂无描述 展开 收起
C++ 等 3 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/qdu-rm-2022/LabelRoboMaster.git
git@gitee.com:qdu-rm-2022/LabelRoboMaster.git
qdu-rm-2022
LabelRoboMaster
LabelRoboMaster
main

搜索帮助