一、labelme下载及安装
我在这篇文章详细记录了labelme的下载和安装过程:https://blog.csdn.net/qq_45828295/article/details/126451235
1.创建两个文件夹和一个label文件
(1)img_data:存放需要标注的图片
(2)data_annotation:存放标注好的json文件
(3)label.txt:标签(格式如下)
__ignore__和__background__是必须有的,然后放自己要的标签
2.打开labelme进行标注
(1)修改保存路径:file-change output dir,然后会自动保存,不需要每张保存
(2)可以取消勾选file-save with image data,原图片不会和标注过的数据保存在一起
(3)标注
二、数据转coco格式
(一).将单个json文件转换成coco格式
1.找到labelme的文件夹下的json_to_dataset.py文件
2.修改输入输出路径:
3.直接运行
输出结果如下:
(二)批量转换多个json文件为COCO格式
1.下载labelme2coco
链接: https://pan.baidu.com/s/1YvPzDoHQMPr4s15VvRz_9g 提取码: t79e
解压后:
2.安装labelme2coco,执行下列命令
python setup.py install
安装后:
3.执行批量转换代码
(1)转换的python文件见下面的链接:
链接: https://pan.baidu.com/s/1c8AZVQZ-tAInyzTMRLu73w
提取码: ss95
(2)修改输入输出路径
然后运行就可以了。
(3)这里有一个提醒,好像是需要将labelme标注的标签文件和图片放在一个文件里
4.查看转换的标签
运行以下程序
(后面附pycocotools的下载方法,直接用pip下载不了)
import os
from pycocotools.coco import COCO
from skimage import io
from matplotlib import pyplot as plt
json_file = r'D:\Tsui\RAS\labelme2coco-master\new_annatation\train_coco_format.json' # 输入文件路径
dataset_dir = r''
coco = COCO(json_file)
catIds = coco.getCatIds(catNms=['head']) # 标注的图片的不同类型别,超过一类,用逗号隔开
imgIds = coco.getImgIds(catIds=catIds ) # 图片id,许多值
for i in range(len(imgIds)):
img = coco.loadImgs(imgIds[i])[0]
I = io.imread(dataset_dir + img['file_name'])
plt.axis('off')
plt.imshow(I) #绘制图像,显示交给plt.show()处理
annIds = coco.getAnnIds(imgIds=img['id'], catIds=catIds, iscrowd=None)
anns = coco.loadAnns(annIds)
coco.showAnns(anns)
plt.show() #显示图像
5.附:解决“No module named ‘pycocotools’”
(1)下载whl文件
下载目录在虚拟环境包下(下载的路径并不固定,只要执行下一步cd到该目录就好),如我的环境叫labelme,我就下在:D:\anaconda_environment\envs\labelme
(2)下载链接:
https://pypi.tuna.tsinghua.edu.cn/simple/pycocotools-windows/
cp36,cp37,cp38分别代表python3.6,3.7,3.8
我用的anaconda虚拟环境,查看python版本执行python -V
(3)然后执行pip install (刚才的文件名称,如:)pycocotools_windows-2.0.0.2-cp38-cp38-win_amd64.whl