深度学习 - 理论笔记总结

深度学习笔记:

1. 描述常用3种IOU,分别针对那种情况使用?

① 交并比:交集/并集。即框和框的重叠的程度。为了删除一些同目标位置重叠的框。
② 最小IOU:最小面积框/并集。为了删除预测框在真实框内部,且框住部分不完整的情况。
③ 最大IOU:最大面积框/并集。
深度学习 - 理论笔记总结

2. 描述数据增强的常用手段,yoloV4使用的手段?

数据增强:
(1) 裁剪:①中心裁剪,② 随机裁剪,③ 随机长宽比裁剪, ④ 上下左右中心裁剪, ⑤ 上下左右中心裁剪后翻转;
(2)翻转和旋转:① 水平翻转, ② 垂直翻转, ③ 随机角度翻转, ④ 随机角度旋转;
(3)遮挡: ① dropout, ② dropblock;
(4)图像变换: ① 尺寸变换, ② 标准化, ③ 填充, ④ 修改亮度、对比度、饱和度, ⑤ 转灰度图, ⑥ 线性变换, ⑦ 仿射变换, ⑧ 归一化;
(5)mosaic方法:随机裁剪多张样本的目标进行拼接。
yoloV4:
使用了mosaic和dropblock进行数据增强。

3. YOLOV3输入尺寸应该满足哪些条件,608分辨率的图片输入到yoloV3中。输出数据的尺寸是什么?

输入:416 * 416 * 3 ;
输出:S * S * 3 * ( cls + 4 + classnum ) ;
S 为输出尺寸的大小;(13,26,52)
3为锚框的数量;
cls为置信度,即有无目标;
4为预测框的偏移量;
classnum为网络检测的类别。

4. 描述YOLOV3的mAP指标。

(1)AP 平均精度:使用积分的方式来计算PR曲线与坐标轴围城的面积。
(2)mAP:所有类别的AP求平均。

5. dropout和dropblock的区别,分别用在什么地方?

① dropout(数据增强):随机遮盖像素点,这种遮盖对神经网络的作用很小,但是能够避免小物体被遮挡。
② dropblock:随机遮盖像素块,这种遮盖能有效增强样本数据,提高训练的难度,但是容易把小物体遮挡,造成误差。

6. L1,L2,smooth损失的优缺点?

(1)L1损失:

平均绝对误差(MAE)是另一种常用的回归损失函数,它是目标值与预测值之差绝对值的和,表示了预测值的平均误差幅度,而不需要考虑误差的方向,范围是0到∞。

优点:对任何输入的数值,都有着固定的梯度,不会导致梯度暴涨,具有稳健性。
缺点:在中心点是折点,不能求导,而且会导致梯度振荡。
(2)L2损失:

均方误差(MSE)是回归损失函数中最常用的误差,它是预测值与目标值之间差值的平方和。

优点:函数连续光滑,每个点都可以求导,具有较为稳定的解,不会造成梯度振荡。
缺点:在输入的数值较大,即较远处的时候,梯度过大,容易形成梯度暴涨的问题,不稳健。对异常点敏感。
(3)smooth L1:
smoothL1损失对离群点(异常点)更加鲁棒,相比于L2损失函数,其对离群点(指的是距离中心较远的点)、异常值(outlier)不敏感,可控制梯度的量级使训练时不容易跑飞。综合了L1,L2损失的优点,避免了它们的缺点。

7. 描述YOLOV4中使用到的网络子结构,并画出来。

① CBM = conv+BN+Mish
深度学习 - 理论笔记总结
mish**函数:Mish=x * tanh(ln(1+e^x))。

(ReLU和Mish的对比,Mish的梯度更平滑)

由于yoloV4比yoloV3的层次更深了,所以使用mish使得再更深层次的时候保证了网络的平滑,即准确性。
② CBL = conv+BN+LeakyRelu
深度学习 - 理论笔记总结
③ SPP:三个最大池化的输入再拼接concat。
三个池化采样不同的核进行尺寸(通过步长和padding控制一样的输出尺寸,便于concat)

“加入了SPP block,能够显著地改善感受域大小,而且速度几乎没有什么下降。”

深度学习 - 理论笔记总结
④ ResNet:两个CBM,一个用1 * 1卷积核,一个用3 * 3卷积核,再做残差。
深度学习 - 理论笔记总结
⑤ CSPX:CBM+残差+CBM 再和输入的CBM做concat(v5是和输入的conv做concat)
深度学习 - 理论笔记总结

8. 描述NMS的整个过程。

在物体检测中NMS(Non-maximum suppression)非极大抑制应用十分广泛,其目的是为了消除多余的框,找到最佳的物体检测的位置。

nms步骤:
① 所有框按照置信度的值从大到小排序;
② 选取置信度最大的框出来,与其他框做IOU;
③ 按一定阈值,将②中IOU大于该阈值的框删去,保留剩下的框,在按其置信度从大到小排序;
④ 重复第二步,直到所有框都筛选完。

9. YOLOV3的建议框怎么来的。

yoloV3的建议框选择:每个像素块中心有三个anchor框;
anchor框根据自己的数据集进行选择;
① 通过聚类算法,对数据集中的所有真实框进行聚类得到三个不同方向大小的anchor框;(适用于训练集很大的情况)
② 通过自己数据集目标真实框的位置、大小、方向,自定义三个anchor框。(适用于训练集少的情况)

10. 描述UNET的大致结构。

UNET:先下采样再上采样的编解码结构。(保留每一次下采样的特征,在上采样的同时进行裁剪拼接。)
深度学习 - 理论笔记总结

11. 描述MTCNN侦测的大致流程。

MTCNN侦测步骤:
① 输入图片进行图像金字塔,得到一组不同尺寸的图片。分别放入P网络进行侦测;
② 输入P网络侦测,对图像进行粗略侦测,尽可能保留所有有目标的框。(低置信度阈值,并通过nms去掉部分重叠框)还要通过反算得到框的实际位置(给后面两个网络裁剪、缩放后侦测)
③ 将P网络筛选后的框,输入R网络进行侦测,进一步做筛选,尽可能筛选掉没有目标的框以及部分目标和重叠的框。(nms)
④ 将R网络筛选后的框放入O网络侦测,(较高的置信度阈值,利用mns通过交并比删去大量重叠框,和再用最小比并集删去在目标内部不完整的框。)
⑤ 反算输出O网络最终筛选的侦测结果。