1.一种轻量化识别视频人体姿态的方法,包括如下步骤:
步骤一,视频样本预处理;
将获取到的实时监控视频或现有视频序列利用OpenCV进行视频帧化处理,即把将视频转化为一帧帧的RGB图像;然后对RGB视频帧进行图像增强、去噪等预处理,同时通过视频帧序列计算光流序列,进而提取光流特征图像;具体包括:(1)RGB视频帧图像预处理;
对于RGB视频帧图像的预处理,首先对其进行图像增强;具体有:先将图像划分为N个大小相等且互不重叠的图像子块;其次,对于每个子块,将它的像素个数均匀分配到它的各个灰度级中,由此可得每个灰度级所分配到的平均像素个数,进一步得到对比度阈值T;再次,利用对比度阈值T对每个图像子块的灰度直方图即局部直方图进行裁剪,然后将裁剪部分的像素个数均匀分配到各个灰度级,得到各个灰度级平均分配到的像素个数;然后,反复进行像素裁剪和均匀分配,直至各个灰度级的像素个数均小于阈值;紧接着对重新分配像素后的每个图像子块进行直方图均衡化处理;在对图像子块完成直方图均衡化后,若仅仅利用映射函数进行变换得到每个子块像素点的值,则不仅会导致算法耗时严重,还会让互不重叠的图像子块在图像重构时产生块效应;为了提高图像的质量,加快图像的处理速度,最后利用双线性插值算法计算像素点的值;经过图像增强后,图像的亮度和对比度都会得到较理想的改善,直方图的灰度分布也会变得更加均衡;
随后,利用引导滤波对经过图像增强的视频帧图像样本进行去噪;引导滤波是一种以较低运算耗时去除噪声、保持边缘的滤波方法;与其他滤波方法相比,它有着更强的适应性和更优的滤波性能;
(2)提取光流特征图像;
假设视频帧图像梯度恒定且局部光流恒定,提取光流特征图像的步骤主要有:
S1:图像的近似建模;
使用一个二次多项式来近似表示一个二维的灰色图像;因为图像一般是二维的,那么图像像素点(x,y)的灰度值可以看成是一个二维变量函数f(x,y),若以感兴趣的像素点为中心构建一个局部坐标系,那么对该函数进行二项展开,可以近似为:其中,x为二维列向量;A为2×2的对称矩阵;B为2×1的矩阵;C为常量;
2
然后以该像素点为中心,设定一个方形邻域(2n+1)×(2n+1),把邻域内的共(2n+1) 个像素点作为样本点,通过计算这些样本点的值和坐标来进行中心像素点的六维系数的估计,估计的方法常使用加权最小二乘法,其中加权是因为在邻域内,距离中心越近的像素点与中心像素具有越大的相关性,而距离越远的点提供的信息则越少,因此可以将邻域以外的像素点的权重都视为0;此处的系数是针对像素点(x,y)而确定的,对于其他像素点并不适用,即对于图像中的每个像素点,都有一个六维向量;
S2:位移估计;
首先通过全局位移来构造一个新的信号,假设某一个像素点M的原始位置为f1(x),即有:
则像素点M在邻域范围内移动d后,有:
其中,A2=A1,B2=B1‑2A1d,
然后通过假定二次多项式中的系数相等来计算整体的位移;假设式(3)中的A1为非奇异矩阵,则可得到图形的全局位移d值为:按照理论推导,其中必定有A2=A1,但实际情况中未必能满足这一项要求,因此可以用均值来近似真实值,若令:则有:
Ad=ΔB (7)
T ‑1 T
d=(AA) (A ΔB) (8)
在计算过程中,可以利用一个先验位移值来缩减迭代次数,因为适当的先验位移值意味着更小的相对位移,从而可以得到更加精准的图像帧间的位移估计,进而在迭代位移估计的过程中获得视频图像帧之间的最优位移值;
S3:生成光流特征图;
利用HSV颜色模型将光流场转换为光流图像;因为经步骤S1和步骤S2提取到的只是一个光流场,该光流场只是一个二维向量场,需要将其转换为光流特征图才能输入网络中进行特征提取;
步骤二,构建LHN模型;
通过构建轻量级的LHN模型来实现RGB视频帧的特征提取,该模型由四阶LH Block组建而成;其中,一阶的LH Block由两个支路组成,在上支路中,输入依次经过三个轻量级的残差模块,并保留输入图像当前尺度的特征信息;在下支路中,输入会先经过一层最大池化层进行下采样操作,然后依次经过三个轻量级的残差模块,在获取了输入图像的当前尺度的特征后,利用最近邻插值法进行一次上采样操作获取原始分辨率图像;因上支路不会改变图像的分辨率,所以接着将上支路提取的特征图和下支路提取的特征图进行相加操作,最终得到图像在两种尺度下的特征信息;四阶LH Block均由一阶LH Block拼接而成,即都是先分为上支路和下支路,上支路先依次经过三个轻量级的残差模块,保留输入图像当前尺度的特征信息;下支路则要先经过一个最大池化下采样操作,降低图像的分辨率,接着依次经过三个轻量级的残差模块提取图像特征,然后与前一阶的LH Block进行拼接,最后经过一次上采样操作与上支路获取的图像特征图进行相加操作,以融合图像的多个分辨率的特征,进而进行轻量、有效的人体姿态估计;其中,对残差模块的轻量级设计主要包括:将残差模块中的普通卷积方式更改为深度可分离卷积,同时融入通道分离重组,由此减少模型的参数量、计算量,同时减少传输时的通道数,以保证各部分的图像特征均能有效地传输到模型的后端,提高各特征之间的相关性,以保证人体姿态的准确估计;
步骤三,训练LHN模型;
为了避免网络从头开始训练带来的耗时长以及过拟合带来的弊端,利用ImageNet数据集对LHN网络做预训练,然后对此获取的权重以预处理后的RGB视频帧为输入进行迁移学习的训练;
步骤四,设计LRDN模型;
通过设计LRDN模型以实现轻量化地完成光流图特征提取,该模型由三部分组成:浅层特征提取模块、深层特征提取模块以及图像分类模块;
首先,利用1层标准卷积和1层改进的深度可分离卷积提取输入图像的浅层特征;其中,对传统深度可分离卷积操作的改进有:第一,在深度卷积前增加一层1×1卷积的“扩张”层,目的是为了提升通道数,获得更多特征;第二,最后不采用ReLU激活函数,而是直接线性输出,目的是防止ReLU破坏特征;
然后,将浅层特征作为深度特征提取模块的输入,利用LRDB中的局部密集连接、特征复用、下采样操作与残差融合结构获取图像的各项细节特征;对于LRDN模型,深层特征提取模块是其核心部分,而深层特征提取模块主要是由LRDB组成;LRDB通常包含一个密集连接块、一个下采样过渡块以及一个带池化操作的恒等连接;其中,LRDN中的密集块由24层卷积层密集连接而成,且每一层的非线性组合函数为BN+ReLU+1×1Conv+BN+ReLU+3×3Conv的组合;其中,1×1Conv在这里的作用是固定输出通道数,将输出的特征图个数降低为4k,达到降维的目的,从而提升计算效率;当网络中的十几个1×1Conv+3×3Conv的复合卷积相连接时,串联后的特征通道数会增加到上千,如果不增加1×1Conv来降维,那么后续3×3Conv所需的参数量会急剧增加;此外,因LRDB中包含有残差连接,故在密集块中采用了预激活设计,即激活函数在前、卷积层在后的BN‑ReLU‑Conv的顺序;而对于模型中的最后一个LRDB,通常直接利用1×1Conv对该密集块的输出特征进行压缩、整理,然后在倒数第二个LRDB输出的深层特征与压缩后的特征之间加入残差连接,获取最终的深层特征;
最后,利用全局平均池化聚合特征图,由全连接层、softmax层作为特征分类器,对输入的图像进行分类,并获取分类的概率;
步骤五,训练LRDN模型;
对于LRDN模型的训练,由于光流视频不能直接作为网络的输入,同时也为了提高网络的分类识别准确率,因此以空间LRDN网络前向传播选择的RGB视频帧为基准,抽取每帧RGB视频帧所对应的前4张、后5张以及本身共10张光流图组合成堆叠的光流特征图像输入到网络中,以进行LRDN网络的前向传播运算,迭代训练,以保证LRDN网络的鲁棒性;
步骤六,搭建并联式异构卷积神经网络;
将步骤二中构建的LHN模型与步骤四中设计的LRDN模型以并联的方式进行拼接,进而构建双流异构卷积神经网络,因双流网络均为深度卷积网络,最后将两个网络的softmax概率利用以堆叠的L2标准化的softmax分数作为特征的多类别线性SVM进行融合,最终选择最大概率值所对应的姿态类别为模型当前输入的视频帧序列所属的人体姿态类别。