以下为《YOLO算法实践总结》的无排版文字预览,完整格式请下载
下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。
使用YOLOv3对无人机数据集进行检测识别
准备数据集
将数据集制作成如下所示:
/
在images和labels里面都如下:
/
在制作标签时,.txt格式如下:
/
本次实验采用的是DarknetMarkTool来对数据进行标注。
搭建环境
环境要求在requirements中,在进入目录之后,进行bash操作即可。
调试代码
根据要求有如下改动:
根据自己的种类数n,将在YOLO层前面的卷积层的filters改为(5+n)*3,yolo层classes=n(共有三处)
/
在data里面创建custom.data,其中地址进行替换
/
在weights里面进行bash操作下载权重、
Model.py
/
Train.py
/
Test.py
/
/
运行
Python3 train.py
/
/
Python3.test.py
/
/
/
/
表现很好,是因为数据集还是不太好……
自从 YOLO 诞生之日起,它就被贴上了两个标签:
速度很快
不擅长检测小物体
而后者,成为了很多人对它望而却步的原因。
由于原理上的限制,YOLO 仅检测最后一层卷积输出层,小物体像素少,经过层层卷积,在这一层上的信息几乎体现不出来,导致难以识别。
YOLOv3 在这部分提升明显,先看看小物体的识别。
和前辈们比,YOLO 的速度非常快,比 R-CNN 快 1000 倍,比 Fast R-CNN 快 100 倍。
和同辈们比,YOLOv 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 候,采用 logistic regression 进行分类是更有效的,比如在 Open Images Dataset 数据集进行分类。
在这个数据集中,会有很多重叠的标签,比如女人、人,如果使用 softmax 则意味着每个候选框只对应着一个类别,但是实际上并不总是这样。复合标签的方法能对数据进行更好的建模。
3. 加深网络
采用简化的 residual block 取代了原来 1×1 和 3×3 的 block(其实就是加了一个 shortcut,也是网络加深必然所要采取的手段)。
这和上一点是有关系的,v2 的 darknet-19 变成了 v3 的 darknet-53,为啥呢?就是需要上采样啊,卷积层的数量自然就多了,另外作者还是用了一连串的 3*3、1*1 卷积,3*3 的卷积增加 channel,而 1*1 的卷积在于压缩 3*3 卷积后的特征表示。
4. Router
由于 top down 的多级预测,进而改变了 router(或者说 concatenate)时的方式,将原来诡异的 reorg 改成了 upsample。
YOLOv1 吸收了 SSD 的长处(加了 BN 层,扩大输入维度,使用了 Anchor,训练的时候数据增强),进化到了 YOLOv2;
吸收 DSSD 和 FPN 的长处,仿 ResNet 的 Darknet-53,仿 SqueezeNet 的纵横交叉网络,又进化到 YOLO 第三形态。
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。
以上为《YOLO算法实践总结》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。