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

福州盈科网站建设有限公司怎么样免费 网站 如何做

福州盈科网站建设有限公司怎么样,免费 网站 如何做,重庆开网站,页面 访问 升级 广大此文章只是记录使用#xff0c;以便后续查看#xff0c;不作为教程#xff0c;刚接触#xff0c;可能有错误 YOLOv5模型训练流程 一、数据集的准备 1.在源码根目录新建mydata文件夹#xff0c;在此文件夹下新建images和labels文件夹 目录树如下#xff1a; ├───…此文章只是记录使用以便后续查看不作为教程刚接触可能有错误 YOLOv5模型训练流程 一、数据集的准备 1.在源码根目录新建mydata文件夹在此文件夹下新建images和labels文件夹 目录树如下 ├───mydata │ ├───images │ └───labels2.在images下放需要标记的所有图片然后使用labelimg进行图片标记 3.打开labelimg点击菜单栏View下的Auto Save Mode使得勾选点击左边状态栏的PascalVOC切换为YOLO再点击左边状态栏的Change Save Dir选择路径为上面mydata下的labels文件夹开始标记图片。标记完成后剪切出labels文件夹下的classes.txt到mydata目录下 4.根目录新建datasets/defect(随机但后面路径要一致)文件夹在此文件夹下新建images和labels文件夹还需新建的文件 夹目录树如下 ├───datasets │ └───defect │ ├───images │ │ ├───test │ │ ├───train │ │ └───val │ └───labels │ ├───test │ ├───train │ └───val5.在根目录新建data.py # 将图片和标注数据按比例切分为 训练集和测试集 import shutil import random import os# 原始路径 image_original_path ./mydata/images/ label_original_path ./mydata/labels/cur_path os.getcwd()# 训练集路径 train_image_path os.path.join(cur_path, datasets/defect/images/train/).replace(os.sep, /) train_label_path os.path.join(cur_path, datasets/defect/labels/train/).replace(os.sep, /)# 验证集路径 val_image_path os.path.join(cur_path, datasets/defect/images/val/).replace(os.sep, /) val_label_path os.path.join(cur_path, datasets/defect/labels/val/).replace(os.sep, /)# 测试集路径 test_image_path os.path.join(cur_path, datasets/defect/images/test/).replace(os.sep, /) test_label_path os.path.join(cur_path, datasets/defect/labels/test/).replace(os.sep, /)# 训练集目录 list_train os.path.join(cur_path, datasets/defect/train.txt).replace(os.sep, /) list_val os.path.join(cur_path, datasets/defect/val.txt).replace(os.sep, /) list_test os.path.join(cur_path, datasets/defect/test.txt).replace(os.sep, /)train_percent 0.6 val_percent 0.2 test_percent 0.2def del_file(path):for i in os.listdir(path):file_data path \\ ios.remove(file_data)def mkdir():if not os.path.exists(train_image_path):os.makedirs(train_image_path)else:del_file(train_image_path)if not os.path.exists(train_label_path):os.makedirs(train_label_path)else:del_file(train_label_path)if not os.path.exists(val_image_path):os.makedirs(val_image_path)else:del_file(val_image_path)if not os.path.exists(val_label_path):os.makedirs(val_label_path)else:del_file(val_label_path)if not os.path.exists(test_image_path):os.makedirs(test_image_path)else:del_file(test_image_path)if not os.path.exists(test_label_path):os.makedirs(test_label_path)else:del_file(test_label_path)def clearfile():if os.path.exists(list_train):os.remove(list_train)if os.path.exists(list_val):os.remove(list_val)if os.path.exists(list_test):os.remove(list_test)def main():mkdir()clearfile()file_train open(list_train, w)file_val open(list_val, w)file_test open(list_test, w)total_txt os.listdir(label_original_path)num_txt len(total_txt)list_all_txt range(num_txt)num_train int(num_txt * train_percent)num_val int(num_txt * val_percent)num_test num_txt - num_train - num_valtrain random.sample(list_all_txt, num_train)# train从list_all_txt取出num_train个元素# 所以list_all_txt列表只剩下了这些元素val_test [i for i in list_all_txt if not i in train]# 再从val_test取出num_val个元素val_test剩下的元素就是testval random.sample(val_test, num_val)print(训练集数目{}, 验证集数目{}, 测试集数目{}.format(len(train), len(val), len(val_test) - len(val)))for i in list_all_txt:name total_txt[i][:-4]srcImage image_original_path name .pngsrcLabel label_original_path name .txtif i in train:dst_train_Image train_image_path name .pngdst_train_Label train_label_path name .txtshutil.copyfile(srcImage, dst_train_Image)shutil.copyfile(srcLabel, dst_train_Label)file_train.write(dst_train_Image \n)elif i in val:dst_val_Image val_image_path name .pngdst_val_Label val_label_path name .txtshutil.copyfile(srcImage, dst_val_Image)shutil.copyfile(srcLabel, dst_val_Label)file_val.write(dst_val_Image \n)else:dst_test_Image test_image_path name .pngdst_test_Label test_label_path name .txtshutil.copyfile(srcImage, dst_test_Image)shutil.copyfile(srcLabel, dst_test_Label)file_test.write(dst_test_Image \n)file_train.close()file_val.close()file_test.close()if __name__ __main__:main() 执行代码。 注意根据图片的后缀不同修改代码中.png根据路径不同修改路径 至此数据集准备完成。 二、配置训练参数 1.在yolov5-master/data下新建my.yaml # YOLOv5 by Ultralytics, AGPL-3.0 license # COCO 2017 dataset http://cocodataset.org by Microsoft # Example usage: python train.py --data coco.yaml # parent # ├── yolov5 # └── datasets # └── coco ← downloads here (20.1 GB)# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..] path: E:\1_Work\0802\yolov5-master\datasets\defect # dataset root dir train: images/train # train images (relative to path) 118287 images val: images/val # val images (relative to path) 5000 images test: images/test # 20288 of 40670 images, submit to https://competitions.codalab.org/competitions/20794# Classes nc: 3 names: [piaochong, qicao, changchong] 注意修改对应的path,train,val,test路径 nc为标记的类别数量 names为类别名称在之前的classes.txt中复制 2.在yolov5-master/models下复制yolov5s.yaml文件重命名为yolov5s_test.yaml修改nc类别数量 # YOLOv5 by Ultralytics, AGPL-3.0 license# Parameters nc: 3 # number of classes depth_multiple: 0.33 # model depth multiple width_multiple: 0.50 # layer channel multiple anchors:- [10,13, 16,30, 33,23] # P3/8- [30,61, 62,45, 59,119] # P4/16- [116,90, 156,198, 373,326] # P5/32# YOLOv5 v6.0 backbone backbone:# [from, number, module, args][[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2[-1, 1, Conv, [128, 3, 2]], # 1-P2/4[-1, 3, C3, [128]],[-1, 1, Conv, [256, 3, 2]], # 3-P3/8[-1, 6, C3, [256]],[-1, 1, Conv, [512, 3, 2]], # 5-P4/16[-1, 9, C3, [512]],[-1, 1, Conv, [1024, 3, 2]], # 7-P5/32[-1, 3, C3, [1024]],[-1, 1, SPPF, [1024, 5]], # 9]# YOLOv5 v6.0 head head:[[-1, 1, Conv, [512, 1, 1]],[-1, 1, nn.Upsample, [None, 2, nearest]],[[-1, 6], 1, Concat, [1]], # cat backbone P4[-1, 3, C3, [512, False]], # 13[-1, 1, Conv, [256, 1, 1]],[-1, 1, nn.Upsample, [None, 2, nearest]],[[-1, 4], 1, Concat, [1]], # cat backbone P3[-1, 3, C3, [256, False]], # 17 (P3/8-small)[-1, 1, Conv, [256, 3, 2]],[[-1, 14], 1, Concat, [1]], # cat head P4[-1, 3, C3, [512, False]], # 20 (P4/16-medium)[-1, 1, Conv, [512, 3, 2]],[[-1, 10], 1, Concat, [1]], # cat head P5[-1, 3, C3, [1024, False]], # 23 (P5/32-large)[[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)] 3.修改train.py 修改项值解释--weightsdefaultROOT / ‘yolov5s.pt’预训练权重在官方Github下载--cfgdefault‘models/yolov5s_test.yaml’加载模型之前复制修改的文件--datadefaultROOT / ‘data/my.yaml’配置文件--epochsdefault2训练批次--batch-sizedefault2每批次的输入数据量 修改完成之后运行即可开始训练。 三、检验训练的模型的推理效果 修改detect.py文件 修改项值解释--weightsdefaultROOT / ‘best.pt’为训练完成后在runs/train/exp/weights下的best.pt文件--sourcedefaultROOT / ‘datasets/defect/images/test’测试数据目录 执行文件即可 结果在yolov5-master/runs/detect/exp下。 注意如果生成的图片没有框可以降低置信度排查错误即detect.py文件中的–conf-thres–iou-thres。
http://www.pierceye.com/news/22996/

