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

机械加工类网站国企网站建设要求

机械加工类网站,国企网站建设要求,国内网站没备案,泉州晋江网站建设费用最近在做基于深度学习的目标检测#xff0c;数据标注软件选择的LabelImg。 常用的几种标注格式及目录安排 一、VOC(标注文件xml结尾) 首先看一下VOC格式的分布#xff1a; 在VOC这些文件夹中#xff0c;我们主要用到#xff1a; ① JPEGImages文件夹#xff1a;图片 ②…最近在做基于深度学习的目标检测数据标注软件选择的LabelImg。 常用的几种标注格式及目录安排 一、VOC(标注文件xml结尾) 首先看一下VOC格式的分布 在VOC这些文件夹中我们主要用到 ① JPEGImages文件夹图片 ② Annotations文件夹与图片对应的xml文件 ③ ImageSets/Main文件夹将数据集分为训练集和验证集因此产生的train.txt和val.txt。 1.1 建立VOC文件目录创建train.txt和test.txt 原有的图片都放在JPEGImages目录下标签文件放在Annotations下。 import os import randomtrainval_percent 0.1 train_percent 0.9xmlfilepath Annotationstxtsavepath ImageSets\Main total_xml os.listdir(xmlfilepath)num len(total_xml) list range(num) tv int(num * trainval_percent) tr int(tv * train_percent) trainval random.sample(list, tv) train random.sample(trainval, tr)ftrainval open(ImageSets/Main/trainval.txt, w) ftest open(ImageSets/Main/test.txt, w) ftrain open(ImageSets/Main/train.txt, w) fval open(ImageSets/Main/val.txt, w)for i in list:name total_xml[i][:-4] \nif i in trainval:ftrainval.write(name)if i in train:ftest.write(name)else:fval.write(name)else:ftrain.write(name)ftrainval.close() ftrain.close() fval.close() ftest.close() 运行完在ImageSets/Main下生成了4个txt文件文件的内容是对应图片名称。 1.2 根据txt中文件名移动图片和label到指定文件夹 # -*- coding: utf-8 -*-# Brief : 生成测试、验证、训练的图片和标签import os import shutil from pathlib import Path from shutil import copyfilefrom PIL import Image, ImageDraw from xml.dom.minidom import parse import numpy as np from tqdm import tqdm# FILE_ROOT Path(rE:\AI_Project\AI_Learning\Dataset) FILE_ROOT Path(r/media/yake/6AB604BAB6048931/AI_yake/Dataset_数据集/安全帽/VOCdevkit)# 原始数据集 E:\AI_Project\AI_Learning\Dataset\VOC2028\ImageSets\Main # /media/yake/6AB604BAB6048931/AI_yake/Dataset_数据集/安全帽/VOCdevkit/VOC2028 IMAGE_SET_ROOT FILE_ROOT.joinpath(rVOC2028/ImageSets/Main) # 图片区分文件的路径 IMAGE_PATH FILE_ROOT.joinpath(rVOC2028/JPEGImages) # 图片的位置 ANNOTATIONS_PATH FILE_ROOT.joinpath(rVOC2028/Annotations) # 数据集标签文件的位置 LABELS_ROOT FILE_ROOT.joinpath(rVOC2028/Labels) # 进行归一化之后的标签位置# YOLO 需要的数据集形式的新数据集 DEST_IMAGES_PATH Path(rSafety_Helmet_Train_dataset/score/images) # 区分训练集、测试集、验证集的图片目标路径 DEST_LABELS_PATH Path(rSafety_Helmet_Train_dataset/score/labels) # 区分训练集、测试集、验证集的标签文件目标路径def cord_converter(size, box):将标注的 xml 文件标注转换为 darknet 形的坐标:param size: 图片的尺寸 [w,h]:param box: anchor box 的坐标 [左上角x,左上角y,右下角x,右下角y,]:return: 转换后的 [x,y,w,h]x1 int(box[0])y1 int(box[1])x2 int(box[2])y2 int(box[3])dw np.float32(1. / int(size[0]))dh np.float32(1. / int(size[1]))w x2 - x1h y2 - y1x x1 (w / 2)y y1 (h / 2)x x * dww w * dwy y * dhh h * dhreturn [x, y, w, h]def save_label_file(img_jpg_file_name, size, img_box):保存标签的解析文件:param img_jpg_file_name::param size::param img_box::return:save_file_name LABELS_ROOT.joinpath(img_jpg_file_name).with_suffix(.txt)with open(save_file_name, a) as f:for box in img_box:if box[0] person: # 数据集 xml 中的 person 指的是头cls_num 1elif box[0] hat:cls_num 2else:continuenew_box cord_converter(size, box[1:]) # 转换坐标f.write(f{cls_num} {new_box[0]} {new_box[1]} {new_box[2]} {new_box[3]}\n)def test_dataset_box_feature(file_name, point_array):使用样本数据测试数据集的建议框:param file_name: 图片文件名:param point_array: 全部的点 [建议框sx1,sy1,sx2,sy2]:return: Noneim Image.open(IMAGE_PATH.joinpath(file_name).with_suffix(.jpg))im_draw ImageDraw.Draw(im)for box in point_array:x1 box[1]y1 box[2]x2 box[3]y2 box[4]im_draw.rectangle((x1, y1, x2, y2), outlinered)im.show()def get_xml_data(img_xml_file: Path):获取 xml 数据:param img_xml_file: 图片路径:return:dom parse(str(img_xml_file))xml_root dom.documentElementimg_name xml_root.getElementsByTagName(filename)[0].childNodes[0].dataimg_size xml_root.getElementsByTagName(size)[0]objects xml_root.getElementsByTagName(object)img_w img_size.getElementsByTagName(width)[0].childNodes[0].dataimg_h img_size.getElementsByTagName(height)[0].childNodes[0].dataimg_c img_size.getElementsByTagName(depth)[0].childNodes[0].dataimg_box []for box in objects:cls_name box.getElementsByTagName(name)[0].childNodes[0].datax1 int(box.getElementsByTagName(xmin)[0].childNodes[0].data)y1 int(box.getElementsByTagName(ymin)[0].childNodes[0].data)x2 int(box.getElementsByTagName(xmax)[0].childNodes[0].data)y2 int(box.getElementsByTagName(ymax)[0].childNodes[0].data)img_box.append([cls_name, x1, y1, x2, y2])# test_dataset_box_feature(img_xml_file.name, img_box)save_label_file(img_xml_file.name, [img_w, img_h], img_box)def copy_data(img_set_source, img_labels_root, imgs_source, dataset_type):将标签文件和图片复制到最终数据集文件夹中:param img_set_source: 原数据集图片总路径:param img_labels_root: 生成的 txt 标签总路径:param imgs_source::param dataset_type: 生成数据集的种类:return:file_name img_set_source.joinpath(dataset_type).with_suffix(.txt) # 获取对应数据集种类的图片# 判断目标图片文件夹和标签文件夹是否存在不存在则创建os.makedirs(FILE_ROOT.joinpath(DEST_IMAGES_PATH, dataset_type), exist_okTrue)os.makedirs(FILE_ROOT.joinpath(DEST_LABELS_PATH, dataset_type), exist_okTrue)with open(file_name, encodingUTF-8) as f:for img_name in tqdm(f.read().splitlines()):img_sor_file imgs_source.joinpath(img_name).with_suffix(.jpg)label_sor_file img_labels_root.joinpath(img_name).with_suffix(.txt)# 复制图片dict_file FILE_ROOT.joinpath(DEST_IMAGES_PATH, dataset_type, img_name).with_suffix(.jpg)copyfile(img_sor_file, dict_file)# 复制 labeldict_file FILE_ROOT.joinpath(DEST_LABELS_PATH, dataset_type, img_name).with_suffix(.txt)copyfile(label_sor_file, dict_file)if __name__ __main__:root ANNOTATIONS_PATH # 数据集 xml 标签的位置if LABELS_ROOT.exists():# 清空标签文件夹print(Cleaning Label dir for safety generating label, pls wait...)shutil.rmtree(LABELS_ROOT)print(Cleaning Label dir done!)LABELS_ROOT.mkdir(exist_okTrue) # 建立 Label 文件夹# 生成标签print(Generating Label files...)with tqdm(totallen(os.listdir(root))) as p_bar:for file in root.iterdir():p_bar.update(1)get_xml_data(file)# 将文件进行 train、val、test 的区分for dataset_input_type in [train, val, test]:print(fCopying data {dataset_input_type}, pls wait...)copy_data(IMAGE_SET_ROOT, LABELS_ROOT, IMAGE_PATH, dataset_input_type)
http://www.pierceye.com/news/235452/

