tensorflow-ssd 实现纸张缺陷检测

2023-11-19

环境:win10+tensorflow1.10+python3.6.9

下载https://github.com/balancap/SSD-Tensorflow到本地

1.  解压并测试demo、

  打开Anaconda prompt ,切换到SSD-Tensorflow路径下,输入jupyter notebook

  找到ssd_notebook.ipynb并打开,修改路径并运行测试例子,相应的环境可以直接在Anaconda里安装

2. 准备纸张缺陷数据集

  拍几张纸张缺陷的图片,然后用数据增强的方式增加图片数量

  用labelImg进行特征标注,Annotions:存放图片信息的xml;JPEGImages:存放着图片

3. 修改datasets文件夹中pascalvoc_common.py文件,将训练类修改别成自己的。

4. 运行tf_convert_data.py文件 

python tf_convert_data.py -data_name=pascalvoc -dataset_dir=D:\tensorflow-ssd\data -output_ name=voc_2007_test -output_dir=D:\tensorflow-ssd\tfrecords

5. 训练模型train_ssd_network.py文件中修改

6. 运行train_ssd_network.py

python  train_ssd_network.py  -train_dir=D:\tensorflow-ssd\SSD-Tensorflow-master\logs  -dataset_dir=D:\tensorflow-ssd\tfrecords  -dataset_name=pascalvoc_2007  -dataset_split_name=test  -model_name=ssd_300_vgg   -checkpoint_path=D:\tensorflow-ssd\SSD-Tensorflow-master\checkpoints\vgg_16.ckpt   -checkpoint_model_scope=vgg_16  -checkpoint_exclude_scopes=ssd_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_scopes=ssd_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_secs=60   -save_interval_secs=600 --weight_decay=0.0005    -optimizer=adam    -learning_rate=0.001  -learning_rate_decay_factor=0.94    -batch_size=4

python  train_ssd_network.py  -train_dir=D:\tensorflow-ssd\SSD-Tensorflow-master\logs  -dataset_dir=D:\tensorflow-ssd\tfrecords  -dataset_name=pascalvoc_2007  -dataset_split_name=test  -model_name=ssd_300_vgg   -checkpoint_path=D:\tensorflow-ssd\SSD-Tensorflow-master\checkpoints\vgg_16.ckpt   -checkpoint_model_scope=vgg_16  -checkpoint_exclude_scopes=ssd_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_scopes=ssd_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_secs=60   -save_interval_secs=600 --weight_decay=0.0005    -optimizer=adam    -learning_rate=0.001  -learning_rate_decay_factor=0.94    -batch_size=4

7. 训练完成后,在logs文件夹中会有 model.ckpt-10000.data-00000-of-00001 and model.ckpt-10000.index。把这两个文件复制到checkpoints文件夹,修改名字为model.ckpt.data-00000-of-00001 and model.ckpt.index