相关文章:

  • 请人帮忙做网站推广哈尔滨企业建站服务商
  • 怎样做一个网站赚钱吗网站建设与制作教程下载
  • 北京专业网站制作服务什么是网络营销平台
  • 无锡市建设招标网站新网站seo
  • gta房产网站建设中浙江建设职业技术学院迎新网站
  • 政务公开网站建设的亮点和建议中国建设银行网站首页u盾登入
  • 北京的电商平台网站笑话小网站模板html
  • 网站改版是否有影响推广公司让实名认证怎么办
  • 九易建网站的建站流程谷歌浏览器网页截图快捷键
  • 美食网站设计规划书vs2010 c 建设网站
  • 五星级酒店网站建设个人做网站需要学什么只是
  • 汕头高端网站开发展芒设计网页
  • 手机app网站学动漫制作专业后悔吗
  • 西宁建设局官方网站河南建一个网站大概要多少钱
  • 网站引导页分为三个板块设计风格建设岗位考试网站
  • php框架做网站好处网站横幅广告怎么做
  • 广州微信网站建设报价wordpress 子分类文章
  • 做网站维护需要会什么武进区建设局网站
  • WordPress建影视站kencms内容管理系统
  • 义乌市建设银行网站wordpress什么叫静态
  • 淘宝网站建设的目标是什么上海建设工程施工许可证查询网站6
  • 棋牌类网站怎么做车工订单网站
  • 东莞微信网站建设交互设计流程
  • 本地主机做网站seo推广的网站和平台有哪些
  • 男女做污的网站免费word模板网站
  • 江西网站建设公司哪家好wordpress 完整搬家
  • 网站建设源程序清单上虞做网站
  • 企业网站推广联系方式建设网站所需技术
  • asp.net 建立网站吗什么是erp企业管理系统
  • 织梦网站怎样做seo做个淘宝客网站怎么做的