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. 1438. Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit

    Given an array of integers nums and an integer limit, return the size of the longest continuous suba ...

  2. 【Nginx(二)】Nginx目录结构和常用的命令以及核心配置文件

    Nginx的目录结构: 默认的安装路径 : /usr/local/nginx 安装完成后,Nginx的目录结构如下: conf:   #所有配置文件的目录 nginx.conf  #默认的主要配置文件 ...

  3. POJ 2516 基础费用流

    题意       有n个顾客,m个供应商,k种货物,给你顾客对于每种货物的要求个数,和供应商对于每种货物的现有量,以及供应每种货物的时候供应商和顾客之间的运输单价,问你满足所有顾客的前提下的最小运输费 ...

  4. Webshell和一句话木马

    目录 Webshell(大马) 一句话木马(小马) 一句话木马原理 一句话木马的变形 JSP后门脚本 Webshell(大马) 我们经常会看到Webshell,那么,到底什么是Webshell呢? w ...

  5. 【Android Jetpack高手日志】DataBinding 从入门到精通

    前言 DataBinding 数据绑定库是 Android Jetpack 的一部分,借助该库可以使用声明性格式(而非程序化地)将布局中的界面组件绑定到应用中的数据源.我个人觉得,使用 DataBin ...

  6. Jenkins 基础篇 - 环境准备

    前期准备 为了开发这套课程,我专门购买了一台二手戴尔服务器 Dell R720,同时把废弃多年的笔记本电脑也利用了起来.当然如果自己没有多余的电脑,也可以在自己电脑上安装 Vmware Worksta ...

  7. upload

    File saveDir=new File("D:/Test/UPLOAD"); if(!saveDir.isDirectory()){ saveDir.mkdirs(); } F ...

  8. MySQL模糊查询,查询语句是对的。但是就是没有查询结果

    问题 解决 当我用其他非中文的值去查询,发现可以查询到结果 所以问题就出现在数据库的配置中 spring.datasource.url=jdbc:mysql://localhost:3306/data ...

  9. 【Redis】redis异步消息队列+Spring自定义注解+AOP方式实现系统日志持久化

    说明: SSM项目中的每一个请求都需要进行日志记录操作.一般操作做的思路是:使用springAOP思想,对指定的方法进行拦截.拼装日志信息实体,然后持久化到数据库中.可是仔细想一下会发现:每次的客户端 ...

  10. 修改wordpress版权信息

    修改页脚版权信息位置:找到C:\wamp64\www\wordpress\wp-content\themes\travelify\library\structure\footer-extensions ...