labelme图像标注,labelimg批量标注图片
先把Labelme的用法记录下来,方便快速使用。
labelme概述labelme可用于实例划分、语义划分、目标发现和分类任务的数据集标记任务。
在线标记版本
Python版本
公文分类标志:分类
目标探测标志:目标探测
语义分割:语义分割
实例化标签:实例化分段
视频注释:视频注释
其他格式标签:LabelMe原语
所有安装操作都将在安装Anaconda的环境中执行。
安装pyqt5
安装Pippin StallpyQt 5-I https://pypi.tuna.Tsinghua.edu.cn/simple2.标签我
安装PISTALLABELme-I https://pypi.tuna.Tsinghua.edu.cn/simple3.后,从命令行启动LABELme。
我的标签
打开此处的图像文件夹进行演示。
1.单击左侧的打开目录,选择要标记的数据文件夹。
2.在顶部的编辑菜单栏中,您可以按照多边形(默认)、矩形、圆形、直线和点的顺序选择不同的方案。
3.创建图像分割数据,选择多边形,点击左侧创建多边形,返回图像,按鼠标左键生成点,标记后形成标记区域。同时会显示labelme框,输入标签名称,然后点击确定或换行符完成标记。
1.如果需要更改标签中的数据,可以选择左边的编辑框,或者将鼠标移到标签上并单击鼠标右键,然后选择编辑标签或标签的名称。在编辑模式下,将鼠标移动到边界并单击鼠标右键以添加点。
2.标记后点击“保存”保存。在图像路径下会生成一个同名的json文件。在目录中打开终端并输入:
me _ json _ to _ dataset filename . JSON将生成的JSON转换成相应的数据文件。
* . png info . YAML label.png label _ names . txt label _ viz.png常用命令
1.启动labelme的方式
直接打开labelmelabelme# open #文件夹,然后加载该文件夹及其子文件夹labelme path/to/imgfile/#下的所有图片。指定的图像标签为me cat.1.jpg#标签。同时,gui窗口labelmecat.1.jpg-ocat.1.jpg.jpg.jpg将自动关闭labelllabelmecat.1.jpg -label cat,eye #或transfer。
#在当前目录下生成文件夹cat _ 1 _ jsonlabelme _ JSON _ to _ datasetcat . 1 . JSON #,并将生成的文件夹命名为cat1label me _ JSON _ to _ datataset。
#终端输入labelme_draw_json cat.1.json
2.将json文件转换为image和label
1.在目录中创建新的labels.txt文件。是内容分段的标签,默认内容设置如下。
2.创建新的labelme2voc.py文件。
您可以从labelme项目目录中的labelme2voc.py文件复制内容,也可以使用以下代码:
#!/usr/bin/envpythonfrom _ future _ import print _ functionimportargpassimportglobimportos . pathasospimportsysimportimorgort labelmmedefmmefmet formatter _ class=arg p arse . argumentdefaultshelpformatter(arser . argumentdefaultshelpformatter)paber help= .parser . add _ argument( output _ dir ,help=output dataset directory )分析器
-诺维兹,救命=无可视化,action= store _ true )args=parser。如果是OSP,请使用parse _ args()。存在(参数。Output _ dir):print(输出目录已经存在:,参数。输出目录)系统。退出(1)操作系统。makedirs(参数。Output _ dir)OS。马克迪(OSP。加入(参数。Output _ dir, JPEGImages ))OS。马克迪(OSP。加入(参数。Output _ dir,分段类))OS。makedirreadlines()):class _ id=I-1 #以-1 class _ name=line。strip()class _ name _ to _ id[class _ name]=class _ id if class _ id==-1:assert class _ name== _ _ ignore _ _ continue elif class _ id==0:assert class _ name== _ background _ class _ names。append(class _ name)class _ names=tuple(class _ names)print( class _ names:,class _ names)out _ class _ names _ file=OSP .join(class _ names))print( Saved class _ names:,out _ class _ names _ file)for filename in glob。全球(OSP。加入(参数。输入目录 * .json)): print(生成数据集自:,filename) label_file=labelme .标签文件(文件名=文件名)base=OSP。拆分分机(OSP。basename(文件名))[0]out _ img _ file=OSP。加入(参数。output _ dir, JPEGImages ,base .jpg )out _ LBL _ file=OSP。加入(参数。output _ dir, SegmentationClass ,base .npy’)out _ png _ file=OSP。加入(参数。output _ dir, SegmentationClassPNG ,base .png )如果不是参数。诺维兹:out _ viz _ file=OSP。加入(参数。output _ dir, SegmentationClassVisualization ,base .jpg ,)与open(out_img_file, WB )为f:f . write(label _ file。imagedata)img=给我贴标签。utils。img _ data _ to _ arr(label _ file。LBL,_=给我贴标签。utils。形状到标签(img _ shape=img。shape,shapes=label_file.shapes,label _ name _ to _ value=class _ name _ to _ id,)labelme.utils.lblsave(out_png转换为挥发性有机化合物数据格式
# 终端输入python labelme2voc.py [图像路径] [voc文件夹名称] -标签[标签列表]#比如python labelme2voc.py。/id_labelme/images。/id _标签我/目标-标签。文本文件(textfile)
在目录下会根据设定自动生成目标文件夹。文件夹下内容如下所示:
参考拉贝梅使用
深度学习图像标注工具-拉贝梅