windows下使用labelme标注数据集后上传到linux服务器上并将json格式转换为info.yaml和label.png

时间:2024-05-21 09:14:30

步骤:

可以参考https://blog.****.net/l297969586/article/details/79140840/

(1)windows安装labelme

github地址:https://github.com/wkentaro/labelme 

打开cmd终端:

sudo apt-get install python-qt4 pyqt4-dev-tools
sudo pip install labelme12

 

使用,只需在终端输入:

labelme

确定可以使用labelme时,打开软件对一张图进行标注,并保存为json格式,如file1.json

windows下使用labelme标注数据集后上传到linux服务器上并将json格式转换为info.yaml和label.png

 

 

(2)批量json文件转换为info.yaml和label.png

将windows下file1.json、file2.json……系列文件上传到linux服务器。打开xshell程序,将所有文件拷贝到xshell的工作目录C:\Users\user\Documents\NetSarang Computer\6\Xshell\Sessions

使用sftp 用户名@IP连接远程服务器,输入以下命令

put 文件

进行上传

get 文件

进行下载

上传的文件需要批量转换,编写脚本文件进行转换操作labelmedata.sh。将S1改为对应的路径和图片前缀即可

#!/bin/bash
s1="/home/zhongjia/file"
s2=".json"
for((i=1;i<901;i++))###图片量
do 
s3=${i}
labelme_json_to_dataset ${s1}${s3}${s2}
done
 

命令端执行: bash labelmedata.sh    (需要确保linux安装了labelme软件,否则无法调用lableme_json_to_dataset命令)

可能会出现如下提示:

提示1:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 675: invalid continuation byte

这是因为windows下保存的file1.json文件没有保存utf-8格式,需要在windows下将file1.json文件另外存为utf-8格式

改完后再次执行上述命令:

提示2:json.decoder.JSONDecodeError: Unexpected UTF-8 BOM (decode using utf-8-sig): line 1 column 1 (char 0)

出现了BOM头,参考https://www.cnblogs.com/qinmengjiao123-123/p/8325646.html,这不属于正文内容,只是对文件格式的提示,所以需要去掉,最简单的方式是再次将文件保存为utf-8 选择无BOM格式

windows下使用labelme标注数据集后上传到linux服务器上并将json格式转换为info.yaml和label.png

 

 

这样上面提示的文件格式问题彻底解决

再次执行bash labelmedata.sh命令

在当前目录下产生file1_json文件夹,可以看到里面产生了5个文件

windows下使用labelme标注数据集后上传到linux服务器上并将json格式转换为info.yaml和label.png

想打包将结果传会windows查看,打包成tar文件,

单个文件压缩打包 tar czvf my.tar file1

多个文件压缩打包 tar czvf my.tar file1 file2,...

单个目录压缩打包 tar czvf my.tar dir1

多个目录压缩打包 tar czvf my.tar dir1 dir2

解包至当前目录:tar xzvf my.tar

可以导致在window使用winrar和7-zip都无法很好的解压,甚至解压后出现一个无法使用的文件,我打包后就产生了mylabel可以解压,无法查看图片的文件

windows下使用labelme标注数据集后上传到linux服务器上并将json格式转换为info.yaml和label.png

 

所以在windows下用tar命令解压

,打开cmd终端,输入以下命令,提取tar包文件夹内容在指定路径(当前目录),如tar xvf mylabel.tar -C D://aa 可以参考https://blog.****.net/lwei_998/article/details/9008145

windows下使用labelme标注数据集后上传到linux服务器上并将json格式转换为info.yaml和label.png

 

以上问题解决了,则可以在windows下标注数据集,并上传linux服务器生成相应的yaml文件和label.png文件