[论文阅读]Improving Fine-Grained Recognition of Vehicles using 3D Bounding Boxes in Traffic Surveilla

  这是一篇车辆细粒度识别的论文,它利用3D的bonding box来对3D包裹住的车辆对象拆分至一个平面,利用这个最终的imag进行训练,训练效果最好是在vgg16的分类精度达到84.13,追踪精度达到92.27。对于没有3D包围盒信息的,作者还提供了一种3D包围盒的预测算法。(尽管介绍这部分的写的也太不详细了,而且发布的源码来看也没有包含这部分,只包含了一份预测出的estimated_3DBB.pkl的文件:(里面是对应的八个3DBB坐标信息。)

  在看这篇论文之前首先查了一下什么叫做细粒度识别,换句话说细粒度识别可以称为同一个类别内的识别,对于车辆的细粒度识别,就是识别出包括车辆模型的确切类型,模型与子模型,和该模型的年份等信息。下面来看这篇论文。

  这篇论文主要提供了五个方法来提高进度,分别是Unpack, Color,ImageDrop, View, Rast。其中最重要的是Unpack方法,他跟在Color,和ImageDrop两个图像数据增强方法后面使用。

  1. Unpack

 这个方法是对3D包围盒的拆包,首先有必要介绍一下该论文中的一篇reference对于车辆的3D包围盒的构造方法。

介绍之前,先说图像消失点(也称灭点)的概念我对这个概念纠结了好久,在我们得生活空间也即欧式空间,两个平行的直线是永远不会相交的,但在图像的投影平面中,两个平行的直线是会相交的,最简单的例子:

[论文阅读]Improving Fine-Grained Recognition of Vehicles using 3D Bounding Boxes in Traffic Surveilla_第1张图片 摘自网络

 

对于平行的铁轨会相交于图像的某一点,这个消失点是图像内,消失点也完全可以在图像外,并且有多个,下面这个例子就是。在了解了消失点的概念后就知道作者是如何构造3DBB的了。

[论文阅读]Improving Fine-Grained Recognition of Vehicles using 3D Bounding Boxes in Traffic Surveilla_第2张图片 摘自Automatic Camera Calibration for Traffic Understanding

首先作者通过一种算法先求出三个正交的消失点,具体方法可以看(Fully Automatic Roadside Camera Calibration for Traffic Surveillance)这篇论文,粗读了一下,主要是假设车辆朝着第一个消失点的方向移动,检测车辆的运动轨迹,假设这个轨迹无限延长后相交于第一个消失点,对轨迹片段在空间中进行投票以此来确定第一个消失点,利用车辆的边缘信息和第二个消失点方向重合,并且在垂直于第一个消失点的方向进行投票确定第二个消失点,假设主点(priciple piont)在图像的中间,计算得到垂直于地面的第三个消失点。(顺便一提消失点是针对车还是摄像头呢,看数据集的时候有点搞不清楚,主要是先看的这幅图产生了主观的印象,以为就是对于车来说,其实计算的应该是一对于摄像头来说的,拍摄一副图片之后,计算的是这幅对象的消失点,所以给出的数据集里,vp1,vp2,vp3,和pp都是对于摄像头来说的)

 作者发现对于计算车辆的3DBB并不需要知道具体的消失点信息而是只需知道消失点的方向就可以了(后面提出的预测3DBB就是基于这个理解,只对角度进行预测,学习一个角度的分类器),在基于知道消失点信息和车辆的轮廓信息(通过背景建模,和前景检测来提取,数据集中已经给好了)之后便能够得到3DBB,红色的线经过第一个消失点,并且和车辆的轮廓相切,绿线是轮廓和经过第二个消失点的切线,蓝线经过第三个消失点。因为这些轮廓可能不准确,汽车也不是完全的盒子,所以边界盒的拟合是模糊的因此提取切线及其交点的顺序很重要。作者提出了一种比较稳定的计算方法,计算具体步骤如下:

(1)将点A构造为下方红线与绿色的切线的交点

(2)然后,B点和C点分别由右下绿色切线和左下红色切线的交点定义。这样我们就可以构造他的长边和短边,AC和AB

(3)点D位于上绿色切线和左蓝色切线的交点上,通过点A和第三个消失点的切线于红色的通过点D的切线交于E点,然后再是构造F,选择距离较大的AE来作为整个BB的高,确保车辆的像素点都在其中。最后得到的便是这样的3DBB

[论文阅读]Improving Fine-Grained Recognition of Vehicles using 3D Bounding Boxes in Traffic Surveilla_第3张图片 摘自Automatic Camera Calibration for Traffic Understanding

 

 

 其中front/rear(F), side (S), and roof (R).

对其重新组织成最终矩阵

[论文阅读]Improving Fine-Grained Recognition of Vehicles using 3D Bounding Boxes in Traffic Surveilla_第4张图片 摘自Automatic Camera Calibration for Traffic Understanding

 

这个拆包的过程本身需要使用平面的摄影变换,需要计算出展开点bi和原始扭曲部分图像之间的单应矩阵H,那么应用这个关系可以将一个视图中的所有点变换到另一个视图中。具体过程可以参考https://www.cnblogs.com/wangguchangqing/p/4645805.html

使用这个展开后的平面代替原始图像喂入网络进行训练,这个过程定位了车辆的各个部分因此很有益。

[论文阅读]Improving Fine-Grained Recognition of Vehicles using 3D Bounding Boxes in Traffic Surveilla_第5张图片 摘自BoxCars: Improving Fine-Grained Recognitionof Vehicles using 3D Bounding Boxes in Traffic Surveillance

 

2、View, Rast

View, Rast都是作为额外的辅助输入CNN中进行训练,作者发现可以这些数据可以稍稍提高一点分类的表现(源代码中没有这两个模块,可能是因为只提高了一点点qaq)。

(1)View-上图第三列

既然已知3DBB了,那么就可以从3DBB中提出视角信息(viewpoint),可以把视点信息编码成三个方向的二维向量,作为辅助数据输入,如上图,第三个部分所示。完成这个过程我们先定义几个点,Cc代表包围框的中心,它是b2b4 和b5b3连线的交叉点Ci 代表F,S,R各个面的中心,可以通过连接各个面上的点的交点得到。那么这个二维向量就可以用vi表示,i属于{F,S,R}。vi=CcCi,除此之外,作者还把方向信息也考虑进来,令d=1代表车辆朝着摄像头,d=0代表车辆背对摄像头,来决定这个3DBB的哪一面才是前面,哪一面是后面。

(2)Rast-上图最后一列

是另一种编码视角的方法,作为额外的网络输入信息。栅格化这个3DBB,栅格化是对所有的边分别进行的,每个边用一种颜色填充。最后的栅格化边界框是一个四通道的图像,包含在不同通道中栅格化的每个可见面。得到栅格化边界框T的点p为

[论文阅读]Improving Fine-Grained Recognition of Vehicles using 3D Bounding Boxes in Traffic Surveilla_第6张图片 摘自Automatic Camera Calibration for Traffic Understanding

因为没有源码,具体细节不太清楚到底怎么实现。不过结合图像,我猜测是根据3DBB对同一个平面的全部进行填充,最后再用车辆的2DBB进行裁剪。

(3)Color,ImageDrop这两个方法属于图像增强

[论文阅读]Improving Fine-Grained Recognition of Vehicles using 3D Bounding Boxes in Traffic Surveilla_第7张图片 摘自Automatic Camera Calibration for Traffic Understanding

Color为了增加训练样本的颜色可变性,通过在HSV颜色空间中随机添加值。

ImageDrop 为了处理车辆丢失的部分,可能是因为遮挡等原因,在车辆中添加大小具有概率性质的随机噪声。这些只在训练时添加,测试时不使用该方法。

 

最后,作者为了给没有3DBB标注的数据也能够使用该方法进行检测,提出了一种从单个图像估计三维边界框的方法。

[论文阅读]Improving Fine-Grained Recognition of Vehicles using 3D Bounding Boxes in Traffic Surveilla_第8张图片 摘自Automatic Camera Calibration for Traffic Understanding

 

因为三维边界框的构建需要车辆的轮廓信息,作者先是使用全卷积编解码器网络,提取出车辆的轮廓信息。

[论文阅读]Improving Fine-Grained Recognition of Vehicles using 3D Bounding Boxes in Traffic Surveilla_第9张图片 摘自Automatic Camera Calibration for Traffic Understanding

上面提到不需要具体的消失点,而是只需知道消失点的方向便能构建这个3DBB。使用回归预测三个消失点的方向,然后假设这个消失点在无限远处。但是由于作者从另一篇检测人类年龄的论文受到启发(该论文是对年龄的回归改成1-100的分类),将对角度的预测转变成一个分类问题。在ResNet50中的最后一个平均池之后添加了三个独立的完全连接层与softmax(每个消失点一个),每一层都为属于特定方向的每个消失点生成角度概率,将-90到90分为60组,那么每组就是3,转换成一个60类的分类问题,并且作者发现这样做比直接回归的鲁棒性会更好。使用估计的3DBB的实验结果如下:

[论文阅读]Improving Fine-Grained Recognition of Vehicles using 3D Bounding Boxes in Traffic Surveilla_第10张图片 BoxCars: Improving Fine-Grained Recognition of Vehicles using 3D Bounding Boxes in Traffic Surveillance

相差并不是很大。

 

 

 

 

 

 

 

 

 

你可能感兴趣的:([论文阅读]Improving Fine-Grained Recognition of Vehicles using 3D Bounding Boxes in Traffic Surveilla)