目标跟踪相关知识总结
feather map
在 cnn 的每个卷积层,数据都是以三维形式存在的。可以看成许多个二维图片叠在一起,其中每一个称为一个 feature map。
1.在输入层,如果是灰度图片,那就只有一个 feature map;如果是彩色图片,一般就是 3 个 feature map(红绿蓝)。
2.在其它层,层与层之间会有若干个卷积核(kernel),上一层每个 feature map 跟每个卷积核做卷积,都会产生下一层的一个 feature map,有 N 个卷积核,下层就会产生 N 个 feather map。
卷积核(filter)
每个卷积核具有长宽深三个维度;卷积核的深度与当前图像的深度(feather map 的张数)相同。卷积核的个数与下一层需要多少个 feather map 相同。在 CNN 的一个卷积层中:卷积核的长、宽都是人为指定的,长 X 宽也被称为卷积核的尺寸,常用的尺寸为 3X3,5X5 等;例如,在原始图像层 (输入层),如果图像是灰度图像,其 feather map 数量为 1,则卷积核的深度也就是 1;如果图像是 grb 图像,其 feather map 数量为 3,则卷积核的深度也就是 3。
训练数据
batchsize:批大小。在深度学习中,一般采用 SGD 训练,即每次训练在训练集中取 batchsize 个样本训练;
iteration:1 个 iteration 等于使用 batchsize 个样本训练一次;
epoch:1 个 epoch 等于使用训练集中的全部样本训练一次,通俗的讲 epoch 的值就是整个数据集被轮几次。
例如 300 个样本训练一次,epoch=1,batchsize = 10 ,iteration=30。
BN(Batch Normalization)层
BN 层即 batch-norm 层,一般是深度学习中用于加速训练速度和一种方法,一般放置在卷积层(conv 层)或者全连接层之后,将数据归一化并加速了训练拟合速度。
常用位置:conv→bn→relu
如果网络使用 sigmod 激活函数,误差在向前传递的时候,经过 sigmod 单元,需要乘 sigmod 的梯度,而 sigmod 的梯度最大是 0.25,因此越向前传递,误差就越小了,这就是梯度消散,但是梯度爆炸是什么?注意误差在经过全连接或者卷积层时,也要乘以权重 w,如果 w 都比较大,大过 sigmod 造成的减小,这样越往前误差就越来越大,产生梯度爆炸。
BN 层的计算图如下面所示,x 是输入数据,到 xhat 均值方差归一化,后面 xhat 到 y 其实就是普通的一个线性变换,类似全连接但是没有交叉。如果没有 BN 层,x 直接输入后面的网络,训练过程中 x 分布的变换必然导致后面的网络去调整学习以来适应 x 的均值和方差,映入了 BN 层,xhat 是一个归一化的数据,代价就是网络中多了一个线性层 y,但是前者带来的性能更加大,因此加速了。
AUC(Area Under Curve)
一个正例,一个负例,预测为正的概率值比预测为负的概率值还要大的可能性。所以根据定义:我们最直观的有两种计算 AUC 的方法:
1:绘制 ROC 曲线,ROC 曲线下面的面积就是 AUC 的值
2:假设总共有(m+n)个样本,其中正样本 m 个,负样本 n 个,总共有 mn 个样本对,计数,正样本预测为正样本的概率值大于负样本预测为正样本的概率值记为 1,累加计数,然后除以(mn)就是 AUC 的值。
AUC 作为数值可以直观的评价分类器的好坏,值越大越好。
均值平均精度 MAP(Mean Average Precision)
我们使用 loU 和阈值判断是否为目标。计算模型得到的每个检测框的 loU 值,用计算出的 loU 值与设定的 loU 阈值比较,就可以计算出每个图像中每个类的正确检测次数(A)。对于每个图像,我们都有 ground truth 的数据,因此也知道了该图像中给定类别的实际目标(B)的数量。我们也计算了正确预测的数量(A)(True possitive)。因此我们可以使用这个公式来计算该类模型的精度(A/B)$$Precesion_{C}=\frac{N(TruePositives){C}}{N(TotalObjects)
{C}}
AveragePrecesion_{C}=\frac{\sum Precesion_{C}}{N(TotalImages)_{C}}$$即一个 C 类的平均精度=在验证集上所有的图像对于类 C 的精度值的和/有类 C 这个目标的所有图像的数量。 现在加入我们整个集合中有 20 个类,对于每个类别,我们都先计算 loU,接下来计算精度,然后计算平均精度。所有我们现在有 20 个不同的平均精度值。使用这些平均精度值,我们可以轻松的判断任何给定类别的模型的性能。
但是问题是使用 20 个不同的平均精度使我们难以度量整个模型,所以我们可以选用一个单一的数字来表示一个模型的表现(一个度量来统一它们),我们可以取所有类的平均精度值的平均值,即 MAP(均值平均精度)。
MAP=所有类别的平均精度求和除以所有类别。即数据集中所有类的平均精度的平均值。
EAO 期望平均覆盖率
EAO 提出的目的也是希望一个好的跟踪器同时拥有好的精度 A 和鲁棒性 R,如果直接用 A 和 R 的两个数加权和则有失公允,所以需要重新定义。
假设有帧长的一个视频,那么一个跟 踪器在这段视频上的覆盖率精度(Overlay accuracy)op 为每一帧 op 的均值,op 就是 bonding box 与 ground truth 的交并比用Φ表示,即:
那么一个理想的 EAO 就是把从 1 到一个期望的极大值对应的求个平均,就是期望平均覆盖率,恰如其名,等价于下图的曲线下面积:
shortcut connection
ResNet 结构使用了一种连接方式,即“绕近路”的意思。
Bottleneck(瓶颈层)
其意思就是输入输出维度差距较大,就像一个瓶颈一样,上窄下宽亦或上宽下窄。1x1 filters 可以起到一个改变输出维数(channels)的作用。可以看到,右图中 1x1 filters 把维度(channels)升高了,输入输出维度差距较大。
感受野:
在卷积神经网络 CNN 中,决定某一层输出结果中一个元素所对应的输入层的区域大小,被称作感受野 receptive field。用数学的语言就是感受野是 CNN 中的某一层输出结果的一个元素对应输入层的一个映射。
学习更多编程知识,请关注我的公众号:
版权声明: 本文为 InfoQ 作者【代码的路】的原创文章。
原文链接:【http://xie.infoq.cn/article/da02b17f37d741e909f29a789】。文章转载请联系作者。
评论