ADAS摄像头图像环视拼接算法

输入输出接口

Input:

(1)4个摄像头采集的图像视频分辨率 (整型int)

(2)4个摄像头采集的图像视频格式 (RGB,YUV,MP4等)

(3)摄像头标定参数(中心位置(x,y)和5个畸变

系数(2径向,2切向,1棱向),浮点型float)

(4)摄像头初始化参数(摄像头初始位置和三个坐标方向

的旋转角度,车辆宽度高度车速等等,浮点型float)

Output:

(1)图像融合和拼接的image/video的坐标位置(浮点型float)

(2)图像融合和拼接的图像视频分辨率(整型int)

(3)图像融合和拼接的图像视频格式 (RGB,YUV,MP4等)

(4)车辆周围障碍物报警   (字符型char)

22.1  功能定义

1)计算图像融合和拼接的image/video的坐标位置。

2)算出图像融合和拼接的图像视频分辨率。

3)确定图像融合和拼接的图像视频格式。

4)检测车辆周围障碍物并报警。

22.2  技术路线方案

在360°全景视图泊车辅助系统中,通过安装在车辆前、后、左、右 4 个方位的广角摄像头采集车辆四周的视频影像,利用图像融合和拼接技术合成一幅车身周围的全景视图,最后在中控台的屏幕上显示,以扩大驾驶员视野。借助360°全景视图泊车辅助系统,驾驶员坐在车中即可直观地看到车辆周围是否存在障碍物以及障碍物的相对方位与距离,以便在狭窄拥堵的停车场从容操控车辆泊车入位或通过复杂的路面,可有效防止刮蹭、碰撞、陷落等事故的发生。同时,全景视图也可以为自动驾驶系统中识别、检测、跟踪等算法提供支持。

富士通(Fujitsu)开发的视频成像技术, 可实时实现车辆的完整360°环绕视图。四个相机安装在车辆前后左右周边,车辆周围环境的视频图像通过富士通的3D虚拟投影/视点转换技术进行合成。先进的三维算法可以比较流畅地结合四个独立相机的图像,提供一个无缝和清晰的360°视图。具体来说,四个摄像头的图像被发送到视频处理LSI,包括视频捕捉和3D功能,然后相机图像合成为单个实时3D图像并投影到三维碗形网格,生成虚拟3D环绕视频,可以任意转换车辆周围环境视图视角。

图1. 富士通环视方案流程图

为了满足视频拼接的实时性要求,同时考虑到摄像头安装的位置、角度以及不同摄像头之间相互位置相对固定,在本项目中可以使用基于特定图像拼接与查表法相结合的多视点视频拼接方法。在初始化阶段,首先采集预先放置于车辆前、后、左、右 4个方位的带有棋盘格的标定图像,利用标定图像分别对4个摄像头进行参数标定,求出并保存每个摄像头图像畸变矫正参数,对标定图像进行畸变矫正,消除摄像头成像失真; 然后对畸变矫正后的标定图像进行射影变换,求出并保存射影变换参数; 接着采集预先放置于车辆前、后、左、右4个方位的带有丰富特征点的特定图像,并通过查找摄像头图像畸变矫正参数进行畸变矫正,通过查找射影变换参数将矫正后的特定图像变换成俯瞰图; 最后对4个俯瞰图提取 ORB( Oriented FAST and Rotated BRIEF) 特征并进行粗匹配,利用 RANSAC( Random Sample Consensus,随机抽样一致) 算法剔除误匹配点,并拟合出单应性矩阵的初始值,再使用 Levenberg-Marquardt 非线性迭代最小逼近法进行求精,经图像配准、融合和拼接后,生成360°俯瞰全景视图。在泊车辅助系统启用期间,通过查找已保存的摄像头图像畸变矫正参数、射影变换参数以及单应性矩阵参数,将4个摄像头的视频图像进行拼接,生成虚拟的俯瞰全景视图。

