YOLO V1算法详解
创新点
YOLO实现了实时处理图片,达到45FPS;Fast YOLO达到155FPS,但是检测准确率不高。
优势:
- 速度快。
2.做预测时全局了解图像,对背景预测错误出现的概率比Fast R-CNN小。
3.YOLO学习目标的一般特征,具有较高通用性,应用到新领域,不太可能发生故障。
但是YOLO检测准确性不高,虽然可以快速识别图像中的对象,但是很难准确定位一些目标,尤其是小目标。
算法概述
算法详解
网络结构
- YOLO网络有24个卷积层,紧跟2个全连接层,整体网络结构如图所示。
- Fast YOLO网络使用较少卷积层,只有9个。
YOLO v1算法缺点
1.依照论文,每张图产生49个网格,98个bounding box,最多检测出49个目标,对于距离较近的成群小目标,检测效果差。
2.定位不准。Loss主要来自于定位误差,小误差对小bounding box影响远大于同等误差对大bounding box影响。
3.不擅长检测特征相似的某类物体,擅长实时检测多类物体。
YOLO V2算法详解
原文链接:https://blog.youkuaiyun.com/qq_41994006/article/details/88656234
输入层
与传统神经网络/机器学习一样,模型需要输入的进行预处理操作,常见的输入层中预处理方式有:
去均值
归一化
PCA/SVD降维等
卷积层:
局部感知:人的大脑识别图片的过程中,并不是一下子整张图同时识别,而是对于图片中的每一个特征首先局部感知,然后更高层次对局部进行综合操作,从而得到全局信息。
池化层(Pooling):也称为欠采样或下采样。主要用于特征降维,压缩数据和参数的数量,减小过拟合,同时提高模型的容错性。主要有:最大/平均池化
输出层(全连接层)
经过前面若干次卷积+激励+池化后,终于来到了输出层,模型会将学到的一个高质量的特征图片全连接层。其实在全连接层之前,如果神经元数目过大,学习能力强,有可能出现过拟合。因此,可以引入dropout操作,来随机删除神经网络中的部分神经元,正则化等来解决此问题。还可以进行局部归一化(LRN)、数据增强,交叉验证,提前终止训练等操作,来增加鲁棒性。
当来到了全连接层之后,可以理解为一个简单的多分类神经网络(如:BP神经网络),通过softmax函数得到最终的输出。整个模型训练完毕。
深度学习模型:
提高网络宽度可以提高性能,但是达到一定临界点后饱和。
加宽偶尔比加深更有利于性能的提升,但计算量增长更快O(N的平方)算法复杂度。
dropout 可以降低网络对每个神经元的依赖,从而增强了泛华能力(注意:dropout相当于增加了噪声,造成了梯度损失,所以需要更大的学习率和动量项,训练更久才能收敛)
BN层:
调整了数据的分布,保证了梯度的有效性,减轻了对参数初始化的依赖。
训练更快,可以使用较高的学习率
使得损失函数平面更加光滑。
原文链接:https://blog.youkuaiyun.com/fu6543210/article/details/82817916
原文链接:https://blog.youkuaiyun.com/qq_41994006/article/details/88656234