[发明专利]基于双向特征金字塔的视频动作检测方法有效
申请号: | 201910778111.8 | 申请日: | 2019-08-22 |
公开(公告)号: | CN110659572B | 公开(公告)日: | 2022-08-12 |
发明(设计)人: | 宋砚;唐金辉;何江 | 申请(专利权)人: | 南京理工大学 |
主分类号: | G06V20/40 | 分类号: | G06V20/40;G06V40/20 |
代理公司: | 南京理工大学专利中心 32203 | 代理人: | 朱宝庆 |
地址: | 210094 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 双向 特征 金字塔 视频 动作 检测 方法 | ||
1.一种基于双向特征金字塔的视频动作检测方法,其特征在于,包括以下步骤:
步骤1,对数据集进行预处理,提取I3D特征;
步骤2,制作训练样本;
步骤3,搭建网络,并将步骤1得到的I3D特征输入到网络中进行训练;
步骤4,将测试视频对应的I3D特征输入到网络中,得到动作检测结果,使用非极大值抑制算法去除冗余检测结果;
所述步骤1具体包括:
步骤101,把未剪辑的长视频,包括训练集和测试集,以jpeg的图片格式,按照25FPS的帧率读出为RGB图片,并使用TVL1算法计算对应的光流;
步骤102,每次从步骤101得到的视频帧中取16帧,将该16帧的RGB图片和计算得到对应的光流输入到I3D网络中,分别提取I3D网络的Mixed_5c层的输出2×7×7×1024,接着使用一个卷积核为2×7×7的AveragePooling3D得到1024维的特征;将RGB和光流得到的1024维特征拼接为2048维;
所述步骤2具体包括:
步骤201,统计步骤101得到的每个视频的RGB帧数,然后按照512帧划分视频段,在训练集中每个视频段之间的重叠率为75%,在测试集中每个视频段之间的重叠率为50%,并记录每个视频段在视频中的起始位置;
步骤202,读取训练集的标注文件,计算真实标注的动作区间和步骤201得到的视频段的重叠部分,然后根据重叠率来为视频段分配真实标注;
步骤203,根据特征层默认锚的大小以及对应的锚尺度计算特征层上的锚坐标;
步骤204,对步骤202得到的属于视频段的真实标注动作区间和步骤203得到的锚坐标计算交并比IoU,并根据IoU分数分配锚的标签,具体操作为:
步骤205,先将步骤204中的属于锚的真实标注动作区间转换成中心和宽度,然后再进行编码,编码过程的具体操作为:
其中,gtc和gtw分别为真实标注动作的中心和宽度,anchorc和anchorw分别为锚的中心和宽度,encodec和encodew分别表示编码后的动作中心和宽度;
步骤202中根据重叠率来为视频段分配真实标注的具体过程为:
若真实标注的动作区间长度大于视频段的长度,且当重叠部分占视频段的75%,则该真实标注属于这个视频段;
若视频段的长度大于真实标注的动作区间长度,且当重叠部分占真实标注的动作区间的75%,则该真实标注属于这个视频段;
若一个视频段没有分配到任何的真实标注,则将其抛弃;
最后将属于视频段的真实标注的动作区间修改为重叠部分的起始和结束坐标;
步骤203的具体过程为:
步骤2031,对于一特征层,其时间维度为t,即有t个区间,默认anchor的宽度为w,在每个区间上放置n个锚,使用的锚尺度为[s1,s2,...,sn];
步骤2032,计算该特征层上第i个区间的第j个锚的坐标为
其中,sj为第j个锚的尺度,w*sj为锚的宽度;
步骤2033,获取该特征层上所有锚在特征层上中心坐标[0.5,1.5,...,t-0.5],获取这些锚在视频段的中心坐标为[0.5m,1.5m,...,(t-0.5)m],锚尺度为[0.5,0.75,1],对应的锚宽度为[0.5w,0.75w,w],那么在视频段上的锚的坐标为:
...
其中每一行代表一个特征图上的一个单元格上的不同尺度的锚的坐标,每一行中的每两个坐标分别是锚的起始和结束坐标;
步骤204的具体过程为:
步骤203得到的锚有多个,计算每个锚和该视频段的所有真实标注动作区间的IoU:
如果最高的IoU分数大于0.5,则这个锚和对应的真实标注匹配,即这个锚的标签是这个真实标注动作区间和相应的动作类别,并将这个锚视为正例;
如果最高的IoU分数小于等于0.5,那么这个锚的标签就是背景类,并将这个锚视为负例;
所述步骤3具体包括以下步骤:
步骤301,用1d时序卷积和反卷积搭建网络,具体操作如下:
使用1d时序卷积和反卷积搭建整个网络,网络的输入是步骤102得到的I3D特征,大小为32×2048,特征图C1-C5得到的方式如下:
其中,inputs表示网络输入,大小为32×2048,m1表示卷积核为1×1024且步幅为1的1d时序卷积,m3表示卷积核为3×1024且步幅为2的1d时序卷积;
得到C1-C5后使用横向连接和反卷积得到特征图P1-P5,得到的过程如下:
其中,k3表示卷积核为3×256且步幅为1的1d时序卷积,k1表示卷积核为1×256且步幅为1的1d时序卷积,de表示反卷积操作,将特征图的时间维度放大两倍;
得到P1-P5后,继续使用1d时序卷积得到特征图R1-R5,具体方法如下:
其中,k3表示卷积核为3×256且步幅为1的1d时序卷积;
得到R1-R5后,在R1-R5上进行检测,其中分类和位置预测是在两个分支上进行的;分类是使用一个卷积核为3×Classesnum×anchornum,步幅为1的1d时序卷积得到的,其中Classesnum表示预测的类别个数,anchornum表示该特征层上每个单元格上预测的锚个数;位置预测是通过一个卷积核为3×2×anchornum,步幅为1的1d时序卷积得到的,其中2表示预测动作的中心和宽度;
步骤302,根据步骤202得到的训练集视频段,从步骤102得到的特征中读取对应的I3D特征输入步骤301搭建的网络中;
步骤303,根据步骤204得到的锚和真实标注之间的IoU,使用难分样本挖掘使得正负例之比为1:3,具体做法为:假设正例的个数为N个,将负例锚的预测结果进行排序,选择背景分数最低的3N个负例用于计算损失,其余的全部抛弃;
步骤304,使用Adam优化器训练网络,其中多任务损失如下:
其中,N表示正例的个数,Lcls是一个标准的多分类交叉熵损失,Lloc是编码后的位置偏移量的L1损失,计算过程如下所示:
其中,表示第i个锚与第j个真实标注匹配关于类别c匹配,表示第i个锚的第c个类别的分类分数;xij表示第i个锚和第j个真实标注是否匹配,匹配时为1,否则为0;表示第i个锚的背景分类分数,表示第i个锚预测的中心/宽度预测偏移量,是指第i个anchor的第c类分类分数,表示第j个真实标注的中心/宽度Pos为正例,Neg为负例;
所述步骤4具体包括以下步骤:
步骤401,根据步骤201得到的测试集视频段,从步骤102得到的特征中读取对应的I3D特征输入到网络中,得到初步预测结果;
步骤402,将步骤401得到的初步预测结果中的坐标偏移量进行解码,得到动作的中心和宽度,然后转换成动作的起始和结束坐标,解码操作过程如下:
decodec=predc*anchorw+anchorc (10)
decodew=exp(predw)+anchorw (11)
其中,predc和predw分别为预测的动作中心和宽度偏移量,anchorc和anchorw分别为锚的中心和宽度,decodec和decodew分别是解码后的动作的中心和宽度;
步骤403,对步骤402得到的预测结果进行筛选,首先将预测分类分数小于0.1的以及背景分数抛弃掉,并将预测结果的起始结束坐标加上视频段在视频中的起始坐标,得到预测结果在视频中的位置;将属于同一个视频的所有预测结果放在一个集合中,然后对每个类别使用一次非极大值抑制算法,去除冗余得到最终的检测结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京理工大学,未经南京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910778111.8/1.html,转载请声明来源钻瓜专利网。