您的位置:首页 > 编程语言 > Python开发

结合目标检测与多3DCNN的行为识别

2018-01-08 13:43 706 查看
主要思路:利用SSD目标检测检测人体,并将人体图抠出来,然后对原始帧和人体crop图像分别训练一个3DCNN,然后把这两个3DCNN作为特征提取器,分别提取原始帧和crop帧的特征,接着将特征进行融合,最后用SVM进行分类。

代码地址:Multi-3DCNN-for-action-recognition

主要流程如下图所示:



使用的是kth数据集,这个程序目前只能用于kth数据集,因为kth数据集每个视频中只有一个人。

训练3DCNN的时候,数据集的划分如下:

每个动作是由25个人完成,与一般论文中对kth的处理一致,前16个人作为训练,后9个人作为测试。

提取特征进行svm分类时,训练集与测试集也是前16个人作为训练,后9个人作为测试。

从每个训练集中的视频随机取出四段连续的16帧视频作为训练样本,从每个测试集中的视频随机取出一段连续的16帧视频帧作为测试样本。

因此总训练样本数为 16x4x4x6 = 1536,测试样本为:9x4x1x6-1=215

具体细节可看代码中load_dataset.py

结果:

只使用原始视频帧的特征(总正确率:81.40%)



只使用crop视频帧的特征(总正确率:79.07%)



使用融合特征(总正确率:87.44%)



从结果来看,这么做还是有一点提升的,不过kth数据集本身比较简单,而且这个程序限制比较多,只能用于视频中只有一个人的情况。

文中有些表述可能不太好,见谅,也欢迎大家提出意见。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息