首页 / 基于CNN和LSTM双分支在线动作检测方法及其系统

基于CNN和LSTM双分支在线动作检测方法及其系统实质审查 发明

技术领域

[0001] 本发明涉及视频理解技术领域,尤其涉及一种基于CNN和LSTM双分支在线动作检测方法及其系统。

相关背景技术

[0002] 在线动作检测旨在随时从流媒体视频中识别人体正在进行的动作,这个过程应该尽可能快的完成,最好是输入一帧立即得到结果,但在不取得完整时空动作信息的前提下对人体动作进行实时类别划分是一个极具挑战性的任务。现有技术中的在线动作检测方法大多采用带有循环单元(如LSTM)和门控的循环单元(如GRU)的循环神经网络来建模一个正在进行的动作的时间关系,但现有技术简单的将LSTM应用于在线动作检测无法同时实现提取输入帧的特征和建模时间关系。

具体实施方式

[0018] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0019] 以下结合附图,详细说明本发明各实施例提供的技术方案。
[0020] 参考图1,根据本发明实施例提供了一种基于CNN和LSTM双分支在线动作检测方法,其用于实时输出在线视频流中当前帧包含的动作类别,该方法包括以下步骤:
[0021] 步骤S102,获取包含人体动作的在线视频流。
[0022] 在本步骤中,获取在线视频流当前帧的RGB信息作为CNN(卷积神经网络)的输入数据。
[0023] 步骤S104,通过预训练的CNN提取所述在线视频流的当前帧的图像特征向量以构建特征提取分支;通过LSTM提取当前帧的时序特征向量以构建时间建模分支。
[0024] 在本步骤中,将通过步骤S102获取的当前帧的RGB信息输入至CNN进行特征提取,得到与当前帧对应的多个特征图,再将多个特征图输入至一个全连接层,得到当前帧的图像特征向量。
[0025] 具体地,为了提高计算效率并且减少占用的内存,可选择ResNet101作为特征提取分支的骨干网络。而为了有效地提升ResNet101对于图片特征提取的准确率,还可对ResNet101进行预训练,即使用人体动作识别数据集对ResNet101进行预训练。在本申请实施例中,人体动作识别数据集可选择Kinetics数据集或ImageNet数据集。经过预训练后的ResNet101可针对输入的图片提取得到相应的特征图。
[0026] 在本发明实施例中,根据不同应用场景需要预定义不同的动作类别,当应用于识别工人的动作类别时,预定义的动作类别包括:标准装配、站、走和坐,当应用于识别学生的动作类别时,预定义的动作类别包括:听讲、低头玩手机、交头接耳和睡觉。特征提取分支中全连接层具有的神经元的数量与预定义的动作类别的数目相同,这使得将通过CNN提取的多个特征图输入至全连接层后,得到的图像特征向量的维度与预定义的动作类别的数目也相同。
[0027] 在本步骤中,还选择LSTM(长短期记忆递归神经网络)作为时间建模分支的骨干网络,将通过本在线动作检测方法得到的当前帧前一帧的动作类别概率输入至LSTM进行时间建模。由于当前帧前一帧的动作类别概率是一个低维数据,将其输入LSTM中即可得到当前帧的前一帧和当前帧之间的时间关系,即输出当前帧的时序特征向量,所述时序特征向量的维度也与预定义的动作类别的数目相同。在本申请实施例中,当在线视频流第一帧输入特征提取分支提取图像特征向量时,初始化LSTM使其输出零向量。
[0028] 步骤S106,将所述图像特征向量和所述时序特征向量相结合,其中通过控制所述时间建模分支的输入以确保双分支输出的时间一致性。
[0029] 在本步骤中,可以使用权值的方式将特征提取分支的输出结果和时间建模分支的输出结果进行结合。具体地,将当前帧记为第t帧,特征提取分支输出当前帧的图像特征向量记为h1,t,时间建模分支的输出当前帧的时序特征向量记为h2,t,特征提取分支的权值记为ω1,时间建模分支的权值记为ω2,ω1和ω2的具体计算方法如下:
[0030] ω1=α(Wω1+bω1)
[0031] ω2=α(Wω2+bω2)
[0032] 其中,α、Wω1、Wω2、bω1和bω2均为通过特征提取分支和/或时间建模分支学习得到的网络参数,神经网络通过学习这些参数来拟合样本和结果的关系,其中,α为网络整体的系数,Wω1和Wω2表示网络中每一层的系数,bω1和bω2表示网络结果的偏移量。
[0033] 将步骤S104得到的图像特征向量和时序特征向量进行权值结合,得到的输出结果记为yt,yt的具体计算方法如下:
[0034] yt=ω1h1,t+ω2h2,t
[0035] 再将得到的输出结果通过另一个全连接层,得到当前帧包含的动作类别概率记为zt,zt的具体计算方法如下:
[0036] zt=Wyyt+by
[0037] 其中,Wy和by是是前述全连接层网络的参数,并且是通过样本学习拟合得到的网络参数,其中,Wy表示全连接层每一层的系数,by表示网络结果整体的偏移量,前述全连接层中神经元的数量也与预定义的动作类别的数目相同的。
[0038] 在本步骤中,还要比较结合时的图像特征向量对应的帧数和时序特征向量对应的帧数是否相同,如果相同,则输出本步骤计算得到的当前帧包含的动作类别概率。
[0039] 当图像特征向量对应的帧数与时序特征向量对应的帧数不相同,即特征提取分支进行速度与时间建模分支进行速度不同时,需要通过调节LSTM的输入的时间延迟,以确保两分支输出向量的时间一致性。具体地,进一步判断图像特征向量的帧数和时序特征向量的帧数哪一个更小,如果时序特征向量的帧数小于图像特征向量的帧数,即图像特征向量提取完成而时间建模未完成时,增大LSTM的输入的时间延迟,降低LSTM的输入的速率,反之则减小LSTM的输入的时间延迟,增大LSTM输入的速率,从而得到与图像特征向量同一帧的时序特征向量。再次使用权值的方式结合属于同一帧的图像特征向量和时序特征向量,得到该帧包含的动作类别概率,即当前帧包含的动作类别概率。
[0040] 步骤S108,识别当前帧包含的动作类别。
[0041] 在本步骤中,根据预先设置的概率阈值,将步骤S106得到的当前帧的动作类别概率中大于阈值的动作类别作为当前帧包含的动作类别。
[0042] 在本发明实施例中,为了便于对在线视频流的时间关系进行建模,需要逐帧获取在线视频流,下面具体描述。
[0043] 首先通过服务器获取摄像头实时摄录的在线视频流,通过在线视频流获取其第一帧的RGB信息,将第一帧的RGB信息输入至特征提取分支,将时间建模分支初始化使其输出零向量,将特征提取分支输出的图像特征向量和时间建模分支输出的零向量结合得到第一帧的动作类别概率。
[0044] 随后,通过在线视频流获取第二帧的RGB信息,将第二帧的RGB信息输入至特征提取分支,将第一帧的动作类别概率输入至时间建模分支,将特征提取分支输出的图像特征向量和时间建模分支输出的时序特征向量结合得到第二帧的动作类别概率。判断图像特征向量和时序特征向量是否都属于第二帧,若是则将第二帧的动作类别概率作为第三帧时间建模分支的输入,若时间建模分支的输出的时序特征向量仍属于第一帧,减小LSTM的输入的时间延迟,增大LSTM的输入的速度,使得时间建模分支输出第二帧的时序特征向量,若特征提取分支输出的图像特征向量仍属于第一帧,增大LSTM的输入的时间延迟,减小LSTM的输入的速度,使得特征提取分支输出第二帧的图像特征向量时,时间建模分支仍输出第二帧的时序特征向量。再次结合图像特征向量和时序特征向量得到第二帧的动作类别概率作为第三帧时间建模分支的输入。
[0045] 重复上述步骤,直到通过在线视频流获取第t帧的RGB信息,将第t帧的RGB信息输入至特征提取分支,将第t‑1帧的动作类别概率输入至时间建模分支,将特征提取分支输出的图像特征向量和时间建模分支输出的时序特征向量结合得到第t帧的动作类别概率,并判断图像特征向量和时序特征向量均属于第t帧后,通过第t帧的动作类别概率识别第t帧包含的动作类别,第t帧包含的动作类别即为当前帧包含的动作类别。
[0046] 下面举例说明。
[0047] 在本申请一实施例中可对工厂中单个工人的行为进行实时检测。
[0048] 步骤1,构建特征提取分支。具体地,使用ImageNet对2DCNN的ResNet101进行预训练并且保留训练后的模型作为特征提取分支用于提取图像特征向量。
[0049] 步骤2,构建时间建模分支。具体地,使用LSTM网络作为时间建模分支用于提取时序特征向量。
[0050] 步骤3,使用构建的时间控制模块判断两分支中哪个分支进行的比较快,如果特征提取分支快,时间控制模块减小时间建模分支输入的时间延迟,如果时间建模分支快,时间控制模块增大时间建模分支输入的时间延迟。
[0051] 步骤4,结合模块使用权值结合的方式结合特征提取分支(2DCNN)和时间建模分支(LSTM)的输出,并跟随一个前向传播网络输出当前时刻视频中的人正在进行的动作。
[0052] 步骤5,通过在线动作检测TVSeries数据集训练模型。
[0053] 具体地,步骤5包括:
[0054] 初始化时间建模分支使其的首次输出为零向量,时间控制模块初始化为0,结合模块使用随机数的方式初始化;
[0055] 将TVSeries数据集按照3:1的方式划分为训练集和测试集;
[0056] 模拟在线动作检测方式将训练集的视频逐帧输入至动作检测模型中,将训练的迭代次数(epoch)设置为16,保存每次迭代后的模型参数;
[0057] 通过测试集测试每一次迭代保存的参数,选择测试效果最好的参数作为结合图像特征向量和时序特征向量的参数和权值。
[0058] 步骤6,在真实场景中部署动作检测模型。
[0059] 具体地,步骤6包括:
[0060] 预定义工人不同行为的动作类别和采样方式,并在距离每个工人1米或2米的位置架设摄像机,从而构建专用数据集,其中,动作类别包括:标准装配、站、走和坐,采样方式为单人采样;
[0061] 使用专用数据集对动作检测模型进行微调;
[0062] 将动作检测模型布置在一个与摄像机连接的服务器上,摄像机的摄像头对准一个工人的工位,每次只拍摄一个人并对这个人进行动作检测。
[0063] 在本申请的另一实施例中可对教室中学生的上课行为进行实时检测。
[0064] 步骤1,构建特征提取分支。具体地,使用ImageNet对2DCNN的ResNet101进行预训练并且保留训练后的模型作为特征提取分支用于提取图像特征向量。
[0065] 步骤2,构建目标检测网络,目标检测模块使用FOCS网络,预先使用COCO数据集对网络进行预训练。
[0066] 具体地,步骤2包括:
[0067] 构建FOCS网络,特征提取部分使用预训练好的ResNet网络;
[0068] 对COCO数据集按照3:1划分为训练集和测试集;
[0069] 使用训练集对FOCS网络进行预训练;
[0070] 对输出的目标映射到原始图像上,携带目标检测框。
[0071] 步骤3,构建时间建模分支。具体地,使用LSTM网络作为时间建模分支用于提取时序特征向量。
[0072] 步骤4,使用构建的时间控制模块判断两分支中哪个分支进行的比较快,如果特征提取分支快,时间控制模块减小时间建模分支输入的时间延迟,如果时间建模分支快,时间控制模块增大时间建模分支输入的时间延迟。
[0073] 步骤5,结合模块使用权值结合的方式结合特征提取分支(2DCNN)和时间建模分支(LSTM)的输出,并跟随一个前向传播网络输出当前时刻视频中的人正在进行的动作。
[0074] 步骤6,通过在线动作检测TVSeries数据集训练模型。
[0075] 具体地,步骤6包括:
[0076] 初始化时间建模分支使其的首次输出为零向量,时间控制模块初始化为0,结合模块使用随机数的方式初始化;
[0077] 将TVSeries数据集按照3:1的方式划分为训练集和测试集;
[0078] 模拟在线动作检测方式将训练集的视频逐帧输入至动作检测模型中,将训练的迭代次数(epoch)设置为16,保存每次迭代后的模型参数;
[0079] 通过测试集测试每一次迭代保存的参数,选择测试效果最好的参数作为结合图像特征向量和时序特征向量的参数和权值。
[0080] 步骤7,在真实场景中部署动作检测模型。
[0081] 具体地,步骤7包括:
[0082] 预定义学生不同行为的动作类别,并在教室中架设摄像机,从而构建专用数据集,其中,动作类别包括:听讲、低头玩手机、交头接耳和睡觉;
[0083] 使用专用数据集对动作检测模型进行微调,视频帧先输入到特征提取2DCNN中,然后经过目标检测网络携带上目标检测框之后进行动作检测;
[0084] 将动作检测模型布置在一个与摄像机连接的服务器上,摄像机的摄像头对准整个教室,可以识别教室中所有学生的行为。
[0085] 参考图2,根据本发明实施例还提供了一种基于CNN和LSTM双分支在线动作检测系统,其包括:
[0086] 视频流获取模块21,用于获取包含人体动作的在线视频流;
[0087] 特征提取模块22,用于通过预训练的CNN提取所述在线视频流的当前帧的图像特征向量以构建特征提取分支;在一些实施例中,所述系统还可包括预训练模块(图中未示出),用于通过人体动作识别数据集预训练CNN;
[0088] 时间建模模块23,用于通过LSTM提取当前帧的时序特征向量以构建时间建模分支;
[0089] 结合模块24,用于将所述图像特征向量和所述时序特征向量相结合,其中通过控制所述时间建模分支的输入以确保双分支输出的时间一致性;
[0090] 识别模块25,用于识别当前帧包含的动作类别。
[0091] 根据本发明实施例的基于CNN和LSTM双分支在线动作检测系统还包括:时间控制模块26,用于若结合的图像特征向量和时序特征向量不属于同一帧,调节所述LSTM的输入的时间延迟,得到与所述图像特征向量同一帧的时序特征向量并重新结合;其中若所述时序特征向量的帧数小于所述图像特征向量的帧数,增大所述LSTM的输入的时间延迟,若所述时序特征向量的帧数大于所述图像特征向量的帧数,减小所述LSTM的输入的时间延迟。
[0092] 进一步地,所述时间建模模块23,还用于选择LSTM作为骨干网络,将当前帧前一帧包含的动作类别概率输入所述LSTM得到当前帧的时序特征向量;其中,当所述CNN提取所述在线视频流的第一帧的图像特征向量时,所述LSTM初始化为输出零向量。
[0093] 进一步地,所述结合模块24,还用于分别通过所述CNN和所述LSTM学习权值;结合所述权值、所述图像特征向量和所述时序特征向量,得到当前帧包含的动作类别。
[0094] 具体地,特征提取模块22接收视频流获取模块21获取得到的视频流,结合模块24结合特征提取模块22和时间建模模块23输出的向量,时间控制模块26判断结合模块24中结合的向量是否属于同一帧,并将结合结果作为时间建模模块23的输入,识别模块25根据结合模块24输出的当前帧的结合结果识别当前帧的动作类别。
[0095] 本发明实施例的系统的结构特征与上述方法的操作步骤对应,可以相互参照,此处不再赘述。
[0096] 综上所述,根据本发明的技术方案,通过使用CNN提取图像特征向量,使用LSTM提取时序特征向量,将特征提取和时间建模分解为两个子任务并独立执行,实现了同时捕获视频流的时间关系和空间关系,提高了动作检测的效率,再通过判断双分支输出的结果是否属于同一帧,确保了双分支的时间一致性,增加了动作检测结果的准确性。
[0097] 尽管已经参考本公开的特定实施例详细地描述本公开,但是本领域技术人员将理解,在不脱离实施例的精神和范围的情况下可以在其中进行各种改变和修改。因此,本公开旨在覆盖本公开的修改和变化,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的权利要求以及其等效物的范围之内。
[0098] 此外,在以上描述或权利要求书或附图中公开、以其特定形式或根据用于执行所公开功能的方式或用于获得所公开结果的方法或过程表达的特征视情况可以单独地或以这些特征的任何组合来用于以它们的不同形式实现本发明。具体来说,本文所描述的任一个实施例的一个或多个特征可以与本文所描述的任何其它实施例的一个或多个特征组合。
[0099] 还可以为结合本公开引用和/或通过引用合并的任何一个或多个公开文件中公开的任何特征寻求保护。

当前第1页 第1页 第2页 第3页