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= ../../build/tools/extract_image_features.bin prototxt/c3d_sport1m_feature_extractor_video.prototxt conv3d_deepnetA_sport1m_iter_1900000 prototxt/output_list_video_prefix.txt fc7- fc6- 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/
input/frm/v_ApplyEyeMakeup_g01_c01/
input/frm/v_ApplyEyeMakeup_g01_c01/
input/frm/v_ApplyEyeMakeup_g01_c01/
input/frm/v_ApplyEyeMakeup_g01_c01/
input/frm/v_ApplyEyeMakeup_g01_c01/
input/frm/v_ApplyEyeMakeup_g01_c01/
input/frm/v_ApplyEyeMakeup_g01_c01/
input/frm/v_ApplyEyeMakeup_g01_c01/
input/frm/v_ApplyEyeMakeup_g01_c01/
其中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./examples/c3d_train_ucf101
~/C3D-master/C3D-v1./examples/c3d_finetuning
所使用的prototxt和inputlist等文件参照特征提取和demo修改即可
C3D使用指南的更多相关文章
- 提取C3D视频特征(官方文档&实践)
C3D Introduction 卷积神经网络(CNN)近年被广泛应用于计算机视觉中,包括分类.检测.分割等任务.这些任务一般都是针对图像进行的,使用的是二维卷积(即卷积核的维度为二维).而基于视频的 ...
- JavaScript权威指南 - 函数
函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...
- UE4新手之编程指南
虚幻引擎4为程序员提供了两套工具集,可共同使用来加速开发的工作流程. 新的游戏类.Slate和Canvas用户接口元素以及编辑器功能可以使用C++语言来编写,并且在使用Visual Studio 或 ...
- JavaScript权威指南 - 对象
JavaScript对象可以看作是属性的无序集合,每个属性就是一个键值对,可增可删. JavaScript中的所有事物都是对象:字符串.数字.数组.日期,等等. JavaScript对象除了可以保持自 ...
- JavaScript权威指南 - 数组
JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...
- const extern static 终极指南
const extern static 终极指南 不管是从事哪种语言的开发工作,const extern static 这三个关键字的用法和原理都是我们必须明白的.本文将对此做出非常详细的讲解. co ...
- Atitit.研发管理软件公司的软资产列表指南
Atitit.研发管理软件公司的软资产列表指南 1. Isv模型下的软资产1 2. 实现层面implet1 3. 规范spec层1 4. 法则定律等val层的总结2 1. Isv模型下的软资产 Sof ...
- HA 高可用软件系统保养指南
又过了一年 618,六月是公司一年一度的大促月,一般提前一个月各系统就会减少需求和功能的开发,转而更多去关注系统可用性.稳定性和管控性等方面的非功能需求.大促前的准备工作一般叫作「备战」,可以把线上运 ...
- 第六代智能英特尔® 酷睿™ 处理器图形 API 开发人员指南
欢迎查看第六代智能英特尔® 酷睿™ 处理器图形 API 开发人员指南,该处理器可为开发人员和最终用户提供领先的 CPU 和图形性能增强.各种新特性和功能以及显著提高的性能. 本指南旨在帮助软件开发人员 ...
随机推荐
- Vulkan SDK 之 Instance
上一篇 Vulkan SDK Demo 熟悉 粗略的了解了下,一个app是如何调用vulkan的api来展示一个立方体的,但是对其中的每一个api了解并不深刻,后面的系列会根据sample的tutor ...
- HDU _2546 01背包问题
A - 饭卡 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Statu ...
- c# 属性 (get、set)
//属性是一种用于访问对象或类的特性的成员.属性可以包括字符串的长度.字体的大小.窗体的标题和客户的名称.属性是成员的自然扩展,二者都是关联类型的命名成员.namespace ConsoleAppli ...
- 实盘交易哪些代码BUG产生严重亏损
1.少写一个return,疯狂开平2900次,以爆仓结束 2.在上生产环境前,不小心误删除了一个“!”(我至今也不清楚为什么会误删了,晕),导致平仓逻辑一直不满足,不止损,让我损失惨重! 3.卖单变买 ...
- Keras + Flask 提供接口服务的坑~~~
最近在搞Keras,训练完的模型要提供个预测服务出来.就想了个办法,通过Flask提供一个http服务,后来发现也能正常跑,但是每次预测都需要加载模型,效率非常低. 然后就把模型加载到全局,每次要用的 ...
- Python笔记_第五篇_Python数据分析基础教程_文件的读写
1. 读写文件(基本) savetxt.loadtxt i2 = np.eye(2) print(i2) np.savetxt(r"C:\Users\Thomas\Desktop\eye.t ...
- contos7 共享文件夹开机自动挂载
网上很多文章都说改文件/etc/fstab 我试了很多次都不行 然后看到另一个方法 在/etc/rc.d/rc.local 增加挂在脚本这个时候要注意执行权限问题 我是这样做的 sudo mount ...
- 题解 P1317 【低洼地】
题目 这题挺简单的,没必要用数组 [分析] 需要判断的是低洼地的数量 通过对题目中图进行分析,显然可以发现低洼地的定义: 若数组中存在一个数值相同的连续区间,这个区间端点外相邻两点的数值都大于该区间的 ...
- Thread.sleep 与Thread.currentThread.sleep 相同
package com.citi.tm.api.trade.mongo; public class ThreadTest { public static void main(String[] args ...
- 吴裕雄--天生自然 PHP开发学习:For 循环
<?php for ($i=1; $i<=5; $i++) { echo "The number is " . $i . "<br>"; ...