1. 简单讲下pointrcnn 的基于bin的回归
答:pointrcnn是第一个基于纯点云的anchor free 两阶段方法,在pointrcnn之前的论文使用的是anchor base,使用的是IOU计算其是否属于正样本。然后pointrcnn考虑到,比如车的车头的点与车门那里的点分别和中心的距离差距还是很大的,直接回归不太好。因为分类比回归好处理些,所以pointrcnn就通过bin的方法将物体中心回归问题转换为分类为题,物体中心落在那个bin里面,然后再回归中心坐标在这个bin里面的偏移量,这样就可以得到物体的中心坐标了。这样先分类再回归的方法相对于直接回归物体的中心点会更精细点,效果更好。
2. Transformer中三个向量Q、K、V计算方式
答:在编码模块,编码器的自注意力机制首先将输入向量转换成三个不同的向量,即查询向量 、关键向量 、值向量 ,然后由不同输入得到的向量被打包成三个不同的矩阵,之后不同输入向量之间的注意力函数通过以下四步计算:
第一步为了确定对当前位置数据进行编码时对其他位置数据的关注程度,计算两个不同向量之间的分数S。第二步将分数S标准化为Sn,使其具有更稳定的梯度,以便更好地训练,第三步将使用softmax函数将分数Sn转换为概率P。第四步获得权重加权矩阵,每个值向量V乘以概率P,具有较大概率的向量将被随后层更多关注。这个过程可用下面公式统一表示为:
3. 卷积层中BatcnNorm的作用
答:增大学习率使得学习更快;不太依赖权重、偏置的初始值;能抑制过拟合现象的发生。
注:BatchNorm,对输入数据进行均值为0、方差为1(合适的分布)的正则化,然后再对正则化后的数据进行平移和旋转。
4. 对于正负样本不平衡问题怎么解决,解决方法又是怎么计算的?
答:通常使用focal loss损失函数来解决正负样本不平衡问题。该损失函数降低了大量简单负样本在训练中所占的权重,也可理解为一种困难样本挖掘。
Focal loss是在交叉熵损失函数基础上进行的修改,首先二分类交叉熵损失函数是:
y/ 是经过激活函数的输出,所以在0-1之间。由此可见普通交叉熵损失函数对于正样本而言,输出概率越大损失越小。对于负样本而言,输出概率越小则损失越小。此时的损失函数在大量简单样本的迭代过程中比较缓慢且可能无法优化至最优。所以Focal loss改进二分类交叉熵:
首先是引入gama因子,当gama=0时,就是二分类交叉熵函数,当gama>0时,会减少易分类样本的损失,使得更关注于困难的、错分的样本。
然后再加入平衡因子alpha,用来平衡正负样本本身的比例不均。但如果只添加alpha虽然可以平衡正负样本的重要性,但是无法解决简单与困难样本的问题。
5. KITTI数据集中easy、moderate、hard根据什么定义的? P-R曲线是什么,怎么计算? AP_R40是什么? threshold 0.7是什么?怎么计算?
答: KITTI数据集中easy、moderate、hard根据标注框是否被遮挡、遮挡程度和框的高度进行定义的,具体数据如下:
简单:
最小边界框高度:40像素,最大遮挡级别:完全可见,最大截断:15%
中等:
最小边界框高度:25像素,最大遮挡水平:部分遮挡,最大截断:30%
困难:
最小边界框高度:25像素,最大遮挡级别:难以看到,最大截断:50%
P-R曲线中的P代表的是precision(精准率),R代表的是recall(召回率),其代表的是精准率与召回率的关系,一般情况下,将recall设置为横坐标,precision设置为纵坐标。每条P-R曲线都对应一个阈值(如threshold 0.7等,它是通过IOU计算得到的:两个框的交集除以并集)
计算方法:
AP_R40
KITTI官方之前的排行榜中采用了AP_R11,即AP_R11 = {0,0.1,…,1}。 然而,即使切线匹配,包含0也会导致平均精度提高约9%。 为了避免这种表面上的性能提升,kitti官方采用了新的40点AP(AP_R40)来修正指标和排行榜,排除了“0”和四倍的密集插值预测,以实现更好的效果 Precision / Recall曲线下面积的近似值。现在越来越多的论文开始使用AP_R40来比较算法模型的性能。