目录

前言

Anaconda创建虚拟环境

win 11系统

Ubuntu系统

Labelme的使用教程

1、激活环境

2、下载指定版本

3、创立图片文件夹

4、使用labelme标注

5、使用脚本将json转为png

LabelImg的使用教程

1、LabelImg的介绍

2、LabelImg的安装

3、LabelImg的使用

4、常常使用的快捷键

结语


前言

在写作这篇博客时,我本来打算将虚拟环境的创建和标注软件的使用分开讲解。然而,在完成虚拟环境的创建部分后,我发现它的字数似乎有些不足以独立成篇。因此,我决定将这两部分内容放在一起,以便读者更全面地了解这两个主题的关联性。

在本篇博客中,我将简单介绍如何在Win11和Ubuntu系统上创建虚拟环境,以及如何使用这两款(labelme和labelimg)标注软件进行数据标注。我不仅会介绍它们的下载和使用流程,还会分享我平时标注时所用的一些案例和快捷键。最后,我还会分享一个将JSON转换成PNG格式的脚本,希望对你的标注工作有所帮助。

我相信这篇教程能够帮助你解决许多标注相关的问题。请继续阅读,了解更多!

Anaconda创建虚拟环境

win 11系统

我的是win11系统,可以点击搜索。或者是按下win+s键打开。

在里面输入Anaconda Prompt

初始是这样的:

(base) C:\Users\honor>

(base)是一个基础的环境,在这里我们先查看我们的虚拟环境

输入conda env list

除了base,其他都是我创建的虚拟环境,当然有的一直没有用。

然后我们需要创建自己的环境:conda create -n env_name python=3.7 

env-name就是环境的名称,可随意更改,python=3.7是环境安装的python版本,也可按需更改,高版本并不好,常常会出现一些bug,我最爱用的还是3.7及其下的版本。

  • 激活环境:activate env_name,然后你就可以根据需要pip下载包了
  • 退出环境:deactivate,我通常会省去这步,直接activate 其他的虚拟环境名,这样方便转换到其他虚拟环境
  • 删除虚拟环境:conda remove -n env_name --all

Ubuntu系统

当然啦,由于我们实验室有工作站,是Ubuntu系统的,情况类似,只是在激活环境和退出环境时,前面要加上source

  • 激活环境:source activate env_name
  • 退出环境:source deactivate

Labelme的使用教程

首先,要安装好虚拟环境,如上所示,我的虚拟环境就叫labelme,专门使用它

1、激活环境

输入:activate labelme

2、下载指定版本

在该环境下,输入命令行

pip install labelme==3.16.7

据前辈所说,有些版本的labelme会发生错误,具体的错误为:Too many dimensions:3 > 2,

总之,这个下就行了。由于我的已经安装好了,所以这里不展示了。

3、创立图片文件夹

在一个文件下,我希望你有以下三个文件:

  • pic
  • json
  • lab

不管你的命名的是什么,搞清楚它们的作用就行了,pic是你需要标注的图片存放位置,json是你标注后生成的文件,lab是通过脚本将json文件转化为png格式的图片。

内容展示

4、使用labelme标注

激活环境后,直接输入labelme。

(labelme) C:\Users\honor>labelme

点击右边导航栏中顺数第二个,即可打开你需要标注的图片所在的文件夹进行批量标注。

我拿网上的数据集CrackForest,做为示范。

选中你要标记的图片,点击Create Polygons(顺数第七个)。

原始图片是这样的,在标注时一定要尽可能的放大最大去标注,你的预测效果与你的标注息息相关。如下图所示

记住一定要闭环,最后一个点一定要与起点相接。这里假设我们完成后,他就会出现这样的弹窗。

在这里的crack是我们自己输入的,输入一次后会默认,当然多个物体标注时,在下面的白色画布部分会有你想要分类的记录。

如果你觉得你自己有些点标注的地方不是很如意,可以点击Edit Ploygons(顺数第八个)。当你触碰到点时对应的点会变红变大,如果你移动到了中间的红色区域,你可以对其进行拖拽,对不满意的地方进行修改,这是其中的一个修改方法。

有些快捷键是你需要掌握的:

  • Ctrl+z:撤回上一个标注的点,不要一直按,它可能会同时将你已经标注好的区域全部撤回。
  • Ctrl+鼠标滚轮:对图片进行放大缩小
  • Alt+鼠标滚轮:左右横向移动
  • 鼠标滚轮:上下移动
  • Ctrl+s:保存

完成一张图后,一定一定要保存呀,位置就在json文件夹当中,保存成功后,右下角的File list对应图片的位置会有蓝底白色的小勾。

5、使用脚本将json转为png

Json2Image.py

