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

破解网站后台密码有人做吗微信小视频网站开发

破解网站后台密码有人做吗,微信小视频网站开发,网站 百度地图,沈阳推广平台哪个好1.YOLOv8图像分割支持的数据格式#xff1a; (1).用于训练YOLOv8分割模型的数据集标签格式如下: 1).每幅图像对应一个文本文件#xff1a;数据集中的每幅图像都有一个与图像文件同名的对应文本文件#xff0c;扩展名为.txt; 2).文本文件中每个目标(object)占一行…      1.YOLOv8图像分割支持的数据格式 (1).用于训练YOLOv8分割模型的数据集标签格式如下: 1).每幅图像对应一个文本文件数据集中的每幅图像都有一个与图像文件同名的对应文本文件扩展名为.txt; 2).文本文件中每个目标(object)占一行文本文件中的每一行对应图像中的一个目标实例 3).每行目标信息如下所示之间用空格分隔 A.目标类别索引整数例如0代表person1代表car等等; B.目标边界坐标mask区域周围的边界坐标归一化为[0, 1]; class-index x1 y1 x2 y2 ... xn yn 注每行的长度不必相等每个分隔label必须至少有3对xy点 (2).数据集YAML格式Ultralytics框架使用YAML文件格式来定义用于训练分隔模型的数据集和模型配置如下面测试数据集melon中melon_seg.yaml内容如下 在网上下载了60多幅包含西瓜和冬瓜的图像组成melon数据集 path: ../datasets/melon_seg # dataset root dir train: images/train # train images (relative to path) val: images/val # val images (relative to path) test: # test images (optional)# Classes names:0: watermelon1: wintermelon 2.使用半自动标注工具 EISeg 对数据集melon进行标注 (1).从 PaddleSeg 中下载通用场景的图像标注高精度模型static_hrnet18_ocr64_cocolvis.zip (2).标注前先按照下面操作设置好 1).选中JSON保存取消COCO保存; 2).选中自动保存; 3).取消灰度保存. 3.编写Python脚本将EISeg生成的json文件转换成YOLOv8 segment支持的txt文件 import os import json import argparse import colorama import random import shutil import cv2# supported image formats img_formats (.bmp, .jpeg, .jpg, .png, .webp)def parse_args():parser argparse.ArgumentParser(descriptionjson(EISeg) to txt(YOLOv8))parser.add_argument(--dir, requiredTrue, typestr, helpimages directory, all json files are in the label directory, and generated txt files are also in the label directory)parser.add_argument(--labels, requiredTrue, typestr, helptxt file that hold indexes and labels, one label per line, for example: face 0)parser.add_argument(--val_size, default0.2, typefloat, helpthe proportion of the validation set to the overall dataset:[0., 0.5])parser.add_argument(--name, requiredTrue, typestr, helpthe name of the dataset)args parser.parse_args()return argsdef get_labels_index(name):labels {} # key,valuewith open(name, r) as file:for line in file:# print(line:, line)key_value []for v in line.split( ):# print(v:, v)key_value.append(v.replace(\n, )) # remove line breaks(\n) at the end of the lineif len(key_value) ! 2:print(colorama.Fore.RED Error: each line should have only two values(key value):, len(key_value))continuelabels[key_value[0]] key_value[1]with open(name, r) as file:line_num len(file.readlines())if line_num ! len(labels):print(colorama.Fore.RED Error: there may be duplicate lables:, line_num, len(labels))return labelsdef get_json_files(dir):jsons []for x in os.listdir(dir/label):if x.endswith(.json):jsons.append(x)return jsonsdef parse_json(name_json, name_image):img cv2.imread(name_image)if img is None:print(colorama.Fore.RED Error: unable to load image:, name_image)raiseheight, width img.shape[:2]with open(name_json, r) as file:data json.load(file)objects[]for i in range(0, len(data)):object []object.append(data[i][name])object.append(data[i][points])objects.append(object)return width, height, objectsdef write_to_txt(name_json, width, height, objects, labels):name_txt name_json[:-len(.json)] .txt# print(name txt:, name_txt)with open(name_txt, w) as file:for obj in objects: # 0: name; 1: pointsif len(obj[1]) 3:print(colorama.Fore.RED Error: must be at least 3 pairs:, len(obj[1]), name_json)raiseif obj[0] not in labels:print(colorama.Fore.RED Error: unsupported label:, obj[0], labels)raisestring for pt in obj[1]:string string str(round(pt[0] / width, 6)) str(round(pt[1] / height, 6))string labels[obj[0]] string \rfile.write(string)def json_to_txt(dir, jsons, labels):for json in jsons:name_json dir /label/ jsonname_image for format in img_formats:file dir / json[:-len(.json)] formatif os.path.isfile(file):name_image filebreakif not name_image:print(colorama.Fore.RED Error: required image does not exist:, json[:-len(.json)])raise# print(name image:, name_image)width, height, objects parse_json(name_json, name_image)# print(fwidth: {width}; height: {height}; objects: {objects})write_to_txt(name_json, width, height, objects, labels)def get_random_sequence(length, val_size):numbers list(range(0, length))val_sequence random.sample(numbers, int(length*val_size))# print(val_sequence:, val_sequence)train_sequence [x for x in numbers if x not in val_sequence]# print(train_sequence:, train_sequence)return train_sequence, val_sequencedef get_files_number(dir):count 0for file in os.listdir(dir):if os.path.isfile(os.path.join(dir, file)):count 1return countdef split_train_val(dir, jsons, name, val_size):if val_size 0.5 or val_size 0.01:print(colorama.Fore.RED Error: the interval for val_size should be:[0.01, 0.5]:, val_size)raisedst_dir_images_train datasets/ name /images/traindst_dir_images_val datasets/ name /images/valdst_dir_labels_train datasets/ name /labels/traindst_dir_labels_val datasets/ name /labels/valtry:os.makedirs(dst_dir_images_train) #, exist_okTrueos.makedirs(dst_dir_images_val)os.makedirs(dst_dir_labels_train)os.makedirs(dst_dir_labels_val)except OSError as e:print(colorama.Fore.RED Error: cannot create directory:, e.strerror)raise# print(jsons:, jsons)train_sequence, val_sequence get_random_sequence(len(jsons), val_size)for index in train_sequence:for format in img_formats:file dir / jsons[index][:-len(.json)] format# print(file:, file)if os.path.isfile(file):shutil.copy(file, dst_dir_images_train)breakfile dir /label/ jsons[index][:-len(.json)] .txtif os.path.isfile(file):shutil.copy(file, dst_dir_labels_train)for index in val_sequence:for format in img_formats:file dir / jsons[index][:-len(.json)] formatif os.path.isfile(file):shutil.copy(file, dst_dir_images_val)breakfile dir /label/ jsons[index][:-len(.json)] .txtif os.path.isfile(file):shutil.copy(file, dst_dir_labels_val)num_images_train get_files_number(dst_dir_images_train)num_images_val get_files_number(dst_dir_images_val)num_labels_train get_files_number(dst_dir_labels_train)num_labels_val get_files_number(dst_dir_labels_val)if num_images_train num_images_val ! len(jsons) or num_labels_train num_labels_val ! len(jsons):print(colorama.Fore.RED Error: the number of files is inconsistent:, num_images_train, num_images_val, num_labels_train, num_labels_val, len(jsons))raisedef generate_yaml_file(labels, name):path os.path.join(datasets, name, name.yaml)# print(path:, path)with open(path, w) as file:file.write(path: ../datasets/%s # dataset root dir\n % name)file.write(train: images/train # train images (relative to path)\n)file.write(val: images/val # val images (relative to path)\n)file.write(test: # test images (optional)\n\n)file.write(# Classes\n)file.write(names:\n)for key, value in labels.items():# print(fkey: {key}; value: {value})file.write( %d: %s\n % (int(value), key))if __name__ __main__:colorama.init()args parse_args()# 1. parse JSON file and write it to a TXT filelabels get_labels_index(args.labels)# print(labels:, labels)jsons get_json_files(args.dir)# print(fjsons: {jsons}; number: {len(jsons)})json_to_txt(args.dir, jsons, labels)# 2. split the datasetsplit_train_val(args.dir, jsons, args.name, args.val_size)# 3. generate a YAML filegenerate_yaml_file(labels, args.name)print(colorama.Fore.GREEN execution completed ) 以上脚本包含3个功能 1).将json文件转换成txt文件 2).将数据集随机拆分成训练集和测试集 3).产生需要的yaml文件 4.编写Python脚本进行train: import argparse import colorama from ultralytics import YOLOdef parse_args():parser argparse.ArgumentParser(descriptionYOLOv8 train)parser.add_argument(--yaml, requiredTrue, typestr, helpyaml file)parser.add_argument(--epochs, requiredTrue, typeint, helpnumber of training)parser.add_argument(--task, requiredTrue, typestr, choices[detect, segment], helpspecify what kind of task)args parser.parse_args()return argsdef train(task, yaml, epochs):if task detect:model YOLO(yolov8n.pt) # load a pretrained modelelif task segment:model YOLO(yolov8n-seg.pt) # load a pretrained modelelse:print(colorama.Fore.RED Error: unsupported task:, task)raiseresults model.train(datayaml, epochsepochs, imgsz640) # train the modelmetrics model.val() # Itll automatically evaluate the data you trained, no arguments needed, dataset and settings rememberedmodel.export(formatonnx) #, dynamicTrue) # export the model, cannot specify dynamicTrue, opencv does not support# model.export(formatonnx, opset12, simplifyTrue, dynamicFalse, imgsz640)model.export(formattorchscript) # libtorchif __name__ __main__:colorama.init()args parse_args()train(args.task, args.yaml, args.epochs)print(colorama.Fore.GREEN execution completed ) 执行结果如下图所示会生成best.pt、best.onnx、best.torchscript 5.生成的best.onnx使用Netron进行可视化结果如下图所示 说明 1).输入images: float32[1,3,640,640] :与YOLOv8 detect一致大小为3通道640*640 2).输出包括2层output0和output1 A.output0: float32[1,38,8400] a.8400模型预测的所有box的数量与YOLOv8 detect一致 b.38: 每个框给出38个值4xc, yc, width, height2class, confidences32mask weights B.output1: float32[1,32,160,160] :最终mask大小是160*160;output1中的masks实际上只是原型masks并不代表最终masks。为了得到某个box的最终mask你可以将每个mask与其对应的mask weight相乘然后将所有这些乘积相加。此外你可以在box上应用NMS以获得具有特定置信度阈值的box子集 6.编写Python脚本实现predict import colorama import argparse from ultralytics import YOLO import osdef parse_args():parser argparse.ArgumentParser(descriptionYOLOv8 predict)parser.add_argument(--model, requiredTrue, typestr, helpmodel file)parser.add_argument(--dir_images, requiredTrue, typestr, helpdirectory of test images)parser.add_argument(--dir_result, requiredTrue, typestr, helpdirectory where the image results are saved)args parser.parse_args()return argsdef get_images(dir):# supported image formatsimg_formats (.bmp, .jpeg, .jpg, .png, .webp)images []for file in os.listdir(dir):if os.path.isfile(os.path.join(dir, file)):# print(file)_, extension os.path.splitext(file)for format in img_formats:if format extension.lower():images.append(file)breakreturn imagesdef predict(model, dir_images, dir_result):model YOLO(model) # load an modelmodel.info() # display model informationimages get_images(dir_images)# print(images:, images)os.makedirs(dir_result) #, exist_okTrue)for image in images:results model.predict(dir_images/image)for result in results:# print(result)result.save(dir_result/image)if __name__ __main__:colorama.init()args parse_args()predict(args.model, args.dir_images, args.dir_result)print(colorama.Fore.GREEN execution completed ) 执行结果如下图所示 其中一幅图像的分割结果如下图所示以下是epochs设置为100时生成的best.pt的结果 GitHubhttps://github.com/fengbingchun/NN_Test
http://www.dnsts.com.cn/news/57081.html

