当前位置: 首页 > news >正文

网站组建 需求分析做网站策划书

网站组建 需求分析,做网站策划书,定制网站与模板网站,东莞企业网站建设多少钱1.VOC数据集 LabelImg是一款广泛应用于图像标注的开源工具#xff0c;主要用于构建目标检测模型所需的数据集。Visual Object Classes#xff08;VOC#xff09;数据集作为一种常见的目标检测数据集#xff0c;通过labelimg工具在图像中标注边界框和类别标签#xff0c;为…1.VOC数据集 LabelImg是一款广泛应用于图像标注的开源工具主要用于构建目标检测模型所需的数据集。Visual Object ClassesVOC数据集作为一种常见的目标检测数据集通过labelimg工具在图像中标注边界框和类别标签为训练模型提供了必要的注解信息。VOC数据集源于对PASCAL挑战赛的贡献涵盖多个物体类别成为目标检测领域的重要基准之一推动着算法性能的不断提升。 使用labelimg标注或者其他VOC标注工具标注后会得到两个文件夹如下: Annotations ------- 存放.xml标注信息文件 JPEGImages ------- 存放图片文件2.划分VOC数据集 如下代码是按照训练集:验证集 8:2来划分的会找出没有对应.xml的图片文件且划分的时候支持JPEGImages文件夹下有如下图片格式: [.jpg, .png, .gif, .bmp, .tiff, .jpeg, .webp, .svg, .psd, .cr2, .nef, .dng]整体代码为: import os import randomimage_extensions [.jpg, .png, .gif, .bmp, .tiff, .jpeg, .webp, .svg, .psd, .cr2, .nef, .dng]def split_voc_dataset(dataset_dir, train_ratio, val_ratio):if not (0 train_ratio val_ratio 1):print(Invalid ratio values. They should sum up to 1.)returnannotations_dir os.path.join(dataset_dir, Annotations)images_dir os.path.join(dataset_dir, JPEGImages)output_dir os.path.join(dataset_dir, ImageSets/Main)if not os.path.exists(output_dir):os.makedirs(output_dir)dict_info dict()# List all the image files in the JPEGImages directoryfor file in os.listdir(images_dir):if any(ext in file for ext in image_extensions):jpg_files, endwith os.path.splitext(file)dict_info[jpg_files] endwith# List all the XML files in the Annotations directoryxml_files [file for file in os.listdir(annotations_dir) if file.endswith(.xml)]random.shuffle(xml_files)num_samples len(xml_files)num_train int(num_samples * train_ratio)num_val int(num_samples * val_ratio)train_xml_files xml_files[:num_train]val_xml_files xml_files[num_train:num_train num_val]with open(os.path.join(output_dir, train_list.txt), w) as train_file:for xml_file in train_xml_files:image_name os.path.splitext(xml_file)[0]if image_name in dict_info:image_path os.path.join(JPEGImages, image_name dict_info[image_name])annotation_path os.path.join(Annotations, xml_file)train_file.write(f{image_path} {annotation_path}\n)else:print(f没有找到图片 {os.path.join(images_dir, image_name)})with open(os.path.join(output_dir, val_list.txt), w) as val_file:for xml_file in val_xml_files:image_name os.path.splitext(xml_file)[0]if image_name in dict_info:image_path os.path.join(JPEGImages, image_name dict_info[image_name])annotation_path os.path.join(Annotations, xml_file)val_file.write(f{image_path} {annotation_path}\n)else:print(f没有找到图片 {os.path.join(images_dir, image_name)})labels set()for xml_file in xml_files:annotation_path os.path.join(annotations_dir, xml_file)with open(annotation_path, r) as f:lines f.readlines()for line in lines:if name in line:label line.strip().replace(name, ).replace(/name, )labels.add(label)with open(os.path.join(output_dir, labels.txt), w) as labels_file:for label in labels:labels_file.write(f{label}\n)if __name__ __main__:dataset_dir BirdNest/train_ratio 0.8 # Adjust the train-validation split ratio as neededval_ratio 0.2split_voc_dataset(dataset_dir, train_ratio, val_ratio) 划分好后的截图: 3.VOC转COCO格式 目前很多框架大多支持的是COCO格式因为存放与使用起来方便采用了json文件来代替xml文件。 import json import os from xml.etree import ElementTree as ETdef parse_xml(dataset_dir, xml_file):xml_path os.path.join(dataset_dir, xml_file)tree ET.parse(xml_path)root tree.getroot()objects root.findall(object)annotations []for obj in objects:bbox obj.find(bndbox)xmin int(bbox.find(xmin).text)ymin int(bbox.find(ymin).text)xmax int(bbox.find(xmax).text)ymax int(bbox.find(ymax).text)# Extract label from XML annotationlabel obj.find(name).textif not label:print(fLabel not found in XML annotation. Skipping annotation.)continueannotations.append({xmin: xmin,ymin: ymin,xmax: xmax,ymax: ymax,label: label})return annotationsdef convert_to_coco_format(image_list_file, annotations_dir, output_json_file, dataset_dir):images []annotations []categories []# Load labelswith open(os.path.join(os.path.dirname(image_list_file), labels.txt), r) as labels_file:label_lines labels_file.readlines()categories [{id: i 1, name: label.strip()} for i, label in enumerate(label_lines)]# Load image list filewith open(image_list_file, r) as image_list:image_lines image_list.readlines()for i, line in enumerate(image_lines):image_path, annotation_path line.strip().split( )image_id i 1image_filename os.path.basename(image_path)# Extract image size from XML filexml_path os.path.join(dataset_dir, annotation_path)tree ET.parse(xml_path)size tree.find(size)image_height int(size.find(height).text)image_width int(size.find(width).text)images.append({id: image_id,file_name: image_filename,height: image_height,width: image_width,license: None,flickr_url: None,coco_url: None,date_captured: None})# Load annotations from XML filesxml_annotations parse_xml(dataset_dir, annotation_path)for xml_annotation in xml_annotations:label xml_annotation[label]category_id next((cat[id] for cat in categories if cat[name] label), None)if category_id is None:print(fLabel {label} not found in categories. Skipping annotation.)continuebbox {xmin: xml_annotation[xmin],ymin: xml_annotation[ymin],xmax: xml_annotation[xmax],ymax: xml_annotation[ymax]}annotations.append({id: len(annotations) 1,image_id: image_id,category_id: category_id,bbox: [bbox[xmin], bbox[ymin], bbox[xmax] - bbox[xmin], bbox[ymax] - bbox[ymin]],area: (bbox[xmax] - bbox[xmin]) * (bbox[ymax] - bbox[ymin]),segmentation: [],iscrowd: 0})coco_data {images: images,annotations: annotations,categories: categories}with open(output_json_file, w) as json_file:json.dump(coco_data, json_file, indent4)if __name__ __main__:# 根据需要调整路径dataset_dir BirdNest/image_sets_dir BirdNest/ImageSets/Main/train_list_file os.path.join(image_sets_dir, train_list.txt)val_list_file os.path.join(image_sets_dir, val_list.txt)output_train_json_file os.path.join(dataset_dir, train_coco.json)output_val_json_file os.path.join(dataset_dir, val_coco.json)convert_to_coco_format(train_list_file, image_sets_dir, output_train_json_file, dataset_dir)convert_to_coco_format(val_list_file, image_sets_dir, output_val_json_file, dataset_dir)print(The json file has been successfully generated!!!)转COCO格式成功截图:
http://www.dnsts.com.cn/news/142234.html

