一、安装环境:windows10,anaconda3,python3.5

二、安装过程:

  1、管理员身份打开 anaconda prompt2、输入命令:conda create --name=python35 python=3.53、输入命令:activate python354、输入命令:pip install pyqt5,pip install pyside2(自己刚开始没有安装pyside2,运行 \anaconda安装目录\envs\labelme\Scripts\label_json_to_dataset.exe 会出现module "pyside"缺失错误)5、输入命令:pip install labelme(由于网络原因或者库的地址需要翻墙,经常运行一半出现错误,不要气馁,多执行几次),第四步可以直接跳过,执行第五步的时候,第四步会自动执行,【有解决方案是将以上命令替换为pip --default-timeout=100 install labelme,但是对我无效,好吧,可能是我的网络太差了。最后迫不得用电脑连手机开的热点才成功,心疼我的流量啊!】【由于网络原因或者库的地址需要翻墙,经常运行一半出现错误,不要气馁,多执行几次】

  6、输入命令:labelme   即可打开labelme。如下:

    安装完成后,需要使用再次启动labelme。则需要重新打开anaconda prompt,输入activate python35,进入python35环境。再输 入命令: labelme 即可

三、用labelme标注完图片后,会生成json文件

   标注图形(以人腿为例)

     点击保存后,会生成xx.json文件。1、如果将单个json文件生成数据集,运行命令: \anaconda安装目录\envs\labelme\Scripts\label_json_to_dataset.exe    \保存xx.json文件地址\ xx.json 会成生成五个文件 img.png,info.yaml,label.png,label_names,label_viz.png。其中label.png即是我们要的label_data了。但是!我的出现了错误


关于UnicodeDecodeError: ‘gbk’ codec can’t decode byte的解决办法【根据错误提示信息tranceback找到文件修改:】【代码出现错误仔细查看错误报告,从下到上回溯,百度谷歌错误的解决办法】

修改完之后,输入【labelme_json_to_dataset.exe json文件存放位置\xx.json】就成功了。
2、批量将json文件生成数据集。编写脚本如下:

方法一:
import os
path = ‘E:\label_data\leg_data_segmentation\DestTotalImg\’ # path是你存放json的路径
json_file = os.listdir(path)
for file in json_file:
os.system(“python C:\Users\PATAC\Anaconda3\envs\labelme\Scripts\labelme_json_to_dataset.exe %s”%(path + file))
不知道为什么,走到这步运行程序又出现了 module "pyside"缺失错误。误打误撞。执行命令:pip install --upgrade spyder 解决问题后程序执行。在你存放json的路径处就可看到生成的文件了。

方法二:
1.创建json_to_dataset.py脚本,保存在自己创建的文件中即可。

import argparse
import json
import os
import os.path as osp
import warningsimport PIL.Image
import yamlfrom labelme import utils
import base64def main():warnings.warn("This script is aimed to demonstrate how to convert the\n""JSON file to a single image dataset, and not to handle\n""multiple JSON files to generate a real-use dataset.")parser = argparse.ArgumentParser()parser.add_argument('json_file')parser.add_argument('-o', '--out', default=None)args = parser.parse_args()json_file = args.json_fileif args.out is None:out_dir = osp.basename(json_file).replace('.', '_')out_dir = osp.join(osp.dirname(json_file), out_dir)else:out_dir = args.outif not osp.exists(out_dir):os.mkdir(out_dir)count = os.listdir(json_file) for i in range(0, len(count)):path = os.path.join(json_file, count[i])if os.path.isfile(path):data = json.load(open(path))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)captions = ['{}: {}'.format(lv, ln)for ln, lv in label_name_to_value.items()]lbl_viz = utils.draw_label(lbl, img, captions)out_dir = osp.basename(count[i]).replace('.', '_')out_dir = osp.join(osp.dirname(count[i]), out_dir)if not osp.exists(out_dir):os.mkdir(out_dir)PIL.Image.fromarray(img).save(osp.join(out_dir, 'img.png'))#PIL.Image.fromarray(lbl).save(osp.join(out_dir, 'label.png'))utils.lblsave(osp.join(out_dir, 'label.png'), lbl)PIL.Image.fromarray(lbl_viz).save(osp.join(out_dir, 'label_viz.png'))with open(osp.join(out_dir, 'label_names.txt'), 'w') as f:for lbl_name in label_names:f.write(lbl_name + '\n')warnings.warn('info.yaml is being replaced by label_names.txt')info = dict(label_names=label_names)with open(osp.join(out_dir, 'info.yaml'), 'w') as f:yaml.safe_dump(info, f, default_flow_style=False)print('Saved to: %s' % out_dir)
if __name__ == '__main__':main()

2:配置环境及pycharm中运行刚创建的json_to_dataset.py 并传入json文件路径参数。如下图所示:

4:右键运行结果如下:

如果将来出现什么decode问题:可以重新沾一下代码
原作者:https://blog.csdn.net/lyl771857509/article/details/89313743?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

注意:遇到问题,仔细思考,不要盲干,耐心点,多查阅资料解决,看不同的人的讲解,别只在一棵树上吊死,多尝试几个方法,总有可以的!!!!!

