算法思想

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

Deep manta算法解析相关推荐

  1. Deep Manta:单目图像下2d到3d由粗到精的多任务网络车辆分析

    原文首发于微信公众号「3D视觉工坊」--Deep Manta:单目图像下2d到3d由粗到精的多任务网络车辆分析 外文原文:Deep manta: A coarse-to-fine many-task ...

  2. 回归算法分类,常用回归算法解析

    回归算法分类,常用回归算法解析 回归是数学建模.分类和预测中最古老但功能非常强大的工具之一.回归在工程.物理学.生物学.金融.社会科学等各个领域都有应用,是数据科学家常用的基本工具. 回归通常是机器学 ...

  3. CVPR目标检测与实例分割算法解析:FCOS(2019),Mask R-CNN(2019),PolarMask(2020)

    CVPR目标检测与实例分割算法解析:FCOS(2019),Mask R-CNN(2019),PolarMask(2020) 目标检测:FCOS(CVPR 2019) 目标检测算法FCOS(FCOS: ...

  4. 10没有基于策略的qos_分布式QoS算法解析

    QoS对于服务多租户多业务的整体系统来说,不管对网络还是存储,都格外重要,没有QoS,会造成不同租户及业务之间对资源的抢占,用户A用爽了,用户B却遭了殃,频频投诉,这是系统管理员最头疼的事情.我们今天 ...

  5. python终结一个循环额_Python语言入门之内存管理方式和垃圾回收算法解析

    本文主要向大家介绍了Python语言入门之内存管理方式和垃圾回收算法解析,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 在列表,元组,实例,类,字典和函数中存在循环引用问题.有 ...

  6. 脑机接口主流算法解析课程视频汇总

    目录 讲座1--SSVEP算法解析 讲座2--ERP/P300算法解析 讲座3--运动想象算法解析 讲座4--情感脑机接口算法解析 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流 ...

  7. yolo类检测算法解析——yolo v3

    原文:https://www.cnblogs.com/cvtoEyes/p/8608205.html yolo类检测算法解析--yolo v3 计算机视觉的发展史可谓很长了,它的分支很多,而且理论那是 ...

  8. 【机器学习】通俗的元胞自动机算法解析和应用

    [机器学习]通俗的元胞自动机算法解析和应用 文章目录 1 元胞自动机的定义 2 元胞自动机的组成 3 元胞自动机的特征 4 Python实现元胞自动机(生命游戏) 5 总结 6 Github(华盛顿州 ...

  9. 【机器学习】树回归和聚类算法解析和应用

    [机器学习]树回归和聚类算法解析和应用 文章目录 1 树回归 2 CART ( Classification And Regression Tree) 分类回归树 3 K-means3.1 合理选择 ...

  10. 【机器学习】通俗的k-近邻算法算法解析和应用

    [机器学习]通俗的k-近邻算法算法解析和应用 文章目录 1 概述 2 KNN 场景 3 KNN 原理 4 实例:改进约会网站的配对效果 5 算法总结 6 KNN算法的优缺点 7 图像分类应用 1 概述 ...

最新文章

  1. 7项最佳实践助您利用媒体转换不断发展数据中心网络
  2. python函数高级运用
  3. 如何正确的进行网站入侵渗透测试
  4. python scale()函数_【Python菜鸟进阶大神】Matplotlib数据可视化007:词云
  5. 厉害了!这里藏着通关学霸的秘籍
  6. Slog57_玩转NPM之NPM_package的制作发布和使用
  7. python能做什么工作-学python后能找什么工作?Python是什么?
  8. C# 读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC...
  9. TE银令契约,2019颠覆行业模式,造就大批巨富
  10. 分布式基站中的BBU和RRU
  11. 历年软考网络规划师考点总结
  12. win7安不了python_win7下安装python失败问题
  13. echarts 饼图移动端_使用Echarts实现饼图
  14. 关于js文本框数字校验
  15. 魔域服务器修改和宝宝数据,宝宝属性与真实值之间的公式计算关系
  16. mysql原理、索引、优化-【公司内部培训】
  17. 十月十日JavaScript基础3
  18. Linux下安装免费杀毒软件---ClamAV
  19. 4位超60岁程序员大爷的生存秘籍
  20. C语言实现四舍五入后保留最后2位小数

热门文章

  1. 烧写树莓派系统,SSH配置,无屏登录流程
  2. Xcode8上传app一直显示正在处理
  3. AquaFold.Data.Studio.v6.5
  4. 设定MyEclipse编辑代码区域文字的大小及非关键字的字体、字形和颜色
  5. opendir是安全重入函数吗_redis实现分布式锁,与jdk可重入锁ReentrantLock的原理对比剖析...
  6. mysql交互式创建表_MySQL 必知必会 创建和操纵表
  7. 红黑树与平衡二叉树_大佬用这近百张图来给我解释红黑树,看完直接跪了!
  8. python多进程编程实例_Python多进程并发(multiprocessing)用法实例详解
  9. (day 23 - 中位数 投票法 )剑指 Offer 39. 数组中出现次数超过一半的数字
  10. linux防火墙常用相关操作