创建一个新的pytorch环境
conda create -n pytorch3.8 python=3.8
激活
conda activate pytorch3.8
删除环境
conda env remove -n envname
安装cocotools
pip install pycocotools-windows>=2.0
克隆github项目
git clone https://github.com/XXX.git
coco数据集:
训练集图片:http://images.cocodataset.org/zips/train2017.zip
验证集图片:http://images.cocodataset.org/zips/val2017.zip
测试集图片:http://images.cocodataset.org/zips/test2017.zip
训练集、验证集标注信息http://images.cocodataset.org/annotations/annotations_trainval2017.zip
http://images.cocodataset.org/annotations/stuff_annotations_trainval2017.zip
http://images.cocodataset.org/annotations/panoptic_annotations_trainval2017.zip
经过卷积后矩阵尺寸大小的计算公式为:N=(W-F+2P)/S+1,C通道观察卷积类型可知
不整除时,卷积向下取整,池化向上取整。因卷积向上取整没有对应信息,池化向上取整会有对应信息。
经过转置卷积后的尺寸大小计算公式:
H输出=(H输入-1)✖S[0]-2P[0]+F[0]
W输出=(W输入-1)✖S[1]-2P[1]+F[1]
epoch:
一个epoch等于训练集中的全部样本训练一次的过程,进行了一次正向传播和反向传播
看到stride为1的时候,当kernel为3 padding为1或者kernel为5 padding为2 卷积前后尺寸不变
DWConv就是组卷积(Group Conv),不改变通道
native Lite-HRNet是指将shauffle moudle直接应用于HRNet
神经网络训练过程:
(1)前向传播,计算损失(2)反向传播,更新参数(3)循环往复,损失最小
基于的现在目标检测算法中有三个组件:
Backbone、Neck和Head
主干网络提取特征,脖子提取一些更复杂的特征,头部计算预测输出。
Backbone, 译作骨干网络,主要指用于特征提取的,例如:ResNet-50、Darknet53等;
Head:译作检测头,主要用于预测目标的种类和位置(bounding boxes),如SPP
在Backone和Head之间,会添加一些用于收集不同阶段中特征图的网络层,通常称为Neck。如FPN.PAN
目标检测模型的结构:
输入->主干->脖子->头->输出。主干网络提取特征,脖子提取一些更复杂的特征,然后头部计算预测输出。
FPN 高维度向低维度传递语义信息(大目标更明确)
PAN 低维度向高维度再传递一次语义信息(小目标也更明确)
YOLOv5会将数据集传送给一个数据加载器dataloader,它将会在线增强数据,主要方式有:缩放,颜色空间调整和mosaic增强。其中,马赛克增强是将四张照片以随机比例结合成一张。它对于COCO数据集上的小目标检测效果非常好,见上述实测例子
YOLOv2:采用多尺度训练方法,每迭代10个batch,就将网络的输入尺寸进行一个随机的选择,提升检测鲁棒性。