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

北京做网站的公司排名松江做营销网站

北京做网站的公司排名,松江做营销网站,如何做手机app开发,网站建设公司电话咨询1、用labelImg标数据 2、将数据转换为tfrecord 错误记录#xff1a; NotFoundError#xff1a;无法创建NewWriteableFile 解决方法#xff1a;您需要在运行此脚本的运行环境文件夹中自己创建一个目录 1、前期准备工作 第一步#xff1a;先将SSD框架下载到本地#…1、用labelImg标数据 2、将数据转换为tfrecord 错误记录 NotFoundError无法创建NewWriteableFile  解决方法您需要在运行此脚本的运行环境文件夹中自己创建一个目录 1、前期准备工作 第一步先将SSD框架下载到本地解压出来SSD源码下载 第二步在解压出来的主目录下依次创建tfrecords_、train_model、VOC2007文件夹再将之前在SSD目标检测(2)如何制作自己的数据集详细说明附源码中制作的三个文件夹Annotations、ImageSets、JPEGImages全都拖入VOC2007文件夹内第2.5步为方便操作不易混淆请在PyCharm里建立工程得到的截图如下,截图说明如下 1、请注意红色框VOCxxx使用的是具体的名字不过一般都是VOC2007 2、目录对应的从属关系不要出错 3、tfrecords_文件夹是用来存储.tfrecords文件后面有程序可以直接生成 4、train_model文件夹是用来存储模型的记录与参数的 2、生成.tfrecords文件的代码微调说明 第三步修改标签项——打开datasets文件夹中pascalvoc_common.py文件将自己的标签项填入。我之前做的图片标签.xml文件中就只有一个标签项“watch”所以要根据你自己数据集实际情况进行修改 第四步修改读取个数、读取方式——打开datasets文件夹中的pascalvoc_to_tfrecords.py文件 修改67行SAMPLES_PER_FILES的个数修改83行读取方式为rb如果你的文件不是.jpg格式也可以修改图片的类型 3、生成.tfrecords文件 第五步生成.tfrecords文件——打开tf_convert_data.py文件依次点击run、Edit Configuration在Parameters中填入以下内容再运行tf_convert_data.py文件在面板中得到成功信息可以在tfrecords_文件夹下看到生成的.tfrecords文件   --dataset_namepascalvoc --dataset_dir./VOC2007/ --output_namevoc_2007_train --output_dir./tfrecords_4、重新训练模型的代码微调说明 第六步修改训练数据shape——打开datasets文件夹中的pascalvoc_2007.py文件 根据自己训练数据修改NUM_CLASSES 类别数 说明TRAIN_STATISTICS的数值我并没有深入了解大于新数据集该标签的总数一般都不会报错。我的数据集是由20张、每张包含一只手表的图片组成所以下图的值我设定为20大于20也没有报错如果你有更精确的想法请留言告诉大家 第七步修改类别个数——打开nets文件夹中的ssd_vgg_300.py文件 根据自己训练类别数修改96 和97行等于类别数1 第八步修改类别个数——打开eval_ssd_network.py文件 修改66行的类别个数等于类别数1 第九步修改训练步数epoch——打开train_ssd_network.py文件 修改27行的数据格式改为NHWC修改135行的类别个数等于类别数1修改154行训练总步数None会无限训练下去说明60行、63行是关于模型保存的参数5、加载vgg_16重新训练模型 第十步下载vgg_16模型——下载地址请点击密码ge3x下载完成解压后存入checkpoint文件中最后一步重新训练模型——打开train_ssd_network.py文件依次点击run、Edit Configuration在Parameters中填入以下内容再运行train_ssd_network.py文件 --train_dir./train_model/ --dataset_dir./tfrecords_/ --dataset_namepascalvoc_2007 --dataset_split_nametrain --model_namessd_300_vgg --checkpoint_path./checkpoints/vgg_16.ckpt --checkpoint_model_scopevgg_16 --checkpoint_exclude_scopesssd_300_vgg/conv6,ssd_300_vgg/conv7,ssd_300_vgg/block8,ssd_300_vgg/block9,ssd_300_vgg/block10,ssd_300_vgg/block11,ssd_300_vgg/block4_box,ssd_300_vgg/block7_box,ssd_300_vgg/block8_box,ssd_300_vgg/block9_box,ssd_300_vgg/block10_box,ssd_300_vgg/block11_box --trainable_scopesssd_300_vgg/conv6,ssd_300_vgg/conv7,ssd_300_vgg/block8,ssd_300_vgg/block9,ssd_300_vgg/block10,ssd_300_vgg/block11,ssd_300_vgg/block4_box,ssd_300_vgg/block7_box,ssd_300_vgg/block8_box,ssd_300_vgg/block9_box,ssd_300_vgg/block10_box,ssd_300_vgg/block11_box --save_summaries_secs60 --save_interval_secs100 --weight_decay0.0005 --optimizeradam --learning_rate0.001 --learning_rate_decay_factor0.94 --batch_size4 --gpu_memory_fraction0.7注意上面是输入参数 --save_interval_secs是训练多少次保存参数的步长     --optimizer是优化器     --learning_rate是学习率     --learning_rate_decay_factor是学习率衰减因子     如果你的机器比较强大可以适当增大--batch_size的数值以及调高GPU的占比--gpu_memory_fraction     --model_name我并没有尝试使用其他的模型做增量训练如果你有需要也请留言联系我我很乐意研究 若得到下图日志即说明模型开始训练 训练结束可以在train_model文件夹下看到生成的参数文件 到这里训练终于结束了 二、结果展示 这是我训练的loss我的数据集总共就20张图片进行4.8W次训练用了将近一个小时我的配置是GTX1060的单显卡 1、在日志中选取最后一次生成模型作为测试模型进行测试 2、在demo文件夹下放入测试图片 3、最后在notebooks文件夹下建立demo_test.py测试文件代码如下 4、注意第48行导入的新模型的名称是否正确 # -*- codingutf-8 -*- # -*- authorzzZ_CMing CSDN address:https://blog.csdn.net/zzZ_CMing # -*- 2018/07/20; 15:19 # -*- python3.6 import os import math import random import numpy as np import tensorflow as tf import cv2 import matplotlib.pyplot as plt import matplotlib.image as mpimg from nets import ssd_vgg_300, ssd_common, np_methods from preprocessing import ssd_vgg_preprocessing from notebooks import visualization import syssys.path.append(../) slim tf.contrib.slim # TensorFlow session: grow memory when needed. TF, DO NOT USE ALL MY GPU MEMORY!!! gpu_options tf.GPUOptions(allow_growthTrue) config tf.ConfigProto(log_device_placementFalse, gpu_optionsgpu_options) isess tf.InteractiveSession(configconfig)# 定义数据格式设置占位符 net_shape (300, 300) # 输入图像的通道排列形式NHWC表示 [batch_size,height,width,channel] data_format NHWC # 预处理以Tensorflow backend, 将输入图片大小改成 300x300作为下一步输入 img_input tf.placeholder(tf.uint8, shape(None, None, 3)) # 数据预处理将img_input输入的图像resize为300大小labels_pre,bboxes_pre,bbox_img待解析 image_pre, labels_pre, bboxes_pre, bbox_img ssd_vgg_preprocessing.preprocess_for_eval(img_input, None, None, net_shape, data_format, resizessd_vgg_preprocessing.Resize.WARP_RESIZE) # 拓展为4维变量用于输入 image_4d tf.expand_dims(image_pre, 0)# 定义SSD模型 # 是否复用目前我们没有在训练所以为None reuse True if ssd_net in locals() else None # 调出基于VGG神经网络的SSD模型对象注意这是一个自定义类对象 ssd_net ssd_vgg_300.SSDNet() # 得到预测类和预测坐标的Tensor对象这两个就是神经网络模型的计算流程 with slim.arg_scope(ssd_net.arg_scope(data_formatdata_format)):predictions, localisations, _, _ ssd_net.net(image_4d, is_trainingFalse, reusereuse)# 导入新训练的模型参数 ckpt_filename ../train_model/model.ckpt-xxx # 注意xxx代表的数字是否和文件夹下的一致 # ckpt_filename ../checkpoints/VGG_VOC0712_SSD_300x300_ft_iter_120000.ckpt isess.run(tf.global_variables_initializer()) saver tf.train.Saver() saver.restore(isess, ckpt_filename)# 在网络模型结构中提取搜索网格的位置 # 根据模型超参数得到每个特征层这里用了6个特征层分别是47891011的anchors_boxes ssd_anchors ssd_net.anchors(net_shape)每层的anchors_boxes包含4个arrayList前两个List分别是该特征层下xy坐标轴对于原图300x300大小的映射 第三,四个List为anchor_box的长度和宽度同样是经过归一化映射的根据每个特征层box数量的不同这两个List元素 个数会变化。其中长宽的值根据超参数anchor_sizes和anchor_ratios制定。 # 主流程函数 def process_image(img, select_threshold0.6, nms_threshold.01, net_shape(300, 300)):# select_thresholdbox阈值——每个像素的box分类预测数据的得分会与box阈值比较高于一个box阈值则认为这个box成功框到了一个对象# nms_threshold重合度阈值——同一对象的两个框的重合度高于该阈值则运行下面去重函数# 执行SSD模型得到4维输入变量分类预测坐标预测rbbox_img参数为最大检测范围本文固定为[0,0,1,1]即全图rimg, rpredictions, rlocalisations, rbbox_img isess.run([image_4d, predictions, localisations, bbox_img],feed_dict{img_input: img})# ssd_bboxes_select()函数根据每个特征层的分类预测分数归一化后的映射坐标# ancohor_box的大小通过设定一个阈值计算得到每个特征层检测到的对象以及其分类和坐标rclasses, rscores, rbboxes np_methods.ssd_bboxes_select(rpredictions, rlocalisations, ssd_anchors,select_thresholdselect_threshold, img_shapenet_shape, num_classes21, decodeTrue)这个函数做的事情比较多这里说的细致一些首先是输入输入的数据为每个特征层一共6个见上文的rpredictions: 分类预测数据rlocalisations: 坐标预测数据ssd_anchors: anchors_box数据其中分类预测数据为当前特征层中每个像素的每个box的分类预测坐标预测数据为当前特征层中每个像素的每个box的坐标预测anchors_box数据为当前特征层中每个像素的每个box的修正数据函数根据坐标预测数据和anchors_box数据计算得到每个像素的每个box的中心和长宽这个中心坐标和长宽会根据一个算法进行些许的修正从而得到一个更加准确的box坐标修正的算法会在后文中详细解释如果只是为了理解算法流程也可以不必深究这个因为这个修正算法属于经验算法并没有太多逻辑可循。修正完box和中心后函数会计算每个像素的每个box的分类预测数据的得分当这个分数高于一个阈值这里是0.5则认为这个box成功框到了一个对象然后将这个box的坐标数据所属分类和分类得分导出从而得到rclasses所属分类rscores分类得分rbboxes坐标最后要注意的是同一个目标可能会在不同的特征层都被检测到并且他们的box坐标会有些许不同这里并没有去掉重复的目标而是在下文中专门用了一个函数来去重# 检测有没有超出检测边缘rbboxes np_methods.bboxes_clip(rbbox_img, rbboxes)rclasses, rscores, rbboxes np_methods.bboxes_sort(rclasses, rscores, rbboxes, top_k400)# 去重将重复检测到的目标去掉rclasses, rscores, rbboxes np_methods.bboxes_nms(rclasses, rscores, rbboxes, nms_thresholdnms_threshold)# 将box的坐标重新映射到原图上上文所有的坐标都进行了归一化所以要逆操作一次rbboxes np_methods.bboxes_resize(rbbox_img, rbboxes)return rclasses, rscores, rbboxes# 测试的文件夹 path ../demo/ image_names sorted(os.listdir(path)) # 文件夹中的第几张图-1代表最后一张 img mpimg.imread(path image_names[-1]) rclasses, rscores, rbboxes process_image(img)# visualization.bboxes_draw_on_img(img, rclasses, rscores, rbboxes, visualization.colors_plasma) visualization.plt_bboxes(img, rclasses, rscores, rbboxes)结果展示这是我自己拍的照片得到的识别效果还算勉强吧请自动忽略我那性感的手毛 如果你的测试结果是下面这样的 导致的原因 1 训练次数太少loss过高——解决方法除了优化数据集外就是增大训练次数要明白谷歌公布的模型都是在大型集群上训练好多天的结果我们就在GTX1060单显卡上训练4.8W次就想出非常好的结果偶然的成功比失败更可怕而且想弯道超谷歌不太可能吧    2 另外上面程序65行的select_threshold、 nms_threshold参数你也可以做调整观察下图可以发现误标框框的预测值都小于0.55而唯一正确的框框预测值等于0.866。所以认真理解上面程序66、67行我写的注释对你的问题会有帮助 本博客用的测试数据集在这只有20张标记图片。并不包含最后训练得到的模型 参考自https://blog.csdn.net/zzZ_CMing/article/details/81131523
http://www.zqtcl.cn/news/336574/

