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

微网站自助建设长春网站建设模板

微网站自助建设,长春网站建设模板,北京工程信息网站,越秀营销型网站建设目录 1. 介绍 2. 完整代码 3. 代码讲解 3.1 生成 my_train_data.txt和my_val_data.txt 3.2 生成 my_data.data 文件 3.3 生成 my_yolov3.cfg 3.4 关于my_data_label.names文件 1. 介绍 根据 第一节 的操作#xff0c;已经生成了下图中圆圈中的部分#xff0c;而本…目录 1.  介绍 2. 完整代码 3. 代码讲解 3.1 生成 my_train_data.txt和my_val_data.txt 3.2 生成 my_data.data 文件 3.3  生成 my_yolov3.cfg 3.4 关于my_data_label.names文件 1.  介绍 根据 第一节 的操作已经生成了下图中圆圈中的部分而本章的内容就是通过代码生成矩形框中的部分为后面的工作做准备 my_yolov3.cfg 是将官方的yolov3-spp.cfg 网络的配置文件根据自定义的数据集修改得到的自己的网络配置因为检测的分类个数不同yolo输出的信息也会不同my_train_data.txt 和 my_val_data.txt 是训练集 / 验证集中所有图片的完整路径也就是my_yolo_dataset 中 两个 images 下面的所有图片的路径my_data.data 是分类个数、my_train_data.txt 和 my_val_data.txt这两个文件的路径、以及my_data_label.names 的路径如果一开始数据集就是yolo格式的就不会经过第一节的操作也不会生成这个.names文件所以要自己建立 2. 完整代码 实现代码为 calculate_dataset.py 该脚本有3个功能 1.统计训练集和验证集的数据并生成相应.txt文件 2.创建my_data.data文件记录目标检测的 classes个数, train以及 val数据集文件(.txt)路径和 label.names文件路径 3.根据 yolov3-spp.cfg创建 my_yolov3.cfg文件修改其中的 predictor filters以及 yolo classes参数(这两个参数是根据类别数改变的)import os# 生成训练集、验证集的所有数据路径文件 def calculate_data_txt(txt_path, dataset_dir):with open(txt_path, w) as w:for file_name in os.listdir(dataset_dir): # 遍历数据的标注文件train、val下的labelsif file_name classes.txt:continue# 根据标注文件找到对应的图片图片后缀需要是jpgimg_path os.path.join(dataset_dir.replace(labels, images),file_name.split(.)[0]) .jpgline img_path \n # 写入一个数据路径就换行assert os.path.exists(img_path), file:{} not exist!.format(img_path)w.write(line)# 创建data.data文件记录分类类别个数、训练集、验证集、分类类别的文件路径 def create_data_data(create_data_path, train_path, val_path, classes_info):with open(create_data_path, w) as w:w.write(classes{}.format(len(classes_info)) \n) # 记录类别个数w.write(train{}.format(train_path) \n) # 记录训练集对应txt文件路径w.write(valid{}.format(val_path) \n) # 记录验证集对应txt文件路径w.write(namesdata/my_data_label.names \n) # 记录label.names文件路径# 创建yolo v3 spp的配置信息 def change_and_create_cfg_file(classes_info, save_cfg_path./cfg/my_yolov3.cfg):filters_lines [636, 722, 809]classes_lines [643, 729, 816]cfg_lines open(cfg_path, r).readlines()for i in filters_lines:assert filters in cfg_lines[i-1], filters param is not in line:{}.format(i-1)output_num (5 len(classes_info)) * 3 # (x,y,w,h置信度 类别的个数) * 每一个cell生成 3 个预测框cfg_lines[i-1] filters{}\n.format(output_num)for i in classes_lines:assert classes in cfg_lines[i-1], classes param is not in line:{}.format(i-1)cfg_lines[i-1] classes{}\n.format(len(classes_info))with open(save_cfg_path, w) as w:w.writelines(cfg_lines)def main():# 统计训练集和验证集的数据并生成相应 txt文件train_txt_path data/my_train_data.txtval_txt_path data/my_val_data.txtcalculate_data_txt(train_txt_path, train_annotation_dir) # 所有训练集的路径calculate_data_txt(val_txt_path, val_annotation_dir) # 所有验证集的路径# 获取检测的所有类别classes_info [line.strip() for line in open(classes_label, r).readlines() if len(line.strip()) 0]# 创建data.data文件记录classes个数, train以及val数据集文件(.txt)路径和 label.names文件路径create_data_data(./data/my_data.data, train_txt_path, val_txt_path, classes_info)# 根据yolov3-spp.cfg创建my_yolov3.cfg文件修改其中的predictor filters以及yolo classes参数(这两个参数是根据类别数改变的)change_and_create_cfg_file(classes_info)if __name__ __main__:train_annotation_dir ./my_yolo_dataset/train/labels # 训练集的标注文件val_annotation_dir ./my_yolo_dataset/val/labels # 验证集的标注文件classes_label ./data/my_data_label.names # 检测的分类labelcfg_path ./cfg/yolov3-spp.cfg # 官方的yolov3-spp 的配置文件assert os.path.exists(train_annotation_dir), train_annotation_dir not exist!assert os.path.exists(val_annotation_dir), val_annotation_dir not exist!assert os.path.exists(classes_label), classes_label not exist!assert os.path.exists(cfg_path), cfg_path not exist!main()3. 代码讲解 代码有些部分自己又加了些注释这里会挑着讲解 首先将相关路径设定好 3.1 生成 my_train_data.txt和my_val_data.txt 然后生成数据集图片的路径这里训练集和测试集一样只讲解训练集 对于训练集来说写入my_train_data.txt 文件。 其中file_name 就是labels 下面文件名因为这里文件名就是图片的名称。通过路径替换就能、后缀替换就可以找到images所有的图片完整路径写入my_train_data.txt 文件即可 生成的my_train_data.txt 和my_val_data.txt 如下 3.2 生成 my_data.data 文件 代码如下 其中classes_info 信息如下[aeroplane, bicycle, bird, boat, bottle, bus, car, cat, chair, cow, diningtable, dog, horse, motorbike, person, pottedplant, sheep, sofa, train, tvmonitor] 其实就是分类的名称 然后进入create_data_data 函数内部将对应的文件路径写入即可 my_data.data 文件 3.3  生成 my_yolov3.cfg 因为不同检测任务的分类个数可能不同因此需要更改yolo的配置信息 实现的方式如下 因为yolo输出是三个尺度的而 filters_lines [636, 722, 809] classes_lines [643, 729, 816]就是对应三个尺度的信息。除了检测的类别更改自定义数据集的类别个数外。预测框输出的tensor也和类别有关 如下官方的classes 是coco所以是80类别。这里使用的是pascal voc 所以是20类别 75 x、y、w、h置信度 类别个数* 3(每一个cell生成3个预测框)  25 * 3 官方是  5 80*3 255 3.4 关于my_data_label.names文件 如果本身就是yolo 数据集的话是不需要进行第一节的操作的 那么这个文件my_data_label.names是不存在的需要手工建立如下 只需要更改文件名就行了
http://www.dnsts.com.cn/news/49114.html

