本发明属于无人机视频数据处理技术领域,具体涉及基于传感器辅助全局运动估计的uav视频编解码方法。
背景技术:
携带多个传感器的uav(unmannedaerialvehicles,无人驾驶飞行器)在视频侦察、开发和监视等重要任务中具有广泛的应用价值。然而,如何将高清晰度视频有效地压缩并传输给客户端,是基于视频的无人机应用目前迫切需要解决的问题。
现有的方法中,提出了一种基于元数据的图像坐标系转换模型,该模型适用于大多数的中高度无人机,以辅助搜索算法的实现;另外一种用于uav检测应用的低延迟和低复杂度的视频编码方案,该方案使用从uav传感器元数据得到的单应性变换来替换图像级的整型运动估计方法。以上讨论的传感器辅助视频编码方法都是使用了纯粹的平移或仿射变换。然而,对于空中视频流而言,由相机运动引起的较大的位移和畸变会令相邻帧的重叠区域变得相当小,另外运动矢量也不能用仿射运动模型中的共线变换简单表示。
技术实现要素:
针对现有技术中的上述不足,本发明提供的基于传感器辅助全局运动估计的uav视频编解码方法解决了由无人机运动带来的视频图像位移较大和畸变较大以及运动矢量估计不准确的问题,有效提高了基于hevc标准的无人机视频编码效率,降低了编码复杂度。
为了达到上述发明目的,本发明采用的技术方案为:基于传感器辅助全局运动估计的uav视频编解码方法,包括以下步骤:
s1、在基站数据传输范围内,通过无人机机载相机拍摄视频数据,同时通过无人机携带的传感器获取无人机的运动测量数据;
s2、对无人机的运动测量数据进行中值滤波处理,并构建对应的单应矩阵;
s3、将视频数据对应的图像帧分别乘以对应的单应矩阵,获得视频数据坐标变换后对应的标定图像;
s4、对视频数据的每个图像帧进行结构相似性检查,构建对应的输入到编码器进行编码的gop序列;
同时,将每个图像帧的结构相似性检查结果存入nal单元报头中;
s5、在编码器中,通过快速me算法对gop序列进行处理,构建每个标定图像对应的mv候选列表和最佳搜索点;
s6、将gop序列中的标定图像及其对应的mv候选列表和最佳搜索点输入到编码引擎中,对其进行数据压缩处理,得到视频编码码流;
同时,将每个标定图像对应的单应矩阵存入nal单元报头,与视频编码码流一并输入到解码器中;
s7、在解码器中,基于nal单元报头中的存储数据,对视频编码码流中的图像帧进行解码,实现uav视频解码。
进一步地,所述步骤s2具体为:
s21、构建用于表示视频数据图像帧的图像坐标系与相机坐标系之间的映射关系的内部矩阵k为:
式中,sx和sy分别为视频数据图像帧中每个像素的宽度和高度;
cx和cy分别为无人机机载相机的水平和垂直偏移量;
s22、构建用于表示相机坐标系相对于地面坐标系的外部矩阵;
所述外部矩阵包括位置关系矩阵t和方向关系矩阵r;
其中,位置关系矩阵t为:
t=[txtytz]′=[vxdtvydtvzdt]′
式中,tx、ty和tz分别表示沿x、y和z轴的平移量,dt为采样间隔,vxvyvz为分别为无人机沿x轴、y轴和z轴的速度;
方向关系矩阵r为:
式中,rψ、rφ和rθ分别为无人机的航向旋转矩阵、俯仰旋转矩阵和横滚旋转矩阵;
ψ、φ和θ分别为无人机的航向旋转角度、俯仰旋转角度和横滚旋转角度;
s23、基于内部矩阵和外部矩阵,得到t时刻时,从图像坐标系到地面坐标系的透视变换矩阵,即单应矩阵ht为:
式中,d为无人机所在的高度。
进一步地,所述步骤s3中的标定图像ft*为:
ft*=htft
式中,ft为t时刻的图像帧,且图像帧ft与ft 1的变换式为:
式中,d为标定图像的整体位移服从线性变换的变换式,且d=[dxdy]′,dx和dy分别为t时刻的全局运动矢量;
m为从ft到ft 1的运动矢量矩阵。
进一步地,所述步骤s4具体为:
s41、设t 1时刻的图像帧ft 1的预测帧为ftmp;
s42、计算图像帧ft 1与预测帧ftmp的结构相似性值ssim;
s43、判断ssim是否大于设定的阈值;
若是,则进入步骤s44;
若否,则进入步骤s45;
s44、跳过该图像帧,并将该图像帧ft 1对应的结构相似性检查结果存入该图像帧ft 1对应的nal单元报头中;
s45、将图像帧ft 1对应的标定图像
进一步地,所述步骤s5中的mv候选列表candidate_list为:
式中,
gmv为全局运动矢量集合;
medianmv为无人机传感器记录的传感器信息的分类集合,且
lmv为本地运动矢量集合。
进一步地,所述步骤s5中,通过使用最小失真率代价方法从mv候选列表中选择最佳mv预测器,进而确定对应的最佳搜索点;
其中,最佳mv预测器
式中,
λ为用于速率控制调节的拉格朗日乘数;
sad(a,b)为a和b之间的绝对差之和;
puorig和pupred分别表示原始pu和被预测pu;
r为比特数;
ph、pw分别为当前pu的高度和宽度;
通过最小化拉格朗日率失真代价函数,确定最佳搜索点
式中,
进一步地,所述步骤s7具体为:
s71、根据nal单元报头中存储的结构相似性检查结果,依次判断其对应的图像帧是否为被跳过的图像帧;
若是,则进入步骤s73;
若否,则进入步骤s72;
s72、将该图像帧对应的视频编码码流数据输入到解码引擎中,并将解码出的图像作为参考帧,进入步骤s73;
s73、根据存储在nal单元报头中的单应矩阵和参考帧,重构出被跳过的图像帧对应的图像,进入步骤s74;
s74、重复步骤s71-步骤s73,直到所有的图像帧均被解码或重构,进入步骤s75;
s75、将重构出的图像和解码出的图像输入到解码引擎中,解码出所有的图像帧,并按照图像帧的图像顺序计数进行图像帧的显示,实现uav视频解码。
进一步地,所述步骤s72中,重构出被跳过的图像帧对应的图像的公式为:
式中,fskipped为之前被跳过的但又重构出来的图像;
hskipped为存储在nal单元报头中的单应矩阵;
fref为未被跳过的被解码出的作为参考帧的图像帧;
dref和href为参考帧的全局运动矢量和单应矩阵。
本发明的有益效果为:
本发明方法综合考虑了无人机带来的全局运动影响和由前景对象带来的局部运动的影响,抛弃了现有技术中使用的平移和仿射模型,充分结合传感器数据,采用了更符合实际情况的透视变换模型,消除了相机外部运动的影响;本发明方法与标准hm-16.10编解码器相比,在保证psnr和ssim不变的情况下,降低了视频数据编码时间,提高了压缩比,进而有效提高了无人机视频的编码效率。
附图说明
图1为本发明提供的基于传感器辅助全局运动估计的uav视频编解码方法流程图。
图2为本发明提供的传感器辅助视频编解码系统流水线结构图。
图3为本发明提供的无人机部署场景及针孔模型示意图。
图4为本发明提供的当前块的gmv计算示意图。
图5为本发明提供的从当前块中选择空间mv并填充当前块的mv候选列表示意图。
图6为本发明提供的nal单元报头结构示意图。
图7为本发明提供的解码器对编码码流进行解码的方法流程图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
如图1所示,基于传感器辅助全局运动估计的uav视频编解码方法,包括以下步骤:
s1、在基站数据传输范围内,通过无人机机载相机拍摄视频数据,同时通过无人机携带的传感器获取无人机的运动测量数据;
s2、对无人机的运动测量数据进行中值滤波处理,并构建对应的单应矩阵;
s3、将视频数据对应的图像帧分别乘以对应的单应矩阵,获得视频数据坐标变换后对应的标定图像;
s4、对视频数据的每个图像帧进行结构相似性检查,构建对应的输入到编码器进行编码的gop序列;
同时,将每个图像帧的结构相似性检查结果存入nal单元报头中;
s5、在编码器中,通过快速me算法对gop序列进行处理,构建每个标定图像对应的mv候选列表和最佳搜索点;
s6、将gop序列中的标定图像及其对应的mv候选列表和最佳搜索点输入到编码引擎中,对其进行数据压缩处理,得到视频编码码流;
同时,将每个标定图像对应的单应矩阵存入nal单元报头,与视频编码码流一并输入到解码器中;
s7、在解码器中,基于nal单元报头中的存储数据,对视频编码码流中的图像帧进行解码,实现uav视频解码。
如图2所示,提供了本发明中的传感器辅助视频编解码系统的流水线,它由它由三个关键模块组成:发送端的数据预处理模块和视频编码模块,客户端的视频解码模块:
在数据预处理阶段,在对uav视频数据进行编码前,需要对视频数据和传感器数据进行预处理,触感器数据因其测量结果常常会受到噪声污染,为了去除传感器信号的噪声,首先对传感器获取的数据进行中值滤波处理;与静止相机拍摄的视频帧不同,航空视频帧序列不会被投影到同一图像平面,相机成像模型是一种从真实世界坐标系到图像坐标系的常见针孔投影映射,相机坐标系、图像坐标系和地面坐标系之间的关系如图3所示,为了消除无人机飞行动作引入的非等距投影失真,每张图像帧都会乘以对应的单应矩阵(homographymatrix,hm),从而从图像坐标系映射到地面坐标系,得到被校准了的图像,又被称为被标定的图像。单应矩阵是由内部参数和外部参数共同决定的,内部参数(又称为标定矩阵)反映了图像帧的图像坐标系与相机坐标系之间的映射关系,而外部参数反映了相机坐标系相对于地面坐标系的位置和方向关系;因此,上述步骤s2具体为:
s21、构建用于表示视频数据图像帧的图像坐标系与相机坐标系之间的映射关系的内部矩阵k为:
式中,sx和sy分别为视频数据图像帧中每个像素的宽度和高度;
cx和cy分别为无人机机载相机的水平和垂直偏移量;
s22、构建用于表示相机坐标系相对于地面坐标系的外部矩阵;
上述外部矩阵包括位置关系矩阵t和方向关系矩阵r;通过构造一个外部矩阵,可以得到无人机在两个时间实例之间的平移和旋转运动,给定t时刻的图像帧ft,t 1时刻的图像帧为ft 1,我们用矩阵r∈m3×3和t∈m3来分别表示则表示ft 1帧相对于ft帧的旋转和平移运动。
其中,位置关系矩阵t为:
t=[txtytz]′=[vxdtvydtvzdt]′
式中,tx、ty和tz分别表示沿x、y和z轴的平移量,dt为采样间隔,vxvyvz为分别为无人机沿x轴、y轴和z轴的速度,单位为m/s,来源于无人机传感器测得的数据;
方向关系矩阵r为:
式中,rψ、rφ和rθ分别为无人机的航向旋转矩阵、俯仰旋转矩阵和横滚旋转矩阵;
ψ、φ和θ分别为无人机的航向旋转角度、俯仰旋转角度和横滚旋转角度;
s23、基于内部矩阵和外部矩阵,得到t时刻时,从图像坐标系到地面坐标系的透视变换矩阵,即单应矩阵ht为:
式中,d为无人机所在的高度。
上述步骤s3中,只要用于坐标映射的透视变换矩阵ht和ht 1,标定图像ft*就可以用下式表示:
ft*=htft
式中,ft为t时刻的图像帧;
通过应用透视变换,将视频帧投影到同一坐标系下,相邻帧之间的失真就会减小,从而提高了相邻帧之间的结构相似性,也因此保证重构质量的同时降低了比特率和编码时间;
经过坐标变换后,标定图像的整体位移服从线性变换d=[dxdy]′,其中dx和dy分别为t时刻的全局运动矢量(globalmotionvector,gmv);
因此,图像帧ft与ft 1的变换式为:
式中,m为从ft到ft 1的运动矢量矩阵。
在上述步骤s4中,在编码流水线中,利用参考帧(可以在gop队列中找到)和当前帧之间的结构相似性(structuralsimilarity,ssim),我们在编码之前进行了相似度检测(由称为图像动作监视器),图像运动监视器可以确定两个相邻图像之间是否存在大规模运动;上述步骤s4中结构相似性检查的过程具体为:
s41、设t 1时刻的图像帧ft 1的预测帧为ftmp;
其中,ftmp约为ftmp=mft;
s42、计算图像帧ft 1与预测帧ftmp的结构相似性值ssim;
s43、判断ssim是否大于设定的阈值;
若是,则进入步骤s44;
若否,则进入步骤s45;
s44、跳过该图像帧,并将该图像帧ft 1对应的结构相似性检查结果存入该图像帧ft 1对应的nal单元报头中;
s45、将图像帧ft 1对应的标定图像
在上述步骤s5中,在编码器中,如果传感器信息是准确的,m就能表示从ft到ft 1的全局运动,并且ft*与ft 1是极为相近的。然而,由于无人机传感器的测量噪声和连续块之间存在的局部运动,在大多数情况下m不能准确地表示每个块中的运动。因此,编码器仍然需要执行块匹配算法来为这些块找到多个最佳的候选mv(motionvector,运动矢量)。
首先,对gop序列中的图像帧进行编码单元划分和预测单元划分操作,将一个图像帧划分成一个个的小编码块。空中视频编码过程显示,属于背景区域的编码块通常会有指向相同方向的mv,这意味着那些属于背景内容的块遵循全局运动,因此当前块的最佳mv与其空间相邻块具有很强的相关性。属于前景对象的块可能有着与相邻被解码块类似的本地mv(localmotionvector,lmv)。接下来我们要对不能用m准确表示的块进行预测。以hevc为例,在每个预测单元(predictionunit,pu)的帧间预测过程中,基于概率方案会形成一个列表。简言之,hevc中的高级运动矢量预测(advancedmotionvectorprediction,amvp)会使用更多的来自时间域、空间域的候选对象来更准确地选择mv预测器,并将mv添加到候选列表中,然后使用最小失真率(rate-distortion,rd)代价方法从该列表中选择最佳的mv预测器。受快速mvp方法的启发,我们提出了快速me算法,该算法包括初始候选列表和块匹配搜索两个步骤;
我们的候选列表包含两个mvp,一个是包含时间相关信息的gmv(见图4),另一个是以邻域为参考的lmv。来自相邻块的mv遵循与在amvp中相同的顺序,a0→a1→scaleda0→scaleda1→b0→b1→b2→scaledb0→scaledb1→scaledb2,它是相邻块mv的中值(见图5)。利用了gmv表示参考图像和当前图像之间的时间相关性的优势,gmv依靠无人机传感器记录的如旋转角度、高度和速度之类的传感器信息。如图5所示,我们使用图中所示的不同颜色将这些矢量分为三类:左、上、右上。
如果候选列表中的元素数小于两个(例如,空间mv不可用),则将添加零mv(0,0)到候选列表中。因此,步骤s5中的mv候选列表candidate_list(如果时间mv和空间mv都可用)为:
式中,
gmv为全局运动矢量集合;
medianmv为无人机传感器记录的传感器信息的分类集合,且
lmv为本地运动矢量集合。
图5展示了当前块的相邻块(左、上、右上)的mv分别表示为
上述步骤s5中,通过使用最小失真率代价方法从mv候选列表中选择最佳mv预测器,进而确定对应的最佳搜索点;
其中,最佳mv预测器
式中,
λ为用于速率控制调节的拉格朗日乘数;
sad(a,b)为a和b之间的绝对差之和;
puorig和pupred分别表示原始pu和被预测pu;
r为比特数;
ph、pw分别为当前pu的高度和宽度;
通过最小化拉格朗日率失真代价函数
式中,
在解码器中的视频解码阶段,hevc使用基于网络抽象层(nal)单元的比特流结构。一个nal单元由一个单元报头和一个单元有效载荷组成。此处我们至关注nal单元报头扩展,因为它们被格式化为一个固定的结构,并且不包含具有变长度的代码,这使得它们成为编解码结构扩展的理想选择。nal单元有效载荷保存有可变长度压缩的原始字节序列,在标准hevc的nal单元结构中,我们提出了一个用于识别跳过的图片的nal单元报头的扩展结构。
图6的(a)、(b)、(c)展示了标准的和扩展的hevcnal单元报头结构,其中,(a)hevc的nal单元报头结构;(b)我们提出的扩展nal报头文件结构;(c)用于传感器信息存储的附加文件‘hm_info()’;第一个比特位被称为“forbidden_zero_bit”,它总是被设置为零,以使hevc视频能够支持mpeg-2传输系统。紧接着的6个比特位被称为“nal_unit_type”,用于指定nal单元类型。在标准hevc中,常要求将占有6个比特位的“nuh_layer_id”设置为零,并用于识别将来扩展的附加层。占最后3个比特位的时间id被命名为“nuh_temporal_id_plus1”。“skip_picture_mode”占用1个比特位,它用来确定当前图像是否为被跳过的帧,“hm_info()”(见图6(c))中的参数数组存储着传感器日志信息,它也规定了图像帧是否作为参考帧。
如图7所示,结合nal单元报头中存储的数据,上述步骤s7具体为:
s71、根据nal单元报头中存储的结构相似性检查结果,依次判断其对应的图像帧是否为被跳过的图像帧;(即通过nal单元报头中的“skip_picture_mode”判断图像帧是否为被跳过的帧)
若是,则进入步骤s73;
若否,则进入步骤s72;
s72、将该图像帧对应的视频编码码流数据输入到解码引擎中,并将解码出的图像作为参考帧,进入步骤s73;
s73、根据存储在nal单元报头中的单应矩阵和参考帧,重构出被跳过的图像帧对应的图像,进入步骤s74;
s74、重复步骤s71-步骤s73,直到所有的图像帧均被解码或重构,进入步骤s75;
s75、将重构出的图像和解码出的图像输入到解码引擎中,解码出所有的图像帧,并按照图像帧的图像顺序计数进行图像帧的显示,实现uav视频解码。
上述步骤s72中,重构出被跳过的图像帧对应的图像的公式为:
式中,fskipped为之前被跳过的但又重构出来的图像;
hskipped为存储在nal单元报头中的单应矩阵(“homography_matrix”);
fref为未被跳过的被解码出的作为参考帧的图像帧;
dref和href为参考帧的全局运动矢量(“global_motion_vector”)和单应矩阵(“homography_matrix”)。
本发明的有益效果为:
本发明方法综合考虑了无人机带来的全局运动影响和由前景对象带来的局部运动的影响,抛弃了现有技术中使用的平移和仿射模型,充分结合传感器数据,采用了更符合实际情况的透视变换模型,消除了相机外部运动的影响;本发明方法与标准hm-16.10编解码器相比,在保证psnr和ssim不变的情况下,降低了视频数据编码时间,提高了压缩比,进而有效提高了无人机视频的编码效率。
1.基于传感器辅助全局运动估计的uav视频编解码方法,其特征在于,包括以下步骤:
s1、在基站数据传输范围内,通过无人机机载相机拍摄视频数据,同时通过无人机携带的传感器获取无人机的运动测量数据;
s2、对无人机的运动测量数据进行中值滤波处理,并构建对应的单应矩阵;
s3、将视频数据对应的图像帧分别乘以对应的单应矩阵,获得视频数据坐标变换后对应的标定图像;
s4、对视频数据的每个图像帧进行结构相似性检查,构建对应的输入到编码器进行编码的gop序列;
同时,将每个图像帧的结构相似性检查结果存入nal单元报头中;
s5、在编码器中,通过快速me算法对gop序列进行处理,构建每个标定图像对应的mv候选列表和最佳搜索点;
s6、将gop序列中的标定图像及其对应的mv候选列表和最佳搜索点输入到编码引擎中,对其进行数据压缩处理,得到视频编码码流;
同时,将每个标定图像对应的单应矩阵存入nal单元报头,与视频编码码流一并输入到解码器中;
s7、在解码器中,基于nal单元报头中的存储数据,对视频编码码流中的图像帧进行解码,实现uav视频解码。
2.根据权利要求1所述的基于传感器辅助全局运动估计的uav视频编解码方法,其特征在于,所述步骤s2具体为:
s21、构建用于表示视频数据图像帧的图像坐标系与相机坐标系之间的映射关系的内部矩阵k为:
式中,sx和sy分别为视频数据图像帧中每个像素的宽度和高度;
cx和cy分别为无人机机载相机的水平和垂直偏移量;
s22、构建用于表示相机坐标系相对于地面坐标系的外部矩阵;
所述外部矩阵包括位置关系矩阵t和方向关系矩阵r;
其中,位置关系矩阵t为:
t=[txtytz]′=[vxdtvydtvzdt]′
式中,tx、ty和tz分别表示沿x、y和z轴的平移量,dt为采样间隔,vxvyvz为分别为无人机沿x轴、y轴和z轴的速度;
方向关系矩阵r为:
式中,rψ、rφ和rθ分别为无人机的航向旋转矩阵、俯仰旋转矩阵和横滚旋转矩阵;
ψ、φ和θ分别为无人机的航向旋转角度、俯仰旋转角度和横滚旋转角度;
s23、基于内部矩阵和外部矩阵,得到t时刻时,从图像坐标系到地面坐标系的透视变换矩阵,即单应矩阵ht为:
式中,d为无人机所在的高度。
3.根据权利要求2所述的基于传感器辅助全局运动估计的uav视频编解码方法,其特征在于,所述步骤s3中的标定图像ft*为:
ft*=htft
式中,ft为t时刻的图像帧,且图像帧ft与ft 1的变换式为:
式中,d为标定图像的整体位移服从线性变换的变换式,且d=[dxdy]′,dx和dy分别为t时刻的全局运动矢量;
m为从ft到ft 1的运动矢量矩阵。
4.根据权利要求3所述的基于传感器辅助全局运动估计的uav视频编解码方法,其特征在于,所述步骤s4具体为:
s41、设t 1时刻的图像帧ft 1的预测帧为ftmp;
s42、计算图像帧ft 1与预测帧ftmp的结构相似性值ssim;
s43、判断ssim是否大于设定的阈值;
若是,则进入步骤s44;
若否,则进入步骤s45;
s44、跳过该图像帧,并将该图像帧ft 1对应的结构相似性检查结果存入该图像帧ft 1对应的nal单元报头中;
s45、将图像帧ft 1对应的标定图像
5.根据权利要求4所述的基于传感器辅助全局运动估计的uav视频编解码方法,其特征在于,所述步骤s5中的mv候选列表candidate_list为:
式中,
gmv为全局运动矢量集合;
medianmv为无人机传感器记录的传感器信息的分类集合,且
lmv为本地运动矢量集合。
6.根据权利要求5所述的基于传感器辅助全局运动估计的uav视频编解码方法,其特征在于,所述步骤s5中,通过使用最小失真率代价方法从mv候选列表中选择最佳mv预测器,进而确定对应的最佳搜索点;
其中,最佳mv预测器
式中,
λ为用于速率控制调节的拉格朗日乘数;
sad(a,b)为a和b之间的绝对差之和;
puorig和pupred分别表示原始pu和被预测pu;
r为比特数;
ph、pw分别为当前pu的高度和宽度;
通过最小化拉格朗日率失真代价函数
式中,
7.根据权利要求6所述的基于传感器辅助全局运动估计的uav视频编解码方法,其特征在于,所述步骤s7具体为:
s71、根据nal单元报头中存储的结构相似性检查结果,依次判断其对应的图像帧是否为被跳过的图像帧;
若是,则进入步骤s73;
若否,则进入步骤s72;
s72、将该图像帧对应的视频编码码流数据输入到解码引擎中,并将解码出的图像作为参考帧,进入步骤s73;
s73、根据存储在nal单元报头中的单应矩阵和参考帧,重构出被跳过的图像帧对应的图像,进入步骤s74;
s74、重复步骤s71-步骤s73,直到所有的图像帧均被解码或重构,进入步骤s75;
s75、将重构出的图像和解码出的图像输入到解码引擎中,解码出所有的图像帧,并按照图像帧的图像顺序计数进行图像帧的显示,实现uav视频解码。
8.根据权利要求7所述的基于传感器辅助全局运动估计的uav视频编解码方法,其特征在于,所述步骤s72中,重构出被跳过的图像帧对应的图像的公式为:
式中,fskipped为之前被跳过的但又重构出来的图像;
hskipped为存储在nal单元报头中的单应矩阵;
fref为未被跳过的被解码出的作为参考帧的图像帧;
dref和href为参考帧的全局运动矢量和单应矩阵。
技术总结