首页 » 技术分享 » AVOD-理解系列(一)

AVOD-理解系列(一)

 

AVOD-理解

本篇用于记载之前阅读的论文avod及其代码,纯属个人个人理解.有误之处欢迎指正!

网络结构

这里写图片描述

代码流程

1:Feed_dict:

feed_dict: 主要就是确定每一个mini_batch里输入图像的各种信息,包括图像的名字,图像的标签文件,图像的
ground-plane,以及点云的信息,相机的标定信息.

图像: 图像是随机打乱输入的,每次需要获取的是图像的名字,使用时根据图像的名字得到图像的相应文件,包括
.png,.npy,plane,calib等文件,分别存储着这张图片的image信息,点云信息,地平线,相机标定参数

Anchors_info: 这个信息存储在.npy文件里面,anchor_indices=anchors_info[:,0],anchors_ious=anchors_info[:,1],
anchors_offsets=anchors_info[:,2:8],anchors_class=anchors_info[:,8].注意:anchors_info=np.load(file_name)

标签信息:从.txt文件里面读取出来的,一共有15个参数:2D标签坐标(x1,y1,x2,y2).3D标签坐标(tx,ty,tz,h,w,l)中心点坐标与长宽高.同时需要根据要求删除某些标签,比如在只训练car时就要去除person和cyclist的标签.

其它信息:分别取得相应的ground plane(一个平面方程:aX+bY+cZ=d),相机标定参数包括内外参数,以及点云([x,….],[y,…],[z,…])

对图像的一些处理: 比如是否翻转,是否加抖动(噪声)

创建BEV-images: bev输入的输入是六个通道的参数,前五个是五个slice的每个像素点的最高点的值,最后一个是这个像素点的点密度.notes:这个创建images时输入的是point,plane,以及一些设定参数:voxel_size:0.1,area_extent:[-40,40,-5,3,0,70].在这里还有一些细节没有看明白,它有一个操作是要去除某些点的,然而我不是很理解它去除的究竟是哪些区域的点.留个疑问!

2:input->feature-map

Input:

Image input不必说.BEV input 在点云数据里,高度上在0-2.5内进行划分,均分为5个片段,在鸟瞰图上每0.5米的高度记录一次,鸟瞰图的输入的前5个channels是这5个channel(在长和宽的像素上每一个删格)的点的最高值,最后一个channel是该删格位置上的点的密度.

feature-map:

对两个输入使用同样的卷积网络进行卷积提取特征(VGG网络,只要前4层),4层卷积后图像变为原始图像的1/8大小,为了防止特征图过小而导致对小物体的检测效果不好,对卷积后的图进行上采样(官方代码用的是双线性插值法,实际的输出feature map是原始图像的一半?),两个输入都需要同样的操作.

3:feature map-> NMS

feature-map:

从输入进来的feature map进行1*1的卷积后,再对其size进行裁剪,使其大小为6*6.注意:因为训练时path_drop_probability等于0.9,所以在此之前需要随机选择该图像是否输入,生成mask来控制.同时mask的值也将会作为之后融合网络的参数.size:(1/2):(1/2):1

Fusion:

Fusion网络实际就是将两个图像re-size后的feature-map进行平均相加.如果某一个图像的mask为0,则该图像不需要输入,fusion网络就只输出mask为1的那个feature map.

Fully connection:

全连接网络在实际时使用了卷积网络代替全连接层.分为两大部分:背景/物体分类得分,以及框回归(dtx,dty,dtz,dw,dh,dl)中心点回归与长宽高回归.

Proposals->NMS:

Proposals:

对原始手动输入的3D-anchors利用框回归得到的offsets(6)计算回归后的框(预测),并将其投影到BEV图上,计算在鸟瞰图上的框的坐标以及norm后的坐标((x1,z1,x2,z2)左上角与右下角的坐标).注意:y轴方向代表的才是高度!并且似乎负方向才表示高度的正方向?还有一个问题就是不明白为什么会有在负向坐标的点?

NMS:

Soft-max后的分类输出得分使用NMS,即针对在BEV图上的norm后的框回归值,利用soft max的值,选取得分最大的作为gt,当anchors与gt的ious大于0.5时就保留该anchors,最大保留1024个anchors.取出相对应的NMS后的top_anchors与top_objectness_softmax

第一次写博客,这个编辑器不会用(果然我就适合搞个word来,简单有方便,可惜这个博客不让直接传word格式的.允悲).暂时不想附上代码解析.就这样看吧

修改了一处错误

转载自原文链接, 如需删除请联系管理员。

原文链接:AVOD-理解系列(一),转载请注明来源!

0