开源图像标注工具labelme的安装使用及汉化
一 LabelMe简介
labelme是麻省理工(MIT)的计算机科学和人工智能实验室(CSAIL)研发的图像标注工具,人们可以使用该工具创建定制化标注任务或执行图像标注,项目源代码已经开源。
项目开源地址:https://github.com/CSAILVision/LabelMeAnnotationTool
labelMe项目地址:http://labelme.csail.mit.edu/Release3.0/
MIT的labelme源代码可以安装到服务器上使用,是一个在线的Javascript图像标注工具,可在任意地方使用,不需要在电脑中安装大型数据集。
本文主要介绍一个python版本的labelme,这个labelme项目是利用QT Designer进行图形界面的开发,生成ui文件,使用工具转换为py文件,然后再添加python编写的逻辑实现,最终呈现在大家面前的都是py文件。这个python版本也是开源的。
Python版本labelme地址:https://github.com/wkentaro/labelme
二 LabelMe的安装
我的安装环境是Windows 10,labelme的安装需要很多依赖的环境和程序,主要的环境是anaconda,还需要的是python和pyqt,具体安装过程如下
- 安装anaconda。在anaconda官网https://www.anaconda.com/download/上下载合适的版本,使用最新的或者比较稳定的,有两个版本,我选择的是python3版本。

下载后默认安装,一直点击下一步,直到完成安装。
2. 安装依赖程序和labelme。anaconda安装成功后,在开始菜单中,会有多个anaconda工具,其中就有Anaconda Prompt,运行它,就像windows中的cmd命令行一样。执行以下命令,完成相应的程序安装。
安装python环境
conda create –name=labelme python=3.6(对应自己的python版本)
安装pyqt
conda install pyqt(会安装最新的pyqt5)
安装labelme
pip install labelme
运行labelme。
还是在Anaconda Prompt中输入labelme,即运行labelme,图形化的labelme界面就会打开。
三 LabelMe的py代码在pycharm中运行
Python集成开发工具Pycharm的安装及使用,大家可以自行百度,比较简单,不再介绍。首先将https://github.com/wkentaro/labelme中的源代码下载到本地,在pytharm中打开labelme项目,要让labelme运行起来,最重要就是设置labelme的运行环境,也就是设置好labelme运行时用到的那些依赖。在上一步的labelme的安装中,已经将labelme的依赖都安装完成了,我们只需要在pycharm中设置即可。
在pycharm的File菜单选择settings…,打开软件配置窗口,左侧的Project Interpreter(项目解释器),在右侧要选择合适的python环境,这里使用在上一步中安装的python程序,这个python程序是默认安装的,地址是C:\Users\dell\AppData\Local\conda\conda\envs\labelme\python.exe,这个python环境包含的了很多安装包,都是labelme运行依赖的一些程序。设置完成后,点击确认。

打开labelme根目录下的main.py文件,然后点击右键,选择Run ’main’,或者在菜单Run选择Run ’main’,这样就可以正常运行labelme项目了。
四 LabelMe的汉化
Labelme在pycharm中运行后,我们就可以对labelme进行二次开发了。比较简单的一个开发就是汉化,labelme界面都是英文,想把它里面的菜单、提示信息等改为中文,就可以根据项目结构,修改相应的py文件即可。
在main.py的导入模块中,有from labelme.app import MainWindow,可以知道labelme的窗口主要在app模块中设置,打开与main.py同目录的app.py,可以看到很多菜单名称以及提示信息,根据运行窗口中菜单名称和提示信息,在app.py程序中查找,然后进行有针对的修改,就可以了。

