Action-Net|UCF101数据集上训练测试数据load过程

Action-Net(CVPR2021)

  • 论文中给出了三个数据集的测试精度,sth-sthV2,jester,egogesture.
    其数据加载方式利用了作者构造的.pkl文件;
  • 要想要在UCF101,HMDB51上训练测试精度,有两种方法:
    (1)改写代码
    (2)构造ucf101和hmdb51数据集的.pkl文件

本文将附上方法(1)的实现步骤及代码,以ucf101为例:

  • 首先,在train.py中,需要在所有涉及到数据加载的地方加上ucf101以及hmdb51的选项;

示例

  • ./ACTION-Net/data/下构造dataset_ucf101.py,函数load_video代码见下,其余部分与其他数据集的加载相同;
root = './datasets/UCF101_org/'#ucf101数据集文件夹,包含annotions,rawframes
annot_path = 'ucf101_splits_101'#包含annotions的文件夹
rawframe_path = '/data1/han_wu/datasets/UCF101_org/ucf101_rawframes'

def load_video(annot_path, mode):
    # mode: train, val, test
    txt_file=os.path.join(annot_path,'ucf101_{}_split_1_rgb.txt'.format(mode))
    video_names =[]
    frame_nums = []
    labels = []
    file = open(txt_file,'r')
    for content in file.readlines():
        video_names.append(content.strip('').split(" ")[0])
        frame_nums.append(content.strip('').split(" ")[1])
        labels.append(content.strip('\n').split(" ")[2])
    #print("video,frames,label:",video_names,frame_nums,labels)
    rgb_samples = []
    for video_name in video_names:
        video_path = os.path.join(rawframe_path,video_name)
        rgb_list = []
        for num in os.listdir(video_path):
            frame_path = os.path.join(video_path,num)
            rgb_list.append(frame_path)
        rgb_samples.append(sorted(rgb_list))
    print('{}: {} videos have been loaded'.format(mode, len(rgb_samples)))
    return rgb_samples, labels
  • 至此,运行action-net训练指令,即可将ucf101作为数据训练模型
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值