相关文章:

  • 焦作建设厅网站wordpress调用视频播放器
  • 网站版面做好江苏省建设工程设计施工图审核中心网站
  • 智能网站平台wordpress同步头条
  • 做采集的网站有流量吗广州建设学校
  • 建设部网站公告外贸网站建设定制
  • 如何搭建 seo网站上海市住房与城乡建设部网站
  • 百度搜不到自己的网站python云服务器网站开发实例
  • 给企业做网站的业务员优书网没了
  • 江门网站建设方案外包洛阳网站设计哪家专业
  • 电暖怎么做网站办公室平面设计图
  • 全屏网站 功能丽水市企业网站建设 微信营销 影视拍摄
  • 天天爱天天做视频网站网站推送
  • 制作企业网站与app有什么不同化工企业网站建设
  • 东莞企业推广网站专门做黄漫的网站
  • 温州网站关键词排名优化win10 电脑做网站服务器
  • 网站设计规划信息技术教案营销模式和营销策略
  • 太仓住房城乡建设网站微信怎么注册
  • 德骏网站建设重庆企业网站如何推广
  • 路由器做内部网站服务器石家庄新闻综合频道在线直播回放
  • 怎么给网站备案亚马逊网站建设与维护方法分析
  • 金华网站建设团队产品网络推广方案范文
  • 拼多多刷单网站开发虚拟机可以做两个网站
  • wordpress安装路径和站点地址的设置信通网站开发中心
  • 柳州公司网站建设网站服务商
  • 智能建站实验报告成功营销网站
  • 基于jsp的网站开发开题报告青海公路工程建设市场信用信息服务网站
  • 做网站页面的软件wordpress如何开启page页面评论
  • 做网站最简单的长春财经学院
  • 导购网站 icp备案要求网站设置ico
  • ftp做网站营销策划方案步骤