大数据采集与预处理技术(微课版)课件 3.1表情图像数据标注_第1页
大数据采集与预处理技术(微课版)课件 3.1表情图像数据标注_第2页
大数据采集与预处理技术(微课版)课件 3.1表情图像数据标注_第3页
大数据采集与预处理技术(微课版)课件 3.1表情图像数据标注_第4页
大数据采集与预处理技术(微课版)课件 3.1表情图像数据标注_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大数据采集及预处理技术**数据标注序号软件配置要求1Windows运行计算机内存8G以上2Labelme最新版本3python最新版本一、项目目标:1、完成图像(视频)数据、语音数据、文本数据的标注;2、掌握各种数据标注工具的使用;3、理解完成标注数据的基本格式和使用方法。二、环境要求:任务一图像标注工具使用一、任务目标1、了解常见的图像标注工具和标注理论;2、掌握常见的图像标注工具使用如Labelme、LabelImg;二、操作任务1、使用Labelme完成图片的标注。2、导出标注的数据,并查看其基本格式。1、图像标注方法图片标注主要实现的标注功能有:关键点标注、2D标注框标注、3D标注框标注、线标注、区域标注、图片属性标注。标注方法描述标注工具关键点标注通过多个连续的点确定目标对象的形状变化,常见与人脸关键点标注、骨骼关键点标注手势识别关键点等。LabelMe、VGGImageAnnotator(VIA)2D标注框标注即用矩形框、正方形框等将目标对象框选出,在所有的标注工具里,2D标注框是最简单的数据标注类型成本也是最低的。LabelImg、RectLabel3D标注框标注3D立方体标注用于从2D图片和视频中获得空间视觉模型测量物体间的相对距离、位置、尺寸和方向。Labelbox、Cubify线标注线标注主要用于自动驾驶车辆的道路识别,定义车辆,自行车,相反方向交通灯,分岔路等不同道路。LabelMe、VGGImageAnnotator(VIA)区域标注区域标注是图像数据标注领域比较精准的标注类型,同时也是耗时比较长的标注类型标注员需要对图片上的所有内容进行标注。LabelMe、VGGImageAnnotator(VIA)图片属性标注对图片中的目标的属性进行标注,如人的年龄、性别、着装、配饰、发髻等,车的车牌类型、品牌等。SageMakerGroundTruth、SuperAnnotate1、安装labelme1)命令pipistalllabelme2)加环境变量,如:3)打开,在命令行输入“labelme”,弹出如下窗口:如果没有界面,需要安装pyqt5pipinstallpyqt5-i/simple2、图片标注1)官方教程/wkentaro/labelme/tree/main/examples2)点击左侧OpenDir选择需要标注的数据文件夹。注意:如果照片格式是32位深度会报错。可以通过以代码先处理图像:fromPILimportImageimg=Image.open('D:/myimgs/3.jpg’)#这里是原图#若是四通道则将其改为三通道ifimg.mode=="RGBA":img=img.convert('RGB')img.save('D:/datasets/before/3.jpg’)#这里是修改后的图像位置和对应图片2、图片标注3)在顶部edit菜单栏中可选不同的标记方案,依次为:多边形(默认),矩形,圆、直线,点。4)制作图像分割的数据,选择多边形,点击左侧的createpolygons,回到图片,按下鼠标左键会生成一个点,完成标注后会形成一个标注区域,同时弹出labelme的框,键入标签名字,点击OK或者回车完成标注。2、图片标注4)如果需要更改标注的数据,可以选择左侧的编辑框,或者把鼠标移动到标签上,点击鼠标右键,可以选择编辑标签或者标注的名字。在编辑模式下,把鼠标移动到边界上,右键,可以增加点。2、图片标注5)标注完成后点击Save保存。会在图片路径下生成同名的json文件。2、图片标注6)在图片目录下打开终端键入:labelme_json_to_dataset<文件名>.json生成的结果如下:voc格式数据集VOC(VisualObjectClasses)数据集是一个广泛使用的计算机视觉数据集,主要用于目标检测、图像分割和图像分类等任务。PascalVOC数据集由五个部分构成:JPEGImages,Annotations,ImageSets,SegmentationClass以及SegmentationObject。JPEGImages:存放的是训练与测试的所有图片。Annotations:数据集标签的存储路径,通过XML文件格式,为图像数据存储各类任务的标签。其中部分标签为目标检测的标签。里面存放的是每张图片打完标签所对应的XML文件。ImageSets:此文件夹中存放的主要有四个文本文件test.txt、train.txt、trainval.txt、val.txt,其中分别存放的是测试集图片的文件名、训练集图片的文件名、训练验证集图片的文件名、验证集图片的文件名。SegmentationClass与SegmentationObject:存放的都是图片,且都是图像分割结果图,对目标检测任务来说没有用。classsegmentation标注出每一个像素的类别。voc格式数据集objectsegmentation标注出每一个像素属于哪一个物体。目录如下所示:voc数据集的标签主要以xml文件形式进行存放。生成VOC格式的标签数据准备好jpg+json数据集,一个jpg对应一个json,命名data_annotated。下面是data_annotated文件夹的内容:下面是labels.txt文件,注意标签名称和json文件的标签名称要求一致。生成VOC格式的标签数据把要处理的数据data_annotated和要执行的python文件labelme2voc.py、labels.txt放在一个文件夹下。#!/usr/bin/envpythonfrom__future__importprint_functionimportargparseimportglobimportosimportos.pathasospimportsysimportimgvizimportnumpyasnpimportlabelmedefmain():parser=argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)parser.add_argument("input_dir",help="inputannotateddirectory")parser.add_argument("output_dir",help="outputdatasetdirectory")parser.add_argument("--labels",help="labelsfile",required=True)parser.add_argument("--noviz",help="novisualization",action="store_true")args=parser.parse_args()ifosp.exists(args.output_dir):print("Outputdirectoryalreadyexists:",args.output_dir)sys.exit(1)os.makedirs(args.output_dir)os.makedirs(osp.join(args.output_dir,"JPEGImages"))os.makedirs(osp.join(args.output_dir,"SegmentationClass"))os.makedirs(osp.join(args.output_dir,"SegmentationClassPNG"))forfilenameinglob.glob(osp.join(args.input_dir,"*.json")):print("Generatingdatasetfrom:",filename)label_file=labelme.LabelFile(filename=filename)base=osp.splitext(osp.basename(filename))[0]out_img_file=osp.join(args.output_dir,"JPEGImages",base+".jpg")out_lbl_file=osp.join(args.output_dir,"SegmentationClass",base+".npy")out_png_file=osp.join(args.output_dir,"SegmentationClassPNG",base+".png")ifnotargs.noviz:out_viz_file=osp.join(args.output_dir,"SegmentationClassVisualization",base+".jpg",)withopen(out_img_file,"wb")asf:f.write(label_file.imageData)img=labelme.utils.img_data_to_arr(label_file.imageData)lbl,_=labelme.utils.shapes_to_label(img_shape=img.shape,shapes=label_file.shapes,label_name_to_value=class_name_to_id,)labelme.utils.lblsave(out_png_file,lbl)np.save(out_lbl_file,lbl)ifnotargs.noviz:viz=imgviz.label2rgb(lbl,imgviz.rgb2gray(img),font_size=15,label_names=class_names,loc="rb",)imgviz.io.imsave(out_viz_file,viz)if__name__=="__main__":main()ifnotargs.noviz:os.makedirs(osp.join(args.output_dir,"SegmentationClassVisualization"))print("Creatingdataset:",args.output_dir)class_names=[]class_name_to_id={}fori,lineinenumerate(open(args.labels).readlines()):class_id=i-1#startswith-1class_name=line.strip()class_name_to_id[class_name]=class_idifclass_id==-1:assertclass_name=="__ignore__"continueelifclass_id==0:assertclass_name=="_background_"class_names.append(class_name)class_names=tuple(class_names)print("class_names:",class_names)out_class_names_file=osp.join(args.output_dir,"class_names.txt")withopen(out_class_names_file,"w")asf:f.writelines("\n".join(class_names))print("Savedclass_names:",out_class_names_file)生成VOC格式的标签数据在对应的文件夹下执行命令:python./labelme2voc.pydata_annotateddata_dataset_voc--labelslabels.txt生成数据如下:labelImg安装和使用1、labelimg工具主要用于在目标检测,用于制作的数据集训练YOLO目标检测模型等。2、安装命令:pipinstalllabelimg-i/simple/。3、启动命令:labelimg,如下图:4、图片标注1)Labelimg启动后如下图:2)选择左边框的“opendir”打开要标注的图像所在的文件夹。4、图片标注3)选择菜单栏“Edit”中“CreateRectBox”,然后拖动鼠标,框出目标,此时会弹出标签填充窗口,输入目标标签名称,点击“OK”即可。在标记下一张图片前,需要“save”保存。注意:如果标注时labelimg

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论