五 LabelMe转换为exe文件
为了方便使用labelme程序,可以将py程序转换为exe程序,在windows环境中无需安装python,就可以运行labelme。转换工具使用的是pyinstaller,比较早的pyinstaller介绍文章说它不支持python3,现在已经支持python3了。
1 安装pyinstaller
首先安装pywin32
pip install pywin32
然后安装pyinstaller
pip install pyinstaller
2 使用pyinstaller
比较简单的转换操作
pyinstaller -F E:/ python_workspace/labelme/main.py
会在当前目录生成dist文件夹,build文件夹和spec文件
dist目录(目录里面有可执行文件)
build目录(生成exe的中间文件)
spec文件(要转换文件的同一目录下,用于生成exe文件,可以修改来自定义生成exe的属性)
其中-F是参数,表示要生成一个exe文件,文件在dist目录中。
还有一些其他的参数使用,可以利用pyinstaller -h命令查看,比如-w生成窗口界面程序,-c生成控制台程序,--distpath制定生成exe文件的路径,--log-level指定输出的日志信息等等。
六 总结
Labelme是一个开源图像标注工具,对它进行使用及二次开发涉及到比较多的知识,通过研究labelme可以了解很多新知识,除了文中介绍的一些知识外,还有图形开发工具QT Designer,是一种可以集成到pycharm中的图形开发工具,生成ui文件,可以转换为py文件,和pycharm结合,可以进行图形界面开发,python版的labelme就是使用QT开发界面。在研究的过程中,也碰到一些问题,比如转化为exe文件时,有路径不正确的问题,需要根据提示信息修改程序的路径;图片不能显示的问题,需要将图片转换为base64形式保存,这些是pyinstaller需要完善的。
参考资料
1 http://www.myzaker.com/article/598012931bc8e0ab2a000022/,MIT 开放图像标注工具 LabelMe 源代码:助力机器视觉的发展
2 https://blog.csdn.net/shwan_ma/article/details/77823281,图像语义分割,Label data的标注--Labelme(python)
3 https://blog.csdn.net/pipisorry/article/details/50620122,pyinstaller使用-python项目转换成exe可执行文件
开源图像标注工具labelme的安装使用及汉化的更多相关文章
- 深度学习标注工具 LabelMe 的使用教程(Windows 版本)
深度学习标注工具 LabelMe 的使用教程(Windows 版本) 2018-11-21 20:12:53 精灵标注助手:http://www.jinglingbiaozhu.com/ LabelM ...
- 深度学习图像标注工具VGG Image Annotator (VIA)使用教程
VGG Image Annotator (VIA)是一款开源的图像标注工具,由Visual Geometry Group开发. 可以在线和离线使用,可标注矩形.圆.椭圆.多边形.点和线.标注完成后,可 ...
- 图像标注工具labelImg使用方法
最近在做打标签的工作,为了与大家参考学习,总结了在windows的环境下,基于anaconda的图像标注工具labellmg的一种使用方法! 1 搭建anaconda 以前写过怎么搭建anaconda ...
- 全球第一开源云ERP Odoo操作手册 模块安装和界面汉化指南
之前介绍了odoo的安装和初始设置以及数据库,下面来介绍odoo的模块安装和界面汉化. 1.4 模块安装和界面汉化 Odoo 的功能包含在不同的模块中, 刚创建的数据库除 Odoo 的核心模块外, 其 ...
- PowerDesigner V16.5 安装教程以及汉化(数据库建模)
一.power designer是什么以及是干什么的? power designer是能进行数据库设计的强大的软件,是一款开发人员常用的数据库建模工具.分别从概念数据模型(Conceptual Dat ...
- (转)centos6.5下Zabbix系列之Zabbix安装搭建及汉化
最近在研究zabbix,在整理完成之后就有了写一下总结博客的想法,在我研究zabbix的时候给我很大帮助的是it你好,博客地址 http://itnihao.blog.51cto.com/他做的zab ...
- loadrunner11 安装破解,汉化包
说说自己的心痛史,好不容易安装了loadrunner 11 居然浏览器不支持,我的系统是win8.1,ie浏览器最低支持ie11,我还能说啥子...其他浏览器试过了依旧是不可以!!所以我安装了一个虚拟 ...
- ERDAS 2014安装破解及汉化图文教程
关于ERDAS 2014 的安装破解及其汉化过程: 说明:汉化只是之针对英语能力不能正常满足使用软件的朋友们.如果英语过专八,完全没有必要汉化!在此之前查了好多关于ERDAS汉化的文档,可惜只是简单的 ...
- centos6.5下Zabbix系列之Zabbix安装搭建及汉化
最近在研究zabbix,在整理完成之后就有了写一下总结博客的想法,在我研究zabbix的时候给我很大帮助的是it你好,博客地址http://itnihao.blog.51cto.com/他做的zabb ...
随机推荐
- JavaScript设计模式 Item 2 -- 接口的实现
1.接口概述 1.什么是接口? 接口是提供了一种用以说明一个对象应该具有哪些方法的手段.尽管它可以表明这些方法的语义,但它并不规定这些方法应该如何实现. 2. 接口之利 促进代码的重用. 接口可以告诉 ...
- codeforces 985C Liebig's Barrels
题意: 有n * k块木板,每个木桶由k木板组成,每个木桶的容量定义为它最短的那块木板的长度. 任意两个木桶的容量v1,v2,满足|v1-v2| <= d. 问n个木桶容量的最大的和为多少,或者 ...
- delete.go
package api import ( "net/http" "fmt" "io/ioutil" &quo ...
- vue enter事件无效,加入native
<Input type="password" v-model="password" placeholder="password" @k ...
- Java IO--字符流--BufferedReader和BufferedWriter
从昨天开始没事情干时,决定梳理梳理Java IO流,因为觉得太混乱这个东西,妈的,咋就这么多类型,想累死谁啊,这里并不是埋怨创造者,而是气自己看着看着老跑偏,实在看不进去,太多了,想睡觉,所以现在决定 ...
- Android性能优化-内存泄漏的8个Case
1为什么要做性能优化? 手机性能越来越好,不用纠结这些细微的性能? Android每一个应用都是运行的独立的Dalivk虚拟机,根据不同的手机分配的可用内存可能只有(32M.64M等),所谓的4GB. ...
- 最新.net和Java调用SAP RFC中间件下载
还记得2012年初我发布的全网络第一个关于.net 连接SAP RFC的NCO3原创博文,用的就是SAP出的最新的.Net Connector 3.0的版本,在那个时候都是普遍用其他蹩脚的方式或Web ...
- Bootstrap优秀模板-Unify.2.6.2
这是一个非常老牌的Bootstrap商业模板,全面性和稳定性俱佳,有LandingPage.BussinessPage.AdminPage多种模式,非常推荐用来构建官网.响应式应用Web.管理端Web ...
- 「Continuous_integration, CI」为什么要持续集成?
前言 什么是持续集成,为什么要持续集成?本文对持续集成前后两种开发实践做了对比分析,从而直观的感受到持续集成的好处. 在说持续集成之前,先说一下传统的开发模式: 传统模式: 传统模式过程如下: 传 ...
- 中小研发团队架构实践之分布式协调器ZooKeeper
一.ZooKeeper是什么 Apache ZooKeeper是由Apache Hadoop的子项目发展而来,于2010年11月正式成为了Apache的顶级项目. ZooKeeper是一个开放源代码 ...