Open bleakie opened 2 years ago
针对一段视频包含多个动作(action)的情况,你的任务听起来更像是动作检测(action detection)或动作分割(action segmentation),而不仅仅是动作识别(action recognition)。在这种情况下,你不仅需要识别视频中存在的动作,还需要确定每个动作的开始和结束时间。以下是一些建议:
使用适合的数据集:选择或构建一个适合任务的数据集,这个数据集中的每个视频应该标注了多个动作及其对应的时间段。如THUMOS'14、Charades或AVA数据集。
采用适当的模型:针对这类任务,一些研究采用了Two-Stream ConvNets、3D ConvNets(如C3D、I3D)加上时间分割网络(如Temporal Segment Networks, TSN),或者是最近更为先进的时空动作检测模型,如SlowFast Networks、Graph Convolutional Networks(GCNs)结合非局部(non-local)操作等。
训练策略:
损失函数:多任务学习框架通常在这类问题上表现良好,其中一个任务是动作分类,另一个任务是动作定位(即确定动作的开始和结束)。因此,损失函数可以设计为分类损失(如交叉熵)和定位损失(如IoU损失或L1/L2损失)的组合。
评估指标:采用动作检测的评估指标,如平均精度(mAP)等,这需要考虑到检测到的动作的时间精确度。
训练&测试过程:
使用适当的数据预处理、数据增强技术以及精心设计的训练流程,可以进一步提高模型的性能。
ActivityNet是一段视频只有一个action,如果我想用一段视频包含多组action该如何训练&测试呢?