YOLOv2检测过程的Tensorflow实现

  • 时间:
  • 浏览:1
  • 来源:大发幸运飞艇APP下载_大发幸运飞艇APP官方

1、car.jpg:输入的待检测图片

请在yolo2检测模型下载模型,并贴到 yolo2_model文件夹下

https://pan.baidu.com/s/1ZeT5HerjQxyUZ_L9d3X52w

https://pan.baidu.com/s/1ZeT5HerjQxyUZ_L9d3X52w

原文发布时间为:2018-10-16

1、model_darknet19.py:yolo2网络模型——darknet19。

还并能看完,跟yolo1对比,yolo2引入anchor后检测精度有了提升(car和person的类别置信度高了這個 ),怎么让 每个边界框对应一组类别概率处理了yolo1中多个目标中心点落在同有一个多 多cell不到检测有一个多 多物体的什么的什么的问题(左侧有一个多 多person都检测出来了)。相比yolo1还是有一定提升的。

·怎么让 ,网络下采样是32倍,曾经也使得网络还并能接收任意尺寸的图片,什么都有有yolo2有了Multi-Scale Training多尺度训练的改进:输入图片resize到不同的尺寸(论文中选着320,352...,5008有一个尺寸,下采样32倍对应10*10~19*19的形状图)。每训练10个epoch,将图片resize到曾经不同的尺寸再训练。曾经有一个多 多模型还并能适应不同的输入图片尺寸,输入图像大(5008*5008)精度高传输速率稍慢、输入图片小(320*320)精度稍低传输速率快,增加了模型对不同尺寸图片输入的鲁棒性。



训练好的模型请在yolo2检测模型下载

3、utils.py:功能函数,中有 :预处理输入图片、筛选边界框NMS、绘制筛选后的边界框。

4、Main.py:YOLO_v2主函数

主要特点有:

·YOLOv2的输入图片大小为416*416,经过5次maxpooling(下采样32倍)以后得到13*13大小的形状图,并以此形状图采用卷积做预测。曾经会原因分析分析小的目标物体经过5层maxpooling以后形状基本没人了。什么都有有yolo2引入passthrough层:前面的形状图维度是里边的形状图的2倍,passthrough层抽取前面层的每个2*2的局部区域,怎么让 将其转化为channel维度,对于26*26*512的形状图,经passthrough层处理以后就变成了13*13*2048的新形状图,曾经就还并能与里边的13*13*1024形状图连接在同時 形成13*13*50072大小的形状图,怎么让 在此形状图基础上卷积做预测。作者在后期的实现中借鉴了ResNet网络,都有直接对高分辨形状图处理,什么都有有增加了有一个多 多里边卷积层,先采用6有一个多 多1*1卷积核进行卷积,怎么让 再进行passthrough处理,曾经26*26*512的形状图得到13*13*256的形状图。这算不算实现上的有一个多 多小细节。

(3)采用跨层连接Fine-Grained Features

(2)筛选解码后的回归边界框——NMS

Python3 + Tensorflow1.5 + OpenCV-python3.3.1 + Numpy1.13

windows和ubuntu环境都还并能



2、decode.py:解码darknet19网络得到的参数.

(1)加进了全连接层fc



YOLOv2采用了有一个多 多新的基础模型(形状提取器),称为Darknet-19,包括19个卷积层和有一个maxpooling层,如下图。Darknet-19与VGG16模型设计原则是一致的,主要采用3*3卷积,采用2*2的maxpooling层以后,形状图维度降低2倍,而同時 将形状图的channles增加两倍。

这里着重介绍NMS中IOU计算法律措施:yolo2中计算IOU只考虑形状,先将anchor与ground truth的中心点都偏移到同一位置(cell左上角),怎么让 计算出对应的IOU值。

1、model_darknet19.py:yolo2网络模型——darknet19

2、decode.py:解码darknet19网络得到的参数

3、utils.py:功能函数,中有 :预处理输入图片、筛选边界框NMS、绘制筛选后的边界框

4、config.py:配置文件,中有 anchor尺寸、coco数据集的500个classes类别名称

5、Main.py:YOLO_v2主函数,对应多多进程 有一个多 多多步骤:

(1)输入图片进入darknet19网络得到形状图,并进行解码得到:xmin xmax表示的边界框、置信度、类别概率

(2)筛选解码后的回归边界框——NMS

(3)绘制筛选后的边界框

6、Loss.py:Yolo_v2 Loss损失函数(train以后用,预测以后没人调用此多多进程 )

(1)IOU值最大的那个anchor与ground truth匹配,对应的预测框用来预测這個 ground truth:计算xywh、置信度c(目标值为1)、类别概率p误差。

(2)IOU小于某阈值的anchor对应的预测框:只计算置信度c(目标值为0)误差。

(3)剩下IOU大于某阈值但都有max的anchor对应的预测框:丢弃,不计算任何误差。

7、yolo2_data文件夹:中有 待检测输入图片car.jpg、检测后的输出图片detection.jpg、coco数据集500个类别名称coco_classes.txt

·曾经提升模型收敛传输速率,怎么让 还并能起到一定正则化效果,降低模型的过拟合。

IOU计算难点在于计算交集大小:首先要判断是算不算有交集,怎么让 再计算IOU。计算以后有有一个多 多trick,只计算交集累积的左上角和右下角坐标即可,通过取max和min计算:

对应多多进程 有一个多 多多步骤:

本文来自云栖社区企业企业合作伙伴“大数据挖掘DT机器学习”,了解相关信息还并能关注“大数据挖掘DT机器学习”。

2、detected.jpg:检测结果可视化

·曾经大大减少了网络的参数,被委托人理解这是yolo2还并能增加每个cell产生边界框以及每个边界框并能单独的对应一组类别概率的原因分析分析。

(3)绘制筛选后的边界框

一、完整篇 代码解读如下:

(1)输入图片进入darknet19网络得到形状图,并进行解码得到:xmin xmax表示的边界框、置信度、类别概率

(2)在每个卷积层里边都加入有一个多 多BN层不用说再使用droput