8. 测试,打开之前的demo,修改ckpt_filename='D:\tensorflow-ssd\SSD-Tensorflow-master\checkpoints/model.ckpt',然后在demo文件夹里放入测试图片,运行即可。

 

  

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tensorflow-ssd 实现纸张缺陷检测 的相关文章

  • Python、Tkinter、更改标签颜色

    有没有一种简单的方法来更改按钮中文本的颜色 I use button text input text here 更改按下后按钮文本的内容 是否存在类似的颜色变化 button color red Use the foreground设置按钮
  • InterfaceError:连接已关闭(使用 django + celery + Scrapy)

    当我在 Celery 任务中使用 Scrapy 解析函数 有时可能需要 10 分钟 时 我得到了这个信息 我用 姜戈 1 6 5 django celery 3 1 16 芹菜 3 1 16 psycopg2 2 5 5 我也使用了psyc
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • 如何生成给定范围内的回文数列表?

    假设范围是 1 X 120 这是我尝试过的 gt gt gt def isPalindrome s check if a number is a Palindrome s str s return s s 1 gt gt gt def ge
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • 如何在Windows上模拟socket.socketpair

    标准Python函数套接字 套接字对 https docs python org 3 library socket html socket socketpair不幸的是 它在 Windows 上不可用 从 Python 3 4 1 开始 我
  • 如何使用包含代码的“asyncio.sleep()”进行单元测试?

    我在编写 asyncio sleep 包含的单元测试时遇到问题 我要等待实际的睡眠时间吗 I used freezegun到嘲笑时间 当我尝试使用普通可调用对象运行测试时 这个库非常有用 但我找不到运行包含 asyncio sleep 的测
  • Spark的distinct()函数是否仅对每个分区中的不同元组进行洗牌

    据我了解 distinct 哈希分区 RDD 来识别唯一键 但它是否针对仅移动每个分区的不同元组进行了优化 想象一个具有以下分区的 RDD 1 2 2 1 4 2 2 1 3 3 5 4 5 5 5 在此 RDD 上的不同键上 所有重复键
  • 需要 TensorFlow 依赖项。如何在 Windows 上运行 TensorFlow

    我有兴趣让 TensorFlow 在 Windows 上运行 但目前我意识到这是不可能的 因为某些依赖项无法在 Windows 上使用 例如巴泽尔 之所以出现这种需求 是因为据我目前了解 从 TensorFlow 访问 GPU 的唯一方法是
  • 交换keras中的张量轴

    我想将图像批次的张量轴从 batch size row col ch 交换为 批次大小 通道 行 列 在 numpy 中 这可以通过以下方式完成 X batch np moveaxis X batch 3 1 我该如何在 Keras 中做到
  • feedparser 在脚本运行期间失败,但无法在交互式 python 控制台中重现

    当我运行 eclipse 或在 iPython 中运行脚本时 它失败了 ascii codec can t decode byte 0xe2 in position 32 ordinal not in range 128 我不知道为什么 但
  • ExpectedFailure 被计为错误而不是通过

    我在用着expectedFailure因为有一个我想记录的错误 我现在无法修复 但想将来再回来解决 我的理解expectedFailure是它会将测试计为通过 但在摘要中表示预期失败的数量为 x 类似于它如何处理跳过的 tets 但是 当我
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 在python中,如何仅搜索所选子字符串之前的一个单词

    给定文本文件中的长行列表 我只想返回紧邻其前面的子字符串 例如单词狗 描述狗的单词 例如 假设有这些行包含狗 hotdog big dog is dogged dog spy with my dog brown dogs 在这种情况下 期望
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例
  • Python 分析:“‘select.poll’对象的‘poll’方法”是什么?

    我已经使用 python 分析了我的 python 代码cProfile模块并得到以下结果 ncalls tottime percall cumtime percall filename lineno function 13937860 9