import base64
import json
import os
import os.path as ospimport numpy as np
import PIL.Image
from labelme import utilsif __name__ == '__main__':jpgs_path = "E:\Deeplearning\Road_Detect_Project\THREE_ZJR\zjr"pngs_path = "E:\Deeplearning\Road_Detect_Project\THREE_ZJR\png"# classes     = ["_background_","aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow", "diningtable", "dog", "horse", "motorbike", "person", "pottedplant", "sheep", "sofa", "train", "tvmonitor"]# classes     = ["_background_","cat","dog"]classes = ["_background_", "crack"]count = os.listdir("E:\Deeplearning\Road_Detect_Project\THREE_ZJR\json")for i in range(0, len(count)):path = os.path.join("E:\Deeplearning\Road_Detect_Project\THREE_ZJR\json", count[i])print(count[i])if os.path.isfile(path) and path.endswith('json'):data = json.load(open(path), strict=False)if data['imageData']:imageData = data['imageData']else:imagePath = os.path.join(os.path.dirname(path), data['imagePath'])with open(imagePath, 'rb') as f:imageData = f.read()imageData = base64.b64encode(imageData).decode('utf-8')img = utils.img_b64_to_arr(imageData)label_name_to_value = {'_background_': 0}for shape in data['shapes']:label_name = shape['label']if label_name in label_name_to_value:label_value = label_name_to_value[label_name]else:label_value = len(label_name_to_value)label_name_to_value[label_name] = label_value# label_values must be denselabel_values, label_names = [], []for ln, lv in sorted(label_name_to_value.items(), key=lambda x: x[1]):label_values.append(lv)label_names.append(ln)assert label_values == list(range(len(label_values)))lbl = utils.shapes_to_label(img.shape, data['shapes'], label_name_to_value)PIL.Image.fromarray(img).save(osp.join(jpgs_path, count[i].split(".")[0] + '.jpg'))new = np.zeros([np.shape(img)[0], np.shape(img)[1]])for name in label_names:index_json = label_names.index(name)index_all = classes.index(name)new = new + index_all * (np.array(lbl) == index_json)utils.lblsave(osp.join(pngs_path, count[i].split(".")[0] + '.png'), new)print('Saved ' + count[i].split(".")[0] + '.jpg and ' + count[i].split(".")[0] + '.png')

在这里面,凡是出现了路径都要改,对应的部分一定要分清楚,然后所需要分的类型也要修改,也就是classes变量。接着点击运行就可以了。我的建议呢就是每个工程文件下都留有这个py文件,有好处的。

LabelImg的使用教程

这里我建议重新创建一个环境,虚拟环境的创建方法参照文章开头即可。

1、LabelImg的介绍

labelimg与labelme一样是用于标注图像的软件,用Python编写并使用Qt作为其ui图形界面。下面三种是它提供可标注的格式:

  •  VOC标签格式,保存为xml文件。
  •  YOLO标签格式,保存为txt文件。
  •  createML标签格式,保存为json格式。

2、LabelImg的安装

按照下面的流程进行安装即可:

pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install pyqt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install labelImg -i https://pypi.tuna.tsinghua.edu.cn/simple/

这里均用的都是国内的清华镜像源,下载速度比较快。

3、LabelImg的使用

(labelimg) C:\Users\honor>labelImg

这个界面还真是与labelme相似,这里要注意的是后面的是大写的字母“i”。

步骤一:

在左方的导航栏中,打开需要标注的图片目录。(由上至下第二个)

步骤二:

        快捷键Ctrl+R,选择默认保存途径。

步骤三:

首先,你需要对你标注的对象进行格式的选择,标注模式分为VOC和YOLO两种,两种模式下生成的标注文件分别为.xml文件和.txt文件。

绘制边界框,点击“Creat RectBox”后,选择合适的左上角,然后拖动,并对目标进行标注。

4、常常使用的快捷键

Ctrl + L更改线框颜色

Ctrl + D复制框

Ctrl + H隐藏所有的框

Ctrl + A显示所有的框

Ctrl + shift + F图像适应宽度

结语

2023-02-16 创作的是"虚拟环境的创建以及labelme的使用教程";

2023-03-13 新添labelimg的教程。

在人工智能的时代,标注数据已经成为了推动技术进步的重要一环。标注软件的使用对于数据标注的效率和准确性有着决定性的影响。我们需要意识到,标注不仅仅是一项重复性的劳动,更是一项需要技能和专业知识的工作。因此,我们需要持续地学习和探索,提高自身的标注能力。在这个过程中,labelme和labelimg这两款优秀的标注软件无疑是不可或缺的工具。

同时,我们也需要认识到,标注不仅仅是一种技能,更是一种责任。我们的标注数据将会被用于训练和评估各种人工智能模型。因此,我们需要严谨地对待每一项标注工作,确保数据的质量和可靠性。

最后,我想说,标注是一项具有挑战性和成就感的工作。每一次标注的进步和提高,都是对自己能力的认可和鼓励。让我们一起努力,探索标注的无限可能!(哈哈,说的有点大了)

