CV-目标检测 学习记录 Day02
一、先验框
1.先验框的尺度(大小及长宽比)及数量都可以调整,针对原图进行遍历,得到的数量太多,而对下采样之后的feature map进行遍历,将大大减少先验框数量。
注:下采样指得到原有图像的缩略图,对MN进行S倍的下采样,则得到(M/S)(N/S)大小的的图像。
2.通过设置阈值,来对先验框进行筛选。
3.Creat_prior_boxes函数,用于生成先验框。框位置的移动通过其中心点数值的累加来移动。
4.obj_scales = [0.1, 0.2, 0.3] ,调整先验框的基准大小,与原图相比较。
5.不同的先验框尺度,靠近边缘的有可能会超出原图,需要截断。
使用prior_boxes.clamp_(0, 1)函数,,将其坐标控制在图片内。
二、模型结构
1.教程内使用的网络,称为Tiny_Detector,与SSD网络接近。
其中以VGG16作为头部。
2.VGG16网络-自己再学习补充(本网络舍弃了fc6和fc7两个全连接层)
Conv卷积层,pool池化层,kernel_size卷积核大小,
padding=1 (1填充)
3.anchor的设置:779个框
将原图均匀分成7x7个cell
设置3种不同的尺度:0.2, 0.4, 0.6
设置3种不同的长宽比:1:1, 1:2, 2:1
4.分类头和回归头
(ubantu系统使用cat命令,windows使用type命令)
为了得到预测类别和偏移量,在feature map后分别接两个卷积层。
回归头:feature map大小 * 4 *9 36个卷积核
对于偏移量4个值的预测有9组
分类头:feature map大小 *class num *9 (本实验189个卷积核)
对于21个分类的预测有9组
(这部份代码及理论还需要多学习,待补充,没啃太明白)