随机推荐

  • 都是分号惹的祸(ORA-00911: invalid character)

    今天在写SQL查询Oracle中的数据时遇到一个问题 在一般的SQL查询分析器中写好的SQL语句 运行一切正常 扔到用C 写的程序中就报错 错误代码如下 System Data OleDb OleDbException One or mor
  • PHP的语法

    h3 h3 p p 1 语言标记 开始标记 中间写PHP代码 2 echo 输出内容 3 语句结束符 是结束符 代码碰到 号 才表示一句代码完成 标记里的最后一行 可以不用 号 但是养成习惯
  • 2023年计算机科学与信息技术国际会议(ECCSIT 2023)

    会议简介 Brief Introduction 2023年计算机科学与信息技术国际会议 ECCSIT 2023 会议时间 2023年12月15日 17日 召开地点 中国 北海 大会官网 www eccsit org 2023年计算机科学与信
  • Linux查看当前文件夹的大小

    在Linux中 可以使用du disk usage 命令来查看当前文件夹的大小 以下是一些使用du的方法 查看当前文件夹的大小 为了查看当前文件夹的总大小 可以在文件夹中运行 du sh 这里 s 表示摘要模式 只显示总计 h 表示人类可读
  • ElasticSearch - function_score 实例说明

    官方说明 function score 通过实例说明 先准备数据和索引 在ES插入三笔数据 其中language是keywork类型 like是integer类型 代表点赞量 language java like 5 language py
  • 《QDebug 2023年3月》

    一 Qt Widgets 问题交流 二 Qt Quick 问题交流 三 其他 1 Qt qmake 在 Mac 上生成 dylib 相关的问题 默认的 lib 工程 qmake 输出如图 会生成带版本号的软链接 一般我们只需要一个 lib
  • 二分法求左右边界

    二分法求左右边界搞定 鉴于本人每次做二分的题都被二分的边界搞的云里雾里的 所以这次直接一劳永逸 道理我都懂 就是之前不想整理 直接定义left和right为左闭右闭 这个很重要 当然二分也要求数组必须是有序的 比如 数组长度为10 则lef
  • 新唐NUC980使用记录(5.10.y内核):u-boot & linux & rootfs 编译与烧录测试(基于SD1位置SD卡)

    文章目录 目的 基础准备 烧录环境 开发编译环境 SD卡分区 制作和设置编译工具链 制作toolchain和rootfs 拷贝rootfs内容到SD卡 设置编译工具链 u boot编译与测试 下载 配置与编译 烧录u boot与环境变量 l
  • Java 正则表达式工具类大全

    import java util regex Matcher import java util regex Pattern author nql Description 验证工具类 date now public class Validat
  • Matlab 超前滞后相关,自相关xcorr

    Matlab提供了计算互相关和自相关的函数xcorr函数 1 使用方法 c xcorr x y c xcorr x c xcorr x y option c xcorr x option c xcorr x y maxlag
  • linux函数库之htons(), ntohl(), ntohs(),htons() 函数

    linux疑难问题排查实战 分享了作为公司专家 在项目开发过程中内存优化 堆 栈 代码段 数据段 性能优化 死机 栈越界 堆越界 死锁等疑难问题排查的案例 使用的工具 perf asan strace memleak等 工作经验 大家可以点
  • Linux中的firewall-cmd

    2023年8月4日 周五上午 目录 打开端口 关闭端口 查看某个端口是否打开 查看当前防火墙设置 firewall cmd中的服务 在防火墙中什么是服务 为什么会有服务 打开或关闭服务 查看某个服务是否打开 firewall cmd中的 z
  • Unity MRTK使用详解(Htc vive+LeapMotion)

    MRTK Unity是一个由Microsoft驱动的开源项目 提供了多种组件和功能 用于加速Unity中的跨平台MR应用程序开发 以下是其一些功能 提供跨平台输入系统和用于空间交互和UI组件 启用快速原型通过在编辑器中的模拟 让你马上看到变
  • 在vscode内运行php代码文件

    一 下载php 下载php链接 下载后解压缩文件 我新建了一个php文件夹在解压缩到这里 二 下载Xdebug 下载Xdebug链接 下载后复制粘贴到php文件夹下的ext文件夹 三 修改 在php文件夹下找到这两个文件夹 复制第一个文件夹
  • Hudi原理

    1 摘要 Apache Hudi提供了不同的表类型供根据不同的需求进行选择 提供了两种类型的表 Copy On Write COW Merge On Read MOR 2 术语介绍 在深入研究 COW 和 MOR 之前 让我们先了解一下 H
  • checking for module ‘sqlite3‘ package ‘sqlite3‘ not found

    checking for module sqlite3 package sqlite3 gt 某个版本号 not found 在编译安装其他源码包的时候遇到缺少sqlite3库的问题 这里字面上的意思是没有安装sqlite3 但是造成这个问
  • (python)常见面试题

    1 一行代码实现1 100之和 2 如何在一个函数内部修改全局变量 3 列出5个python标准库 os 提供了不少与操作系统相关联的函数 sys 通常用于命令行参数 re 正则匹配 math 数学运算 datetime 处理日期时间 4
  • Redis数据实战之“万金油”的String,为什么不好用了?

    Redis数据实战之 万金油 的String 为什么不好用了 引言 为什么 String 类型内存开销大 用什么数据结构可以节省内存 如何用集合类型保存单值的键值对 引言 以一个项目需要为例 需要开发一个图片存储系统 要求这个系统能快速地记
  • DNS使用TCP与UDP

    DNS同时占用UDP和TCP端口53是公认的 这种单个应用协议同时使用两种传输协议的情况在TCP IP栈也算是个另类 但很少有人知道DNS分别在什么情况下使用这两种协议 先简单介绍下TCP与UDP TCP是一种面向连接的协议 提供可靠的数据
  • tensorflow-ssd 实现纸张缺陷检测

    环境 win10 tensorflow1 10 python3 6 9 下载https github com balancap SSD Tensorflow到本地 1 解压并测试demo 打开Anaconda prompt 切换到SSD T