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 和图形性能增强.各种新特性和功能以及显著提高的性能. 本指南旨在帮助软件开发人员 ...
随机推荐
- [Python3] RSA的加解密和签名/验签实现 -- 使用pycrytodome
Crypto 包介绍: pycrypto,pycrytodome 和 crypto 是一个东西,crypto 在 python 上面的名字是 pycrypto 它是一个第三方库,但是已经停止更新,所以 ...
- C#后台执行JavaScript
方法一: Page.RegisterClientScriptBlock 方法 命名空間: System.Web.UI 这个方法现在已经过时.改用ClientScriptManager.Register ...
- 201771010123汪慧和《面向对象程序设计Java》第十二周实验总结
一.理论部分 1.在Java提供的GUI构建工具中可以分为组件和容器两类. 2.在Java中的组件有:按钮.标签.复选框.单选按钮.选择框.列表框.文本框.滚动条.画布.菜单. 3.在Java中的容器 ...
- 一天一个设计模式——Abstract Factory抽象工厂模式
一.模式说明 前面学习了工厂方法(Factory Method)模式.在工厂方法模式中,在工厂方法模式中,父类决定如何生成实例,但并不决定所要生成的具体类,具体的处理交由子类来处理.这里学习的抽象工厂 ...
- SeetaFaceQt:写一个简单的界面
关于这个界面,我用到了几个控件,这些控件通过Qt是非常容易构建的,窗口的话用的是QWidget,之前说了,QWidget是Qt里面几乎大部分控件的父类,QWidget的布局我使用了简单的水平布局(QH ...
- java课程之团队开发冲刺阶段1.9
一.总结昨天进度 1.学习了简单的消息推送方法,并且能够使用进行每日定时推送 二.遇到的困难 1.在每日推送的过程中,程序必须被正常关闭,如果程序是被切到后天然后直接结束进程的话,每日推送的线程服务也 ...
- 干货 | VPC之间的网络连通实践
随着公有云技术的日臻完善,越来越多的政府部门.事业单位.企业.个人将自己的IT系统部署在公有云之上.在公有云之上部署业务系统有一个特点,就是先要规划网络,有了网络以后,才能把一些相关的产品部署在网络里 ...
- 超级详细通信协议解析webservice和dubbo通信协议区别
简单说下接触webservice的背景吧,因为之前的接口对接更多的是成熟的接口品牌像是阿里巴巴.腾讯.聚合数据等,他们接口规范一般都是基于restful进行接口对接.什么是restful接口,可以通过 ...
- CentOS7下MySQL8的二进制基本安装配置
前言 基于本地Centos7.6虚拟机Mysql8的配置(亲测有效) 一.安装前的准备 1.到官网下载mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz 2.通过Xs ...
- strpos用法
语法 strpos(string,find,start) 参数 描述 string 必需.规定要搜索的字符串. find 必需.规定要查找的字符串. start 可选.规定在何处开始搜索. 技术细 ...