hub是什么接口,(り﹎Hui

  

  作者,邢拍拍   

  

  sourceCVHub   

  

  YOLOv3的Github地址:   

  

  https://github.com/CVHuber/Detection-getting-started模型测试(Linux环境下)1。环境安装和模型下载(1)首先在本地克隆github代码。   

  

  git clone https://github.com/CVHuber/Detection-getting-started(2)进入项目文件夹,安装项目运行环境。   

  

  Cd检测-入门/#转到项目文件夹pip install -r requirements.txt #安装运行环境(3)下载模型重量   

  

  Cd weights/#转到weights文件夹bash download_weights.sh #下载模型权重下载模型权重之后,在。/权重文件夹:   

  

     

  

  其次,在Detection-getting-started项目文件夹中的模型测试中,运行脚本:   

  

  python detect . py-image _ folder data/samples/model测试结果将存储在。/输出文件夹:   

  

     

  

  训练Pascal Voc2007数据集一、数据集下载(1)目标检测常用的公共数据集有Pascal Voc、MSCOCO、Google Open Image、ImageNet和DOTA数据集等。本文我们将使用Pascal Voc2007数据集,因为它的数据集比较小(训练和验证集总共只有439M,测试集总共有431M),所以我们可以快速贯穿检测模型,对模型进行验证!   

  

  Pascal Voc2007数据集下载链接:   

  

  https://pjreddie.com/projects/pascal-voc-dataset-mirror/   

  

  (2)下载完训练集/测试集后,解压:   

  

     

  

  其中,JPEGImages是图片,Annotations是目标检测的标签,SegmentationClass和SegmentationObject分别是分类和分割的标签;所以我们只需要把JPEGImages和注解。   

  

  二。数据准备(1)在下新建一个文件夹voc2007。/data文件夹,并在voc2007文件夹下新建一个训练和测试文件夹来存储训练集和测试集,并将训练集和测试集存储在相应的文件夹中:   

  

     

  

  (2)在。/utils文件夹,您可以统计数据集中要检测的目标,并将目标名称写入classes.names中。/data/voc2007/train文件夹:   

  

  Cd utils/#转到utils文件夹python gen_classes.py #运行脚本(3)在。/utils文件夹。   

  

  在python.py./data文件夹下,将创建一个名为custom的新文件夹,该自定义文件夹包含YOLOv3模型所需的数据:   

  

     

  

  注释:其中图像是训练集和验证集的图片(复制自JPEGImages);批注是训练集和验证集的原始批注文件(从批注复制而来);Train.txt是存储训练图片的绝对路径;Valid.txt存储验证图片的绝对路径;标签文件夹存储每张图片的复选框信息。复选框信息包括   

  

  (类标识,x中心标准,y中心标准,宽度标准,高度标准):   

  

  x _ center _ norm=《xmin + xmax》/2.0/img _ widthy _ center _ norm=《ymin + ymax》/2.0/img _   

heightwidth_norm = 《xmax - xmin》 / 2.0> / img_widthheight_norm = 《ymax - ymin》 / 2.0> / img_height三、配置文件(1)在./config文件夹下运行如下脚本:

  

bash create_custom_model.sh 20其中20是数据集中存在的待检测目标数目(因为Pascal Voc2007数据集共20个类别,所以填20),运行上脚本之后之后,在./config文件夹下会生成模型配置文件yolov3-custom.cfg:

  

  

注释:yolov3-custom.cfg模型配置文件里存放了模型的超参数,可以自己调节这些超参数,比如图片的输入尺寸,初始学习率,ignore_thresh阈值,还有一些卷积参数等等。

  

(2)修改./config文件夹下的custom.data,修改后的数据如下:

  

  

四、模型训练在项目文件夹下运行如下脚本:

  

python train.py --data_config config/custom.data --model_def config/yolov3-custom.cfg --device_id 0如果要加载预训练模型进行训练,则添加--pretrained_weights weights/darknet53.conv.74即可

  

模型训练情况:

  

  

五、模型评估在项目文件夹下运行如下脚本对刚刚训练得到的模型进行性能评估:

  

python test.py --weights_path /checkpoints/yolov3_ckpt_10.pth --model_def config/yolov3-custom.cfg --data_config config/custom.data --class_path data/custom/classes.names如若运行成功,会出现如下信息:

  

  

六、模型预测如果要使用训练好的模型进行图片预测,并将预测结果保存,则运行如下脚本,预测结果保存在./output文件夹下:

  

python detect.py --image_folder data/voc2007/test/JPEGImages --model_def config/yolov3-custom.cfg --weights_path /checkpoints/yolov3_ckpt_10.pth --class_path data/classes.names

  

训练自己的数据集一、自定义数据集比如公司要你实现一个检测算法:在某特定业务场景下,检测出印刷电路板上的缺陷具体位置并将缺陷进行归类。

  

比如,下面这几块电路板分别存在short,missing_hole和mouse_bit这三种类别的缺陷,图片引自于<1>

  

  

当采集了大量的数据之后,需要对数据集进行label制作,常用的目标检测label制作工具有:

  

(1)LabelImg:https://github.com/tzutalin/labelImg(最常用)

  

(2)BBox-Label-Tool:https://github.com/puzzledqs/BBox-Label-Tool

  

(3)Labelme:https://github.com/wkentaro/labelme

  

(4)CasiaLabeler:https://github.com/msnh2012/CasiaLabeler

  

我们一般选择LabelImg进行目标检测框的标注,通过LabelImg,我们可以制作Pascal Voc格式的标注文件。

  

二、模型训练接下来,将数据集图片存入./data/voc2007/train/JPEGImages文件夹下,将制作好的Label存入./data/voc2007/train/Annotations文件夹下,之后的训练过程就和训练Pascal Voc2007数据集的一样了!

  

注意:如果使用另一个标注工具进行Label制作,则只需要自己写好脚本将Label转换为Pascal Voc格式的标注文件即可,后续训练流程同上!

  

模型改进思路如果任务比较简单,可以将特征提取网络Darknet53替换成更加轻量级的特征提取网络首先观察数据集,如果待检测目标物体尺度变化较大,则三个预测分支是比较合适的,甚至还可以多加一个检测分支,形成四个检测分支去检测目标;如果待检测目标尺度单一,则可以去掉另外两个检测分支,只考虑一个检测分支,这对精度影响是很小的对于待检测目标尺度变化较大问题,可以考虑加入多尺度上下文信息提取模块ASPP或者PSP,并结合通道注意力SE block,有时候会有奇效;同时也可以将FPN架构加入到特征提取器的头部用来解决多尺度目标问题可以将边框回归损失MSE替换为IOU-->GIOU-->DIOU-->CIOU(这几种边框回归损失函数需要好好掌握理解,面试常问)将通道/空间注意力应用到网络中不同位置,尝试效果Reference:

  

<1>

相关文章