理论笔记
1.YOLOV3输入输出?
输入:608x608x3,32的倍数
输出:SxSx3x (cls + 4 + classnum);
S为输出尺寸的大小/ 608/32=19
3为锚框的数量;
cls为置信度;
4为4个预测框的偏移量;
classnum为预测的类别数。
2.YOLOV4比yolov3改进的地方?
①CBM组件,Conv,BN,Mish
Mish激活函数梯度更加平滑,在深层次时保证了网络的平滑性
②CBL,Conv,BN,LeakyRelu
③Res Unit:残差结构
④CSPX结构:
⑤SPP:
采用1x1,5x5,9x9,13x13的最大池化方式,进行多尺度融合
输入端创新:Mosaic数据增强
mosaic采用四张图片,随机缩放,随机裁剪,随机排布
损失函数:CIOU_LOSS
从四个方面总结:
①输入端:Mosaic数据增强,cmBN,SAT自对抗训练
②backbone:CSPDarknet53,Mish激活函数,Dropblock
③Neck:介于主干和输出之间,SPP模块,FPN+PAN结构
④侦测:训练时使用CIOU_LOSS,预测框nms变为DIOU_nms
DIOU_loss:考虑到了重叠面积、中心点距离
预测框中心点位置一样时,DIOU结果相同,改进CIOU_loss,考虑到了长宽比
3.量化具体过程?
量化的原理:一般来讲,我们神经网络输入的数值精度都是比较高的,因此就会计算比较的慢,所以我们可以量化一般值到INT8,即把权重映射到INT8的范围之间,计算速度快。
4.YOLO怎么添加注意力,在哪里添加?
图像中的注意力机制分为通道注意力和空间注意力,通道注意力是将宽高进行自适应池化为1x1,获取最大的感受野,在通道层面进行特征融合,空间注意力是将通道取平均或者最大转化为单通道,进行通道拼接后对图像做卷积,通道还原成单通道,加上sigmoid激活函数。
依次使用通道注意力和空间注意力,添加在backbone之后。
5.Alphapose的使用流程和原理?
AlphaPose是一个精确的多人姿态估计器,它在COCO、MPII等数据集上效果显著高于其他已开源系统,而且同时支持Linux和Windows,并且是交大MVIG组开发的,另外AlphaPose还提供了基于PyTorch平台的源码,可以说很方便使用了,并且安装教程也很详细。PC端帧率7左右
流程:
①用SSD检测人,获得human proposal
②将proposal输入到两个并行的分支,上面的分支是STN+SPPE+SDTN,下面的分支充当额外的正则化矫正器
③对pose proposal做Pose NMS,消除冗余的建议框
主要工作:SSTN=STN+SPPE+SDTN
STN:处理区域框,选择感兴趣的区域
SPPE:单人姿态估计
SDTN:姿态建议
6.YOLO发展时间线?
yolov3(2018年)
yolov4(2020.04正式发布)
yolov4-tiny(2020.06.25)
yolov5(2020.06.09发布)
7.ST-GCN流程和作用?
使用 OpenPose 处理了视频,提出了一个数据集
结合 GCN 和 TCN 提出了模型,在数据集上效果还不错
openpose的输出作为ST-GCN的输入,是一个5维矩阵(N,C,T,V,M)
N:视频数量,一个batch256个视频
C:关节的特征,一个关节包含x,y,acc三个特征
T:关键帧的数量,一个视频有150帧
V:关节的数量,一个人标注18个关节
M:一帧中的人数,一般选择平均置信度最高的2个人
所以输入的5维矩阵是(256,3,150,18,2)
ST-GCN核心单元ATT+GCN+TCN
最后,使用平均池化,全连接层对特征进行分类;
GCN(图卷积):学习空间中相邻关节的局部特征
TCN:时间卷积
ATT:注意力
8.YOLOv5的改进点?
①mosaic数据增强,自适应锚框计算,自适应图片缩放
②主干网络:Focus结构,CSP结构
③Neck:FPN+PAN结构
④预测:GIOU_LOSS
Focus结构:输入608x608x3采用切片操作,先变成304x304x12的特征图,再经过卷积核
9.IOU及其优化
Iouloss–>Giouloss–>Diouloss–>Ciouloss
①IouLoss:1-交并比
问题:1.两框不相交的情况,无法优化。2.预测框大小相同
②GiouLoss:增加了相交尺度的衡量情况
不足:预测框在目标框内部,且预测框大小一致
③DIOU_LOSS:考虑了重叠面积和中心距离
考虑到了最小外接矩形的对角线距离,两个中心点的欧式距离
问题:没有考虑到长宽比
④CIOU_LOSS:
增加了影响因子,考虑到了长宽比