由于摄像头内外参数校正准确性对图像投影效果影响大;需要结合摄像头安装具体情况进行算法的调整;为满足嵌入式系统实时性需求,需要不断优化算法;尽量进行流程简化或者流程自动化。

图2. 算法流程

图3. 摄像头成像及其坐标系

主要数学原理,世界坐标系中某点投影到图像平面上的像素点( u,v).该过程要经过齐次坐标转换:

其中,s为任意的非零比例因子; αu=f/dx,f是摄像头的焦距,dx代表x轴方向一个像素的宽度是图像在 u 轴上的尺度因子,或称为u轴上的归一化焦距;

,其中dy代表y轴方向一个像素的高度,αv是图像在v轴上的尺度因子,或称为v轴上的归一化焦距;,它们是摄像头坐标系相对于世界坐标系的旋转向量; 是摄像头坐标系相对于世界坐标系的平移向量; M1 由决定,只与摄像头内部参数有关,称为摄像头内部参数矩阵; M2 由摄像头相对于世界坐标系的方位决定,称为摄像头外部参数矩阵; M 是一个3×4矩阵,称作投影矩阵,用于计算从世界坐标系到图像坐标系的转换。可见,若已知摄像头的内、外参数,就能够知道投影矩阵 M,对空间内任何一点,如果已知它的空间坐标,就可以求出对应的像素点坐标(u,v) 。

张正友标定法,采用棋盘格平面靶标作为标定物,可以把世界坐标系构造在 Zw = 0的平面上。

其中,是径向畸变系数。将式(3)化成矩阵形式为

以上是畸变矫正公式。

以上是射影变换。

以上是畸变矫正及射影变换所对应的坐标像素计算公式。

以上是图像拼接单应性矩阵求解公式。

以上是平均值法对拼接重叠区域进行融合。

以上是3-D ship模型视角转换矩阵。

 

图4. alpha fusion

22.3  关键技术参数和性能指标

一种基于自适应特征点配准的环视系统拼接效果评估和自动微调方法,其特征在于:包括以下步骤:

步骤A、获得拼接前图像,并截取根据拼接参数算出的拍摄的相同位置的图像;

步骤B、采用自适应特征点配准算法来获得拼接前相同位置的图像的旋转平移矩阵;

步骤C、将旋转平移矩阵或者对其进行计算得到的角度信息和位移信息作为环视系统拼接效果的评估指标,并用此矩阵对拼接效果进行微调。