labelme安装,win10-anaconda-python35-labelme及遇到的错误解决相关推荐

  1. Win10应用程序无法正常启动0xc0000018错误解决办法

    2019独角兽企业重金招聘Python工程师标准>>> Win10应用程序无法正常启动0xc0000018错误解决办法,在使用Win10的过程中有时当打开一款软件时会弹出下面的错误消 ...

  2. 安装gym库_DRL环境安装:Win10+Anaconda+PyTorch+PyCharm+Gym

    1 介绍 本文提供一份安装深度强化学习环境的教程: Win10+Anaconda+PyTorch+PyCharm+Gym. 2 各软件/模块简介 2.1 Anaconda 如果从事python开发,那 ...

  3. 安装mingw+Theano+keras(多警告、错误解决办法)

    安装mingw+Theano+keras 一.关于深度学习框架TensorFlow.Theano 和 Keras 二.可以安装theano.keras的python版本 三.安装mingw+Thean ...

  4. python psycopg2_Ubuntu 安装 PostgreSQL 和 python-psycopg2基础教程(以及错误解决)

    Ubuntu 安装 PostgreSQL 和 python-psycopg2基础教程(以及错误解决) 2012/06/27 by Crazyant    3条评论 Django支持以下四种数据库Pos ...

  5. 安装CAJViewer时遇到注册模块出现1904错误解决方法

    当安装CAj时遇到这们的错误 解决方法是到C:\Program Files (x86)\Common Files\TTKN\Bin 把这个目录下的内容都删除了:再安装使用. 问题解决成功安装成功

  6. Win10系统QQ无法登录,00001错误解决办法

    Win10系统QQ无法登陆,00001错误解决办法* 00001的问题:无法连接到互联网,您可以尝试以下操作: 检查网络是否畅通,防火墙是否允许QQ访问网络. 如果需要通过代理访问网络,请确认代理已设 ...

  7. 完美解决安装MySQL Install/Remove of the Service Denied!错误解决办法

    在cmd.exe 控制界面卸载MySQL,结果报错信息如下: Install/Remove of the Service Denied! 原来我用win+R进入的竟然不是admin身份(系统管理员,最 ...

  8. SQL安装时出现挂起的文件操作”错误解决办法

    SQL安装时出现"以前的某个程序安装已在安装计算机上创建挂起的文件操作--"错误解决办法 打开注册表编辑器(或在命令行输入:regedit),在HKEY_LOCAL_MACHINE ...

  9. Ubuntu下VMware安装win10虚拟机教程,以及卡死报错解决方法

    最近改用ubuntu做主系统用了,但是学校教学需要微信,我在编码时还爱用酷狗听音乐,但是这两款软件在linux上兼容不好 (主要是懒的折腾 就想到了开虚拟机装这些软件,但是装虚拟机碰壁了,报错卡死,网 ...

  10. 联想Y470安装win10之后开机黑屏时间长的解决方法

    本人的电脑联想Y470在升级win10之后(两年前),一直在显卡驱动这里遇到坑.主要是显卡驱动的版本一直不合适,用驱动精灵检测也是找不到合适的版本.建议大家不要升级驱动的型号吧,硬件配置比较低了. 昨 ...

最新文章

  1. ajax iframe实现文件上传,iframe实现Ajax文件上传效果示例
  2. 如何欣赏一个深度学习框架?
  3. 获取组件的方式(方法)
  4. Android布局Include的好处,Android布局之include文件的使用中的疑难杂症
  5. Android解决依赖冲突
  6. 【英语学习】【English L06】U03 House L4 How much is the rent?
  7. 还对Angel平台一知半解?腾讯专家为你指点迷津!
  8. 【自我救赎--牛客网Top101 4天刷题计划】 第四天 登峰造极
  9. 运维角度浅谈MySQL数据库优化
  10. Python 之操作so动态库
  11. python3的字符串操作
  12. 软考【网络工程师】(上午经典例题——软件项目活动图 详解)
  13. 抖音热门音乐整理合集歌曲打包分享
  14. ios 图片合成幻灯片_为iPad构建iOS幻灯片应用程序
  15. oracle快速复制一个表
  16. 什么品牌台灯最舒服?推荐最热门的护眼灯品牌排行
  17. Lenovo T460 Fn功能键切换
  18. MTK Http Socket GPRS以及解析器和下载器概述
  19. Luna承诺简化JavaScript测试
  20. bzoj1305【CQOI2009】dance 跳舞

热门文章

  1. STC8系列单片机硬件I2C使用教程(二)
  2. 用MDT 2012为企业部署windows 7(十二)--修改部署系统的任务序列
  3. DAY TRADER
  4. 计算机中的cnc代表什么意思,CNC是什么意思
  5. 27岁才开始学习编程靠谱吗?40岁都不晚
  6. houdini 技术
  7. JavaScript 驼峰命名转下划线命名
  8. 破解rarfile extractall 的中文密码的错误编码
  9. Java Web基础面试问题——Cookie和Session
  10. 操作系统学习笔记六、操作系统初识