文章目录
学习记录
Yolov1
网络结构
s个网格 b个bounding box (预测 位置和confidence)
中心网格负责该目标 中心点为(x,y) 相对于中心网格属于(0,1) h,w相对于整个图片而言
confidence:
Pr(Object) ∗ IOUtruth
(取1或0) (交并比)
损失函数
三个部分
1、bounding box 损失
误差平方和
其中宽和高 开根号 (偏移量相等 小的更加重要)
2、confidence 损失
有目标+无目标
obj+noobj
3、classes损失
优点
1、训练简单;速度快、实时检测
2、YOLO先对整张图片做卷积再同时预测bbox和类别概率,看到的视野更大,能够减少将背景错认为目标的概率
3、泛化性能好,可以推广到新的领域
存在问题
1、对小目标检测效果差
2、对群体聚集目标检测效果差
3、在新的或者不常见的方向比和配置中泛化性能不好。
4、主要错误来源于定位不准确
可改进方向
1、多尺度特征融合:通过引入多尺度特征融合,可以提高YOLO对不同尺寸物体的检测性能。
2、锚框设计:改进锚框的设计和生成策略,可以提高模型的定位精度和召回率。
3、损失函数改进:优化损失函数,以平衡正负样本的权重,提高模型的召回率。
4、模型结构调整:调整网络结构,以提高模型性能和减小模型复杂度。例如,引入注意力机制、残差连接等。
Yolov2
backbone
bn层
high resolution
anchor boxes
kmeans
direct location prediction
低层与高层融合 pass through layer
multi train 缩放尺度
优点
1、速度快,单阶段检测
2、可以实现实时的目标检测
缺点
1、与R-CNN或Faster R-CNN等一些最先进的检测器相比,其准确性仍然稍低。
2、在检测小尺寸的物体时表现不佳
可改进方向
1、模型改进:可以考虑使用更高效的特征提取网络,如EfficientNet等,以提高模型的性能。
2、损失函数优化:可以尝试使用更复杂的损失函数
3、数据增强:对训练数据进行更多的数据增强操作,如随机裁剪、缩放、旋转等
4、融合其他检测方法:可以尝试将YOLOv2与其他检测方法(如R-CNN)结合,相互弥补不足,以提高模型的整体性能。
Yolov3
模型结构
backbone:Darknet-53
预设边界框
损失
类别损失+定位损失
优点
1、速度快
2、准确度高
3、采用的模型集合了当时其他模型的优点
缺点
1、对小目标检测不够准确
2、对于密集区域检测不准确
改进方向
1、可采用更细的特征提取方法进行改进
2、可更换backbone以及损失函数进行改进
Yolov5
模型结构
backbone:CSP-Darknet53
SPPF
数据增强: mosaic ;copy paste
random 随机变换 (翻转,平移,缩放,旋转)
mixup
损失
三个损失
优点
1、速度更快
2、准确度更高
3、采用模块化设计,可扩展性好
缺点
1、需要更多GPU资源
2、对于不同视角的目标检测不够准确
Yolox
损失
三个损失
bce +IOUloss
优点:
高效性:YOLOX采用了一系列的优化措施来提高检测速度,例如使用Cross-Stage Partial Network(CSPNet)结构、SPP模块、PANet结构等等。这些优化措施使得YOLOX在保持较高检测精度的同时,能够实现很高的检测速度。
准确性:YOLOX采用了一些新的技术来提高检测精度,例如使用Dynamic Head模块、Gaussian YOLOv3 Loss等等。这些技术的引入使得YOLOX在多个目标检测数据集上都取得了优秀的检测精度。
灵活性:YOLOX支持自适应多尺度检测、多尺度训练、自适应采样等等,这些功能使得YOLOX的应用范围更加广泛。
缺点:
对小目标的检测效果不够好:与其他一些目标检测算法相比,YOLOX在小目标的检测效果上还有一定的提升空间。
训练时间较长:虽然YOLOX在检测速度上表现很好,但是由于它的模型比较大,训练时间较长,需要更多的计算资源。
改进方向:
进一步优化检测精度:尽管YOLOX已经在多个目标检测数据集上取得了很好的检测精度,但是仍有一些数据集上的检测精度可以进一步提高。因此,可以通过引入一些新的技术来进一步优化YOLOX的检测精度。
改进小目标的检测效果:可以通过引入一些新的技术来改善YOLOX在小目标的检测效果,例如采用更高的分辨率、使用更小的anchors等等。
进一步提高训练和推理效率:可以通过引入一些新的技术来进一步提高YOLOX的训练和推理效率,例如使用更高效的优化算法、使用更轻量级的模型结构等等。
Yolov7
模型结构
conv+bn 合并
1x1 加pad 变换成3x3 残差换成3x3
与主线合并
提升召回率
aux辅助
优点
1、提高速度
2、提高了召回率
优点:
高效性:YOLOv7采用了一系列的优化措施来提高检测速度,例如使用Deformable Convolutional Networks(DCNv2)模块、FPN特征融合等等。这些优化措施使得YOLOv7在保持较高检测精度的同时,能够实现很高的检测速度。
准确性:YOLOv7在YOLOv5的基础上进一步提升了检测精度,例如引入了IoU loss和GIoU loss等新的损失函数。这些技术的引入使得YOLOv7在多个目标检测数据集上都取得了优秀的检测精度。
灵活性:YOLOv7支持自适应多尺度检测、多尺度训练、自适应采样等等,这些功能使得YOLOv7的应用范围更加广泛。
缺点:
训练时间较长:由于YOLOv7的模型比较大,训练时间较长,需要更多的计算资源。
对小目标的检测效果不够好:与其他一些目标检测算法相比,YOLOv7在小目标的检测效果上还有一定的提升空间。
改进方向:
进一步优化检测精度:尽管YOLOv7已经在多个目标检测数据集上取得了很好的检测精度,但是仍有一些数据集上的检测精度可以进一步提高。因此,可以通过引入一些新的技术来进一步优化YOLOv7的检测精度。
改进小目标的检测效果:可以通过引入一些新的技术来改善YOLOv7在小目标的检测效果,例如采用更高的分辨率、使用更小的anchors等等。
进一步提高训练和推理效率:可以通过引入一些新的技术来进一步提高YOLOv7的训练和推理效率,例如使用更高效的优化算法、使用更轻量级的模型结构等等。
Fast R-CNN
模型结构
1、ss算法 生成候选框
2、将图像输入网络得到特征图 再将候选框投影到特征图上得到对应的特征矩阵
3、将每个特征矩阵输入 roi pooling层缩放到7x7 再展平得到预测结构
Loss
交叉熵损失 (分类器损失)+边界框回归损失(smoothL1损失)
优点
1、速度相较于RCNN快了近200多倍
2、减少了步骤,将大部分操作融合在网络当中
3、准确率高
缺点
1、速度相较于其他模型来说 还是很慢 主要是由于ss算法速度慢
2、ROI池化的局限性
改进方向
1、每个候选框都要进行ROI运算,训练时间较长,可以选择性减少候选框的ROI运算
2、优化ss算法,从而提高效率
Faster R-CNN
RPN+Fast-R-CNN
模型结构
1、图像输入网络得到特征图
2、利用RPN生成候选框
RPN
在特征图上用3x3网格滑动,利用其中心点生成k个anchor(9个),再生成 2k个类别分数和4k个边界框回归参数
将候选框投影到特征图得到特征矩阵
3、将特征矩阵通过ROI层缩放——展平——预测结果
损失
分类损失+边界框回归损失
优点
1、更快的检测速度
2、更高的精度
3、端到端的训练
缺点
1、训练时间长
2、RPN生成候选框的局限性
3、对小目标检测不精准
改进方向
1、提高候选框生成精度:可以采用多尺度融合、引入更多先验框
2、解决小目标检测:采用多尺度检测、使用更细的特征图
Mask R-CNN
模型结构
Fast R-CNN+Mask
一方面通过fast rcnn得到预测结果
另一方面通过 ROIAligh 得到mask蒙版
根据结果将对应mask与原图结合得到实例分割
损失
fast rcnn损失+mask损失
优点
1、准确度高 可同时完成目标检测和分割
2、适用性广
3、可解释性好
缺点
1、速度慢
2、对GPU资源要求高
3、分割精度不够好
改进方向
1、通过优化网络提高速度
2、可以采用更加先进的分割网络提高精度
3、支持多模态
SSD
浅层识别小目标 深层识别大目标
default box
6个预设特征层
层数 1 2 3 4 5 6
box数量 4 6 6 6 4 4
损失
类别损失+定位损失
类似于Faster RCNN
优点
1、速度快
2、可适应不同尺寸的目标
3、在多个尺度的特征图上进行检测,提高检测精度
缺点
1、训练时间较长:对多个尺度特征图进行训练
2、对小且密集目标检测不够精确
改进方向
1、default box存在局限 可优化候选框选取
2、增加特征图数量以优化小目标识别困难的问题
RetinaNet
模型结构
FPN修改三个地方:
1、取消p2
2、卷积代替下采样
3、多一个P7
scale ratios
3种 3种
优点
1、速度快,高效
2、处理正负样本不平衡问题,采用focal loss
缺点
1、对小目标检测能力有限
2、训练时间较长
改进方向
1、模型优化以提高速度
2、研究新网络结构,改进小目标检测问题
UNet
转置卷积
达到上采样的效果 一般用于上采样时
膨胀卷积
增大感受野 一般用于不改变图像大小
HDC准则 膨胀系数的选取