相关文章:

  • 韩国做游戏的电影 迅雷下载网站有哪些网络营销方式文献
  • 大学生兼职网站的融资方案龙华网站建设设计制作公司
  • 青之峰网站建设哪家好用什么l软件做网站了
  • 免费建站资源怎么编写app软件
  • 机关网站建设建议云南响应式网站建设
  • 对网站开发语言的统计杭州网站设计公司有哪些
  • 不会代码 怎么做网站兴义网络推广
  • 综合电子商务型企业网站怎么做网站的网盘
  • ucenter使用自己做的网站房地产新闻时事热点
  • 企业网站备案 过户电商运营视频教程
  • 做网站运营这工作怎么样北京网站优化价格
  • 河南专业网站建设网站怎么做高权重
  • 国内大型电子网站建设做网站时怎么透明化
  • 微应用和微网站的区别手机网站开发的目的
  • 网站ico开一个网站建设公司好
  • wordpress中文站cn外贸网站怎么换域名
  • 淘宝客怎么做直播网站吗学校网站建设发展概况分析
  • 广州网站外贸推广建筑师必看的16部纪录片
  • 深圳网站建设平台网站右侧浮动广告
  • 中英文网站源码浙江东南网架公司
  • 个人备案网站放什么资料培训
  • html做企业门户网站提供设计的网站
  • 成都三合一网站建设成年s8视频加密线路
  • 做网站购买服务器如何优化网络
  • 企业公司网站 北京怎样用前端知识制作企业网站
  • 精湛的赣州网站建设襄阳哪里有做网站的
  • 拿了网赌代理后怎样做自己的网站河南最新消息今天
  • 北京最大的网站开发公司中山市企业网站seo营销工具
  • 苏州营销型网站建设方案哪些网站做的比较好的
  • 淘宝上买的建设网站能退款吗app怎么查网站备案