ADAS摄像头图像环视拼接算法的更多相关文章

  1. Opencv Sift和Surf特征实现图像无缝拼接生成全景图像

    Sift和Surf算法实现两幅图像拼接的过程是一样的,主要分为4大部分: 1. 特征点提取和描述 2. 特征点配对,找到两幅图像中匹配点的位置 3. 通过配对点,生成变换矩阵,并对图像1应用变换矩阵生 ...

  2. 夜晚场景图像ISP增强算法

    夜晚场景图像ISP增强算法 输入输出接口 Input: (1)图像视频分辨率(整型int) (2)图像视频格式(RGB,YUV,MP4等) (3)摄像头标定参数(中心位置(x,y)和5个畸变 系数(2 ...

  3. 平滑过渡的战争迷雾(一) 原理:Warcraft3地形拼接算法

    本系列文章由七十一雾央编写,转载请注明出处.  http://blog.csdn.net/u011371356/article/details/9611887 作者:七十一雾央 新浪微博:http:/ ...

  4. 《C++游戏开发》笔记十三 平滑过渡的战争迷雾(一) 原理:Warcraft3地形拼接算法

    本系列文章由七十一雾央编写,转载请注明出处.  http://blog.csdn.net/u011371356/article/details/9611887 作者:七十一雾央 新浪微博:http:/ ...

  5. 使用JavaCV/OpenCV抓取并存储摄像头图像

    http://blog.csdn.net/ljsspace/article/details/6702178  分类: 图形图像(3)  版权声明:本文为博主原创文章,未经博主允许不得转载. 本程序通过 ...

  6. Python实现图像直方图均衡化算法

    title: "Python实现图像直方图均衡化算法" date: 2018-06-12T17:10:48+08:00 tags: [""] categorie ...

  7. 在python3下使用OpenCV 抓取摄像头图像提取蓝色

    工作中需要对摄像头进行调试, Python平台大大提高调试效率. 从网找到段代码, 可以从摄像头图像中抠出蓝色. import cv2 import numpy as np cap  = cv2.Vi ...

  8. python+opencv中最近出现的一些变化( OpenCV 官方的 Python tutorial目前好像还没有改过来?) 记一次全景图像的拼接

    最近在学习过程中发现opencv有了很多变动, OpenCV 官方的 Python tutorial目前好像还没有改过来,导致大家在学习上面都出现了一些问题,现在做一个小小的罗列,希望对大家有用 做的 ...

  9. 图像超分辨率算法:CVPR2020

    图像超分辨率算法:CVPR2020 Unpaired Image Super-Resolution using Pseudo-Supervision 论文地址: http://openaccess.t ...

随机推荐

  1. 发现个利器--FastAPI(Py3.6+版本)

    from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"H ...

  2. SSDT表概念详解

    SSDT 的全称是 System Services Descriptor Table,系统服务描述符表. 这个表就是一个把 Ring3 的 Win32 API 和 Ring0 的内核 API 联系起来 ...

  3. hdu4454 三分 求点到圆,然后在到矩形的最短路

    题意:       求点到圆,然后在到矩形的最短路. 思路:       把圆切成两半,然后对于每一半这个答案都是凸性的,最后输出两半中小的那个就行了,其中有一点,就是求点到矩形的距离,点到矩形的距离 ...

  4. POJ2349二分+并查集,类似最小树的贪心

    题意:       给你n个点,你的任务是构建一颗通讯树,然后给你一个s表示可以选出来s个点两两通讯不花钱,就是费用是0,其他的费用就是两点的距离,有个要求就是其他的费用中最大的那个最小. 思路:   ...

  5. Win64 驱动内核编程-20.UnHook SSDT

    UNHOOK SSDT 要恢复 SSDT,首先要获得 SSDT 各个函数的原始地址,而 SSDT 各个函数的原始地址,自然是存储在内核文件里的.于是,有了以下思路: 1.获得内核里 KiService ...

  6. Bugku-文件包含2

    文件包含2 目录 文件包含2 题目描述 解题过程 参考 题目描述 没有描述 解题过程 文件包含题目大多都是php环境的, 所以先试试伪协议 发现php://被ban了 继续尝试,发现file://协议 ...

  7. (二)SQL语句

    语法规则 不区分大小写,但是建议关键字大写,表名.列名小写 SELECT * FROM user; 支持多行编写sql语言(在SQLyog中可以用F12来快速格式化语句) # 查询cno=20201/ ...

  8. 『政善治』Postman工具 — 7、Postman中保存请求(Collections集合)

    目录 1.创建Collection 2.保存Request请求 3.查看保存的请求 4.Collection下还可以创建文件夹 5.补充:Postman中的变量 6.总结 1.创建Collection ...

  9. web自动化框架—BasePage 类的简单封装

    优秀的框架都有属于自己的思想,在搭建web自动化测试框架时,我们通常都遵循 PO(Page Object)思想. 简单理解就是我们会把每个页面看成一个对象,一切皆对象,面向对象编码,这样会让我们更好的 ...

  10. JNLP配置WIN10

    依据网友的反响和我自己的考查,发觉JNLP的情况是大多数网友的困惑之处,针对此问题小编给大总结整理了(关键此)的处理技巧,并对它进以加工改善,整理出JNLP的详细教程,只用你按照1:首先配置电脑的ja ...