作者丨黄浴@知乎

编辑丨新机器视觉

单目视觉是Mobileye(ME)的看家法宝,其实当年它也考虑过双目,最终选择放弃。

单目的测距和3-D估计靠什么?是检测目标的Bounding Box(BB),如果无法检测的障碍物,该系统就无法估计其距离和3-D姿态/朝向。没有深度学习的时候,ME主要是基于BB,摄像头标定得到的姿态和高度以及路面平直的假设估算距离。

有了深度学习,可以根据3-D的ground truth来训练NN模型,得到3D大小和姿态估计,距离是基于平行线原理(single view metrology)得到的。不久前百度Apollo公布的单目L3解决方案讲的比较清楚了,参考论文是“3D Bounding Box Estimation by Deep Learning and Geometry".

双目当然可以算视差和深度了,即使没有检测出障碍物(因为有附加的深度信息,检测器会比单目好),也会报警。问题是,双目视觉系统估计视差没那么容易,立体匹配是计算机视觉典型的难题,基线宽得到远目标测距准,而基线短得到近目标测距结果好,这里是存在折衷的。

目前市场上ADAS存在的双目视觉系统就是Subaru EyeSight,据说性能还行。

百度推出的阿波龙L4摆渡车量产100台,就安装了双目系统。还有欧盟自主泊车项目V-Charge也采用了前向双目视觉系统,另外自动驾驶研发系统Berta Benz也是,而且和雷达系统后融合,其中双目匹配的障碍物检测算法Stixel很出名。以前Bosch和Conti这些Tier-1公司也研制过双目视觉解决方案,但没有在市场上产生影响力,据说被砍掉了。

谈到双目系统的难点,除了立体匹配,还有标定。标定后的系统会出现“漂移”的,所以在线标定是必须具有的。单目也是一样,因为轮胎变形和车体颠簸都会影响摄像头外参数变化,必须在线做标定修正一些参数,比如仰角(pitch angle)和偏角(yaw angle)。

双目在线标定就更复杂些,因为双目匹配尽量简化成1-D搜索,所以需要通过stereo rectification将两个镜头光轴方向平行并和基线垂直。所以针对获得的gain相比,增加的复杂度和成本,如果不划算商家就会放弃。

最近重提双目视觉,是因为硅谷芯片公司安霸(Ambarella)在2014年收购意大利帕尔马大学的Vis Lab,研制了双目的ADAS和自动驾驶芯片,去年CES之后就开始进军车企和Tier-1。而且,安霸目前正在继续研究提升该系统的性能。

下图就是它在车顶安装6对立体视觉系统的示意图,其中它们的基线宽度可以不一样的,相应地有效检测距离也就不同。笔者曾坐过它的自动驾驶车,远处可以看到200米,近处20-30米。它确实可以做在线标定,随时调整一些双目视觉的参数。

先说立体匹配。

匹配方法分两种,全局法和局部法,实用的基本是局部法,因为全局法太慢。深度学习可以取代全局法,但目前还不是很成熟。

最著名的局部法就是SGM(semi-global matching),很多产品在用的方法都是基于此的改进,不少视觉芯片都采用这种算法。

Census Transform是将8/24比特的像素变成一个2进制序列,另外一个2值特征叫LBP(local binary pattern)和它相似。立体匹配算法就是基于这个变换将匹配变成一个Hamming距离的最小化搜索。Intel的RealSense当年就是收购了一个成立于1994年基于该技术的双目视觉创业公司,还收购另外几个小公司把他们合在一起做出来的。

PatchMatch是一个加速图像模版匹配的算法,被用在光流计算和视差估计上。之前微软研究院曾经做过一个基于单目手机相机3-D重建的项目,仿造以前成功的基于RGB-D算法KinectFusion,名字也类似MonoFusion,其中深度图估计就是采用一个修正的PatchMatch方法。

再说在线标定。

这是一个利用路上标志线(斑马线)的标定方法:已知斑马线的平行线模式,计算Homography将模式和路面实现匹配。

这个流程图比较复杂,采用SLAM做在线标定,不适合高频率操作:

和单目方法类似,采用车道线平行和路平面这个假设可以快速完成在线标定,即消失点(vanishing point)理论:跟初始化的消失点(与线下标定相关)比较可以算出双目外参数的漂移量。

下面介绍几个典型的双目自动驾驶系统。

Berta Benz采用的障碍物检测算法Stixel基于以下假设:场景中的目标描述为列,重心的原因目标是站立在地面上,每个目标上的上部比下部的深度大。下图(a-d) 介绍了SGM视差结果如何生成Stixel分割结果:

这是他们加上深度学习做视差融合之后再做Stixel的框图和新结果:

介绍一个早期双目障碍物的算法,Generic Obstacle and Lane Detection system (GOLD)。基于IPM(Inverse Perspective Mapping),检测车道线,根据左右图像的差计算路上障碍物:

(a) Left view. (b) Right view. (c) Remapped left view. (d) Remapped right view. (e) Thresholded and filtered difference between remapped views. (f) In light gray, the road area visible from both cameras.

(a) Original. (b) Remapped. (c) Filtered. (d) Enhanced. (e) Binarized

GOLD system architecture

一种经典的方法是根据路面方程(立体视觉)得到路面视差,基于此计算出路面的障碍物:

最后介绍一下安霸收购的VisLab双目系统:

这是双目障碍物检测流程图:

这是基于划分DSI(disparity space image)加速视差估计的方法:

另外还有提高视差精度的滤波方法:

