重启 iis 中的网站,广东网站建设需要多少钱,wordpress加载js,站长之家是什么ComputeLoss
标准化坐标的增益张量
标准化坐标的增益张量#xff08;gain tensor#xff09;用于将归一化的目标转换为特定特征层的网格尺度#xff0c;以便进行匹配和计算。
在目标检测模型中#xff0c;输入图像被划分为多个网格#xff0c;每个网格负责预测多个锚框…ComputeLoss
标准化坐标的增益张量
标准化坐标的增益张量gain tensor用于将归一化的目标转换为特定特征层的网格尺度以便进行匹配和计算。
在目标检测模型中输入图像被划分为多个网格每个网格负责预测多个锚框。锚框的尺寸在不同特征层上有所不同以便检测不同尺度的目标。
1、增益张量将归一化的目标坐标转换为特征图的网格尺度
gain torch.ones(7, devicetragets.device).long() #创建增益张量增强张量的初始值是一个全1的张量长度为 7目标信息包括图像索引、类别、x、ywh和锚框索引
2、更新增益张量以匹配当前特征图的尺度
gain[2:6] torch.tensor(p[i].shape)[[3,2,3,2]]3、将归一化的目标乘以增益张量以转换为特征图的尺度
t targets * gain偏移量
偏移量通过在不同的网格位置上尝试匹配可以更好地捕捉目标尤其是当目标位于网格边界时
g 0.5
off torch.tensor([[0, 0],[1, 0], [0, 1], [-1, 0], [0, -1], # j,k,l,m], devicetargets.device).float() * g # 偏移量具体的偏移量解释如下
[[0, 0]]不偏移即使用当前网格的中心位置。[[1, 0]]向右偏移一个网格单位。[[0, 1]]向下偏移一个网格单位。[[-1, 0]]向左偏移一个网格单位。[[0, -1]]向上偏移一个网格单位。
通过将偏移量乘以 g得到的偏移量为网格单位的 0.5 倍这样每个偏移的距离为半个网格单位。
使用偏移量的好处
增加匹配灵活性当目标位于网格边界时可以通过偏移量在多个位置尝试匹配从而增加匹配成功的可能性。提高检测精度通过在不同位置进行匹配可以更准确地定位目标尤其是对于小目标和边界目标。
为什么要计算目标和锚框的宽高比
在目标检测模型如 YOLO中计算目标和锚框的宽高比是为了确定哪些锚框与目标最匹配。宽高比的匹配是判断锚框与目标是否合适的重要指标因为目标的大小和形状在不同锚框上的匹配程度会直接影响检测的准确性。
主要原因
匹配适当的锚框 锚框是预定义的一组矩形框其形状和大小用于捕捉图像中的对象。目标和锚框的宽高比计算有助于确定哪个锚框最适合特定目标。通过选择宽高比接近的锚框可以更准确地定位和分类目标。减少计算复杂度 通过提前计算宽高比并进行筛选可以减少后续计算的复杂度。例如只对那些宽高比接近的锚框进行详细的IoU交并比计算从而提高计算效率。提高检测精度 如果锚框的宽高比与目标的宽高比相差较大即使IoU较高最终的检测效果也可能不理想。通过宽高比匹配可以确保选出的锚框在形状上更接近目标从而提高检测精度。
r t[:, :, 4:6] / anchors[:, None] # wh ratio
j torch.max(r, 1. / r).max(2)[0] self.hyp[anchor_t] # compare
t t[j]
在pytorch中tensor[true]意味着选择tensor中所有为true的元素
import torch# 创建一个示例张量
tensor torch.tensor([1, 2, 3, 4, 5])# 创建一个布尔张量指示哪些元素应被选择
mask torch.tensor([True, False, True, False, True])# 使用布尔索引
selected_elements tensor[mask]print(selected_elements)