[发明专利]一种重建360度全景视频图像的系统和方法有效
申请号: | 201910940825.4 | 申请日: | 2019-09-30 |
公开(公告)号: | CN110677599B | 公开(公告)日: | 2021-11-05 |
发明(设计)人: | 石美红;薛海伟;刘宝宝;段俊瑞;温宗周 | 申请(专利权)人: | 西安工程大学 |
主分类号: | H04N5/262 | 分类号: | H04N5/262;H04N13/122;G06T3/40 |
代理公司: | 西安弘理专利事务所 61214 | 代理人: | 涂秀清 |
地址: | 710048 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 重建 360 全景 视频 图像 系统 方法 | ||
1.一种重建360度全景视频图像的方法,其特征在于,基于如下的一种重建360度全景视频图像的系统进行实施:包括视频图像处理器(1);视频图像处理器(1)连接有视频图像输入通道模块(2),视频图像输入通道模块(2)对视频图像处理器(1)单向传输,视频图像输入通道模块(2)还连接有视频摄像头模块(7),视频摄像头模块(7)对视频图像输入通道模块(2)单向传输;视频图像处理器(1)单向连接有视频图像输出驱动模块(3),视频图像输出驱动模块(3)单向连接有液晶显示器模块(8);视频图像处理器(1)双向连接有存储模块(4)和控制调试传输通道模块(5);电源模块(6)连接有视频图像处理器(1)、视频图像输入通道模块(2)、视频图像输出驱动模块(3)、存储模块(4)、视频摄像头模块(7)以及液晶显示器模块(8);
具体的实施方法包括以下三个阶段:
阶段一:线下标定单鱼眼摄像机的内、外参数和畸变系数;
具体步骤如下:
步骤1:在目标全景中,布设4个鱼眼摄像头,其编号分别为1,2,3,4;根据本型号鱼眼摄像头的最佳视场性能特点,每个鱼眼摄像头的高度在[1,3]米范围,鱼眼摄像头彼此的间距[0.2,3]米、夹角为90度,以形成360度的视场范围;
步骤2:选择黑白相间棋盘格板作为标定平面,即世界坐标系的ZW=0,以标定板左上角点为原点,棋盘格板放置在标定平面的法线与鱼眼摄像头主光轴夹角在0°~±60°之间、与鱼眼摄像头间距在[100,500]cm之间;在此范围内,选择不同距离、不同角度,用鱼眼摄像头重复拍摄大小为2048×1536数字图像共25幅,共4×25=100幅图像;每幅数字图像中包含的内角点数为11×12=132个,基于棋盘标定面的坐标系约定,按行优先,自左向右依次编排角点序号:1,2,3,……132;
步骤3:对步骤2中每个鱼眼摄像头所拍摄的棋盘格数字图像Fj,j=1,2,3……25进行内角点检测,作为鱼眼摄像机标定的特征点,并将其坐标值保存至指定的数据结构中;
其具体流程如下:
Step3.1.鱼眼摄像头标号i=1,j=1,
其中,Sm的含义是获取所拍摄的大小为2048×1536数字图像含有的像素总数的一半或者50%;Asum的含义是统计保存每个灰度值I下,所含的像素个数SI;
Step3.2.Asum=0,Icv=0;
Step3.3.计算和统计Fj图像像素的灰度分布,即计算每个灰度值I下,对应的像素个数SI,I=0,1,2,3……255;
Step3.4.I=0,Asum=Asum+SI,按式(3-1)重复计算:
I=I+1 and Asum=Asum+SI 若Asum<Sm and I<255 (3-1)
Step3.5.棋盘图灰度分布的黑白交界灰度值ICV=I,以ICV为界,从图像的灰度分布中获取分别位于[0,ICV]和(ICV,255]区间中像素个数统计值为最大时所对应的灰度值Ib和If,作为棋盘格图像的背景灰度值和前景灰度值,即:
Step3.6.按式(3-3)计算阈值T:
Step3.7.用7×7窗口的24模板逐一像素扫描数字图像,即分别沿45度方向的红色对角区域和135度方向的蓝色对角区域,统计计算各区域像素的灰度值Ik与中心像素Pc的灰度值Ic之差,并与阈值T比较,得到各对角区域的像素灰度值与中心像素灰度值相似的像素个数:
Step3.8.若环绕中心像素Pc的相似像素个数转向step3.10;
Step3.9.分别计算分布在红色对角区域和蓝色对角区域的像素灰度均值,即:
如果则中心像素Pc为非角点,剔除,转至step3.11;
Step3.10.如果则中心像素Pc标注为角点,否则剔除;
Step3.11.若数字图像Fj中还存在没扫描的像素,则返回至step3.7;
Step3.12.基于数字图像的坐标系(u,v),根据对Fj所有标记的内角点位置,得到它们在数字坐标系(u,v)下的坐标值,并按行优先保存至名为point[i,j,k]数据结构中,其中,i=1,2,3,4;j=1,2,3…25;k=1,2,3…132;
Step3.13.判断标号i的鱼眼摄像头拍摄的数字图像是否处理完毕,若没有,则j=j+1,返回至step3.2,否则,i=i+1,j=1;
Step3.14.如果i≤4,则返回至step3.2,否则,结束;
步骤4:基于张正友标定法,求解每个鱼眼摄像机的内、外参数和畸变系数;其具体流程如下:
Step4.1.基于棋盘板平面世界坐标系,即ZW=0,根据棋盘格格子的数量和物理大小,计算棋盘格内角点在世界坐标系下对应的坐标(XWk,YWk)(k=1,2,…132)如下:
基于棋盘标定板的坐标系约定,如果棋盘格的内角点分布的矩阵形式为:
则,对于ap,q内角点的物理坐标(Xp,Yq)=(3×p,3×q),按行优先,自左向右,分别对应于世界坐标为(XW1,YW1),(XW2,YW2),(XW3,YW3)……(XW132,YW132);
Step4.2.求解在理想线性成像模型下每个鱼眼摄像机的内、外参数,其具体流程如下:
Step4.2.1根据已知的棋盘标定板在数字图像坐标系下各内角点坐标和对应的世界空间坐标(XWk,YWk,ZWk),求解投影矩阵H:
因为第i鱼眼摄像头拍摄的第j幅数字图像中检测到的所有内角点的像素坐标映射至世界坐标系(XW,YW,0)中对应坐标的投影模型为:
其中,和为棋盘标定板所检测的内角点分别在数字图像坐标系(u,v)和世界坐标系(XW,YW,0)下的齐次坐标,上标i表示摄像头编号,i=1,2,3,4;下标j和k分别表示数字图像序号和内角点序号,j=1,2,…25,k=1,2,…132;为3×3投影矩阵,hij为投影矩阵H的第i行第j列元素,h1,h2,h3为投影矩阵H的列向量;s为任意尺度的缩放比例因子,目的是使得数字图像定义到该尺度比例,由此得:
经变换,用矩阵形式可表示为:
令:H'=[h11 h12 h13 h21 h22 h23 h31 h32 h33]T,那么,上式的矩阵形式简写为:
SH'=0 (4-3)
其中,S矩阵大小为(2×132)×9
在如下约束条件下:
采用奇异值分解法,对式(4-3)求解,得到投影矩阵H;
Step4.2.2根据约束条件,求解每个鱼眼摄像机的内、外参数,其具体流程如下:
1)求解向量b
根据坐标系间的映射关系,投影矩阵H可表示为:
H=[h1 h2 h3]=λA[r1 r2 t] (4-4)
式中,λ为尺度因子;和[r1 r2 t]分别表达了鱼眼摄像机的内参数和外参数的信息,γ表示像素点在x和y方向上尺度的偏差;
因为r1和r2是单位正交向量,对于每幅图像都存在如下约束条件:
令:
因为B是一个对称矩阵,可用一个6维向量表示,即:
b=[B11 B12 B22 B13 B23 B33]T (4-7)
假设,H的第i列向量为hi=[hi1 hi2 hi3]T,i=1,2,3,式(4-5)可表示为关于b的齐次方程:
式中,Vij=[hi1hj1 hi1hj2+hi2hj1 hi2hj2 hi3hj1+hi1hj3 hi3hj2+hi2hj3 hi3hj3];那么,对于每个鱼眼摄像头拍摄的25幅图像,可将方程联立,求解向量b:
Vb=0 (4-9)
式中,是一个(2×25)×6的矩阵;
2)按照式(4-10)求解出鱼眼摄像机的内、外参数:
其中,γ、v0、u0、fx、fy为鱼眼摄像机内参数;R=[r1 r2 r3]和t通称为鱼眼摄像机外参数;
Step4.3.优化求解各鱼眼摄像机的内、外参数和畸变系数,其具体流程如下:
Step4.3.1求解鱼眼摄像机的畸变系数:
因为第i(i=1,2,3,4)鱼眼摄像头拍摄的第j(j=1,2,3…25)幅数字图像的坐标为:
用矩阵形式可表示为:
式中,表示在畸变情况下第i鱼眼摄像头拍摄的第j幅数字图像的像素坐标;表示在理想线性成像模型下第j幅数字图像的像素坐标;(u0,v0)表示成像坐标系的原点在数字图像坐标系(u,v)中的坐标;表示在理想线性成像模型下第j幅数字图像在摄像机坐标系(XC,YC,ZC)中的像素坐标;k1,k2表示畸变系数;
对于每个鱼眼摄像头拍摄有25张图像,每张图内有132个内角点,如果把2×132×25这些方程堆叠,可得:
可简写为:
Diki=di (4-12)
为了选取最合适的ki,应满足:
arg min||Diki-di||
对式(4-12)的微分求最值,可得:
(Di)TDiki=(Di)Tdi
因为矩阵(Di)TDi为非奇异矩阵,因此,最小二乘解为:
ki=((Di)TDi)-1(Di)Tdi (4-13)
Step4.3.2在非线性成像模型下,优化求解每个鱼眼摄像机的内、外参数和畸变系数:
基于L-M优化算法,对式(4-14)误差函数进行迭代,优化求解出第i(i=1,2,3,4)鱼眼摄像机的内、外参数和畸变参数:
其中,p表示第i鱼眼摄像头所拍摄的数字图像,共a=25,q表示每幅数字图像中检测的内角点个数,共b=132;mpq表示在第p幅数字图像中第q个内角点的像素点坐标;Ai为i鱼眼摄像机内参数矩阵;ki为i鱼眼摄像机的畸变系数向量;和分别是i鱼眼摄像头拍摄的第p幅数字图像对应的旋转向量和平移向量;表示第q个内角点在世界坐标系(XW,YW,ZW)下坐标;是基于当前所求得的鱼眼摄像机参数而重投影得到的点Mq在数字图像中的坐标估计值,Ai,ki,的初值由式(4-10)和式(4-13)确定;最终设置的误差范围为[0,0.02]像素;
阶段二:在统一世界坐标系下线下标定4个鱼眼摄像机的外参数;
具体步骤如下:
步骤5:设置世界坐标系(XW,YW,ZW)的三维轴线方向与摄像机坐标系(XC,YC,ZC)的三维轴线方向同向,且坐标原点OW位于物理平面中心,即4个鱼眼摄像头的中心;在安装4个鱼眼摄像头周围的地面上,用12个边长为18cm的黑色正方形标记块,标记块的黑色与背景色间的对比率Cr在[50,160]之间;根据每个鱼眼摄像头对应的视场范围,测量在世界坐标系(XW,YW,ZW)下各自所包含的4个黑色正方形标记块的4个外角点世界坐标,即:
第1、第2、第3和第4鱼眼摄像头可观测到的4个黑色正方形标记块,其P分别为(B;G;H;C)、(A;E;F;B)、(D;K;L;A)和(C;I;J;D);
步骤6:使用4个鱼眼摄像头在各自所在的视场范围拍摄含有4个黑色正方形标记块、大小为2048×1536的数字图像各一幅,共4幅数字图像fi(i=1,2,3,4),并选用图像中标记块的外角点作为特征点标定鱼眼摄像机外参数,每个图像中的外角点数为4×4=16个;
步骤7:对数字图像fi(i=1,2,3,4)进行方形标记块外角点检测,并得到在数字坐标系(u,v)下外角点坐标值,其具体流程如下:
Step7.1.初始化i=1;
Step7.2.计算和统计fi的像素灰度分布,即计算每个灰度值I下,对应的像素个数LI,I=0,1,2,3……255;
Step7.3.利用图像中前景色与背景色的对比率Cr,计算图像的背景与前景间的交界灰度值ICV:
Step7.4.以ICV为界,从数字图像fi的灰度分布图中获取分别位于[0,ICV]和(ICV,255]区间中像素个数统计值为最大时所对应的灰度值Itag_b和Itag_f,分别作为图像fi的背景灰度值和前景灰度值,即:
Step7.5.按式(7-3)计算外角点检测的阈值Ttag
Step7.6.用7×7窗口的24模板逐一像素扫描图像fi,即分别沿45度方向的红色对角区域和135度方向的蓝色对角区域,统计计算环绕中心像素Pc所对应的各区域像素的灰度值Ik与Pc的灰度值Ic之差,并与阈值Ttag比较,分别得到模板中红色对角区域和蓝色对角区域的像素灰度值与中心像素灰度值相似的像素个数:
Step7.7.若环绕中心像素Pc的相似像素个数或转向Step7.9;
Step7.8.若则Pc为外角点,进行标记;
Step7.9.若图像fi中还存在没扫描的像素,则返回至Step7.6;
Step7.10.基于数字图像的坐标系,根据对图像fi所有标记的外角点位置,得到它们在数字坐标系(u,v)下的坐标值,即,第i幅图像的坐标为,
Step7.11.i=i+1,如果i≤4,则返回至step7.2,否则,结束;
步骤8:根据坐标系间映射关系,求解基于世界坐标系(XW,YW,ZW)下的4个鱼眼摄像机的外参数,其具体流程如下:
Step8.1.根据已知的每个鱼眼摄像机的内参数,将数字图像fi中的外角点齐次坐标投影至对应i鱼眼摄像机坐标系中对应的外角点坐标
其中,A-1为鱼眼摄像机内参数的逆矩阵;为对应外角点坐标在摄像机坐标系(XC,YC,ZC)下的坐标;
Step8.2.将i鱼眼在摄像机坐标系下的坐标投影至世界坐标系(XW,YW,ZW)下对应外角点坐标
式中,为待求解的i鱼眼摄像机的旋转向量和平移向量,即鱼眼摄像机外参数矩阵;为黑色正方形标记块的16个外角点在世界坐标系(XW,YW,ZW)下的齐次坐标;
Step8.3.基于L-M优化算法,对式(8-3)误差函数进行迭代,优化求解出i(i=1,2,3,4)鱼眼摄像机的外参数:
其中,外参矩阵的初始值设为其误差函数的值限定在[-0.2,+0.2]cm范围内;
阶段三:通过重建360度全景视频图像的系统实现在线拼接融合;
具体步骤如下:
步骤9:在LINUX操作系统平台下,构建软件系统环境:对由S32V234FS视频处理器所提供的Linux BSP压缩文件进行解压后,便得到了一个包括LINUX核、S32V234FS视频处理器的根引导程序、S32V234FS视频处理器包含的所有硬件接口的驱动程序及支持应用程序开发的环境;
步骤10:设置目标全景视频图像的大小为W×H=2048×1536,创建名为st_map1和st_map2的数据结构,分别用于存储拼接的图像和融合的权值;
步骤11:根据设定的目标全景物理范围-1000cm≤XW≤1000cm和-1000cm≤YW≤1000cm以及目标全景视频图像的显示分辨率2048×1536,计算在成像坐标系(x,y)下x方向和y方向的像素当量ex和ey:
步骤12:设置目标全景视频图像坐标系(u,v)的原点位于物理平面的左上角,采用平行投影模型,将目标全景视频图像的像素坐标(uk,vl)投影至世界坐标系(XW,YW,ZW)下对应的点坐标(XWk,YWl,ZWm):
其中,k=1,2,3,……2048;l=1,2,3,……1536;
步骤13:根据各鱼眼视频摄像头的视场范围和全景图像的显示分辨率,定义4幅图像拼接融合区域和相邻2幅图像拼接边界的重叠区域宽度2×D,设置D范围为[8,16]像素,即[10,20]cm;
步骤14:按照式(15-1)将世界坐标系(XW,YW,ZW)下的点坐标(XWk,YWl,ZWm)转换为对应的i鱼眼在摄像机坐标系下的点坐标
式中,是由第二阶段得到的i鱼眼摄像机外参数;Li表示i鱼眼摄像头对应视场范围的弧长,i=1,2,3,4;
步骤15:根据第一阶段得到的i(i=1,2,3,4)鱼眼摄像机内参数Ai及畸变系数ki,求解在非线性成像模型下摄像机坐标系中的点坐标投影至数字图像坐标系(ui,vi)下点坐标值,并保存至相应的st_map1数据结构中;
步骤16:根据步骤15所生成的4幅拼接图像像素点的坐标值,求解每个像素点的融合权值,并保存至定义的st_map2数据结构中,其具体步骤如下:
Step16.1:按照公式(17-1)分别计算相邻i鱼眼摄像头拍摄的2幅图像中各像素点p距离拼接边界的di和dj:
式中,j=(i+1)mod4;
Step16.2:按照公式(17-2),求解相邻拼接图像各像素点的融合权值,并保存至定义的st_map2数据结构中:
式中,和表示相邻拼接图像分别所对应的视场范围的弧长;
步骤17:根据4个摄像头位置布局的不变特点,针对视频图像数据规模,利用NXPUS32V234的4核计算资源和共享存储器的系统结构以及每帧视频图像数据间的无关联性,采用资源重叠和时空重叠相结合的并行流水方法,重建360度全景视频图像的在线拼接融合,其具体步骤如下:
Step17.1.系统初始化:在共享存储器中为重建360度全景视频图像预申请内存空间,具体包括:申请大小为(2048×1536×23)字节×4的内存空间Source_Images用于存储每个鱼眼摄像头拍摄的原始视频图像帧数据;申请大小为((2048×1536×23)×3)×4的内存空间Mapping_MosaicWeight用于存储拼接的原始视频帧图像像素与目标全景视频图像像素间坐标映射表和融合权值;申请大小为(2048×1536×23)字节的内存空间Target_Images用于存储所形成的360度全景视频图像帧数据;
Step17.2.将st_map2变量数据加载至内存空间Mapping_MosaicWeight中,并得到待拼接融合的原始视频图像像素数据和对应的融合权值及所形成的目标全景视频图像像素数据存放的内存地址指针,并保存至定义的变量名为st_addr_map中;
Step17.3.把360度全景视频图像的一次重建作为一次循环迭代任务;每次循环迭代分为4个子任务,即各个子任务在不同的核处理器上执行,每个核处理器处理完所负责的子任务后,其结果通过共享存储区就作为输入传输至流水线中的下个核处理器,其具体流程如下:
1)核处理器1从MIPI CSI2接口读取来自4个摄像头拍摄的原始视频图像数据,保存至变量名为Source_Images内存中,耗时20ms;
2)基于st_addr_map地址指针,核处理器2对Source_Images内存中的原始视频图像像素数据进行拼接,保存至变量名为Mapping_MosaicWeight内存所对应的区域中,耗时10ms;
3)基于st_addr_map地址指针,核处理器3获取融合权值,对Mapping_MosaicWeight内存中拼接图像数据进行融合,得到360度目标全景视频图像,保存至变量名为Target_Images内存中,耗时15ms;
4)核处理器4从Target_Images内存中读取数据,通过24比特输出接口更新屏幕显示数据,耗时8ms;
为了避免系统资源不发生冲突,约定:
1)每个子任务只能被调度到一个核处理器上;
2)每个核处理器上的计算工作负载必须在给定的max(ti+1-ti)间隔内完成;
3)在给定的输入通道或输出通道上的视频图像帧数据传输负载不大于max(ti+1-ti)间隔;
因此,经过4×max(ti+1-ti)时间后,每隔max(ti+1-ti)间隔,就可以产生一个新的360度全景视频图像帧。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安工程大学,未经西安工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910940825.4/1.html,转载请声明来源钻瓜专利网。