当前位置: 首页 > news >正文

Deep manta算法解析

算法思想

提出 Deep Many-Tasks 方法来对一个图片进行多任务车辆分析,包括车辆检测,部分定位,可见性描述和 3D维度估计。
论文的主要贡献包括三个方面:

  • 使用图像车辆的特征点来编码 3D 车辆信息。因为车辆具有已知的形状,可以用单目图像重构 3D 车辆信息。我们的方法还可以在车辆部件被遮挡,截断等情况下定位到车辆部件,使用回归的方法而不是 part detector. 预测 hidden parts 的位置对 3D 信息的恢复很有帮助。我们使用一个 3D vehicle 数据集,由具有真实维度的 3D meshes 组成,即具有 3D 框的数据集。每一个 3D model 都有一些顶点,对应于车轮等部件,对每一个 model 来说,这些顶点组成了一个 3D shape. 这个方法的主要思想是在 input image 中恢复这些 3D points 的映射。2D/3D matching 在 2D shape 和选择的 3D shape进行,以恢复车辆的方向和 3D location.
  • Deep Coarse-to-fine Many-Task 网络。首先使用 RPN 网络产生 corase 2D bounding box,之后迭代产生精细化 bounding box. 六个任务共享特征向量:region proposal , detection , 2D box regression , part location , part visibility , 3D template prediction.
  • 使用 3D models 来生成 image 的标签
    在这里插入图片描述

网络结构

在这里插入图片描述
上图即是本代码所用的网络,主要包括PhaseI,Phase II。

Phase I 一共分为Level1、Level2、Level3三个层次。Level1是RPN层,负责2d box的推荐,Level2是对Level1推荐的box进一步进行微调,Level3是基于Level2和共享特征进一步回归出五个模块,分别是2D box regression、Classification、Parts coordinates、Parts visibility、Template similarity五部分,下面将会逐渐介绍这些部分。

Phase I

2D box regression 和Classification

这里的2D box regression和classification和普通的物体检测网络相似。

Parts coordinates

这个意思是特征点坐标,其实在这里是这样子的,一个车被定义了有36个特征点,这个数量是作者在论文中定义的。这个分支部分主要预测ROI 区域内的36个特征点在二维图像上的坐标。
在这里插入图片描述
在这里插入图片描述

Parts visibility

上部分预测出了每个特征点在二维图像上的坐标,但是不能保证每个特征点是否可见,parts visibility正是判断每个特征点是否可见,这样可以最大程度上还原车辆真实遮挡情况。

Template similarity

这个是模板相似性,线下的模板库中一共有103个model,每个model的3d box的长宽高已知,这里的Template similarity其实就是预测出的3d box的长宽高的相对值,在这里,比如以1为单位,预测出的w、h、l值可能为0.3,0.5,1, 那么就可以在数据库中找到一个模型,w、h、l的比值和这个最相似,那么就把改模型确认为检测出的模型。

注意:因为实际道路上的汽车模型本身就那么多,数据库现有的103个模型已经基本上覆盖到了各种各样的模型了,所以基本上可以查找出。

Phase II

这里的Phase II其实就是对Phase I产生的结果进行计算,最终输出3D box和特征点的3d 坐标。上面已经讲到,通过Template similarity可以找到对应的模型,这个模型的标签有3d box大小、坐标、角度、以及36个特征点的坐标。 (cx; cy; cz; θ; t) is the 3D bounding box characterized by its 3D center (cx; cy; cz), its orientation θ and its 3D template t = (w; h; l) corresponding to its 3D real size. (xk; yk; zk) is the vehicle 3D part coordinates in the 3D real word coordinate system.

这样,我们可以得到计算出的模型是哪个,世界坐标系下的3d box的长宽高是多少,特征点在世界坐标系下的坐标。采样时,其实已经知道某个模型相对于相机坐标系下的姿态,该模型在2d姿态下的对应特征点坐标也已经知道。

假定模型在制作的时候,相对于拍摄相机坐标系的变换关系为R,T,实际计算时的相机坐标系为R1,T1,那么给定二维对应点坐标和三维对应点坐标,剩下的就是pnp求解了:

[x,y,1]=K∗[R,T]∗[X,Y,Z,1]∗[R1,T1][x,y,1]=K*[R,T]*[X,Y,Z,1]*[R_1,T_1][x,y,1]=K[R,T][X,Y,Z,1][R1,T1]

这里有只需要求解出R1R_1R1T1T_1T1 即可,一共36个特征点,遮挡的特征点可能不能直接用,但是只需要求解出三个旋转量,三个平移量,理论上只需要6对特征点即可,即保证6对不受遮挡的点即可。这个在大多数情况下都可以得到保证。 R1R_1R1T1T_1T1求出后,检测出的汽车在相机坐标下的所有参数都迎刃而解。


http://www.taodudu.cc/news/show-1782042.html

相关文章:

  • 【physx/wasm】在physx中添加自定义接口并重新编译wasm
  • excel---常用操作
  • Lora训练Windows[笔记]
  • linux基础指令讲解(ls、pwd、cd、touch、mkdir)
  • InnoDB 事务处理机制
  • 启明云端ESP32 C3 模组WT32C3通过 MQTT 连接 AWS
  • GS3D An Efficient 3D Object Detection Framework for Autonomous Driving算法解析
  • python机器学习库xgboost使用调参
  • LightGBM算法解析
  • 机器学习模型之集成算法
  • ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation(自动驾驶领域轻量级模型)
  • 中缀表达式转后缀表达式(非常简单易懂)
  • 后缀表达式转中缀表达式(非常简单易懂)
  • 给定一列非负整数,求这些数连接起来能组成的最大的数。
  • 努力找工作中。。。
  • 手撕代码之快速排序算法(简单明了)
  • 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。
  • 小Q正在给一条长度为n的道路设计路灯安置方案。 为了让问题更简单,小Q把道路视为n个方格,需要照亮的地方用'.'表示, 不需要照亮的障碍物格子用'X'表示。
  • 牛牛以前在老师那里得到了一个正整数数对(x, y), 牛牛忘记他们具体是多少了。 但是牛牛记得老师告诉过他x和y均不大于n, 并且x除以y的余数大于等于k。 牛牛希望你能帮他计算一共有,,,
  • C++实现选择排序
  • C++实现希尔排序
  • 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示,,,
  • CatBoost之算法解析(Kaggle常用模型)
  • ElasticNet算法解析
  • SVM支持向量机算法详解
  • SVM中的一些关键点解析
  • 朴素贝叶斯算法解析
  • Kmeans算法解析(非常详细)
  • DBSCAN(自适应密度聚类)算法解析
  • ID3、C4.5、CART决策树算法解析(关键内容讲解)
  • 面试之手撕BP反向传播
  • XGBoost算法解析(非常详细)
  • 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
  • 最长回文子串问题:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
  • 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。
  • 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。