相关文章:

  • 青州网站开发jsp网站开发实例实验报告
  • 昆明百度智能建站有没有专门做翻译的网站
  • 东莞网站建设公司哪家专业同城约会软件哪个好
  • 如何选择赣州网站建设wordpress 分类 如何
  • 用nodejs做的网站网站建设需要方案
  • 宁波企业建站系统宁夏网站开发设计说明书
  • 网站备案表是什么电商设计英语
  • 建一个网站 服务器机房托管价格费用
  • 济南网站建设(选聚搜网络)厦门市建设工程造价网
  • 贵州省网站备案学校网站下载
  • 旧安卓手机做网站南昌校园文化设计公司
  • 蔬菜网站建设群晖wordpress设为首页
  • 大岭山做网站买服务器做网站主机
  • 江苏10大网站建设公司推广网站排名
  • 济南教育加盟网站建设南昌智能建站模板
  • 织梦建站要多少钱wordpress安装及配置文件
  • 上海门户网站开发安装百度
  • 做网站月薪10万营口规划建设局网站
  • 传奇网站模板psd同济建筑人才网
  • 域名备案查询管理系统热狗seo外包
  • 黑河哈尔滨网站建设wordpress英文主题
  • 有找猎聘网站做简历优化的在线编辑图片软件
  • 台州网站建设技术支持wordpress 504
  • 上海柘中建设股份有限公司网站华为网站建设方案模板下载
  • 做空山寨币的网站网络运维工程师招聘
  • 江宁城乡建设局网站西安app定制开发公司
  • 网站建设内容3000字sem专业培训公司
  • 做网站用商标吗网站建设教程公司湖南岚鸿o k
  • 股票可以做网站推广吗旅游网页素材
  • 宜昌建设网站金华市住房建设局网站