• C3D使用指南


    C3D GitHub项目地址:https://github.com/facebook/C3D

    C3D 官方用户指南:https://goo.gl/k2SnLY

    1. C3D特征提取

    1.1 命令参数介绍

    官方GitHub项目上同时提供了C3D-v1.0和C3D-v1.1两个版本,以下方法适用于v1.0

    官方提供的特征提取demo路径为~/C3D-master/C3D-v1.0/examples/c3d_feature_extraction

    在这个路径下,执行c3d_sport1m_feature_extraction_video.sh或c3d_sport1m_feature_extraction_frm.sh可以分别启动从视频提取特征和从图片提取特征的demo

    打开c3d_sport1m_feature_extraction_video.sh文件,出去一些用来生成文件夹的指令,可以看到启动C3D的命令如下:

    GLOG_logtosterr=1 ../../build/tools/extract_image_features.bin prototxt/c3d_sport1m_feature_extractor_video.prototxt conv3d_deepnetA_sport1m_iter_1900000 0 50 1 prototxt/output_list_video_prefix.txt fc7-1 fc6-1 prob

    其中

    a) ../../build/tools/extract_image_features.bin是提取特征的可执行文件,示例命令中使用了相对路径,如果在其他路径下调用注意进行对应的修改

    b) prototxt/c3d_sport1m_feature_extractor_video.prototxt该文件记录了提取特征的一系列输入参数,下面会详细介绍

    c) conv3d_deepnetA_sport1m_iter_1900000 这是预训练模型文件,根据自己的需求做对应的修改

    d) 接下来的三项数字是:0 50 1,分别是gpu_id,mini_batch_size和number_of_mini_batches。gpu_id是在计算机具有多块GPU时指定使用哪一块GPU的,默认是0,如果将这一项的值置为-1则启动CPU模式。需要注意,如果需要调整batch size,在prototxt文档中也要进行相应的修改

    e) prototxt/output_list_video_prefix.txt是输出前缀文件,下面会详细介绍

    f) fc7-1 fc6-1 prob是特征名称 要提取哪一层的特征依序写在这里即可

    1.2 prototxt文档

    prototxt/c3d_sport1m_feature_extractor_video.prototxt是这个demo所使用的prototxt文档

    第9行

    source: "prototxt/input_list_frm.txt"

    这是记录输入文件路径的文档。在这个demo中,prototxt/input_list_frm.txt对应的是以图片作为输入时的文档,而prototxt/input_list_video.txt对应的是以视频作为输入时的文档。以prototxt/input_list_frm.txt为例,该文档格式如下:

    input/frm/v_ApplyEyeMakeup_g01_c01/ 1 0
    input/frm/v_ApplyEyeMakeup_g01_c01/ 17 0
    input/frm/v_ApplyEyeMakeup_g01_c01/ 33 0
    input/frm/v_ApplyEyeMakeup_g01_c01/ 49 0
    input/frm/v_ApplyEyeMakeup_g01_c01/ 65 0
    input/frm/v_ApplyEyeMakeup_g01_c01/ 81 0
    input/frm/v_ApplyEyeMakeup_g01_c01/ 97 0
    input/frm/v_ApplyEyeMakeup_g01_c01/ 113 0
    input/frm/v_ApplyEyeMakeup_g01_c01/ 129 0
    input/frm/v_ApplyEyeMakeup_g01_c01/ 145 0

    其中input/frm/v_ApplyEyeMakeup_g01_c01/是保存图片的路径,后面的第一个数字表示从哪一帧开始提取特征,最后的数字表示该行对应的类别。由于这是提取特征而非训练,类别填写什么都不要紧,只要有就行

    多少帧提取一次特征,是由prototxt/input_list_frm.txt中第17行new_length一项参数决定的。例如上面例子中的视频一共有165帧,那么最后一行对应的145帧开始提取特征,取16帧,使用145帧-161帧的数据。在这里如果取用的帧的编号超过总帧数165,则会报错,要注意这一点

    如果输入时视频,则参考prototxt/input_list_video.txt。需要注意的是,输入为视频时帧的序号是从0开始计算的

    第9行

    use_image: true

    如果输入时图片,则为true,如果输入时视频,则为false

    第10行

    mean_file: "fb_train16_128_mean.binaryproto"

    这里是使用的均值文件的路径,根据所使用的模型生成或选择均值文件即可

    另外也可根据需求修改其他参数。

    1.3 输出前缀文件

    参照prototxt/output_list_video_prefix.txt生成输出前缀文件,可以根据需求进行自定义,只要注意该文件要和prototxt/input_list_frm.txt输入文件清单的行数相对应即可

    1.4 其他注意事项

    输出的特征文件所保存的路径必须自己生成,C3D不会创建文件夹

    如果提示“out of memory” 可以尝试减小batch size

    提取的特征是二进制文件,需要进行格式转换才能正常处理

    其他的注意事项可以参考官方的用户指南

    2. C3D训练和fine-tune

    训练和fine-tune的官方demo的路径分别是

    ~/C3D-master/C3D-v1.0/examples/c3d_train_ucf101
    ~/C3D-master/C3D-v1.0/examples/c3d_finetuning

    所使用的prototxt和inputlist等文件参照特征提取和demo修改即可

  • 相关阅读:
    Java之时间处理(当前年的上一年、上一季度、当月、当季)
    Nginx代理之大文件下载失败问题
    PageHelper之排序
    MySQL之集群配置
    Java之判断字符串是否为数字(包含浮点型数据)
    /bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file:
    Error Code: 1153
    413 Request Entity Too Large
    MyBatis分页插件失效问题之解决
    HikariConfig 连接池属性详解
  • 原文地址:https://www.cnblogs.com/yaoyaoliu/p/6929234.html
Copyright © 2020-2023  润新知