Tensorflow+yolov3训练初识

前言

现阶段机器学习的多目标识别领域中,yolo是相当有优势的。我们在此使用的是yolov3,yolov3并没有太多创新,但以v1和v2为基础,保持速度的优势下,提高了预测精度。最大的进步可能体现在对小物体的识别能力上。

个人认为,如果觉得yolov3的资料太少的话,可以查找yolov2的资料,可以试着先理解v2的内容。

一些概念

tensorflow

一个框架,个人认为是方便实现一个神经网络模型的框架。官方解释为

一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现 。

yolov3

一种算法,用于多目标识别。

darknet

darknet是一种网络结构,并被yolov3所使用,用于图像特征提取。yolov3采用了darknet53(含有53个卷积层),还吸收了残差网络的做法。在yolov3中,是不存在池化层的。

残差网络可以很好的解决深度学习里的退化问题,即:随着深度的加深,训练误差和测试误差反而更大。

36494132.png

多尺度特征

yolov3可以很好地检测大中小对象,这是运用到了多尺度特征。如何识别大中小对象,其实是根据对特征图的上采样(或者下采样)完成的。

e93daff8-3bea-4bd4-b0ac-14381798226a.png

上采样:放大图片,增加分辨率。多采用内插值法,即在原图的基础上,在像素点之间插入合适的新元素。

下采样:生成对应图像的缩略图,使得图像符合显示区域大小。如mn图片下采样s倍,即把原图片在ss窗口的内容,打成一个像素点。

多尺度训练

多尺度训练在yolov2时就被引入了,引入的目的是为了让模型有更加好的鲁棒性,即输入图片不需要固定大小。

具体来说,就是每间隔一定的batch,去改变输入图片的大小。

在yolov2中,输入图片最小为320320,最大为608608,这个需要确认一下?

先验框

先验框是可以帮助网络更好的预测。设置先验框,可以让ground truth与预测框的IOU更好,从而更好的训练学习。先验框可以使用kmeans函数计算而得。(训练关键之一)

yolov3有9种先验框,分配上,在分辨率为13x13特征图上(有最大的感受野)应用较大的先验框(116x90),(156x198),(373x326),适合检测较大的对象。中等的2626特征图上(中等感受野)应用中等的先验框(30x61),(62x45),(59x119),适合检测中等大小的对象。较大的5252特征图上(较小的感受野)应用较小的先验框(10x13),(16x30),(33x23),适合检测较小的对象。

55545224.png

资料

《yolov3深入理解》 https://www.jianshu.com/p/d13ae1055302

你可能感兴趣的:(Tensorflow+yolov3训练初识)