Yolo训练数据标注工具-Yolo_mark 使用教程

2023-05-16

一、安装与测试

环境: Ubuntu16.04 + Opnecv + Cmake
项目地址:https://github.com/AlexeyAB/Yolo_mark

  1. 下载。打开终端,键入:

    	git clone https://github.com/AlexeyAB/Yolo_mark
    

    下载Yolo_mark。下载完成后,cd Yolo_mark进入到Yolo_mark的目录。Yolo_mark文件 夹下的的文件如图所示:
    在这里插入图片描述

  2. 编译。在Yolo_mark文件目录下打开终端,首先输入

    	cmake .
    

    完成后,再输入:

    	make
    

    编译完成后会生成可执行文件。建议用自带的linux_mark.sh打开Yolo_mark。linux_mark.sh中包含了程序运行要传入的一些参数,如图片路径,需要标记的物体的名字等。在终端输入chmod +x ./linux_mark.sh,给文件可执行权限。输入./inux_mark.sh即可打开Yolo_mark。以下是Yolo_mark的主界面:
    在这里插入图片描述

  3. 测试。主界面顶部为图片预览,绿色的小勾表示已有标记或者标记完成。
    下面的Object id是你标记对应的类,可以通过键盘上面的快捷键切换。例如你标记的物体名字是:person air bird, 最前面 person 的ID是0,要切换到bird,按下数字键 2即可。
    在中间部分的大图上,按下鼠标左键拖动,松开左键后会生成上图所示的矩形框,包含类对应的ID,自定义的名字。
    快捷键 C 会清除当前图片上面的所有标记,空格键保存标记信息并切换到下一张。用 Esc 或者 Ctrl + c 退出。

二、准备自己的数据并进行标注

参考Github上面的教程:
在这里插入图片描述

  1. 打开文件夹,将自己的图片复制到Yolo_mark下x64/Release/data/img文件夹中(先删除自带的所有文件)。
  2. 修改 x64/Release/data/obj.data。此文件包含了需要标记的物体有几类,训练集和验证集对于的txt文件路径,物体名字,backup是训练生成的权重文件路径。标记只需要修改第一行后面的数字,后面的数字表示标记的物体有几类,此处只标记一类物体。 例子:
		classes = 1 
  1. 修改x64/Release/data/obj.names。标记物体的类名,一行一个。例子:
		bird
  1. 在终端输入./linux_mark.sh,打开Yolo_mark,鼠标左键按下拖动,会形成一个矩形框。如图所示:
    在这里插入图片描述
    在打开的图片窗口中,标记目标,快捷键 C 会清除所有标记,按下空格键保存数据并打开下一张图片。数字键可以切换标记目标的名字。标记完用 Esc 或者 Ctrl + c 退出。

  2. 标注完成后,会在 img 文件夹下面生成与图片相对应的同名txt文件,里面为训练需要标注的数据。例子:
    0 0.425781 0.645833 0.235938 0.436111
    第一个参数是对应的类,后面的四个参数为标记物体归一化后中心位置和尺寸。
    同时,会在data目录下生成train.txt文件,里面包含了已经完成标记的图片的路径,路径从Yolo_mark的目录开始。

  3. 补充:利用yolo_mark对视频抓图片帧,例子:

    	 ./yolo_mark x64/Release/data/img cap_video x64/Release/data/img/v19.mp4
    

    参数:./yolo_mark imgfile路径 cap_video 视频路径 图片保存路径,不带保存路径参数默认保存在视频路径下。默认50帧图片保存一次(3秒钟保存一张图片),可根据需要修改 main.c 里面150行左右,判断语句if (argc >= 4 && train_filename == "cap_video") 下的参数值 float save_each_frames = 50;

更多信息参考官方的Github主页

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Yolo训练数据标注工具-Yolo_mark 使用教程 的相关文章

  • OkHttp-(一)HttpUrl了解

    1 xff0c git地址 xff1a https github com square okhttp 2 xff0c 官网地址 xff1a https square github io okhttp Http作为现代应用程序的常用联网方式
  • 学习网络编程第一步,安装NetAssist网络调试助手

    x1f4d6 摘要 今天分享下 遇到 Request header is too large xff0c 如何解决 xff0c 欢迎关注 xff01 x1f91e 简单介绍 NetAssist 是一款免安装的网络调试助手工具 今天给大家带来

