著录项信息
专利名称 | 抗相机扰动的多相机实时景象拼接系统 |
申请号 | CN201310682821.3 | 申请日期 | 2013-12-12 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2014-03-12 | 公开/公告号 | CN103634527A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04N5/232 | IPC分类号 | H;0;4;N;5;/;2;3;2;;;H;0;4;N;5;/;2;6;2;;;G;0;6;T;7;/;0;0查看分类表>
|
申请人 | 南京华图信息技术有限公司 | 申请人地址 | 江苏省南京市雨花台区西春路1号6层601室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 南京华图信息技术有限公司 | 当前权利人 | 南京华图信息技术有限公司 |
发明人 | 钟胜;商凯;陈大川;金明智;王建辉 |
代理机构 | 北京清亦华知识产权代理事务所(普通合伙) | 代理人 | 张大威 |
摘要
本发明公开了一种抗相机扰动的多相机实时景象拼接系统,包括底板与插在底板上的拼接板,拼接板具体包括:FPGA,FPGA与底板的接口相连,用于进行图像接收控制以及进行拼接过程控制,FPGA内部包括拼接映射表DPRAM,其中,FPGA经过数模转换器与上位机相连;两个相同的DSP,两个相同的DSP分别与FPGA相连,DSP用于接收拼接参数后计算拼接映射表,并发送拼接映射表给FPGA;外部图像DPRAM,外部图像DPRAM与FPGA相连;n个输入图像FIFO,n个输入图像FIFO分别与FPGA相连,用于分别缓存n路图像,其中n为大于1的正整数;以及显示FIFO,显示FIFO与FPGA相连。本发明的抗相机扰动的多相机实时景象拼接系统可以实时地生成漫游视场景象,并且可以抗相机姿态扰动。
1.一种抗相机扰动的多相机实时景象拼接系统,其特征在于,包括底板与插在所述底板上的拼接板,所述拼接板具体包括:
FPGA,所述FPGA与所述底板的接口相连,用于进行图像接收控制以及进行拼接过程控制,所述FPGA内部包括拼接映射表DPRAM,其中,所述FPGA经过数模转换器与上位机相连;
两个相同的DSP,所述两个相同的DSP分别与所述FPGA相连,所述DSP用于接收拼接参数后计算拼接映射表,并发送拼接映射表给FPGA;外部图像DPRAM,所述外部图像DPRAM与所述FPGA相连;
n个输入图像FIFO,所述n个输入图像FIFO分别与所述FPGA相连,用于分别缓存n路图像,其中n为大于1的正整数;以及
显示FIFO,所述显示FIFO与所述FPGA相连;
所述FPGA用于接收上位机发送的图像拼接参数,图像拼接参数包括方位角、俯仰角、视场角以及投影方式参数,FPGA把图像拼接参数放入内部FIFO中缓存,FPGA给DSP发送中断信号,DSP相应中断并接收图像拼接参数;所述DSP用于接收上位机发送过来的方位角、俯仰角、视场角及投影方式参数,计算拼接后的场景视图中每一个像素在畸变校正后图像中的坐标值,再通过畸变校正逆运算得到原始图像坐标值,根据所述原始图像坐标值以及DSP计算完成的拼接映射表获得全景图像。
2.根据权利要求1所述的抗相机扰动的多相机实时景象拼接系统,其特征在于,所述DSP的工作流程包括DSP系统初始化、图像拼接参数的读取、图像拼接映射表的生成和发送。
3.根据权利要求1所述的抗相机扰动的多相机实时景象拼接系统,其特征在于,所述全景图像包括上半幅图像和下半幅图像,所述两个相同的DSP分别用于承担上半幅图像的拼接工作和下半幅图像的拼接工作。
4.根据权利要求1所述的抗相机扰动的多相机实时景象拼接系统,其特征在于,在所述DSP中,所述原始图像坐标值和所述外部图像DPRAM地址是一一映射的关系,通过相应的映射,把所述原始图像坐标值转换为外部图像DPRAM地址值,这样所述DSP会生成所述拼接映射表,所述拼接映射表的大小与视场角参数相关,所述拼接映射表里面的每一个元素就是场景视图中对应像素在外部图像DPRAM中的地址值。
5.根据权利要求1所述的抗相机扰动的多相机实时景象拼接系统,其特征在于,所述DSP计算所述原始图像坐标值时,由于所述n路图像有重叠的视场区,场景视图中像素对应原图的坐标值有多个,采用最近邻法得到整数坐标值作为最终的原始图像坐标值。
6.根据权利要求1所述的抗相机扰动的多相机实时景象拼接系统,其特征在于,所述FPGA 进行所述图像接收控制包括:接收n路图像数据进行预处理,预处理操作后的图像数据分别存入n个显示缓存FIFO中,并将n个显示缓存FIFO中的图像数据存入外部图像DPRAM中,完成接收的n路图像数据的同步。
7.根据权利要求1所述的抗相机扰动的多相机实时景象拼接系统,其特征在于,所述FPGA接收所述DSP计算完成的拼接映射表并存入所述FPGA内部的拼接映射表DPRAM中,按地址从0开始递增的方式读所述拼接映射表DPRAM;将拼接映射表DPRAM读得的数据作为地址读所述外部图像DPRAM;从所述外部图像DPRAM读得的数据即是最终需要显示的拼接结果,将其按地址从0开始递增的方式写入所述显示FIFO,遍历完成后,所述显示FIFO中的数据即为拼接的全景图像。
抗相机扰动的多相机实时景象拼接系统\n技术领域\n[0001] 本发明属于图像拼接技术领域,具体涉及一种抗相机扰动的多相机实时景象拼接\n系统。\n背景技术\n[0002] 随着技术的进步,图像拼接已经进入到人们的日常生活,例如在数字相机中,全景\n图合成已经成为了一项数字相机的功能。全景图像拼接显示的任务是把多幅不同视点的图\n像按一定的方式拼接为一幅能反映场景360度视角的合成图像,经全景拼接后的图像应覆\n盖整个球视场并无缝平滑,且可以在整个球视场内任意视线角上以任意视场角平面显示,\n使用户能获得身临其境的体验。具体的生成过程是将各自投影平面的相互重叠图像映射到\n简单的几何体表面上,如球面、立方体表面或圆柱面,使得平面图像具有深度感,然后对投\n影图像进行无缝拼接,就可得到没有图像畸变的全景图像。当用户观察某一图像空间时,要\n将全景图像中相应部分反投影到观察平面上,给用户产生正确的观察结果,因而全景图像\n为用户提供了极大的观察自由度,使之可以任意地改变观察方向。图像拼接技术研究是计\n算机视觉研究的一个重要领域。该技术有着广泛的用途,例如卫星图像或航拍图像的合成、\n全景虚拟场景的建立、照片编辑等。现有的多相机实时景象拼接系统通常不能抗相机姿态\n扰动和无法实时生成漫游视场的缺点。\n发明内容\n[0003] 本发明旨在至少在一定程度上解决上述技术问题之一或至少提供一种有用的商\n业选择。为此,本发明的目的在于提出一种能够实时生成漫游视场的抗相机扰动的多相机\n实时景象拼接系统。\n[0004] 根据本发明实施例的抗相机扰动的多相机实时景象拼接系统,包括底板与插在所\n述底板上的拼接板,所述拼接板具体包括:FPGA,所述FPGA与所述底板的接口相连,用于进\n行图像接收控制以及进行拼接过程控制,所述FPGA内部包括拼接映射表DPRAM,其中,所述\nFPGA经过数模转换器与上位机相连;两个相同的DSP,所述两个相同的DSP分别与所述FPGA\n相连,所述DSP用于接收拼接参数后计算拼接映射表,并发送拼接映射表给FPGA;外部图像\nDPRAM,所述外部图像DPRAM与所述FPGA相连;n个输入图像FIFO,所述n 个输入图像FIFO分\n别与所述FPGA相连,用于分别缓存n路图像,其中n为大于1的正整数;以及显示FIFO,所述显\n示FIFO与所述FPGA相连。\n[0005] 根据本发明实施例的抗相机扰动的多相机实时景象拼接系统可以实时地生成漫\n游视场景象,并且可以抗相机姿态扰动。\n[0006] 另外,根据本发明实施例的抗相机扰动的多相机实时景象拼接系统还可以具有如\n下技术特征。\n[0007] 在本发明的一个实施例中,所述DSP的工作流程包括DSP系统初始化、图像拼接参\n数的读取、图像拼接映射表的生成和发送。\n[0008] 在本发明的一个实施例中,所述两个相同的DSP分别用于承担上半幅图像的拼接\n工作和下半幅图像的拼接工作,以保证在720×576分辨率下的25Hz帧频输出拼接映射表,\n满足实时漫游的需要。\n[0009] 在本发明的一个实施例中,在所述DSP中,接收拼接参数后计算拼接映射表的过程\n包括:所述DSP根据方位角、俯仰角、视场角及投影方式,计算拼接后的场景视图中每一个像\n素在畸变校正后图像中的坐标值,再通过畸变校正逆运算得到原始图像坐标值,所述原始\n图像坐标值和所述外部图像DPRAM地址是一一映射的关系,通过相应的映射,可以把所述原\n始图像坐标值转换为外部图像DPRAM地址值,这样所述DSP会生成一个拼接映射表,所述拼\n接映射表的大小与视场角参数相关,所述拼接映射表里面的每一个元素就是场景视图中对\n应像素在外部图像DPRAM中的地址值。\n[0010] 在本发明的一个实施例中,计算原始图像坐标值过程中,由于原始的多幅图有重\n叠的视场区,场景视图中像素对应原图的坐标值可能有多个,采用最近邻法得到整数坐标\n值作为最终的原始图像坐标值。\n[0011] 在本发明的一个实施例中,所述FPGA 进行图像接收控制包括:接收n路图像数据\n进行预处理,预处理操作后的结果数据分别存入n个显示缓存FIFO中,并将n个显示缓存\nFIFO 中的图像数据存入外部图像DPRAM中,完成接收的n路图像数据的同步。\n[0012] 在本发明的一个实施例中,所述FPGA 进行拼接过程控制包括:所述FPGA接收上位\n机发送的图像拼接参数,将图像拼接参数传输给所述DSP,所述DSP拼接映射表计算过程,所\n述FPGA接收所述DSP计算完成的拼接映射表并存入所述FPGA内部的拼接映射表 DPRAM中,\n按地址从0开始递增的方式读所述拼接映射表DPRAM;将拼接映射表DPRAM 读得的数据作为\n地址读所述外部图像DPRAM;从所述外部图像DPRAM读得的数据即是最终需要显示的拼接结\n果,将其按地址从0开始递增的方式写入显示缓存FIFO,遍历完成后显示FIFO中的数据即为\n拼接的全景图像。\n[0013] 本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变\n得明显,或通过本发明的实践了解到。\n附图说明\n[0014] 本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得\n明显和容易理解,其中:\n[0015] 图1是本发明实施例的抗相机扰动的多相机实时景象拼接系统的漫游视场图像生\n成算法流程图;\n[0016] 图2是本发明实施例的抗相机扰动的多相机实时景象拼接系统的结构框图;\n[0017] 图3是本发明实施例的系统的拼接板拼接部分的结构框图;\n[0018] 图4是本发明实施例的系统的拼接板拼接过程的流程示意图;\n[0019] 图5是本发明实施例的系统的DSP的流程示意图。\n具体实施方式\n[0020] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终\n相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附\n图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。\n[0021] 为使本领域技术人员更好地理解,申请人首先对本发明的多相机实时景象拼接系\n统工作原理进行说明。其工作原理是:多个相机可以进行姿态的改变,根据各个相机的外参\n数建立各幅图像之间的坐标变换关系,生成任意视线任意视场角的拼接图像,根据全景图\n像的投影算法得到全景图像。\n[0022] 当给定一个相机的视线角和视场角时,可以确定相机的内外参数,从而可计算物\n方空间坐标系和像素坐标系之间的坐标变换。在确定漫游视场图像上某一个像素的灰度值\n时,可以先根据该像素点的像素坐标(x,y),得到该像素点对应的射线方程。根据该射线方\n程可以得到物点P在物方坐标系中的坐标,根据物点P在物方坐标系中的坐标可以计算物点\nP在各个输入相机中的像素坐标。若其各个像素坐标在其输入相机的图像尺寸范围内,则取\n该图像中对应像素的灰度值作为漫游视场的对应像素的灰度值。上述确定任意视线角视场\n角图像像素灰度值的过程是漫游视场图像生成算法的主要原理,如图1所示,下面将漫游视\n场图像生成算法的详细流程叙述如下:\n[0023] S1,输入多个相机的内参数和漫游视场虚拟相机的内参数;\n[0024] S2,输入多个相机的外参数和图像;\n[0025] S3,输入漫游视场虚拟相机的外参数;\n[0026] S4,设定像素点(x,y)为漫游视场虚拟相机的图像的左上点;\n[0027] S5,计算出像素点(x,y)对应的射线方程,并得到像素点(x,y)对应的物点P在物方\n坐标系中的坐标(X,Y,Z);\n[0028] S6,计算物点P在各个输入相机中的像素坐标(xi,yi);\n[0029] S7,判断(xi,yi)是否在第i个相机的图像范围内,若在,则把像素点(xi,yi)的灰\n度值赋给像素点(x,y);\n[0030] S8,判断(x,y)是否在虚拟视场相机的图像的右下点,若在,则算法结束;否则(x,\ny)\n[0031] 按从左到右,从上到下的顺序遍历到图像的下一个像素点,并转到S6。\n[0032] 全景图像的显示算法,就是把输入的多幅图像表达的场景,显示到一到两幅图像\n上,使人能直观的看到360度范围内的场景。通常有三种投影方法,它们分别是鱼眼相机投\n影方法、半球投影方法和圆柱投影方法。\n[0033] 全景图像有两种基本类型:柱面全景图像和全方位全景图像,其中全方位全景图\n像又有球面映射和立方体表面映射两种主要映射方式。柱面映射的全景图像将外界场景映\n射到一个圆柱面上,观察者位于圆柱面旋转轴上的某一点。球面映射的全景图像将外界场\n景映射到一个球面上,观察者位于球心。立方体映射的全景图像将外界场景映射到一个立\n方体上,观察者位于立方体中心。\n[0034] 基于上述原理,本发明旨在提出一种采用FPGA+DSP架构的抗相机扰动的多相机实\n时景象拼接系统,由DSP计算图像拼接映射表,由FPGA完成图像拼接过程。DSP计算图像拼接\n映射表的原理是:DSP接收上位机发送过来的方位角、俯仰角、视场角及投影方式等参数,计\n算拼接后的场景视图中每一个像素在畸变校正后图像中的坐标值,再通过畸变校正逆运算\n得到原始图像坐标值。因为原始的多幅图有重叠的视场区,场景视图中像素对应原图的坐\n标值可能有几个,为了便于后面的计算,取其中的某一个坐标值。计算得到的坐标值一般都\n不是整数,为了方便操作,采用最近邻法,取最靠近的整数坐标值代替。坐标值和外部图像\nDPRAM地址是一一映射的关系,通过相应的映射,可以把坐标值都转换为外部图像 DPRAM地\n址值。这样DSP会生成一个拼接映射表,其大小与视场角参数相关,表里面的每一个元素就\n是场景视图中对应像素在外部图像DPRAM中的地址值。以上DSP计算拼接映射表的过程可以\n实时的根据各个相机的外参数计算得到,这种算法可以抗相机姿态的扰动,并且可以实时\n的生成漫游视场景象。\n[0035] FPGA完成图像拼接过程的原理是:接收多路图像并在FPGA外部图像DPRAM中完成\n多路图像数据的同步。将待拼接目的图像按像素从左到右、从上到下编号,对应着拼接映射\n表的地址;拼接映射表的值对应着原始图像的位置,即外部图像DPRAM中的地址。因此,FPGA\n完成图像拼接的过程如下:按地址从0开始递增的方式读FPGA内部拼接映射表 DPRAM;将拼\n接映射表DPRAM读得的数据作为地址读外部图像DPRAM;从外部图像 DPRAM读得的数据即是\n最终需要显示的拼接结果,将其按地址从0开始递增的方式写入显示缓存FIFO。当待拼接目\n的图像遍历完成时显示缓存FIFO中存储的就是拼接结果图像。\n[0036] 图2是本发明实施例的抗相机扰动的多相机实时景象拼接系统的结构框图。如图2\n所示,该抗相机扰动的多相机实时景象拼接系统,包括底板1与拼接板2,其中底板1包括系\n统所有的外部接口,拼接板2接收多路相机图像完成多路图像的拼接工作并插在底板1上。\n拼接板2采用FPGA+DSP架构,该拼接板2具体包括:一块FPGA21、两个相同的DSP 22、外部图\n像DPRAM23、n个输入图像FIFO24以及显示FIFO25。其中,FPGA21与底板1的接口相连,用于进\n行图像接收控制以及进行拼接过程控制。FPGA21内部包括拼接映射表DPRAM211。FPGA21还\n经过数模转换器与上位机相连。两个相同的DSP22分别与 FPGA21相连。DSP22用于接收拼接\n参数后计算拼接映射表,并发送拼接映射表给FPGA 21。外部图像DPRAM23与FPGA21相连。n\n个输入图像FIFO24分别与FPGA21相连,用于分别缓存n路图像,其中n为大于1的正整数。显\n示FIFO25与FPGA21相连。\n[0037] 本发明实施例的抗相机扰动的多相机实时景象拼接系统中的FPGA21负责图像接\n收同步,给DSP22中断信号令其发送拼接映射表,完成拼接过程。DSP22负责获取拼接参数,\n计算拼接映射表,发送拼接映射表给FPGA21,DSP22计算根据多路相机的外参数计算拼接映\n射表的从而完成拼接的算法可以抗相机姿态扰动,并且可以实时得到漫游视场景象。\n[0038] 在本发明的一个实施例中,DSP22的工作流程包括DSP系统初始化、图像拼接参数\n的读取、图像拼接映射表的生成和发送。\n[0039] 在本发明的一个实施例中,两个相同的DSP22分别用于承担上半幅图像的拼接工\n作和下半幅图像的拼接工作。\n[0040] 在本发明的一个实施例中,在DSP22中,接收拼接参数后计算拼接映射表的过程包\n括: DSP22根据方位角、俯仰角、视场角及投影方式,计算拼接后的场景视图中每一个像素\n在畸变校正后图像中的坐标值,再通过畸变校正逆运算得到原始图像坐标值,原始图像坐\n标值和外部图像DPRAM地址是一一映射的关系,通过相应的映射,可以把原始图像坐标值转\n换为外部图像DPRAM地址值,这样DSP22会生成一个拼接映射表,拼接映射表的大小与视场\n角参数相关,拼接映射表里面的每一个元素就是场景视图中对应像素在外部图像DPRAM 23\n中的地址值。\n[0041] 在本发明的一个实施例中,计算原始图像坐标值过程中,由于原始的多幅图有重\n叠的视场区,场景视图中像素对应原图的坐标值可能有多个,采用最近邻法得到整数坐标\n值作为最终的原始图像坐标值。\n[0042] 在本发明的一个实施例中,FPGA 21进行图像接收控制包括:接收n路图像数据进\n行预处理,预处理操作后的结果数据分别存入n个显示缓存FIFO24中,并将n个显示缓存\nFIFO 24中的图像数据存入外部图像DPRAM23中,完成接收的n路图像数据的同步。\n[0043] 在本发明的一个实施例中,FPGA 21进行拼接过程控制包括:FPGA21接收上位机发\n送的图像拼接参数,将图像拼接参数传输给DSP22,DSP22计算拼接映射表,FPGA21接收 \nDSP22计算完成的拼接映射表并存入FPGA21内部的拼接映射表DPRAM211中,按地址从0开始\n递增的方式读拼接映射表DPRAM211;将拼接映射表DPRAM211读得的数据作为地址读外部图\n像DPRAM24;从外部图像DPRAM24读得的数据即是最终需要显示的拼接结果,将其按地址从0\n开始递增的方式写入显示缓存FIFO25,遍历完成后显示FIFO25 中的数据即为拼接的全景\n图像。\n[0044] 为使本领域技术人员更好地理解本发明,下面列举一个适于拼接六路图像数据的\n抗相机扰动的多相机实时景象拼接系统的例子进行详细说明。\n[0045] 该具体实施例的系统中,拼接板拼接部分核心包括1片FPGA,2片DSP,FPGA内部拼\n接映射表DPRAM,FPGA外部图像DPRAM,显示缓存FIFO,拼接板拼接部分系统框图如附图3所\n示。拼接板完成全景图像拼接的流程图如附图4所示,拼接板完成全景图像拼接的工作流程\n为:\n[0046] (1)拼接板FPGA从底板接收6个相机输出的6路图像数据;\n[0047] (2)拼接板FPGA将接收的6路图像数据进行预处理操作,预处理操作包括灰度校\n正,图像量化;\n[0048] (3)由于6个相机之间没有同步关系,所以需要将6路图像数据进行同步,拼接板 \nFPGA将预处理之后的6路图像分别缓存入6个输入图像FIFO;\n[0049] (4)拼接板FPGA将6个输入图像FIFO中的数据读入FPGA外部的图像DPRAM中,在外\n部图像DPRAM中实现6路图像数据的同步,同步后的DPRAM中的数据作为后续拼接过程所需\n的数据源;\n[0050] (5)拼接板使用一个显示缓存FIFO作为待显示的图像数据的输出缓存,将该FIFO\n中缓存好的数据经D/A转换送上位机监视器显示,实现上位机与多相机实时景象拼接系统\n的人机交互;\n[0051] (6)拼接板上的2个DSP完成初始化操作;\n[0052] (7)拼接板上的2个DSP读取上位机发送的图像拼接参数,图像拼接参数包括方位\n角、俯仰角、视场角及投影方式等。2个DSP在图像拼接参数的获取上有所不同,假设2个DSP \n分别记为DSP0,DSP1,DSP0作为主DSP,DSP0接收到FPGA给出的串口中断后,响应中断,从\nFPGA内的FIFO中读取图像拼接参数,更新DSP0内部的图像拼接参数列表,并通过McBSP将获\n得的图像拼接参数列表发送给DSP1,发送完成后DSP0进入生成图像拼接映射表流程,DSP1\n接收到DSP0通过McBSP发送过来的图像拼接参数,更新DSP1内部的图像拼接参数列表,然后\n进入生成图像拼接映射表流程;\n[0053] (8)DSP开始生成图像拼接映射表的流程,其中DSP0负责上半幅图像的拼接映射表\n的计算,DSP1负责下半幅图像的拼接映射表的计算,响应FPGA中断将2个DSP计算好的拼接\n映射表发送到FPGA内部的拼接映射表DPRAM中,供FPGA拼接使用,同时根据图像拼接参数列\n表内的拼接参数开始新一轮的图像拼接映射表计算;\n[0054] (9)按地址从0开始递增的方式读FPGA内部拼接映射表DPRAM;将拼接映射表 \nDPRAM读得的数据作为地址读外部图像DPRAM;从外部图像DPRAM读得的数据即是最终需要\n显示的拼接结果,将其按地址从0开始递增的方式写入显示缓存FIFO,遍历完成后显示FIFO\n中的数据即为拼接的全景图像。\n[0055] 下面分FPGA和DSP介绍拼接板的各个关键模块。\n[0056] 拼接板FPGA的主要功能模块包括图像接收模块和拼接控制模块。\n[0057] 在拼接板FPGA的图像接收模块中,由于六路相机之间没有任何的同步关系,所以\n先需要将每一路图像分别接收下来,存储在6个外部图像输入FIFO中。图像存入FIFO前先进\n行灰度校正和图像位宽转化等预处理操作。存入6个FIFO的图像接下来要搬运到外部图像 \nDPRAM中,在外部图像DPRAM中实现6路图像数据的同步,具体策略是采用轮流查询策略,即\n按顺序依次查询每一路的数据是否准备好。若检测到其中某一路数据准备好,则启动该路\n的传输,将图像数据从FIFO搬运到DPRAM相应的地址空间中,六路图像数据分时写入DPRAM\n完成六路图像数据的同步。同步后的DPRAM中数据用于接下来的拼接工作,或者将同步接收\n后的数据送输出FIFO缓存,然后经D/A转换送上位机显示。\n[0058] 在拼接板FPGA的拼接控制模块中,FPGA接收上位机发送的图像拼接参数,图像拼\n接参数包括方位角、俯仰角、视场角及投影方式等参数,FPGA把图像拼接参数放入内部 \nFIFO中缓存,FPGA给DSP发送中断信号,DSP响应中断并接收图像拼接参数并开始进行拼接\n映射表的计算,拼接过程中当场消隐上升沿到来时,先给DSP0发送中断令其向FPGA 内部传\n输上半幅拼接映射表,从0地址开始写FPGA内部拼接映射表DPRAM,当拼接映射表写入一部\n分后,拼接控制模块清空显示缓存FIFO开始拼接图像,FPGA做图像拼接的过程为:按地址从\n0开始递增的方式读FPGA内部拼接映射表DPRAM;将拼接映射表 DPRAM读得的数据作为地址\n读外部图像DPRAM;从外部图像DPRAM读得的数据即是最终需要显示的拼接结果,将其按地\n址从0开始递增的方式写入显示缓存FIFO。当拼接模块读到内部DPRAM最后一个地址时,将\n地址转为0继续拼接下半幅图。DSP1的中断是在 DSP0写完上半幅拼接映射表时给出的,当\n上半幅图拼接完成的时候DSP1已经向内部DPRAM中写入了部分下半幅拼接映射表,当拼接\n模块将读内部DPRAM的地址转为0时,可以继续下半幅图的拼接,拼接过程第二次读内部\nDPRAM完成后,整幅图的拼接任务完成。拼接结果同样缓存在显示缓存FIFO中。显示缓存\nFIFO中存储的就是全景拼接图像。\n[0059] 拼接板DSP计算拼接映射表的原理是:DSP接收上位机发送过来的方位角、俯仰角、\n视场角及投影方式等参数,计算拼接后的场景视图中每一个像素在畸变校正后图像中的坐\n标值,再通过畸变校正逆运算得到原始图像坐标值。因为原始的6幅图有重叠的视场区,场\n景视图中像素对应原图的坐标值可能有几个,为了便于后面的计算,取其中的某一个坐标\n值。计算得到的坐标值一般都不是整数,为了方便操作,采用最近邻法,取最靠近的整数坐\n标值代替。坐标值和外部图像DPRAM地址是一一映射的关系,通过相应的映射,可以把坐标\n值都转换为外部图像DPRAM地址值。这样DSP会生成一个拼接映射表,其大小与视场角参数\n相关,表里面的每一个元素就是场景视图中对应像素在外部图像DPRAM中的地址值。\n[0060] 为了保证图像拼接的实时性,图像全景拼接系统中使用了两块DSP芯片,分别记做 \nDSP0,DSP1。DSP0承担上半幅图像的拼接映射表的计算工作,DSP1负责下半幅图像的拼接映\n射表的计算工作。两片DSP内部均要开辟的专用存储区间包括畸变校正映射表,图像拼接参\n数列表,图像拼接映射表。畸变校正映射表用于图像几何畸变校正,图像拼接参数列表用于\n存放图像拼接参数,拼接参数包括方位角、俯仰角、视场角及投影方式等,计算得到的拼接\n映射表用于后续的全景图像拼接过程。\n[0061] 两片DSP的工作流程基本一样。其主要功能包括DSP系统初始化、图像拼接参数的\n读取、图像拼接映射表的生成和发送。DSP的详细处理流程参见图5。\n[0062] DSP系统初始化完成之后,进入图像拼接主程序。DSP首先获取图像拼接参数,图像\n拼接参数包括方位角、俯仰角、视场角及投影方式等。DSP0和DSP1在图像拼接参数的获取上\n有所不同。DSP0接收到FPGA给出的串口中断后,响应中断,从FPGA内的FIFO中读取图像拼接\n参数,更新DSP0内部的图像拼接参数列表,并通过McBSP将获得的参数发送给DSP1,发送完\n成后DSP0进入生成图像拼接映射表流程。DSP1接收到DSP0通过 McBSP发送过来的图像拼接\n参数,更新DSP1内部的图像拼接参数列表,然后进入生成图像拼接映射表流程。\n[0063] DSP0和DSP1在图像拼接映射表的生成和发送流程上基本是一样的。DSP在收到\nFPGA 送出的发送拼接映射表中断后,响应中断,启动传输,将存储在DSP内部的图像拼接映\n射表送出,同时根据图像拼接参数列表内的拼接参数开始新一轮的图像拼接映射表计算。\n[0064] 当给定六个相机的位置和参数之后,全景图像的拼接映射表就是确定的。6个半球\n视场模式只有在切换到其中之一的时候计算一次图像拼接映射表,之后在不切换模式的情\n况下,DSP0、DSP1就一直发送之前计算好的图像拼接映射表。\n[0065] 在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于\n描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特\n定的方位构造和操作,因此不能理解为对本发明的限制。\n[0066] 此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性\n或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者\n隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,\n除非另有明确具体的限定。\n[0067] 在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机\n械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元\n件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发\n明中的具体含义。\n[0068] 流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括\n一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部\n分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺\n序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明\n的实施例所属技术领域的技术人员所理解。\n[0069] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示\n例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特\n点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不\n一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何\n的一个或多个实施例或示例中以合适的方式结合。\n[0070] 尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例\n性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨\n的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
法律信息
- 2020-11-27
未缴年费专利权终止
IPC(主分类): H04N 5/232
专利号: ZL 201310682821.3
申请日: 2013.12.12
授权公告日: 2019.03.12
- 2019-03-12
- 2016-07-27
实质审查的生效
IPC(主分类): H04N 5/232
专利申请号: 201310682821.3
申请日: 2013.12.12
- 2014-03-12
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2013-10-23
|
2012-03-31
| | |
2
| |
2010-12-01
|
2009-05-27
| | |
3
| | 暂无 |
2006-03-30
| | |
4
| |
2010-07-21
|
2009-10-13
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |