安徽网站建设推荐,犀牛云网站建设特点,中国建设承包商网站,网站预订系统建设1、 Anchor base和Anchor free
1.1 Anchor base
Anchor base#xff0c;译为基于锚点的一个物体检测方法#xff0c;也可以叫做基于一组预定义的框模型会预测每个锚点是否存在对象#xff0c;并预测需要对锚点进行的调整以更好地适应该对象Anchor base物体检测方法#x…1、 Anchor base和Anchor free
1.1 Anchor base
Anchor base译为基于锚点的一个物体检测方法也可以叫做基于一组预定义的框模型会预测每个锚点是否存在对象并预测需要对锚点进行的调整以更好地适应该对象Anchor base物体检测方法Fast R-CNN、SSD、YOLO、RetinaNet
1.2 Anchor Free
Anchor Free无锚点方法则不依赖于预定义的锚点框直接在图像的每个空间位置预测对象的存在或对象的特征CenterNet、CornerNet、FCOS 、DETR
2、NMS基本流程
非极大值抑制Non-Maximum Suppression, NMS是当物体检测中同一个物体最后预测出多个候选框的情况采用NMS后可以有效解决这个问题。
收集所有边界框根据置信度即预测该框的概率进行排序取出最高置信度的框与其他所有的框计算IOU如果计算出某一个IOU的值超过设定的阈值假设是0.5则认为这个框是重复的则删除这两个框中置信度比较低的那一个重复3-4过程最终剩下的框全部都是预测的边界框这个过程也就是说置信度最高的那一个框永远都不会被移除且其他的框也只会与这个框计算IOU值
3、常用的损失函数
3.1 回归
MSE预测值与真实值差值的平方 MAE预测值与真实值差值的绝对值
3.2 分类
CECross-EnTropy二元交叉熵【y标签对应的值乘以p预测正类别的概率值取对数的相反数】【1-y标签对应的值乘以1-p预测正类别的概率值取对数】的相反数然后会累加样本数再除以样本数的就是损失的均值
BCEBinary Cross-EnTropy多元交叉熵y标签对应的值乘以p预测该类别的概率值取对数的相反数然后会累加每个类别和样本数再除以样本数的就是损失的均值
4、BCE和CE除了预测种类个数的区别还有其他区别吗
BCE通常与sigmoid激活函数一起使用最后输出是单个神经元输出预测为正类的概率 CE通常与softmax激活函数一起使用最后输出是多个神经元输出每个类别的概率分布
5、两个list变成对应的字典一个是key一个是values
# Given two lists, one for keys and the other for values, we will convert them into a dictionary.
keys [key1, key2, key3]
values [1, 2, 3]# Creating the dictionary using zip function
dictionary dict(zip(keys, values))6、zip怎么理解和使用
zip 是 Python 中一个非常有用的内置函数它用于将多个可迭代对象如列表、元组等中的元素配对创建一个新的迭代器。其工作原理可以通过以下几个要点来理解 配对元素zip 函数将多个可迭代对象中的对应元素组合在一起形成一个个元组。例如如果有两个列表 list1 [1, 2, 3] 和 list2 [a, b, c]zip(list1, list2) 会生成 [(1, a), (2, b), (3, c)] 不同长度处理如果可迭代对象的长度不同zip 会停止于最短的输入序列的末尾。例如如果一个列表有 3 个元素另一个列表有 4 个元素那么 zip 生成的迭代器将只包含 3 个元组 转换为其他数据结构虽然 zip 返回的是一个迭代器但你可以将其转换为列表或字典等其他数据结构。例如list(zip(list1, list2)) 或 dict(zip(list1, list2)) 多个迭代对象zip 不仅限于两个迭代对象它可以接受任意数量的迭代对象 解压缩使用 * 运算符可以将 zip 的结果“解压缩”回多个独立的序列
下面展示 zip 函数的基本用法
# 将两个列表压缩成一个由元组组成的列表
list1 [1, 2, 3]
list2 [a, b, c]
zipped list(zip(list1, list2))
print(zipped) # 输出: [(1, a), (2, b), (3, c)]# 将两个列表转换为字典
keys [key1, key2, key3]
values [1, 2, 3]
dictionary dict(zip(keys, values))
print(dictionary) # 输出: {key1: 1, key2: 2, key3: 3}# 解压缩
pairs [(1, a), (2, b), (3, c)]
numbers, letters zip(*pairs)
print(numbers) # 输出: (1, 2, 3)
print(letters) # 输出: (a, b, c)7、除了交并比即IOU还有没有其他计算两个候选框的重叠程度方法
除了交并比IoU之外确实存在其他几种方法来评估和处理目标检测中的边界框重叠情况。这些方法各有特点适用于不同的场景和需求。以下是一些常见的替代方法
交集面积Intersection Area直接计算两个边界框的交集面积。中心距离Center Distance 计算两个边界框中心点之间的距离。适用于判断边界框是否足够接近可能用于跟踪或者一些需要边界框位置精确度的应用
8. GIOU广义交并比
Generalized Intersection over Union, GIoUGIoU 在 IoU 的基础上增加了对边界框的尺寸和形状差异的考量首先计算常规的 IoU然后找到包含两个边界框的最小闭合区域通常是一个更大的矩形
在IoU的计算中只有当两个边界框存在重叠时IoU的值才会大于0。这意味着如果两个框不重叠IoU将始终为0即使这两个框非常接近。这就是IoU的一个局限性因为它无法区分“完全不重叠但非常接近”的情况和“相距很远”的情况。
计算常规IoU首先计算两个边界框之间的标准IoU。找到最小闭合区域接着找到能够同时包含这两个边界框的最小闭合矩形区域。计算GIoUGIoU的值是标准IoU减去最小闭合区域与两边界框并集的面积差占最小闭合区域面积的比例。公式可以表示为 G I o U I o U − ∣ C − U ∣ ∣ C ∣ GIoU IoU - \frac{|C - U|}{|C|} GIoUIoU−∣C∣∣C−U∣ 其中C 是最小闭合区域的面积U是两边界框并集的面积。
这种计算方式允许GIoU在没有重叠的情况下提供比0更丰富的信息。此时GIoU不仅表明两个框之间没有重叠IoU为0而且还提供了关于它们相对位置和大小的信息。GIoU的值可能小于0如果两个框完全不重叠但相对较接近其值将接近0如果两个框相距很远其值将更小。
9、DIOU 距离交并比
Distance Intersection over Union, DIoU
基本概念DIoU 除了考虑 IoU 外还加入了两个边界框中心点之间的距离。计算方法 计算两个边界框中心点的欧氏距离。根据中心点距离和 IoU 计算 DIoU。 优点DIoU 在调整边界框对齐和重叠的同时还能保持中心点的一致性特别适用于需要精确中心对齐的应用
10、CIOU完整交并比
Complete Intersection over Union, CIoU
基本概念CIoU 是目前最全面的变体它考虑了 IoU、中心点距离以及长宽比的一致性。计算方法 计算 IoU 和两个边界框中心点的距离。加入对边界框长宽比的考量。综合这三个因素来计算 CIoU。 优点CIoU 通过考虑更多的几何因素能够更准确地评估和优化边界框的位置、尺寸和形状。