Tiny Yolo v3检测缺陷

最近研究了下怎么用深度学习做缺陷检测。

学习参考了一篇博客的方法,自己重现了下,效果还不错

博客地址 https://blog.csdn.net/qq_27871973/article/details/85009026

我的测试效果

 

这里我使用数据集的是德国DAGM 2007的数据集

官方网址:https://hci.iwr.uni-heidelberg.de/node/3616

网盘地址:

链接:https://pan.baidu.com/s/1idj4OeAybYLdz3Ghv0RFfw 
提取码:e2dc

实现步骤

1.图像大小格式转换

我用的数据集图像大小是512x512的png,tiny yolo v3输入416x416的jpg,直接用python写段代码转换就行。

import os
from skimage import io
from skimage import transform

dataset_dir=r'D:\mytestDL\test_png'   #原图路径
dataset_dir2=r'D:\mytestDL\test'      #处理后图片路径
image_list = os.listdir(dataset_dir)
print(image_list)

num=len(image_list)

for index in range(num):
    path=dataset_dir+'/'+image_list[index]
    path2=dataset_dir2+'/'+image_list[index][0:-3]+'jpg'
    img=io.imread(path)
    img2=transform.resize(img,(416,416))
    io.imsave(path2,img2)

  2.标注图像

    这里用到labelImg这个标注工具。github链接 https://github.com/tzutalin/labelImg

    解压出来,运行 labelImg.py这个文件,一般情况下会有很多库没有安装,根据错误提示 pip install xx(要安装的库)

  还有个指令 安装资源, 到在cmd中到labelImg.py这个文件目录下,输入

pyrcc5 -o resources.py resources.qrc

  最后运行labelImg.py这个文件就能打开了。

如下图,左边的按钮看看基本能明白,快捷键w框框,每次框完位置save下,save文件的位置就是左边第三个选择的。

会得到一堆xml文件,这些就是保存了对应图像的框框数据

3.开始跑tiny-yolo-v3,训练数据

上面的准备工作已经做好了,已经有训练图像数据,即很多416x416的图片。以及一些对应的xml文件。

我还没怎么研究那个博主的代码,先不管了,这里直接使用吧,他的github地址https://github.com/Eatzhy/tiny-yolov3

把那些需要训练的图片放在JPEGImages文件夹下,把xml文件放在Annotations文件夹下。运行test,会在VOC2007/ImageSets/Main下产生几个txt文档,

还有在model_data文件夹下找到voc_classes.txt 打开,默认是class1 class2 class3三个,删除,改成你用标注工具那边标注的名字,我这里是xx

回到tiny-yolov3-master目录,打开voc_annotation.py

我这里classes=["xx"] 自己安装自己标注的缺陷改,改完运行它,会在当前目录下得到三个txt文件,以2007开头命名的。

对应的分别改名字为 train.txt、test.txt 、val.txt 

这里可以将test.txt和val.txt内的内容复制到train.txt中,反正就是训练一个train.txt文件,不搞也没事。

train.txt内容是图片路径和框框、类别序号

一切准备完毕,运行tiny_train.py

我显卡是gtx1060 6G的,训练这个没问题,一百多张标记图像,一轮8秒,挂机跑了3000轮。

可以根据自己的机子配置修改下tiny_train.py的代码,比如改改batch_size啥的

4.测试效果

  开头已经放过测试效果。

 测试方法是,将需要测试的图片,412x412的jpg图像,放到 VOC2007/Images下

运行yolo_test_batch.py 就在测试了,测试结果在VOC2007/SegmentationClass下

 

OK!

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值