CN111294580A - 基于gpu的摄像头视频投影方法、装置、设备及存储介质 - Google Patents
基于gpu的摄像头视频投影方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111294580A CN111294580A CN202010172352.0A CN202010172352A CN111294580A CN 111294580 A CN111294580 A CN 111294580A CN 202010172352 A CN202010172352 A CN 202010172352A CN 111294580 A CN111294580 A CN 111294580A
- Authority
- CN
- China
- Prior art keywords
- pixel
- video frame
- camera
- video
- gpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/12—Picture reproducers
- H04N9/31—Projection devices for colour picture display, e.g. using electronic spatial light modulators [ESLM]
- H04N9/3179—Video signal processing therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/80—Camera processing pipelines; Components thereof
- H04N23/81—Camera processing pipelines; Components thereof for suppressing or minimising disturbance in the image signal generation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
- Transforming Electric Information Into Light Information (AREA)
- Controls And Circuits For Display Device (AREA)
- Studio Devices (AREA)
Abstract
本申请实施例公开了基于GPU的摄像头视频投影方法、装置、设备及存储介质。本申请实施例提供的技术方案通过GPU对摄像头回传的视频流进行硬解码得到原始视频帧,并基于逐像素映射关系在GPU中对原始视频帧进行畸变校正,得到校正视频帧,此时得到的校正视频帧可传输给渲染管线进行视频投影流程,通过调节相机在三维场景中的位置姿态实现视频画面和三维场景的融合,有效提高视频的投影效果,并且视频数据全程在GPU中进行处理,减少视频数据在显存和内存之间的多次拷贝,极大提高了视频投影的效率。
Description
技术领域
本申请实施例涉及图像处理领域,尤其涉及基于GPU的摄像头视频投影方法、装置、设备及存储介质。
背景技术
目前的视频投影方案都是基于针孔相机模型的,即认为相机符合理想的无畸变小孔成像模型,在投影配置过程中,通过设置相机的视场角并调节相机的位置姿态等外方位参数,使得相机在三维数字空间中的相对位置姿态和其在物理世界里的位置姿态相同,如此便可实现视频投影画面和三维模型完美贴合。
然而在实际工程中,摄像头往往是带有畸变的,尤其是鱼眼和广角相机,其视频画面中的笔直的道路往往会变成曲线,在进行投影前需要对画面进行校正,视频的解码、畸变校正和投影需要对每帧画面的每个像素做处理,传统方法中视频无论是软件解码还是硬件解码都会将画面返回到内存中,然后再做畸变校正和投影,存在数据在显存和内存之间多次拷贝而影响效率的问题。
发明内容
本申请实施例提供基于GPU(Graphic Processing Unit,图形处理器)的摄像头视频投影方法、装置、设备及存储介质,以减少数据在显存和内存之间的拷贝,提高投影效率。
在第一方面,本申请实施例提供了基于GPU的摄像头视频投影方法,包括:
基于摄像头的畸变参数,确定原始视频帧和校正视频帧之间的逐像素映射关系,并将所述逐像素映射关系保存在显存中,所述校正视频帧由所述原始视频帧经畸变校正获得;
对摄像头回传的视频流进行GPU硬解码,得到原始视频帧;
根据所述逐像素映射关系,在GPU中对所述原始视频帧进行畸变校正,得到校正视频帧;
通过显存拷贝的方式将所述校正视频帧发送给渲染管线,由渲染管线对所述校正视频帧进行视频投影。
进一步的,所述基于摄像头的畸变参数,确定原始视频帧和校正视频帧之间的逐像素映射关系,并将所述逐像素映射关系保存在显存中,包括:
基于摄像头的设备ID,从相机数据库中获取对应的畸变参数;
基于所述畸变参数计算原始视频帧和校正视频帧之间的逐像素映射关系;
建立所述逐像素映射关系与设备ID的关联关系,并将所述逐像素映射关系保存在显存中。
进一步的,所述根据所述逐像素映射关系,在GPU中对所述原始视频帧进行畸变校正,得到校正视频帧之前,还包括:
获取摄像头的设备ID,并基于逐像素映射关系与设备ID的关联关系,从显存中确定用于对所述原始视频帧进行畸变校正的逐像素映射关系。
进一步的,所述根据所述逐像素映射关系,在GPU中对所述原始视频帧进行畸变校正,得到校正视频帧,包括:
根据所述逐像素映射关系,在GPU中将所述原始视频帧中的每个像素点转换为校正视频帧中的像素点;
根据像素点的对应关系从所述视频帧中确定所述校正视频帧中每个像素点的像素数据。
进一步的,所述根据所述逐像素映射关系,在GPU中对所述原始视频帧进行畸变校正,得到校正视频帧之后,还包括:
根据视频投影的需要对校正视频帧进行投影预处理,所述投影预处理包括亮度调节、透明度调节以及边缘裁剪中的一种或多种的组合。
进一步的,所述基于摄像头的畸变参数,确定原始视频帧和校正视频帧之间的逐像素映射关系,并将所述逐像素映射关系保存在显存中之前,还包括:
基于棋盘格标定法确定摄像头的畸变参数,并将所述畸变参数保存在对应摄像头的相机数据库中,所述相机数据库设置于内存中。
进一步的,所述基于摄像头的畸变参数,确定原始视频帧和校正视频帧之间的逐像素映射关系,并将所述逐像素映射关系保存在显存中之后,还包括:
对相机数据库中的畸变参数进行监视,并响应于畸变参数的变化对所述逐像素映射关系进行更新。
在第二方面,本申请实施例提供了基于GPU的摄像头视频投影装置,包括映射关系确定模块、视频解码模块、畸变校正模块和视频投影模块,其中:
映射关系确定模块,用于基于摄像头的畸变参数,确定原始视频帧和校正视频帧之间的逐像素映射关系,并将所述逐像素映射关系保存在显存中;
视频解码模块,用于对摄像头回传的视频流进行GPU硬解码,得到原始视频帧;
畸变校正模块,用于根据所述逐像素映射关系,在GPU中对所述原始视频帧进行畸变校正,得到校正视频帧;
视频投影模块,用于通过显存拷贝的方式将所述校正视频帧发送给渲染管线,由渲染管线对所述校正视频帧进行视频投影。
进一步的,所述映射关系确定模块具体用于:
基于摄像头的设备ID,从相机数据库中获取对应的畸变参数;
基于所述畸变参数计算原始视频帧和校正视频帧之间的逐像素映射关系;
建立所述逐像素映射关系与设备ID的关联关系,并将所述逐像素映射关系保存在显存中。
进一步的,所述装置还包括映射关系获取模块,所述映射关系获取模块用于在所述畸变校正模块根据所述逐像素映射关系,在GPU中对所述原始视频帧进行畸变校正,得到校正视频帧之前,获取摄像头的设备ID,并基于逐像素映射关系与设备ID的关联关系,从显存中确定用于对所述原始视频帧进行畸变校正的逐像素映射关系。
进一步的,所述畸变校正模块具体用于:
根据所述逐像素映射关系,在GPU中将所述原始视频帧中的每个像素点转换为校正视频帧中的像素点;
根据像素点的对应关系从所述视频帧中确定所述校正视频帧中每个像素点的像素数据。
进一步的,所述装置还包括预处理模块,所述预处理模块用于在所述畸变校正模块根据所述逐像素映射关系,在GPU中对所述原始视频帧进行畸变校正,得到校正视频帧之后,根据视频投影的需要对校正视频帧进行投影预处理,所述投影预处理包括亮度调节、透明度调节以及边缘裁剪中的一种或多种的组合。
进一步的,所述装置还包括参数存储模块,所述参数存储模块用于在映射关系确定模块基于摄像头的畸变参数,确定原始视频帧和校正视频帧之间的逐像素映射关系,并将所述逐像素映射关系保存在显存中之前,基于棋盘格标定法确定摄像头的畸变参数,并将所述畸变参数保存在对应摄像头的相机数据库中,所述相机数据库设置于内存中。
进一步的,所述装置还包括监视模块,所述监视模块用于在映射关系确定模块基于摄像头的畸变参数,确定原始视频帧和校正视频帧之间的逐像素映射关系,并将所述逐像素映射关系保存在显存中之后,对相机数据库中的畸变参数进行监视,并响应于畸变参数的变化对所述逐像素映射关系进行更新。
在第三方面,本申请实施例提供了一种计算机设备,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的基于GPU的摄像头视频投影方法。
在第四方面,本申请实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的基于GPU的摄像头视频投影方法。
本申请实施例通过GPU对摄像头回传的视频流进行硬解码得到原始视频帧,并基于逐像素映射关系在GPU中对原始视频帧进行畸变校正,得到校正视频帧,此时得到的校正视频帧可传输给渲染管线进行视频投影流程,通过调节相机在三维场景中的位置姿态实现视频画面和三维场景的融合,有效提高视频的投影效果,并且视频数据全程在GPU中进行处理,减少视频数据在显存和内存之间的多次拷贝,畸变校正和视频投影相结合并统一到GPU中加速,极大提高了视频投影的效率,有效解决视频卡顿的问题。
附图说明
图1是本申请实施例提供的基于GPU的摄像头视频投影方法的流程图;
图2是本申请实施例提供的另一种基于GPU的摄像头视频投影方法的流程图;
图3是本申请实施例提供的基于GPU的摄像头视频投影装置的结构示意图;
图4是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
图1给出了本申请实施例提供的基于GPU的摄像头视频投影方法的流程图,本申请实施例提供的基于GPU的摄像头视频投影方法可以由基于GPU的摄像头视频投影装置来执行,该基于GPU的摄像头视频投影装置可以通过硬件和/或软件的方式实现,并集成在计算机设备中。
下述以基于GPU的摄像头视频投影装置执行基于GPU的摄像头视频投影方法为例进行描述。参考图1,该基于GPU的摄像头视频投影方法包括:
S101:基于摄像头的畸变参数,确定原始视频帧和校正视频帧之间的逐像素映射关系,并将所述逐像素映射关系保存在显存中。
其中,原始视频帧应理解为由摄像头回传的视频流中的视频帧,校正视频帧应理解为由原始视频帧经畸变校正获得的视频帧。畸变参数用于对成像效果存在畸变的摄像头拍摄出的原始视频帧进行畸变校正,从而得到校正视频帧。
具体的,在安装固定摄像头后,对摄像头进行标定,获取摄像头的内外参数及畸变参数,并将摄像头的内外参数及畸变参数保存在内存中。
进一步的,在启动视频投影功能的程序后,从内存中调取对应摄像头的内外参数和畸变参数,基于畸变参数确定原始视频帧和校正视频帧之间的逐像素映射关系,并将该逐像素映射关系保存在显存中。通过该逐像素映射关系,可将原始视频帧中每个像素点的位置映射到校正视频帧相应的位置上。
S102:对摄像头回传的视频流进行GPU硬解码,得到原始视频帧。
示例性的,在接收到摄像头回传的视频流后,利用GPU的硬件解码器对视频流进行硬解码,得到原始视频帧,并保存在显存中。
本实施例中的GPU可以是NVIDIA显卡中的图形处理芯片,硬件解码器为内置在NVIDIA显卡内部的独立的视频解码模块,支持H.264和H.265解码,最大分辨率8K。
S103:根据所述逐像素映射关系,在GPU中对所述原始视频帧进行畸变校正,得到校正视频帧。
示例性的,在得到原始视频帧后,基于原始视频帧和校正视频帧之间的逐像素映射关系,在GPU中将原始视频帧中每个像素点的坐标位置代入逐像素映射关系中,从而得到该像素点在校正视频帧中的坐标位置。
进一步的,在得到原始视频帧中每一个像素点对应于校正视频帧的位置后,GPU再根据两视频帧像素点之间的对应关系,获取原始视频帧的每个像素点的颜色值,并将颜色值赋值给校正视频帧对应的像素点上,从而得到畸变校正后的校正视频帧。
可以理解的是,在对原始视频帧进行畸变校正并得到校正视频帧后,此时校正视频帧中的畸变已经被消除,视觉效果等效于针孔相机的画面,可将校正视频帧在GPU中进行基于无畸变图像的视频投影。
S104:通过显存拷贝的方式将所述校正视频帧发送给渲染管线,由渲染管线对所述校正视频帧进行视频投影。
示例性的,在得到校正视频帧后,通过显存拷贝的方式将校正视频帧传输给GPU中的渲染管线进行视频投影的流程,由于校正视频帧已消除了摄像头畸变的影像,可按照无畸变图像的视频投影流程进行视频投影,通过调节相机在三维场景中的位置姿态实现视频画面和三维场景的融合。
具体的,渲染管线将校正视频帧在三维场景中进行映射和融合,即调节相机在三维场景中的位置姿态,确定视频帧中的像素与三维场景中的三维点之间的映射关系,并根据映射关系将视频帧在三维场景中进行颜色纹理映射,并对颜色纹理映射的重合区域进行平滑过渡处理,从而将视频帧融合在三维场景中,完成校正视频帧在三维场景中的视频投影。可以理解的是,对视频帧的视频投影基于现有的视频投影方法进行即可,在此不做赘述。
通常情况下,用于视频投影的摄像头一般是基于无畸变的针孔摄像头进行的,然而受限于针孔摄像头的成像效果,投影画面中需要进行多次边缘融合拼接,导致投影效果下降,并且对计算机的计算资源耗费较大。
若采用广角镜头、鱼眼镜头等拍摄角度更大的摄像头进行视频投影,不可避免的要对摄像头拍摄的视频帧进行畸变校正。目前,对视频帧的畸变校正都是在CPU中进行,需要在CPU和GPU中反复拷贝数据,并且在CPU中进行的畸变校正基于串行计算进行,由此造成视频投影的效率大幅下降。为了避免这种情况的发生,市面上基本采用针孔摄像头进行视频投影的方案。
但是在一些特定的场合(如机场、车站),对摄像头的安装具有一定的要求,例如必须要用到广角镜头、鱼眼镜头等摄像头的场地,或者是由于设备受限的原因(例如先前已安装广角镜头、鱼眼镜头等摄像头,或者是现场时间紧急且只有广角镜头、鱼眼镜头等摄像头),摄像头回传的视频流在解码后需要在CPU和GPU中反复拷贝数据,投影效果不理想。本实施例提供的方案通过GPU全程加速,在GPU中完成视频帧解码、畸变校正和视频投影的流程,有效解决现有技术中视频投影效果差、效率低的问题。
上述,通过GPU对摄像头回传的视频流进行硬解码得到原始视频帧,并基于逐像素映射关系在GPU中对原始视频帧进行畸变校正,得到校正视频帧,此时得到的校正视频帧可传输给渲染管线进行视频投影流程,通过调节相机在三维场景中的位置姿态实现视频画面和三维场景的融合,有效提高视频的投影效果,并且畸变校正和视频投影相结合并统一到GPU中加速,视频数据全程在GPU中进行处理,减少视频数据在显存和内存之间的多次拷贝,极大提高了视频投影的效率,有效解决视频卡顿的问题。
图2为本申请实施例提供的另一种基于GPU的摄像头视频投影方法的流程图,该基于GPU的摄像头视频投影方法是对上述基于GPU的摄像头视频投影方法的具体化。参考图2,该基于GPU的摄像头视频投影方法包括:
S201:基于棋盘格标定法确定摄像头的畸变参数,并将所述畸变参数保存在对应摄像头的相机数据库中,所述相机数据库设置于内存中。
具体的,每一台摄像头均对应设置有一个设备ID,设备ID可以是设备的MAC地址、IP地址、设备编号等。进一步的,在内存中针对每个摄像头创建一个相机数据库,并将每个相机数据库与对应摄像头的设备ID进行关联,根据设备ID可访问对应的相机数据库并获取其中的数据。
进一步的,通过棋盘格标定法对每个摄像头进行标定,得到由标定结果确定的内外参数和畸变参数,并将内外参数和畸变参数保存在对应的相机数据库中。可以理解的是,对摄像头的标定一般在完成摄像头的安装或者在对摄像头进行调试时进行,在重新对摄像头进行标定时,将重新获得的内外参数和畸变参数对原有的内外参数和畸变参数进行覆盖更新。
其中,内外参数包括内参和外参,内参由摄像头本身确定,不因外界环境的变化而改变,相机的内参包括1/dx、1/dy、r、u0、v0、f这6个参数,在opencv中的内参是4个,分别为fx、fy、u0、v0,其实在opencv中的fx也就是F*Sx,其中F是焦距,即f,Sx是像素/每毫米,即1/dx,dx和dy表示x方向和y方向的一个像素分别占多少个单位,是反映现实中的图像物理坐标关系与像素坐标系转换的关键,u0,v0代表图像的中心像素坐标和图像原点像素坐标之间相差的横向和纵向像素数。
相机的外参包括旋转参数R和平移参数T,三个轴(x、y、z)的旋转参数分别为(ω、δ、θ),把每个轴的3*3旋转矩阵进行组合(即矩阵之间相乘),得到集合三个轴旋转信息的R,其大小还是3*3;T的三个轴的平移参数为(Tx、Ty、Tz)。R、T组合成3*4的矩阵,其是转换到标定纸坐标的关键。
畸变参数包括径向畸变系数k1、k2、k3和切向畸变系数p1、p2。其中径向畸变发生在相机坐标系转图像物理坐标系的过程中,而切向畸变是由于感光元平面跟透镜不平行而发生。
S202:基于摄像头的设备ID,从相机数据库中获取对应的畸变参数。
具体的,在启动视频投影功能的程序后,根据视频投影功能需要调用的画面对应的摄像头,确定这些摄像头的设备ID,并基于设备ID和相机数据库的关联关系,确定保存这些摄像头的内外参数和畸变参数的相机数据库并进行访问,并从相机数据库中调取内外参数和畸变参数。
可以理解的是,内外参数和畸变参数的获取在启动视频投影功能的程序并进行初始化时进行即可,在程序运行过程中,只要摄像头的内外参数和畸变参数没有发生变化,无需重复从相机数据库中调取内外参数和畸变参数。
S203:基于所述畸变参数计算原始视频帧和校正视频帧之间的逐像素映射关系。
其中,原始视频帧应理解为由摄像头回传的视频流中的视频帧,校正视频帧应理解为由原始视频帧经畸变校正获得的视频帧。
具体的,基于内外参数和畸变参数计算原始视频帧和校正视频帧之间的逐像素映射关系。其中,对于径向畸变:
x'=x(1+k1r2+k2r4+k3r6)
y'=y(1+k1r2+k2r4+k3r6)
其中,(x,y)是畸变点(原始视频帧上的像素点)的位置坐标,(x′,y′)是校正后的新位置(校正视频帧上的像素点),r为该点距离成像中心(相机)的距离,k1、k2、k3为径向畸变***。
对于切向畸变:
x'=x+[2p1y+p2(r2+2x2)]
y'=y+[2p1x+p2(r2+2y2)]
其中,(x,y)是畸变点(原始视频帧上的像素点)的位置坐标,(x′,y′)是校正后的新位置(校正视频帧上的像素点),r为该点距离成像中心(相机)的距离,p1、p2为切向畸变***。
基于以上公式可建立原始视频帧和校正视频帧之间的逐像素映射关系,将原始视频帧中的像素点坐标带入逐像素映射关系中即可得到对应校正视频帧上的像素点坐标。
S204:建立所述逐像素映射关系与设备ID的关联关系,并将所述逐像素映射关系保存在显存中。
具体的,在确定原始视频帧和校正视频帧之间的逐像素映射关系后,将该逐像素映射关系与对应摄像头的设备ID进行关联,从而建立逐像素映射关系与摄像头的关联关系。
进一步的,完成逐像素映射关系与摄像头的关联后,将逐像素映射关系及其与摄像头的关联关系保存在显存中。
S205:对摄像头回传的视频流进行GPU硬解码,得到原始视频帧。
S206:获取摄像头的设备ID,并基于逐像素映射关系与设备ID的关联关系,从显存中确定用于对所述原始视频帧进行畸变校正的逐像素映射关系。
具体的,摄像头回传的视频流所携带的设备信息中包含设备ID,在接受摄像头回传的视频流并对视频流进行解码后,获取视频流所携带的设备ID,并根据逐像素映射关系与设备ID的关联关系,确定并获取用于对原始视频帧进行畸变校正的逐像素映射关系在显存中的保存位置,并从该保存位置中获取逐像素映射关系。
S207:根据所述逐像素映射关系,在GPU中将所述原始视频帧中的每个像素点转换为校正视频帧中的像素点。
具体的,在获取逐像素映射关系后,将原始视频帧中每个像素点的坐标位置带入逐像素映射关系中,并计算出该像素点在校正视频帧中的坐标位置。遍历原始视频帧的所有像素点,将原始视频帧中的每个像素点都转换为校正视频帧中的像素点。
S208:根据像素点的对应关系从所述视频帧中确定所述校正视频帧中每个像素点的像素数据。
具体的,在完成原始视频帧中的每个像素点到校正视频帧的映射后,遍历校正视频帧中的每个像素点,获取每个像素点在原始视频帧中的像素数据,并赋值到校正视频帧的对应像素点上,从而得到畸变校正后的校正视频帧,此时校正视频帧中的畸变已经被消除。其中,像素数据包括颜色值、深度等。
可以理解的是,像素数据的获取与赋值还可以在确定每个像素点在原始视频帧和校正视频帧之间的映射的同步进行。
S209:根据视频投影的需要对校正视频帧进行投影预处理,所述投影预处理包括亮度调节、透明度调节以及边缘裁剪中的一种或多种的组合。
具体的,在得到矫正后的校正视频帧后,根据视频投影的需要对校正视频帧进行投影预处理,以使传输给渲染管线的矫正视频帧满足投影需求。
其中投影预处理包括亮度调节、透明度调节以及边缘裁剪中的一种或多种的组合。根据摄像头的不同位置及摄像头的成像效果,可设置不同的投影预处理的方式,例如对成像效果较暗的摄像头,可提高其对应的校正视频帧的亮度或透明度。其中边缘剪裁可根据投影的需求以校正视频帧的像素中心点为中心进行裁剪。
S210:通过显存拷贝的方式将所述校正视频帧发送给渲染管线,由渲染管线对所述校正视频帧进行视频投影。
S211:对相机数据库中的畸变参数进行监视,并响应于畸变参数的变化对所述逐像素映射关系进行更新。
具体的,在投影功能程序的运行过程中,根据视频投影功能需要调用的画面对应的摄像头,确定这些摄像头的设备ID,并基于设备ID和相机数据库的关联关系,确定需要进行监视的相机数据库。
进一步的,调用数据监视器对相机数据库中的内外参数和畸变参数进行监视,并在内外参数或畸变参数发生变化时,从内存的相机数据库中获取变化后的内外参数和畸变参数,并根据该内外参数和畸变参数重新进行逐像素映射关系的计算,并对原逐像素映射关系进行覆盖更新。
上述,通过GPU对摄像头回传的视频流进行硬解码得到原始视频帧,并基于逐像素映射关系在GPU中对原始视频帧进行畸变校正,得到校正视频帧,此时得到的校正视频帧可传输给渲染管线进行视频投影流程,通过调节相机在三维场景中的位置姿态实现视频画面和三维场景的融合,有效提高视频的投影效果,并且视频数据全程在GPU中进行处理,减少视频数据在显存和内存之间的多次拷贝,极大提高了视频投影的效率。同时,在GPU中通过数据并行处理的方式对初始视频帧进行畸变校正,提高GPU执行畸变校正的效率。并对相机数据库进行监视,并在相机数据库发生变化时实时更新逐像素映射关系,确保畸变校正和视频投影的效果。
图3为本申请实施例提供的基于GPU的摄像头视频投影装置的结构示意图。参考图3,本实施例提供的基于GPU的摄像头视频投影装置包括映射关系确定模块31、视频解码模块32、畸变校正模块33和视频投影模块34。
其中,映射关系确定模块31,用于基于摄像头的畸变参数,确定原始视频帧和校正视频帧之间的逐像素映射关系,并将所述逐像素映射关系保存在显存中;视频解码模块32,用于对摄像头回传的视频流进行GPU硬解码,得到原始视频帧;畸变校正模块33,用于根据所述逐像素映射关系,在GPU中对所述原始视频帧进行畸变校正,得到校正视频帧;视频投影模块34,用于通过显存拷贝的方式将所述校正视频帧发送给渲染管线,由渲染管线对所述校正视频帧进行视频投影。
上述,通过GPU对摄像头回传的视频流进行硬解码得到原始视频帧,并基于逐像素映射关系在GPU中对原始视频帧进行畸变校正,得到校正视频帧,此时得到的校正视频帧可传输给渲染管线进行视频投影流程,通过调节相机在三维场景中的位置姿态实现视频画面和三维场景的融合,有效提高视频的投影效果,并且视频数据全程在GPU中进行处理,减少视频数据在显存和内存之间的多次拷贝,极大提高了视频投影的效率,减少了视频卡顿现象的发生。
在一个可能的实施例中,所述映射关系确定模块31具体用于:
基于摄像头的设备ID,从相机数据库中获取对应的畸变参数;
基于所述畸变参数计算原始视频帧和校正视频帧之间的逐像素映射关系;
建立所述逐像素映射关系与设备ID的关联关系,并将所述逐像素映射关系保存在显存中。
在一个可能的实施例中,所述装置还包括映射关系获取模块,所述映射关系获取模块用于在所述畸变校正模块33根据所述逐像素映射关系,在GPU中对所述原始视频帧进行畸变校正,得到校正视频帧之前,获取摄像头的设备ID,并基于逐像素映射关系与设备ID的关联关系,从显存中确定用于对所述原始视频帧进行畸变校正的逐像素映射关系。
在一个可能的实施例中,所述畸变校正模块33具体用于:
根据所述逐像素映射关系,在GPU中将所述原始视频帧中的每个像素点转换为校正视频帧中的像素点;
根据像素点的对应关系从所述视频帧中确定所述校正视频帧中每个像素点的像素数据。
在一个可能的实施例中,所述装置还包括预处理模块,所述预处理模块用于在所述畸变校正模块33根据所述逐像素映射关系,在GPU中对所述原始视频帧进行畸变校正,得到校正视频帧之后,根据视频投影的需要对校正视频帧进行投影预处理,所述投影预处理包括亮度调节、透明度调节以及边缘裁剪中的一种或多种的组合。
在一个可能的实施例中,所述装置还包括参数存储模块,所述参数存储模块用于在映射关系确定模块31基于摄像头的畸变参数,确定原始视频帧和校正视频帧之间的逐像素映射关系,并将所述逐像素映射关系保存在显存中之前,基于棋盘格标定法确定摄像头的畸变参数,并将所述畸变参数保存在对应摄像头的相机数据库中,所述相机数据库设置于内存中。
在一个可能的实施例中,所述装置还包括监视模块,所述监视模块用于在映射关系确定模块31基于摄像头的畸变参数,确定原始视频帧和校正视频帧之间的逐像素映射关系,并将所述逐像素映射关系保存在显存中之后,对相机数据库中的畸变参数进行监视,并响应于畸变参数的变化对所述逐像素映射关系进行更新。
本申请实施例还提供了一种计算机设备,该计算机设备可集成本申请实施例提供的基于GPU的摄像头视频投影装置。图4是本申请实施例提供的一种计算机设备的结构示意图。参考图4,该计算机设备包括:输入装置43、输出装置44、存储器42以及一个或多个处理器41;所述存储器42,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器41执行,使得所述一个或多个处理器41实现如上述实施例提供的基于GPU的摄像头视频投影方法。其中输入装置43、输出装置44、存储器42和处理器41可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器42作为一种计算设备可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请任意实施例所述的基于GPU的摄像头视频投影方法对应的程序指令/模块(例如,基于GPU的摄像头视频投影装置中的映射关系确定模块31、视频解码模块32、畸变校正模块33和视频投影模块34)。存储器42可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器42可进一步包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置43可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置44可包括显示屏等显示设备。
处理器41通过运行存储在存储器42中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的基于GPU的摄像头视频投影方法。
上述提供的基于GPU的摄像头视频投影装置和计算机可用于执行上述实施例提供的基于GPU的摄像头视频投影方法,具备相应的功能和有益效果。
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如上述实施例提供的基于GPU的摄像头视频投影方法,该基于GPU的摄像头视频投影方法包括:基于摄像头的畸变参数,确定原始视频帧和校正视频帧之间的逐像素映射关系,并将所述逐像素映射关系保存在显存中,所述校正视频帧由所述原始视频帧经畸变校正获得;对摄像头回传的视频流进行GPU硬解码,得到原始视频帧;根据所述逐像素映射关系,在GPU中对所述原始视频帧进行畸变校正,得到校正视频帧;通过显存拷贝的方式将所述校正视频帧发送给渲染管线,由渲染管线对所述校正视频帧进行视频投影。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机***存储器或随机存取存储器,诸如DRAM、DDRRAM、SRAM、EDORAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机***中,或者可以位于不同的第二计算机***中,第二计算机***通过网络(诸如因特网)连接到第一计算机***。第二计算机***可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机***中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的基于GPU的摄像头视频投影方法,还可以执行本申请任意实施例所提供的基于GPU的摄像头视频投影方法中的相关操作。
上述实施例中提供的基于GPU的摄像头视频投影装置、设备及存储介质可执行本申请任意实施例所提供的基于GPU的摄像头视频投影方法,未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的基于GPU的摄像头视频投影方法。
上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。
Claims (14)
1.基于GPU的摄像头视频投影方法,其特征在于,包括:
基于摄像头的畸变参数,确定原始视频帧和校正视频帧之间的逐像素映射关系,并将所述逐像素映射关系保存在显存中,所述校正视频帧由所述原始视频帧经畸变校正获得;
对摄像头回传的视频流进行GPU硬解码,得到原始视频帧;
根据所述逐像素映射关系,在GPU中对所述原始视频帧进行畸变校正,得到校正视频帧;
通过显存拷贝的方式将所述校正视频帧发送给渲染管线,由渲染管线对所述校正视频帧进行视频投影。
2.根据权利要求1所述的基于GPU的摄像头视频投影方法,其特征在于,所述基于摄像头的畸变参数,确定原始视频帧和校正视频帧之间的逐像素映射关系,并将所述逐像素映射关系保存在显存中,包括:
基于摄像头的设备ID,从相机数据库中获取对应的畸变参数;
基于所述畸变参数计算原始视频帧和校正视频帧之间的逐像素映射关系;
建立所述逐像素映射关系与设备ID的关联关系,并将所述逐像素映射关系保存在显存中。
3.根据权利要求2所述的基于GPU的摄像头视频投影方法,其特征在于,所述根据所述逐像素映射关系,在GPU中对所述原始视频帧进行畸变校正,得到校正视频帧之前,还包括:
获取摄像头的设备ID,并基于逐像素映射关系与设备ID的关联关系,从显存中确定用于对所述原始视频帧进行畸变校正的逐像素映射关系。
4.根据权利要求1所述的基于GPU的摄像头视频投影方法,其特征在于,所述根据所述逐像素映射关系,在GPU中对所述原始视频帧进行畸变校正,得到校正视频帧,包括:
根据所述逐像素映射关系,在GPU中将所述原始视频帧中的每个像素点转换为校正视频帧中的像素点;
根据像素点的对应关系从所述视频帧中确定所述校正视频帧中每个像素点的像素数据。
5.根据权利要求1所述的基于GPU的摄像头视频投影方法,其特征在于,所述根据所述逐像素映射关系,在GPU中对所述原始视频帧进行畸变校正,得到校正视频帧之后,还包括:
根据视频投影的需要对校正视频帧进行投影预处理,所述投影预处理包括亮度调节、透明度调节以及边缘裁剪中的一种或多种的组合。
6.根据权利要求1-5任一项所述的基于GPU的摄像头视频投影方法,其特征在于,所述基于摄像头的畸变参数,确定原始视频帧和校正视频帧之间的逐像素映射关系,并将所述逐像素映射关系保存在显存中之前,还包括:
基于棋盘格标定法确定摄像头的畸变参数,并将所述畸变参数保存在对应摄像头的相机数据库中,所述相机数据库设置于内存中。
7.根据权利要求6任一项所述的基于GPU的摄像头视频投影方法,其特征在于,所述基于摄像头的畸变参数,确定原始视频帧和校正视频帧之间的逐像素映射关系,并将所述逐像素映射关系保存在显存中之后,还包括:
对相机数据库中的畸变参数进行监视,并响应于畸变参数的变化对所述逐像素映射关系进行更新。
8.基于GPU的摄像头视频投影装置,其特征在于,包括映射关系确定模块、视频解码模块、畸变校正模块和视频投影模块,其中:
映射关系确定模块,用于基于摄像头的畸变参数,确定原始视频帧和校正视频帧之间的逐像素映射关系,并将所述逐像素映射关系保存在显存中;
视频解码模块,用于对摄像头回传的视频流进行GPU硬解码,得到原始视频帧;
畸变校正模块,用于根据所述逐像素映射关系,在GPU中对所述原始视频帧进行畸变校正,得到校正视频帧;
视频投影模块,用于通过显存拷贝的方式将所述校正视频帧发送给渲染管线,由渲染管线对所述校正视频帧进行视频投影。
9.基于GPU的摄像头视频投影装置,其特征在于,还包括:
映射关系获取模块,用于在所述畸变校正模块根据所述逐像素映射关系,在GPU中对所述原始视频帧进行畸变校正,得到校正视频帧之前,获取摄像头的设备ID,并基于逐像素映射关系与设备ID的关联关系,从显存中确定用于对所述原始视频帧进行畸变校正的逐像素映射关系。
10.基于GPU的摄像头视频投影装置,其特征在于,还包括:
预处理模块,用于在所述畸变校正模块根据所述逐像素映射关系,在GPU中对所述原始视频帧进行畸变校正,得到校正视频帧之后,根据视频投影的需要对校正视频帧进行投影预处理,所述投影预处理包括亮度调节、透明度调节以及边缘裁剪中的一种或多种的组合。
11.基于GPU的摄像头视频投影装置,其特征在于,还包括:
参数存储模块,用于在映射关系确定模块基于摄像头的畸变参数,确定原始视频帧和校正视频帧之间的逐像素映射关系,并将所述逐像素映射关系保存在显存中之前,基于棋盘格标定法确定摄像头的畸变参数,并将所述畸变参数保存在对应摄像头的相机数据库中,所述相机数据库设置于内存中。
12.基于GPU的摄像头视频投影装置,其特征在于,还包括:
监视模块,用于在映射关系确定模块基于摄像头的畸变参数,确定原始视频帧和校正视频帧之间的逐像素映射关系,并将所述逐像素映射关系保存在显存中之后,对相机数据库中的畸变参数进行监视,并响应于畸变参数的变化对所述逐像素映射关系进行更新。
13.一种计算机设备,其特征在于,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一所述的基于GPU的摄像头视频投影方法。
14.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7任一所述的基于GPU的摄像头视频投影方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010172352.0A CN111294580B (zh) | 2020-03-12 | 2020-03-12 | 基于gpu的摄像头视频投影方法、装置、设备及存储介质 |
PCT/CN2020/121661 WO2021179605A1 (zh) | 2020-03-12 | 2020-10-16 | 基于gpu的摄像头视频投影方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010172352.0A CN111294580B (zh) | 2020-03-12 | 2020-03-12 | 基于gpu的摄像头视频投影方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111294580A true CN111294580A (zh) | 2020-06-16 |
CN111294580B CN111294580B (zh) | 2022-05-03 |
Family
ID=71028734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010172352.0A Active CN111294580B (zh) | 2020-03-12 | 2020-03-12 | 基于gpu的摄像头视频投影方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111294580B (zh) |
WO (1) | WO2021179605A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112437276A (zh) * | 2020-11-20 | 2021-03-02 | 埃洛克航空科技(北京)有限公司 | 一种基于WebGL的三维视频融合方法及*** |
WO2021179605A1 (zh) * | 2020-03-12 | 2021-09-16 | 佳都新太科技股份有限公司 | 基于gpu的摄像头视频投影方法、装置、设备及存储介质 |
CN117152400A (zh) * | 2023-10-30 | 2023-12-01 | 武汉苍穹融新科技有限公司 | 交通道路上多路连续视频与三维孪生场景融合方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100662569B1 (ko) * | 2005-01-03 | 2006-12-28 | 삼성전자주식회사 | 프로젝션 tv 및 그 제어방법 |
CN107680047A (zh) * | 2017-09-05 | 2018-02-09 | 北京小鸟看看科技有限公司 | 一种虚拟现实场景渲染方法、图像处理器和头戴显示设备 |
CN107707874A (zh) * | 2017-09-18 | 2018-02-16 | 天津大学 | 鱼眼相机视频矫正及传输***及方法 |
CN110533577A (zh) * | 2018-05-25 | 2019-12-03 | 杭州海康威视数字技术股份有限公司 | 鱼眼图像校正方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9930315B2 (en) * | 2015-04-29 | 2018-03-27 | Lucid VR, Inc. | Stereoscopic 3D camera for virtual reality experience |
CN107644402A (zh) * | 2017-08-14 | 2018-01-30 | 天津大学 | 基于gpu的快速鱼眼矫正方法 |
CN107527327B (zh) * | 2017-08-23 | 2018-05-15 | 珠海安联锐视科技股份有限公司 | 一种基于gpu的鱼眼校正方法 |
CN108053385A (zh) * | 2018-01-24 | 2018-05-18 | 桂林电子科技大学 | 一种鱼眼视频实时矫正***及方法 |
CN110796722B (zh) * | 2019-11-01 | 2023-04-25 | 广东三维家信息科技有限公司 | 三维渲染呈现方法及装置 |
CN111294580B (zh) * | 2020-03-12 | 2022-05-03 | 佳都科技集团股份有限公司 | 基于gpu的摄像头视频投影方法、装置、设备及存储介质 |
-
2020
- 2020-03-12 CN CN202010172352.0A patent/CN111294580B/zh active Active
- 2020-10-16 WO PCT/CN2020/121661 patent/WO2021179605A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100662569B1 (ko) * | 2005-01-03 | 2006-12-28 | 삼성전자주식회사 | 프로젝션 tv 및 그 제어방법 |
CN107680047A (zh) * | 2017-09-05 | 2018-02-09 | 北京小鸟看看科技有限公司 | 一种虚拟现实场景渲染方法、图像处理器和头戴显示设备 |
CN107707874A (zh) * | 2017-09-18 | 2018-02-16 | 天津大学 | 鱼眼相机视频矫正及传输***及方法 |
CN110533577A (zh) * | 2018-05-25 | 2019-12-03 | 杭州海康威视数字技术股份有限公司 | 鱼眼图像校正方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021179605A1 (zh) * | 2020-03-12 | 2021-09-16 | 佳都新太科技股份有限公司 | 基于gpu的摄像头视频投影方法、装置、设备及存储介质 |
CN112437276A (zh) * | 2020-11-20 | 2021-03-02 | 埃洛克航空科技(北京)有限公司 | 一种基于WebGL的三维视频融合方法及*** |
CN112437276B (zh) * | 2020-11-20 | 2023-04-07 | 埃洛克航空科技(北京)有限公司 | 一种基于WebGL的三维视频融合方法及*** |
CN117152400A (zh) * | 2023-10-30 | 2023-12-01 | 武汉苍穹融新科技有限公司 | 交通道路上多路连续视频与三维孪生场景融合方法及*** |
CN117152400B (zh) * | 2023-10-30 | 2024-03-19 | 武汉苍穹融新科技有限公司 | 交通道路上多路连续视频与三维孪生场景融合方法及*** |
Also Published As
Publication number | Publication date |
---|---|
WO2021179605A1 (zh) | 2021-09-16 |
CN111294580B (zh) | 2022-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021227359A1 (zh) | 一种无人机投影方法、装置、设备及存储介质 | |
WO2021227360A1 (zh) | 一种交互式视频投影方法、装置、设备及存储介质 | |
EP3664443B1 (en) | Panoramic image generation method and device | |
CN111294580B (zh) | 基于gpu的摄像头视频投影方法、装置、设备及存储介质 | |
CN107945112B (zh) | 一种全景图像拼接方法及装置 | |
WO2018214365A1 (zh) | 图像校正方法、装置、设备、***及摄像设备和显示设备 | |
CN109308686B (zh) | 一种鱼眼图像处理方法及装置、设备和存储介质 | |
US20220301121A1 (en) | Method and apparatus for correcting face distortion, electronic device, and storage medium | |
CN115797535B (zh) | 一种三维模型纹理贴图方法及相关装置 | |
WO2024104248A1 (zh) | 虚拟全景图的渲染方法、装置、设备及存储介质 | |
WO2024002023A1 (zh) | 全景立体图像的生成方法、装置和电子设备 | |
CN113643414A (zh) | 一种三维图像生成方法、装置、电子设备及存储介质 | |
CN111757057A (zh) | 一种全景环视显示方法、装置、设备及存储介质 | |
WO2022166868A1 (zh) | 漫游视图的生成方法、装置、设备和存储介质 | |
WO2016185522A1 (ja) | 画像処理装置及び画像処理方法及び画像処理プログラム | |
JP2002014611A (ja) | プラネタリウムのまたは球面スクリーンへのビデオ投映方法と装置 | |
CN111862240A (zh) | 全景相机及其标定方法、全景图像的拼接方法及存储介质 | |
CN107346530B (zh) | 一种修正鱼眼图像的投影方法及*** | |
CN112565730B (zh) | 路侧感知方法、装置、电子设备、存储介质及路侧设备 | |
CN111161148B (zh) | 一种全景图像生成方法、装置、设备和存储介质 | |
CN113724141B (zh) | 一种图像校正方法、装置及电子设备 | |
CN113763530B (zh) | 图像处理方法、装置、计算设备及存储介质 | |
CN117437121A (zh) | 图像拼接方法、装置、电子设备、介质及产品 | |
CN113225491B (zh) | 一种嵌入式多镜头全景视频成像方法及装置 | |
US20240249399A1 (en) | Image processing method, device, and medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 306, zone 2, building 1, Fanshan entrepreneurship center, Panyu energy saving technology park, No. 832 Yingbin Road, Donghuan street, Panyu District, Guangzhou City, Guangdong Province Applicant after: Jiadu Technology Group Co.,Ltd. Address before: Room 306, zone 2, building 1, Fanshan entrepreneurship center, Panyu energy saving technology park, No. 832 Yingbin Road, Donghuan street, Panyu District, Guangzhou City, Guangdong Province Applicant before: PCI-SUNTEKTECH Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |