图像预处理自查手册
边缘填充
torch.nn.ReflectionPad2d(size)
size:可以为整数或者元组
解析:该函数对输入的图像以其边界像素为对称轴做四周的轴对称镜像填充,填充的顺序是左→右→上→下。ReflectionPad2d()镜像填充的方式相比于使用固定数值进行填充,有可能获得更好的卷积结果。
提取图像高频部分特征
特征增强
对自然图像有变换到傅里叶空间在加高斯核噪声的处理方法:
见 Fourier Features Let Networks LearnHigh Frequency Functions in Low Dimensional Domains
转换成张量之后的操作
张量的变换(高维)
在pytorch中转置用的函数就只有这两个
transpose()
permute()
batch_size, dims, h, w = query.size() # b X d X h X w
query = F.normalize(query, dim=1)
query = query.permute(0, 2, 3, 1) # b X h X w X d
常用网络记录
YOLO
运用流程
1. 输入图像
预处理:输入图像首先被调整为固定大小(通常为 32的倍数),并且像素值被归一化到 [0, 1] 的范围内。
2. 全连接层与输出
全连接:在最早的YOLO版本中,卷积层的输出被展平并连接到全连接层,最终生成一个 SxSx(Bx5+C) 的输出张量。后来版本结构则更加复杂,如使用残差连接和跨层连接来增强特征。
输出张量解释:全连接输出的张量中,每个网格单元负责预测 B 个边界框,每个边界框包括 5 个参数(x, y, w, h, confidence)和 C 个类别概率。以前做工程的话,还要单独对这些进行处理来适应特殊的任务。
3. 边界框预测
边界框参数:
x, y:相对于网格单元的中心点的偏移量,范围在 [0, 1] 之间。
w, h:相对于整个图像的宽度和高度的比例,通常使用对数尺度进行预测,以便模型能够处理不同大小的目标。
confidence:边界框中存在物体的置信度,等于 Pr(object) * IoU
,其中 IoU
是预测框与真实框的交并比。
类别预测:每个边界框还预测 C 个类别的概率,表示该边界框内的物体属于某个类别的概率。
5. 非极大值抑制(NMS)
作用:由于 YOLO 网络可能会为同一目标预测多个边界框,需要通过非极大值抑制(NMS)来过滤掉冗余的框,只保留置信度最高的那个。
操作:首先根据置信度阈值过滤掉低置信度的边界框,然后计算剩余边界框之间的 IoU,如果 IoU 超过某个阈值,则移除置信度较低的框。