找回密码
 会员注册
查看: 18|回复: 0

使用labelme打标签,详细教程

[复制链接]

4

主题

0

回帖

13

积分

新手上路

积分
13
发表于 2024-9-10 19:49:50 | 显示全部楼层 |阅读模式
💪专业从事且热爱图像处理,图像处理专栏更新如下👇:📝《图像去噪》📝《超分辨率重建》📝《语义分割》📝《风格迁移》📝《目标检测》📝《暗光增强》📝《模型优化》📝《模型实战部署》做图像语义分割,打标签时需要用到labelme工具,下面总结了该工具的详细使用教程。labelme工具是一个纯手工工具,推荐一个半自动标注工具ISAT,类似PS中的魔棒工具,点击目标物体自动框选,后台运行的是深度学习模型(多模型可选择),框选精度和打标签效率贼高,非常推荐学者使用此工具打标签,使用方法见:半自动打标签工具ISAT安装及使用教程目录一、安装labelme工具二、文件位置关系三、labelme工具四、labelme工具的快捷键五、代码(将标签文件转为统一固定格式)六、总结一、安装labelme工具进入到对应的虚拟环境后输入下面命令安装即可。注意:安装的版本,建议安装3.16.7版本,其它版本的容易出错:pipinstalllabe1me==3.16.7-ihttps://mirrors.aliyun.com/pypi/simple/1具体的安装样纸见下:二、文件位置关系三、labelme工具打开labelme工具后的样纸见下:使用前首先勾选自动保存功能,如下:下面是常用按钮选项功能介绍:下面是打标签的实际例子:自动保存后的样纸见下:四、labelme工具的快捷键我自己常用到的快捷键就D(打开上一张图片),A(打开下一张图片),Ctrl+Z撤销上一个点。shortcuts:close:Ctrl+W#关闭open:Ctrl+O#打开open_dir:Ctrl+U#打开文件夹quit:Ctrl+Q#退出save:Ctrl+S#保存save_as:Ctrl+Shift+S#另存为save_to:nulldelete_file:Ctrl+Delete#删除文件open_next:[D,Ctrl+Shift+D]#打开下一张图open_prev:[A,Ctrl+Shift+A]#打开上一张图zoom_in:[Ctrl++,Ctrl+=]#放大zoom_out:Ctrl+-#缩小zoom_to_original:Ctrl+0#回到原尺寸fit_window:Ctrl+F#图片适应窗口fit_width:Ctrl+Shift+F#图片适应宽度create_polygon:Ctrl+N#创建多边形(这个用的多,建议改了)create_rectangle:Ctrl+R#创建圆create_circle:nullcreate_line:nullcreate_point:nullcreate_linestrip:nulledit_polygon:Ctrl+J#编辑多边形(这个用的多,也是建议改了)delete_polygonelete#删除duplicate_polygon:Ctrl+D#等边行复制copy_polygon:Ctrl+C#复制paste_polygon:Ctrl+V#粘贴undo:Ctrl+Z#重做undo_last_point:Ctrl+Z#撤销上一个点add_point_to_edge:Ctrl+Shift+P#增加一个点(用不到,直接在边界上点鼠标左键就能加点)edit_label:Ctrl+E#编辑标签toggle_keep_prev_mode:Ctrl+Premove_selected_point:[Meta+H,Backspace]#删除选定的点123456789101112131415161718192021222324252627282930313233343536五、代码(将标签文件转为统一固定格式)使用下面的代码进行转换,代码中需要修改的地方见下:详细代码见下:importbase64importjsonimportosimportos.pathasospimportnumpyasnpimportPIL.Imagefromlabelmeimportutils'''制作自己的语义分割数据集需要注意以下几点:1、我使用的labelme版本是3.16.7,建议使用该版本的labelme,有些版本的labelme会发生错误,具体错误为:Toomanydimensions:3>2安装方式为命令行pipinstalllabelme==3.16.72、此处生成的标签图是8位彩色图,与视频中看起来的数据集格式不太一样。虽然看起来是彩图,但事实上只有8位,此时每个像素点的值就是这个像素点所属的种类。所以其实和视频中VOC数据集的格式一样。因此这样制作出来的数据集是可以正常使用的。也是正常的。'''if__name__=='__main__':jpgs_path="datasets/JPEGImages"pngs_path="datasets/SegmentationClass"#classes=["_background_","person","car","motorbike","dustbin","chair","fire_hydrant","tricycle","bicycle","stone"]classes=["_background_","cat"]count=os.listdir("./datasets/before/")foriinrange(0,len(count)):path=os.path.join("./datasets/before",count[i])ifos.path.isfile(path)andpath.endswith('json'):data=json.load(open(path))ifdata['imageData']:imageData=data['imageData']else:imagePath=os.path.join(os.path.dirname(path),data['imagePath'])withopen(imagePath,'rb')asf:imageData=f.read()imageData=base64.b64encode(imageData).decode('utf-8')img=utils.img_b64_to_arr(imageData)label_name_to_value={'_background_':0}forshapeindata['shapes']:label_name=shape['label']iflabel_nameinlabel_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_valuesmustbedenselabel_values,label_names=[],[]forln,lvinsorted(label_name_to_value.items(),key=lambdax:x[1]):label_values.append(lv)label_names.append(ln)assertlabel_values==list(range(len(label_values)))lbl=utils.shapes_to_label(img.shape,data['shapes'],label_name_to_value)PIL.Image.fromarray(img).save(osp.join(jpgs_path,count[i].split(".")[0]+'.jpg'))new=np.zeros([np.shape(img)[0],np.shape(img)[1]])fornameinlabel_names:index_json=label_names.index(name)index_all=classes.index(name)new=new+index_all*(np.array(lbl)==index_json)#utils.lblsave(osp.join(pngs_path,count[i].split(".")[0]+'.png'),new)#print('Saved'+count[i].split(".")[0]+'.jpgand'+count[i].split(".")[0]+'.png')utils.lblsave(osp.join(pngs_path,count[i].split(".")[0]+'.png'),new)print('Saved'+count[i].split(".")[0]+'.jpgand'+count[i].split(".")[0]+'.png')123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172六、总结以上就是做图像语义分割,使用labelme打标签的详细教程,希望能帮助到你!感谢您阅读到最后!😊总结不易,多多支持呀🌹点赞👍收藏⭐评论✍️,您的三连是我持续更新的动力💖关注公众号「视觉研坊」,获取干货教程、实战案例、技术解答、行业资讯!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-29 13:13 , Processed in 0.511042 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表