非极大值抑制(Non-Maximum Suppression, NMS),是当物体检测中同一个物体最后预测出多个候选框的情况,采用NMS后可以有效解决这个问题。
MSE:预测值与真实值差值的平方
MAE:预测值与真实值差值的绝对值
CE:Cross-EnTropy,二元交叉熵,【(y标签对应的值)乘以(p预测正类别的概率值取对数)的相反数】+【1-(y标签对应的值)乘以(1-p预测正类别的概率值取对数)】的相反数,然后会累加样本数,再除以样本数的就是损失的均值
BCE:Binary Cross-EnTropy,多元交叉熵,(y标签对应的值)乘以(p预测该类别的概率值取对数)的相反数,然后会累加每个类别和样本数,再除以样本数的就是损失的均值
BCE通常与sigmoid激活函数一起使用,最后输出是单个神经元,输出预测为正类的概率
CE通常与softmax激活函数一起使用,最后输出是多个神经元,输出每个类别的概率分布
# 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))
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')
除了交并比(IoU)之外,确实存在其他几种方法来评估和处理目标检测中的边界框重叠情况。这些方法各有特点,适用于不同的场景和需求。以下是一些常见的替代方法:
(Generalized Intersection over Union, GIoU),GIoU 在 IoU 的基础上增加了对边界框的尺寸和形状差异的考量,首先计算常规的 IoU,然后找到包含两个边界框的最小闭合区域(通常是一个更大的矩形)
在IoU的计算中,只有当两个边界框存在重叠时,IoU的值才会大于0。这意味着如果两个框不重叠,IoU将始终为0,即使这两个框非常接近。这就是IoU的一个局限性,因为它无法区分“完全不重叠但非常接近”的情况和“相距很远”的情况。
G I o U = I o U − ∣ C − U ∣ ∣ C ∣ GIoU = IoU - \frac{|C - U|}{|C|} GIoU=IoU−∣C∣∣C−U∣, 其中,C 是最小闭合区域的面积,U是两边界框并集的面积。
这种计算方式允许GIoU在没有重叠的情况下提供比0更丰富的信息。此时,GIoU不仅表明两个框之间没有重叠(IoU为0),而且还提供了关于它们相对位置和大小的信息。GIoU的值可能小于0,如果两个框完全不重叠但相对较接近,其值将接近0;如果两个框相距很远,其值将更小。
(Distance Intersection over Union, DIoU)
(Complete Intersection over Union, CIoU)