基于VGG-Net的人体行为识别(Action Recognition)

该文介绍了对'Towards Good Practices for Very Deep Two-Stream ConvNets'的复现工作,重点是采用two-stream卷积方法进行人体行为识别。研究者使用了ImageNet预训练模型进行fine-tune,采取更小的学习率,以及多种数据增强策略,如多尺度crop,以防止过拟合。在测试阶段,使用UCF101数据集,通过光流图和RGB图像进行识别,但光流图的选取对结果影响显著,使用TVL1光流算法能提高准确性。最终在UCF101上达到90%左右的准确率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Abstract:

本文对论文’Towards Good Practices for Very Deep Two-Stream ConvNets’的复现。该论文采用了two-stream的卷积方法,该方法的鼻祖是VGG团队,该团队的论文是14年的’Two-Stream Convolutional Networks for Action Recognition in Videos’ ,从此开创了新的一派,可以战胜C3D一派。Yuanjun Xiong的VGG未防止数据量太小导致过拟合,实现two-stream的创新点如下:

  • 采用了ImageNet预训练的模型进行fine-tune。

  • 更小的学习率

  • 新的数据增广的方式。

  • 使用了多GPU并行训练的策略。

网络特点

  • 该网络首先将视频转换成rgb和灰度的光流图存储起,因此,输入网络的不是视频,而是视频提前转好的图片。
  • 采用ImageNet的model进行finetune。当在spatial Stream时,输入RGB图,RGB图的选取方法是:在视频中随机抽取一帧作为RGB图。因此,ImageNet训练的model可以直接在spatial stream使用。而temporal stream,由于输入的是光流图,而输入的光流图在视频中得到的光流图集合中,随机选取某一帧光流图作为第一张图,而训练的图是10帧光流图的堆叠,(有x方向和y方向,通道数为1*2*10=20),temporal stream第一层卷积的参数量与spa
设置一个基于VGG-16的水杯识别神经网络模型通常需要几个步骤: 1. **下载预训练的VGG-16模型**:VGG-16是一个预先在大规模图像数据集上(如ImageNet)训练过的卷积神经网络。你可以从Keras库或者TensorFlow Hub等资源获取预训练好的权重。 2. **加载VGG-16结构**:使用Keras的`applications.vgg16.VGG16()`函数加载预定义的VGG-16模型,并指定`include_top=False`来移除顶部的全局平均池化层和全连接分类层,因为我们打算添加自定义的输出层。 ```python from keras.applications.vgg16 import VGG16 base_model = VGG16(weights='imagenet', include_top=False, input_shape=(224, 224, 3)) ``` 3. **冻结部分或全部层**:由于VGG-16的前几层已经学习了通用的特征提取,我们通常会冻结它们,只训练新增加的部分。可以使用`base_model.trainable = False`来锁定这些层。 4. **添加新层**:在预训练的VGG-16基础上,添加一层或几层全连接层(Dense),以及一个合适的激活函数(如softmax用于多类别分类)来生成特定于水杯识别的预测。 ```python x = base_model.output x = Flatten()(x) # 将卷积层输出展平 x = Dense(4096, activation='relu')(x) # 添加第一个全连接层 x = Dropout(0.5)(x) # 防止过拟合 predictions = Dense(num_classes, activation='softmax')(x) # 根据水杯种类数定义 num_classes model = Model(inputs=base_model.input, outputs=predictions) ``` 5. **编译模型**:设置损失函数、优化器和评估指标。对于分类任务,交叉熵损失(`categorical_crossentropy`)很常见。 ```python model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) ``` 6. **准备数据**:收集并预处理水杯相关的图像数据,将其调整为VGG-16所需的输入大小,并进行归一化。将数据划分为训练集、验证集和测试集。 7. **训练模型**:使用训练数据对模型进行训练,可能需要调整学习率、批量大小和其他超参数以提高性能。 8. **评估和微调**:在验证集上测试模型,如果性能不佳,可以选择解冻一部分预训练层进行微调。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值