总的看,双目检测障碍物的方法基本基于视差图,基于路面视差的方法较多。也许随着深度学习发展的突飞猛进,加上计算平台的增强,双目自动驾驶系统也会普及起来。

本文仅做学术分享,如有侵权,请联系删文。

3D视觉精品课程推荐:

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

11.自动驾驶中的深度学习模型部署实战

12.相机模型与标定(单目+双目+鱼眼)

13.重磅!四旋翼飞行器:算法与实战

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

浅析基于双目视觉的自动驾驶技术相关推荐

  1. 双目估计方法_基于双目视觉的自动驾驶技术

    不小心删掉的文章,要求补上了.其实双目视觉主要问题是立体匹配和视差计算,最新的讨论见: 黄浴:基于深度学习的双目匹配和视差估计​zhuanlan.zhihu.com 另外,目标检测的双目视觉技术讨论如 ...

  2. 基于双目视觉的自动驾驶技术

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|3D视觉工坊 不小心删掉的文章,要求补上了.其实双目视觉主 ...

  3. 一种基于激光雷达的自动驾驶技术路线

    引言 描述一种基于激光雷达的技术路线. 一.NDT_mapping 用途:使用激光雷达点云数据创建3D地图 使用的传感器:16线激光雷达 + IMU 二.NDT_matching 用途:基于建好的3D ...

  4. 浅析CV下的无人驾驶技术

    报告题目 浅析CV下的无人驾驶技术 1.概述: 2006年,Geoffrey Hinton老爷子针对传统的神经网络算法训练速度慢,面对多层Hidden Layer严重出现过拟合的现状,提出了无监督预训 ...

  5. 长篇自动驾驶技术综述论文(下)

    长篇自动驾驶技术综述论文(下) 三维目标检测 鉴于经济性,可用性和研究的广泛性,几乎所有的算法都使用相机作为主要的感知方式.把相机应用在ADS中,限制条件除了前面讨论到的光照等因素外,还有一个问题就是 ...

  6. 长篇自动驾驶技术综述论文(上)

    长篇自动驾驶技术综述论文(上) A Survey of Autonomous Driving: Common Practices and Emerging Technologies Ekim Yurt ...

  7. ​中国自动驾驶技术有多强?你可能还不知道

    随着大数据.互联网.5G等技术在汽车领域的不断普及和推广,自动驾驶技术也开始为人们熟知.无论是新能源汽车还是传统汽车,自动驾驶都是业界未来需要抢占的制高点,越来越多的企业在自动驾驶领域开始发力. 随着 ...

  8. 两次杀人,自动驾驶技术之恶

    当 Ryan Kelley 第一次将双手举起离开 Uber 的自动驾驶方向盘时,他感觉自己提前体验到了未来世界. 来源 | CSDN(公众号ID:CSDNnews) [编者按]近日,Uber 自动驾驶 ...

  9. 自动驾驶技术分级标准微调,全球竞争格局一夜剧变

    2021-06-04 19:18 贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 大洋两岸的自动驾驶竞速,出现技术标准层面的新变量. 在刚刚更新的自动驾驶全球通用SAE分级标准中,增加了 ...

最新文章

  1. 如何捕获window.print点击打印或取消_视频:手把手教您如何优化喷墨波形
  2. SQL Server死锁诊断--同一行数据在不同索引操作下引起的死锁
  3. datatable转化泛型
  4. 有python基础学java_Python基础学习篇
  5. LeetCode 1003. 检查替换后的词是否有效(栈)
  6. clickhouse hbase性能对比_如何让 HBase 更快、更稳、更省钱
  7. ext4.0 代理 的使用
  8. 球球大作战显示中国服务器较差,球球大作战延迟卡顿原因分析及解决方法
  9. dts数据库迁移工具_5分钟学会如何玩转云数据库组件(迁移,审计,订阅)
  10. 跨域访问被禁止的演示示例
  11. c语言写的程序如何移植,完全由C语言编写,高度可移植,超级牛逼的软件定时器!...
  12. Atitit web 3.0(web技术)展望与实现 和语义网络 目录 1. 为了说明Web 3.0,我们需要回顾Web历史上的重要浪潮。 2 1.1. 2.Web 2.0:任何人可以参与。Web
  13. 【博主推荐】HTML5响应式手机WEB(附源码)
  14. 慧荣SM2258XT、SM2259XT量产工具开启“忽略区分等级”功能
  15. 计算机平面设计考试试题及答案,最新国家开放大学电大专科《计算机平面设计(1)》网络课形考任务1及任务2答案...
  16. 支付宝小程序 alipays协议链接跳转
  17. 广告行业eCPM概念
  18. 破解有道翻译js加密,纯小白练手
  19. 复合型人才八种能力_刚毕业在设计院做结构设计,感觉自己对很多东西都没有判断的能力,工作之外如何提升自己在结构方面的知识?...
  20. 简单几步轻松获取WiFi密码

热门文章

  1. java-基础-强、软、弱、虚引用
  2. 美团多渠道打包方案详解,速度快到白驹过隙
  3. tomcat配置manager
  4. 2014中国软件开发者调查(一):Java最受欢迎 第二语言JS使用比例最高
  5. ffmpeg frei0r filter 参数及效果
  6. 你猜,为什么Google和Facebook不用Docker?
  7. 拼多多员工爆料:拼多多开启硬核模式!午休减半!每月工作300小时!千万别来拼多多!...
  8. 什么?听说这四个概念,很多 Java 老手都说不清!
  9. 做管理必须避开的六个坑
  10. 飞书,成就组织和个人 让每一分努力都有意义!