相关文章:

  • 网站建设公司的商业模式怎样免费建设免费网站
  • 做网站不给源码吗seo基础知识培训
  • 网站开发时间进度表模板下载四川建设网证书查询平台官网
  • 网站seo内链建设wordpress页面分析插件
  • 网站html地图怎么做网站调用网页怎么做
  • 不建立网站建设的利弊免费的erp系统
  • 做网站需要什么功能商务网站开发实训任务书
  • 城市建设学校网站管理规章制度wordpress站点设置使用时间
  • 柳州正规网站制作公司哪家好如何免费建立官方网站
  • 内部网站如何做沈阳做网站黑酷科技
  • 深圳网站建设外包公司互联网登录的网站名
  • 做网站映射tcpwordpress 分类分页
  • 官方网站开发需求网络营销顾问
  • 资源网站优化排名wordpress自动上传文章
  • 电子商务网站建设一般流程哪些网站有中文域名
  • 秦皇岛建设规划seo交互论坛
  • 网站建设 部署与发布视频最新被百度收录的网站
  • 做国外网站销售无锡做网站公司哪家比较好
  • 新开传奇网站刚开一秒第一区网站开发文档实训小结与讨论
  • 网站酷站宽带固定ip的怎么做网站服务器
  • 电商网站建设商业计划书新乡网站建设找哪家
  • 网络游戏网站制作南通五建宏业建设工程有限公司网站
  • 温州优化网站方法江苏市场监督管理局app
  • 做淘宝客需要建网站吗备案添加网站
  • 晋江小学网站建设网站搭建招标方案
  • wordpress网站插件下载公司大气聚财的名字
  • 高校网站建设自查报告网站图片优化大小
  • 网站随机代码wordpress主题虚拟资源交易平台
  • 360商场内部长沙网站优化推广
  • 卓业网站建设wordpress demo