文章目录
数据分析
看什么
图像大小分布
图像较大:如医疗 遥感,可进行crop(滑窗)
图像大小有差异时:crop+padding
结合设备初步判断训练尺度上限。
gt boxes大小及长宽比例分布:坐标轴为(宽高)
boxes大小分布影响anchor scale设计
boxes长宽比例分布影响anchor ratio设计
类内和类间boxes大小的分布,影响算法设计,如多尺度和后处理:如a类尺度较小,b类尺度跨度大,c类只有少部分尺度大
gt boxes与图像大小相对比例分布,
由比例可计算目标在经过resize时进入网络后的实际大小,从而:
结合原图尺寸决定训练尺度的选择
决定anchor scale
决定anchor ratio
决定backbone的选择(模型感受野)
大 中 小三种目标的权衡
gt boxes类别分布
不均衡,呈现长尾分布【有的极多,有的少】
对于少的:进行上采样增强/下采样增强/训练时动态采样(选择数量少的类的概率大一点)
数据特殊性质
数据增强方式
抠图+贴图:将任意目标从原图中剪切 出来,使用’mixup’的方式贴到正常的图像中
对于少的:进行上采样增强/下采样增强/训练时动态采样(选择数量少的类的概率大一点)
重采样
训练采样方式
在线加全采样:按类别数量比例加权/按图片类别丰富度加权
验证集
在不同类别上进行指标分析,一个模型难以满足所有类型,然后针对某些类别的数据特点进行改进算法。
正常图片(背景数据)的使用
- 拼接:将含目标的图像与随机的正常图像拼接在一起训练。当显卡不支持太大的话,可以先一个rpn的网络训练拼接后的图像,然后用含目标的图像进行训练,此时rpn的预训练使用之前使用拼接图像训练的rpn进行初始化。
- 抠图+粘贴:将任意目标从原图中剪切 出来,使用’mixup’的方式贴到正常的图像中
- 如果正常图像与目标图像有关系【布匹检测,有一类花色,一个有瑕疵,一个没有,其他地方都一样】:可采用做差和通道拼接的方式
从什么方面修改算法
感受野 anchor 训练尺度
设置合理的训练尺度后,基于resize后的目标boxes大小来讨论。
anchor scale和anchor ratio接近目标的分布可以加快收敛。
模型感受野要尽量大于目标长边:
缩小训练图像尺度(本质网络感受野没变,但相对数据的感受野变大,因为backbone大多接受固定大小的输入)
增加网络深度,选择更深的backbone【resNet101比resNet50的感受野大1倍】
最后的卷积采用空洞卷积【如果采用fpn,可在每一层都用空洞卷积;如果仅采用最后一层作为特征,就在最后一层使用空洞卷积】
引入dcn模块
当图中同时有大目标,中目标,小目标时:多尺度训练预测/专家模型(基于尺度的)
为什么要resize设计训练尺度
模型选择
有:anchor based,anchor free,one stage,two stage
一般:anchor based+two stage
模型体积,省显存
- fp16而不是fp32
- 移除不必要的参数,如optimizer优化时的参数(方便中断后恢复训练)
一般概念
anchors:一组检测框
rpn网络得到了很多预测框,后接RoiPooling/RoiAlign使预测框有固定尺寸的input,便于
RPN网络:图中每个点设置设置anchors,让cnn判断哪个anchor有目标,有即positive anchor,没有即negative anchor,二分类。然后训练得到的目标框逼近真是的目标框。
im_info层的意义是存储了每张图片进入网络后原图片大小被resize至设定图片大小的比例和resize后图片的宽高
RoI Pooling:让前面得到的不同尺寸的目标框变成同等尺寸,便于后面的分类【有全连接层,需要输入固定尺寸的input】
backbone 一般为 VGG、ResNet、MobileNet 等网络,为了有一个好的初始值以及加快训练,往往会使用imagenet的预训练模型作为backbone
roi_heads:roi_pooling+分类
roi:Region of Interest,“特征图上的框”;
1)在Fast RCNN中, RoI是指Selective Search完成后得到的“候选框”在特征图上的映射,如下图所示;
2)在Faster RCNN中,候选框是经过RPN产生的,然后再把各个“候选框”映射到特征图上,得到RoIs。
ap
https://www.cnblogs.com/geoffreygao/p/14095701.html
mAP
True Positive (TP): IoU>iou阈值(一般取 0.5 ) 的检测框数量(同一 Ground Truth 只计算一次)【确划分正例个数;正->正;】
False Positive (FP):IoU<=iou阈值 的检测框数量,或者是检测到同一个 GT 的多余检测框的数量【错误划分正例个数;负->正;】
False Negative (FN): 图中有目标时,没有检测到的 GT 的数量【错误划分负例个数;正->负】
True Negative (TN): 图中没有目标,没有检测到【在 mAP 评价指标中不会使用到,正确划分负例个数;负->负;】
- ACC 准确率:预测正确的样本(TP 和 TN)在所有样本(all data)中占的比例。
- accuracy = T P + T N T P + T N + F P + F N = T P + T N all data \text { accuracy }=\frac{T P+T N}{T P+T N+F P+F N}=\frac{T P+T N}{\text { all data }} accuracy =TP+TN+FP+FN