Python中labelme的功能有哪些,用法是怎样
Admin 2022-06-23 群英技术资讯 1142 次浏览
今天就跟大家聊聊有关“Python中labelme的功能有哪些,用法是怎样”的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇“Python中labelme的功能有哪些,用法是怎样”文章能对大家有帮助。labelme是一个非常好用的免费的标注软件,博主看了很多其他的博客,有的直接是翻译稿,有的不全面。对于新手入门还是有点困难。因此,本文的主要是详细介绍labelme该如何使用。
labelme是图形图像注释工具,它是用Python编写的,并将Qt用于其图形界面。说直白点,它是有界面的, 像软件一样,可以交互,但是它又是由命令行启动的,比软件的使用稍微麻烦点。其界面如下图:

它的功能很多,包括:
安装教程都是参考的labelme github。
官网步骤如下:
# python3 conda create --name=labelme python=3.6 source activate labelme # conda install -c conda-forge pyside2 # conda install pyqt # pip install pyqt5 # pyqt5 can be installed via pip on python3 pip install labelme # or you can install everything by conda command # conda install labelme -c conda-forge
1.为labelme创建一个conda环境,命名为lableme

2.激活该环境

windows用命令activate labelme 或者 conda activate labelme
很少用windows, 说的不对请指正。
其实在这一步中,我遇到了一个问题
C:\Windows\system32> conda activate labelme
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run
$ conda init <SHELL_NAME>
Currently supported shells are:
- bash
- fish
- tcsh
- xonsh
- zsh
- powershell
See 'conda init --help' for more information and options.
IMPORTANT: You may need to close and restart your shell after running 'conda init'.
初始化conda啥的,不是很懂,最后通过博客解决
我用的第一种方法


3 安装pyqt
前言里讲过labelme是基于Qt的,所以必须安装
conda/pip install pyqt
4 pip install labelme
# Ubuntu 14.04 / Ubuntu 16.04 # Python2 # sudo apt-get install python-qt4 # PyQt4 sudo apt-get install python-pyqt5 # PyQt5 sudo pip install labelme # Python3 sudo apt-get install python3-pyqt5 # PyQt5 sudo pip3 install labelme # or install standalone executable from: # https://github.com/wkentaro/labelme/releases
注意:使用如上安装前,同winsows一样,需要先创建labelme的conda环境。
# macOS Sierra brew install pyqt # maybe pyqt5 我用的pip安装 pip install labelme # both python2/3 should work # or install standalone executable/app from: # https://github.com/wkentaro/labelme/releases
说明:这三种系统我都成功安装过,放心吧~
安装成功的哑子
有如下这些包

下次使用,命令行输入labelme就可以打开软件啦。严谨的来说,它是一个用pyqt5编写的GUI界面。


图上看到,这个界面是非常简洁的。
接下来具体讲讲如何使用。医学图像分析,我主要是研究分类和分割,所以重点讲解如何标注分类标签和分割标签。
使用labelme --help会出来labelme的使用方法,它包括如下参数

我们解释几个重要的参数设置
举例:
命令行输入 labelme image1.png --output image1.json --flags 0,1

其中,image1.png是图像的地址,而不是名字。注意区别,因为我现在的路径在图像存放的当前文件夹,所以输入名字就可以直接找到该图像。如果你当前路径不在图像存放的文件夹,你需要给出图像的完整路径,如F:\labelmeImage\image1.png
�output image1.json 就是把打标签的结果存放在image1.json这个文件里。因为我是对单一图像打标签,所以是以.json结尾。如果是对一个文件夹进行打标签,那这里就不要以.json结尾,直接输入你想存放的文件夹就行。
�flags: 描述你分类的标签是什么,0,1表示分两类。也可以写成多类,0,1,2,3,4.也可以用其他字符,如 negative,positive, 或者cat, dog。等等~

命令行输入labeme 并且给定分类标签。
打开图上右边界面后,导入文件夹,就可以点图像,对它进行标注。标注完一个,需要对其进行保存,才能打第二个图像的标签。这里没有给定输出位置,就会默认保存在图像这个文件夹,并且名字和图像的名字一样,并以.json结尾。
创建分割标签主要用到多边形工具, 把需要的区域框出来就好了。
实验数据来自labelme github: labelme/tree/master/examples/semantic_segmentation



1.运行labelme后,打开文件夹
2.使用多边形工具勾勒目标
3.勾勒完成后创建标签
4.微调边框。点击编辑多边形,有很多操作。如图上所示
5.最后存储
以上是简单的演示,官方做的实验如下:
首先下载semantic_segmentation 这个文件夹。

注意:以下实验都是在该文件夹下打开的终端

标注文件
labelme data_annotated --labels labels.txt --nodata --validatelabel exact --config ‘{shift_auto_shape_color: -2}'

作者已经标注好了,我们就打开看看。
标签格式转换
由于标注好的文件是json格式,我们将其转化成图片格式或者其他格式。使用作者给的代码labelme2voc.py。主要转化的格式有: 类名字文件,原始图像的jpeg格式,分割图像的npy格式,png格式, 以及将分割图像叠在原始图像上的jpg格式。


作者给的命令: ./labelme2voc.py data_annotated data_dataset_voc --labels labels.txt
但是运行时会有报错,修改成如下运行:
python labelme2voc.py data_annotated data_dataset_voc --labels labels.txt
针对报错:如果命令行不好修改代码,建议直接修改这个Python文件里面的参数配置,再运行都可以。
labelme_draw_json 2011_000003.json

labelme_json_to_dataset apc2016_obj3.json -o apc2016_obj3_json
apc2016_obj3.json: 待转化的json文件,
apc2016_obj3_json: 转化后文件保存地址
一共会生成4个文件:
img.png: Image file.
label.png: uint8 label file.
label_viz.png: Visualization of label.png.
label_names.txt: Label names for values in label.png.

这和第4小节讲的格式转化差不多,4小节的python文件是可以根据自己需要随便改设置的,而这个内置方法是不允许改动的。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了python 中的requirements.txt文件的使用详情,文章围绕主题展开详细内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
有的时候需要用python处理二进制数据,比如,存取文件,socket操作时 这时候,可以使用python的struct模块来完成 可以用 struct来处理c语
一、概述random模块用于生成伪随机数之所以称之为伪随机数,是因为真正意义上的随机数(或者随机事件)在某次产生过程中是按照实验过程中表
单目三维重建是根据单个摄像头的运动模拟双目视觉获得物体在空间中的三维视觉信息,下面这篇文章主要给大家介绍了关于如何基于python实现单目三维重建的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
本文介绍的pdf转word功能还有一些待完善地方,例如可增加预览功能,实现每页预览,当然我们可以在后续阶段逐渐完善,对基于PyQt5完成的pdf转word功能感兴趣的朋友一起看看吧
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008