随机推荐

  • 初学STM32之串口通信

    文章目录 一 背景知识1 处理器与外部通信的两种方式2 串行通信的三种传输方式3 串行通信的通信方式 二 串口通信基础1 STM32的串口通信接口2 UART异步通信引脚连接方法3 UART异步通信方式特点4 串口异步通信需要定义的参数 三
  • 前端架构图解

  • Ubuntu 18.04快捷安装ROS Melodic及rosdep update time out的问题解决

    1 ROS快捷安装 以下安装指令汇总针对Ubuntu18 04的ROS Melodic版本 xff1a 强烈建议复制以下指令到新建的xxx sh文件中 xff0c 保存后给xxx sh权限 xff0c 然后执行脚本一路输入y等候安装完成 e
  • NVIDIA Jetson AGX Xavier学习笔记3——环境配置(pytorch、torchvision、cv2)

    最近研究中需要使用NVIDIA Jetson AGX Xavier人工智能开发组件 由于也是第一次接触相关硬件设备 xff0c 遇到了很多困难 在这里记录整个Jetson AGX Xavier组件的学习过程 其中很多内容网上有比较详细的教程
  • Linux网络编程——tcp实例

    题目 1 通过TCP协议实现多个client端可以并发连接到server xff0c client可获得server指定目录下的文件列表 span class hljs comment client c Created on 2016年11
  • A星寻路算法的学习总结(详解)

    目录 1 理论基础 1 1A星寻路是用来解决什么问题的 1 2A星寻路的基本原理 2 代码实现 2 1每个格子的信息 2 2A星寻路管理器 2 3测试代码 3 实例演示 1 理论基础 1 1A星寻路是用来解决什么问题的 A星寻路是用来计算玩
  • C语言单片机栈、堆、堆栈的区别(仅供参考)

    计算机C语言中各个变量的存放区域 xff1a 代码区 xff08 CODE xff09 xff1a 存放函数代码 xff1b 静态数据区 xff08 DATA xff09 xff1a 存放全局变量 静态变量 xff1b 堆区 xff08 H
  • 用c语言写链表

    链表是数据结构的一种 xff0c 是其他三个数据结构栈 xff0c 树 xff0c 图的基础 xff0c 只有将链表这一数据结构弄懂 xff0c 才能理解其他三种数据结构 举一个例子 xff0c 老师让你设计一个联系人系统 xff0c 其中
  • Fiddler抓包工具详解

    Fiddler的详细介绍 一 Fiddler与其他抓包工具的区别 1 Firebug虽然可以抓包 xff0c 但是对于分析http请求的详细信息 xff0c 不够强大 模拟http请求的功能也不够 xff0c 且firebug常常是需要 无
  • python 解析Json对象之jsonpath_rw用法

    jsonpath rw xff1a 一个可以像写xpath一样写json的Python第三方库 首先安装 xff1a pip install jsonpath rw 实例 xff1a from jsonpath rw import json
  • selenium之xpath使用

    XPath即XML路径语言 xff0c 支持从xml或html中查找元素节点 xff0c 使用XPath完全可以替代其他定位放式 xff0c 如 xff1a find element by xpath 39 64 id 61 34 34 3
  • Python-面向对象之多态

    当子类和父类都存在相同的run 方法时 xff0c 我们说 xff0c 子类的run 覆盖了父类的run xff0c 在代码运行的时候 xff0c 总是会调用子类的run 这样 xff0c 我们就获得了继承的另一个好处 xff1a 多态 c
  • 使用Ubuntu帐户创建SFTP

    提供sftp服务的有vsftpd和internal sftp xff0c 这里用的是系统自带的internal sftp xff0c 操作步骤如下 xff1a 1 创建用户 testenv xff0c 并禁止ssh登录 xff0c 不创建家
  • flask数据分页paginate的使用(flask学习)

    Flask的数据分页示例 1 xff0c 首先写数据获取的视图函数 xff0c 就像这样 xff1a 64 app route 39 39 64 login required def index page 61 request args g
  • Python __dict__属性详解

    我们都知道Python一切皆对象 xff0c 那么Python究竟是怎么管理对象的呢 xff1f 1 无处不在的 dict 首先看一下类的 dict 属性和类对象的 dict 属性 coding utf 8 class A object 3
  • Flask-SQLAlchemy 中的 relationship & backref

    今天重看 Flask 时 xff0c 发现对backref仍然没有理解透彻 查阅文档后发现 xff0c 以前试图孤立地理解backref是问题之源 xff0c backref是与relationship配合使用的 一对多关系 db rela
  • Django HttpResponse与JsonResponse

    我们编写一些接口函数的时候 xff0c 经常需要给调用者返回json格式的数据 xff0c 那么如何返回可直接解析的json格式的数据呢 xff1f 首先先来第一种方式 xff1a from django shortcuts import
  • Ubuntu安装mysql

    首先执行下面三条命令 xff1a sudo apt get install mysql server sudo apt install mysql client sudo apt install libmysqlclient dev 安装成
  • 10种动态进度条用css3实现

    用css做的10种动态进度条 xff0c 喜欢可以直接去用话不多说先看效果图 xff1a 实现上图的 xff0c 最主要的就是应用了css动画属性 64 keyframes和animation属性结合应用 下面看看语法 xff1a 64 k
  • Yolo训练数据标注工具-Yolo_mark 使用教程

    一 安装与测试 环境 xff1a Ubuntu16 04 43 Opnecv 43 Cmake 项目地址 xff1a https github com AlexeyAB Yolo mark 下载 打开终端 xff0c 键入 xff1a gi