虚拟环境的创建以及labelme和labelImg的使用教程相关推荐

  1. 使用虚拟环境virtualenv 创建虚拟环境出现PermissionError: [Errno 13] Permission denied:

    使用虚拟环境virtualenv 创建虚拟环境出现PermissionError: [Errno 13] Permission denied: 原因:虚拟环境安装的目录所属用户非当前用户 解决办法:将 ...

  2. python虚拟环境安装包_Python虚拟环境的创建和包下载过程分析

    为什么使用虚拟环境 因为直接在真实环境进行安装python的包会造成环境之间的污染,因此需要创建虚拟环境,原则上每一个项目都需要有一个独属于自己的虚拟环境 Python项目的每次运行都需要启动环境,如 ...

  3. 【Python虚拟环境】Windows环境下Python虚拟环境的创建与激活

    环境 win10+Python3.6 为什么要使用虚拟环境? 官方文档的解释是:Python应用程序通常会使用不在标准库内的软件包和模块.应用程序有时需要特定版本的库,因为应用程序可能需要修复特定的错 ...

  4. 【Python】conda实现虚拟环境的创建

    conda实现虚拟环境的创建 虚拟环境的背景 ​ 在同一台主机上创建和运行不同的开发项目是一件很常见的事件,但是在这个过程中,难免会遇到项目的依赖具有差异的问题,即在每次切换不同的项目时,都必须考虑当 ...

  5. 标注工具之labelme和labelimg

    深度学习的标注工具有很多,这里只介绍labelme和labelimg这两个,这两个工具刚一听起来很像,是的确实很像,但是还是稍有不同. 1.labelimg labelimg是目标检测的标注工具,这里 ...

  6. 【个人记录】如何使用PhotoShop(PS),Labelme和Labelimg做数据集标注

    [主要记录数据集标注,所用PhotoShop,Labelme和Labelimg安装就不说了] 一.分割图数据集制作 1.使用PhotoShop做分割网络标注 因为所标注的细胞图片,使用Labelme标 ...

  7. 使用labelme打标签,详细教程

    做图像语义分割,打标签时需要用到labelme这个工具,我总结了它的详细使用教程. 目录 一.安装labelme工具 二.文件位置关系 三.labelme工具 四.labelme工具的快捷键 五.代码 ...

  8. 创建Linux虚拟机及安装Linux镜像教程(手把手教程)

    创建Linux虚拟机及安装Linux镜像教程(手把手教程) 1.创建Linux虚拟机的准备工作 软件:VMware Workstation Pro(演示以VMware14为例) 镜像:rhel-ser ...

  9. 3D陶瓷模型如何从创建到精准贴图,完整教程来了!

    3D陶瓷模型如何从创建到精准贴图,完整教程来了! 最近一直搞陶瓷模型的精准贴图,一开始用的网上下载的免费模型,他们的UVW展开图很凌乱,搞的我头很大,于是一不做二不休,我们自己创建模型,B站找了一些有 ...

最新文章

  1. 滁州布局创新链服务链~农业大健康·万祥军:谋定功能性农业
  2. css的基本操作学习--css样式,选择器,hover,文字属性,文本属性,背景
  3. [linux]makefile使用
  4. 鸿蒙系统是安卓还是苹果,小雷问答丨鸿蒙系统到底和苹果安卓有什么区别?
  5. 记一次vue项目yarn打包环境配置失效的解决方案
  6. c语言作业系统输出超限,C语言网Online Judge系统支持语言和编译说明
  7. cuk电路设计及matlab仿真,cuk斩波电路仿真毕业论文,绝对精品.doc
  8. if name==main是什么意思_Python中if __name__ == quot;__main__quot;:是什么意思
  9. Reactjs项目创建
  10. ajax前端取消用户发送重复请求
  11. Track and Follow an Object----4
  12. MYSQL数据库中导入中国各个省份编号和省份
  13. Seeds超像素分割
  14. html文字和图片垂直居中,css如何让图片和文字垂直居中?
  15. 盘点阿里巴巴 15 款开发者工具 侵删
  16. 在腾讯云中配置服务器外网可以访问
  17. 读吴晓波《历代经济变革得失》
  18. Win7如何开启Aero特效?
  19. cesium查询arcgis/wms服务并实现自定义信息框,分页展示查询要素
  20. JavaScript字符串常用方法

热门文章

  1. 用FLASH方便地处理中文
  2. uploadifive不用flash上传图片插件,基于h5和jQuery上传图片插件
  3. 红旗2000胡才勇:开源软件伸向移动设备
  4. 小米路由器 php7,小米路由器好不好用?看完这个评测你就懂了!
  5. 招商银行行长北大演讲内容
  6. linux系统句柄数命令
  7. potplay播放突然变得模糊
  8. 【linux】linux中fork()详解(实例讲解)|fork的运行机制
  9. 数据库设计的三范式超详细详解
  10. 微服务 - 业务服务拆分分析