0

0

从技术层面聊聊双目自动驾驶系统为何难以普及?

王林

王林

发布时间:2023-05-19 10:12:20

|

1837人浏览过

|

来源于51CTO.COM

转载

有道智云AI开放平台
有道智云AI开放平台

有道智云AI开放平台

下载

单目视觉是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,据说性能还行。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

从技术层面聊聊双目自动驾驶系统为何难以普及?

百度推出的阿波龙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米。它确实可以做在线标定,随时调整一些双目视觉的参数。

从技术层面聊聊双目自动驾驶系统为何难以普及?

01 立体匹配

先说立体匹配,即视差/深度估计。如图假设左右摄像头焦距f,基线(两个光心连线)宽B,3-D点X的深度z,而其视差(投影到左右图像的2-D点,其坐标差)即

从技术层面聊聊双目自动驾驶系统为何难以普及?

从技术层面聊聊双目自动驾驶系统为何难以普及?

可见视差能够反算深度值。但是这里最难的就是左右镜头看到的图像如何确定是同一个目标,即匹配问题。

匹配方法分两种,全局法和局部法,双目匹配的四个步骤:

  • 匹配成本(matching cost)计算;
  • 成本聚集(aggregation);
  • 视差(disparity)计算/优化;
  • 视差修正(refinement)。

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

SGM就是把一个全局优化近似成多个局部优化的问题组合,如下公式是2-D匹配的优化目标函数,SGM实现成为多个1-D优化路径之和

从技术层面聊聊双目自动驾驶系统为何难以普及?

下图是沿着水平方向的路径优化函数

从技术层面聊聊双目自动驾驶系统为何难以普及?

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

下图是CS变换的示意图:

从技术层面聊聊双目自动驾驶系统为何难以普及?

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

其基本思想就是对视差和平面参数随机初始化,然后通过邻域像素之间信息传播更新估计。PM算法分五个步骤:

  • 1) 空间传播(Spatial propagation): 每个像素检查左边和上边邻居视差和平面参数,如果匹配成本变小就取代当前估计;
  • 2) 视角传播(View propagation): 其他视角的像素做变换,检查其对应图像的估计,如果变小就取代;
  • 3) 时域传播(Temporal propagation): 前后帧考虑对应像素的估计;
  • 4) 平面细化(Plane refinement): 随机产生样本,如果估计使匹配成本下降,更新。
  • 5) 后处理(Post-processing): 左右一致性和加权中值滤波器去除出格点(outliers)。

下图是PM的示意图:

02 在线标定

再说在线标定。

这是一个利用路上标志线(斑马线)的标定方法:已知斑马线的平行线模式,检测斑马线并提取角点,计算斑马线模式和路面实现匹配的单映性变换(Homography)参数,得到标定参数。

从技术层面聊聊双目自动驾驶系统为何难以普及?

另外一个方法基于VO和SLAM,比较复杂,不过可以同时做基于地图的定位。采用SLAM做在线标定,不适合高频率操作,下图是其算法的流程图:1-4步, 通过立体视觉SLAM获取全局连续地图;第5步给出双目相机变换初始估计,第6步把所有立体相机的地图聚合成一个地图;7-8步获取多个相机之间的姿态。

从技术层面聊聊双目自动驾驶系统为何难以普及?

和单目方法类似,采用车道线平行和路平面这个假设可以快速完成在线标定,即消失点(vanishing point)理论:假设一个平坦的道路模型,清晰的纵向车道线,没有其他目标的边缘和它们平行;要求驾驶车辆速度慢,车道线连续,左右相机的双目配置要左摄像头相对路面的仰角/斜角(yaw/roll angles)比较小;这样跟初始化的消失点(与线下标定相关)比较可以算出双目外参数的漂移量(图5-269),其算法就是从消失点估计摄像头仰角/斜角。

从技术层面聊聊双目自动驾驶系统为何难以普及?

03 典型的双目自动驾驶系统

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

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

从技术层面聊聊双目自动驾驶系统为何难以普及?

下图是Stixels 计算的示意图:(a)基于动态规划的自由驾驶空间计算 (b) 高度分割中的属性值 (c) 成本图像 (灰度值反过来) (d) 高度分割。

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

从技术层面聊聊双目自动驾驶系统为何难以普及?

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

从技术层面聊聊双目自动驾驶系统为何难以普及?

(a) Left. (b) Right (c) Remapped left. (d) Remapped right. (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参加自动驾驶比赛VIAC (VisLab Intercontinental Autonomous Challenge)的车辆,除了双目摄像头以外,车上还有激光雷达作为道路分类的辅助。

从技术层面聊聊双目自动驾驶系统为何难以普及?

这是其双目障碍物检测流程图:视差估计利用了SGM算法和基于SAD的相关算法。

从技术层面聊聊双目自动驾驶系统为何难以普及?

后处理中加了两个DSI(Disparity Space Image)空间的滤波器,见图5-274,一个是平滑处理,另一个是基于惯导(IMU)的运动轨迹处理。

从技术层面聊聊双目自动驾驶系统为何难以普及?

障碍物检测算法采用了JPL的方法,基于空间布置特性以及车辆的物理特性聚类得到障碍物。物理特性包括最大的高度(车辆),最小高度(障碍物)和最大道路可通过范围,这些约束定义了一个空间截断锥(truncated cone), 如图所示,那么在聚类过程中凡是落在截断锥内的点划为障碍物。

从技术层面聊聊双目自动驾驶系统为何难以普及?

为加速视差估计算法,采用了划分DSI的方法:

从技术层面聊聊双目自动驾驶系统为何难以普及?

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

从技术层面聊聊双目自动驾驶系统为何难以普及?

从技术层面聊聊双目自动驾驶系统为何难以普及?

04 总结

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

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

16

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

23

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

75

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

95

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

218

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

420

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

168

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

222

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

33

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Go 教程
Go 教程

共32课时 | 6.1万人学习

R 教程
R 教程

共45课时 | 7.8万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号