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 和图形性能增强.各种新特性和功能以及显著提高的性能. 本指南旨在帮助软件开发人员 ...
随机推荐
- C++ STD Gems04
count.count_if.all_of.any_of.none_of #include <iostream> #include <vector> #include < ...
- DCGAN
Deep Convolutional Generative Adversarial Networks we introduced the basic ideas behind how GANs wor ...
- SFINAE 与 type_traits
SFINAE 与 type_traits SFINAE 替换失败不是错误 (Substitution Failure Is Not An Error),此特性被用于模板元编程. 在函数模板的重载决议中 ...
- Vue.js(19)之 封装calendar组件
效果 需求 1.实现一个日历组件,如图: 2.显示某天的事项: 3.事项是模拟父组件请求接口返回的,数据格式如下: [ { id: '232', date: '2019-06-01', info: ' ...
- faster RCNN(keras版本)代码讲解(3)-训练流程详情
转载:https://blog.csdn.net/u011311291/article/details/81121519 https://blog.csdn.net/qq_34564612/artic ...
- 18 12 29 css background
background属性 属性解释 background属性是css中应用比较多,且比较重要的一个属性,它是负责给盒子设置背景图片和背景颜色的,background是一个复合属性,它可以分解成如下几个 ...
- Python笔记_第五篇_Python数据分析基础教程_NumPy基础
1. NumPy的基础使用涵盖如下内容: 数据类型 数组类型 类型转换 创建数组 数组索引 数组切片 改变维度 2. NumPy数组对象: NumPy中的ndarray是一个多维数组对象,该兑现共有两 ...
- 201609-2 火车购票 Java
思路待补充 import java.util.Scanner; class Main{ public static void main(String[] args) { //100个座位 int[] ...
- 吴裕雄--天生自然 JAVASCRIPT开发学习:(String) 对象
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- PAT Advanced 1004 Counting Leaves (30) [BFS,DFS,树的层序遍历]
题目 A family hierarchy is usually presented by a pedigree tree. Your job is to count those family mem ...