当前位置: 首页 > 专利查询>燕山大学专利>正文

基于同步积分SURF算法的多路视频拼接方法技术

技术编号:26174134 阅读:39 留言:0更新日期:2020-10-31 14:00
本发明专利技术提出一种基于同步积分SURF算法的多路视频拼接方法,该方法使用首次运行时计算出的相关参数拼接图像,若发生相机偏移导致图像拼接错误,系统可重新计算相关参数,进行系统校准;另外,该方法使用流水线算法编写SURF算法中的积分步骤,从而省去了计算图像积分所需消耗的时间,提高了系统运行效率;通过截取摄像头画面的交叉区域进行特征点检测与匹配并计算透视矩阵,与对完整图像进行特征点检测、特征点匹配及计算透视矩阵相比,减少了计算量,提高了系统运行速度;因此,本发明专利技术提出的方法不但可以当摄像头发生偏移后自行校准,从而实现提高设备的抗扰动性,降低维护成本,在设备正常使用时还拥有较高的运行速度。

【技术实现步骤摘要】
基于同步积分SURF算法的多路视频拼接方法
本专利技术属于视频拼接
,具体涉及一种基于同步积分SURF算法的多路视频拼接方法。
技术介绍
当今社会生产生活中对视频实时拼接的需求日益增加,例如360°全景监控、多路4K摄影机拍摄8K及更高分辨率视频等。目前,视频拼接设备基于FPGA芯片或专门的图像处理芯片,其中基于专门的图像处理芯片的产品其硬件复杂程度高、成本高,不利于推广,基于纯FPGA芯片的设备难以实现复杂算法,因此往往需要借助其他设备将FPGA难以计算的关键参数,例如需要大量浮点运算的参数,提前计算好,可一旦发生移位,这些关键参数需要重新计算,这类设备存在诸多限制,因此有些采用固定点拼接,即相机固定后通过裁减视频的固定像素点拼接,此类设备难以应对相机抖动或移位,且一旦发生移位,很难恢复到原有状态,需重新寻找拼接点。
技术实现思路
本专利技术要解决的技术问题是提出一种提高视频拼接设备的抗扰动性的方法,以应对相机抖动或移位后,很难恢复到原有状态,需重新寻找拼接点的问题。为解决上述技术问题,本专利技术提出一种基于本文档来自技高网...

【技术保护点】
1.一种基于同步积分SURF算法的多路视频拼接方法,其特征在于,其包括如下步骤:/n步骤1:进行多路视频采集;/n步骤2:对多路视频数据进行同步;/n步骤3:对多路视频数据进行图像校正;/n步骤31:利用摄像头标定软件获得视频数据的图像校正映射表;所述映射表包含水平方向映射表map_x和垂直方向映射表map_y,分别以一维数组map_x(i,j)和map_y(i,j)的形式写入单独的头文件,包含进ARM端工程中,并将map_x、map_y的数组首地址传递到FPGA端;所述map_x(i,j)和map_y(i,j)分别表示矫正后的图像的(i,j)处像素在原图像中横坐标和纵坐标;/n步骤32:传递...

【技术特征摘要】
1.一种基于同步积分SURF算法的多路视频拼接方法,其特征在于,其包括如下步骤:
步骤1:进行多路视频采集;
步骤2:对多路视频数据进行同步;
步骤3:对多路视频数据进行图像校正;
步骤31:利用摄像头标定软件获得视频数据的图像校正映射表;所述映射表包含水平方向映射表map_x和垂直方向映射表map_y,分别以一维数组map_x(i,j)和map_y(i,j)的形式写入单独的头文件,包含进ARM端工程中,并将map_x、map_y的数组首地址传递到FPGA端;所述map_x(i,j)和map_y(i,j)分别表示矫正后的图像的(i,j)处像素在原图像中横坐标和纵坐标;
步骤32:传递所述映射表到FPGA端;FPGA端通过AXIMaster端口从map_x、map_y数组地址读取数据并分别存储在两个hls::Mat对象中;
步骤33:缓存待矫正区域;
读取一帧视频缓存到hls::Mat对象src_Mat中;若要校正src_Mat中第r行像素,需要将src_Mat中第r-m到第r+n行像素读取到二维数组tmp_Array中,其中,n和m需根据不同摄像头图像的垂直偏差确定;若输入图像水平尺寸小于1024个像素,则使用ARRAY_PARITION指令将二维数组tmp_Array中的元素存储到寄存器中;
步骤34:校正图像;
当src_Mat对象的前n+m行图像读取到二维数组tmp_Array中后,开始依序从水平方向映射表map_x、垂直方向映射表map_y中读取映射坐标,并将像素值写入结果图像dst_Mat;当第一行像素矫正完成,继续从src_Mat读取一行像素并分别写入到tmp_Array[row%(m+n)][col]位置,其中,row从0开始,每从src_Mat中读取一行,row值加1;
步骤35:重复步骤34直到一帧图像矫正完成;
步骤4:对校正后的图像进行图像裁剪;
使用流水线算法将校正后的图像四周未填充像素数据的行和列所对应的像素有效信号和行同步信号置低,形成新的像素有效信号和行同步信号;
步骤5:对矫正后的图像进行图像拼接;
该步骤包括如下具体操作:
步骤51:拆分图像;
采用遍历hls::Mat对象的方法,拆分出来包含交叉范围的图像,交叉范围以坐标LUij(x0,y0),RBij(x1,y1)表示,其中LUij表示第i个摄像头与第j个摄像头图像间,包含交叉范围的图像的左上角坐标;RBij为第i个摄像头与第j个摄像头图像间,包含交叉范围的图像的右下角坐标;将这部分图像存储到hls::Window对象image_ij_c中;
步骤52:对图像像素点进行积分;
以步骤51中的坐标LUij和RBij为边界,以像素有效信号为驱动时钟,每个时钟上升沿计算一次积分,每个场同步信号上升沿到来时时置零,计算公式如下:
I(x,y)=I(x-1,y)-I(x-1,y–1)+I(x,y–1)+P(x,y);
式中,I(x,y)表示坐标为(x,y)的像素与图像左顶点之间像素的积分,P(x,y)表示图像坐标为(x,y)处的像素值;
步骤53:计算Hessian响应矩阵;
将步骤52中计算的图像积分缓存到hls::Window对象I_W中,将不同尺寸的盒式滤波器数组通过AXIMaster端口读入FPGA端并缓存到hls::Window对象中,使用不同尺寸滤波器与image_ij_c图像进行卷积,计算出各Hessian响应矩阵;使用LOOP_MERGE指令实现同时计算不同滤波器尺寸的Hessian响应矩阵,并将结果分别缓存在hls:Window对象中;
步骤54:寻找特征点;
使用3×3×3的模板分别遍历同一组,相邻3层的Hessian响应矩阵;
若中心点的值大于预设的阈值,且比相邻的26个点的值都大,则选为特征点;同时将此特征点的索引存储到vector对象中,索引信息包括所在的组号、在组中的层号及(x,y)坐标;
步骤55:计算特征点主方向;
从步骤54中的vector对象中读取特征点索引信息,并以每个特征点为中心,用张角为50°~70°的扇形滑动窗口,以...

【专利技术属性】
技术研发人员:张立国刘强金梅李福昆杨曼李媛媛胡林李翔宇李清天
申请(专利权)人:燕山大学
类型:发明
国别省市:河北;13

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1