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

在吗做网站商城网站怎么做推广和宣传

在吗做网站商城,网站怎么做推广和宣传,网站建设费用说明,wordpress视频适应手机端目录 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. 介绍 根据 第一节 的操作,已经生成了下图中圆圈中的部分,而本…

目录

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]) + ".jpg"line = 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("names=data/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.txt"val_txt_path = "data/my_val_data.txt"calculate_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.fp688.cn/news/141710.html

相关文章:

  • 做服装最好的网站有哪些网络广告图片
  • 做界面的网站seo竞价培训
  • 网站建设 表扬信怎么投放广告
  • 东阳哪里可以做网站网站建设公司哪个好呀
  • 广州网站推广找哪家新闻头条今日最新消息
  • 德阳如何做百度的网站百度公司全称叫什么
  • 静态网站注入seo软件优化工具软件
  • 电子政务与网站建设工作总结app网络推广方案
  • 企业公司做网站青岛网站优化公司哪家好
  • 视频网站的服务器建设百度明星人气榜
  • 江苏建设培训网站推广普通话作文
  • 海南省建设工程质量安全检测协会网站百度首页网址是多少
  • 网站浏览成交指标semiconductor是什么意思
  • 中企动力邮箱手机版百度seo如何快速排名
  • 塘沽网站制作公司百度快速seo软件
  • 重庆网站建设制作设计北京搜索引擎优化seo专员
  • 开发网站的语言bt磁力搜索引擎索引
  • 淘宝 做网站空间 条件网络销售平台排名
  • 免费养殖网站模板湖南专业seo推广
  • 湖北省两学一做网站关键词优化seo外包
  • 做新闻h5网站网络营销效果评估
  • 山西网站建设价格热线推销产品的软文500字
  • 有哪些网站可以做简历百度的seo排名怎么刷
  • 做业务需要知道哪些网站亚马逊seo推广
  • 廊坊网站建设方案托管排名软件下载
  • 网站建设的市场策划郑州竞价代运营公司
  • 潍坊400建网站公司公众号推广方案
  • 网站建设的主题百度客服电话24小时
  • 外网网址可以做英语阅读的网站哪家公司做推广优化好
  • 设计素材网站官网论坛推广的特点