相关文章:

  • 门户网站系统业务流程图自己做的产品在哪个网站上可从卖
  • 淄博的大型网站建设企业网站源码 thinkphp
  • 杭州企业网站设计模板网站用户黏度
  • 九寨沟城乡建设官方网站呼和浩特网站建设哪家好
  • wordpress图床首页无缩略图湖北seo推广
  • 局域网的电脑怎么做网站服务器优秀的html5网站 2016
  • 什么网站可以学习建设工程法律实践设计帮官网
  • 免费发帖的平台有哪些网络优化师
  • 木门行业网站该怎么做网站与平台的区别
  • 怎么用微信官方网站做二维码中铁建设集团有限公司在哪
  • 网站建设策做网站设计的公司叫什么
  • 仪征市企业网站建设公司wordpress 下载失败
  • 十堰网站制作公司偃师网络营销的概念
  • 网站制作合同注意事项专业做灰色关键词排名
  • 上海中高端网站建设温岭营销型网站建设
  • 行知智网站建设wordpress移除编辑器区块
  • 中国建设银行肃宁支行网站河间网站网站建设
  • 帝国cms网站地址桂林森威建筑工程监理有限责任公司
  • 商务网站规划与建设心得多语言网站(如何实现网站的多语言版本 )
  • 郓城如何做网站seo包河网站建设
  • 部门网站建设整改头像制作logo免费生成器在线
  • 齐河县工程建设监理有限公司网站网页升级访问通知天天更新
  • 临夏网站建设公司wordpress minty
  • wid2008vps创建网站给你一个网站怎么优化
  • 服务型网站建设的主题郑州男科哪家比较正规医院
  • 青岛建设集团招工信息网站微网站幻灯片尺寸
  • 网站播放图片多大合适多php网站建设
  • 网站建设与推广公司中国一级建造师网官网
  • 兰州新站点seo代理苏州专业做网站公司有哪些
  • 湖北网站制作公司的联系方式四平网站建设404页面对网站的好处及设置方法