Temporal Segment Networks(TSN)实验及错误日志
TSN是16年Activity Challenge比赛中”untrimmed video classification”项目的冠军。
TSN项目代码地址:https://github.com/yjxiong/temporal-segment-networks
实验流程记录
参考README.md
下载项目代码,并编译
git clone --recursive https://github.com/yjxiong/temporal-segment-networks
bash build_all.sh
; 或者多GPU并行:MPI_PREFIX=<root path to openmpi installation> bash build_all.sh MPI_ON
build_all.sh
文件会下载opencv 2.4.13
,denseflow
(用来截取视频帧和光流),并且编译caffe-action
这里有一点值得注意的是需要先clone代码,再编译。如果是从网上download的代码直接编译的话,会因为缺少部分文件导致编译失败。
获取视频帧和光流
论文中使用的数据库是HMDB-51和UCF-101,可以到他们的数据库官网中下载,并解压。
获取视频帧和光流代码:
bash scripts/extract_optical_flow.sh SRC_FOLDER OUT_FOLDER NUM_WORKER
各参数含义如下:
- SRC_FOLDER
points to the folder where you put the video dataset
- OUT_FOLDER
points to the root folder where the extracted frames and optical images will be put in
- NUM_WORKER
specifies the number of GPU to use in parallel for flow extraction, must be larger than 1
下载预训练好的模型
bash scripts/get_reference_models.sh
模型比较大,网络连接不通顺或者有精力的话,可以自己直接复制链接,从网页上download。
测试
UCF101 split1
rgb部分
python tools/eval_net.py ucf101 1 rgb /data3/UCF-all-in-one/ucf_frame/ \
models/ucf101/tsn_bn_inception_rgb_deploy.prototxt \
models/ucf101_split_1_tsn_rgb_reference_bn_inception.caffemodel \
--num_worker 4 --save_scores rgb_score
flow部分
python tools/eval_net.py ucf101 1 flow /data3/UCF-all-in-one/ucf_transed/ \
models/ucf101/tsn_bn_inception_flow_deploy.prototxt \
models/ucf101_split_1_tsn_flow_reference_bn_inception.caffemodel \
--num_worker 4 --save_scores ucf101/flow_score
fusion
python tools/eval_scores.py ucf101/rgb_score.npz ucf101/flow_score.npz --score_weights 1 1.5
HMDB51 split1
遇到的问题及解决方案
1、在测试时遇到:libdc1394 error: Failed to initialize libdc1394
,后面紧接着出现:ImportError: No module named _caffe
,但是之前执行build_all.sh
的时候已经显示“Caffe Built.”
方法一:参考了:https://github.com/yjxiong/temporal-segment-networks/issues/66 中的解决方法。
apt-get remove libboost-all-dev
apt-get install libboost1.55-all-dev
但是在我的lib/caffe-action/python/caffe
已经存在_caffe.so
文件,并且先卸载libboost-all-dev
,再安装 libboost1.55-all-dev
并没有解决我的问题。(只是因为看到网上有其他人采用了这种方法并且解决了问题才列出来供参考)
方法二:export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
具体来说就是要在lib/caffe-action/
路径中输入你的python路径。注意,要输入绝对路径。
另外这种方法并不是一劳永逸的,在重新进入docker后,需要再次输入该条命令,才能运行成功。
2、本来之前都已经跑通了,第二次再跑的时候不知道怎么就发生了这个问题:ImportError: No module named cv2
但是我的文件夹中明明存在着cv2.so
啊,真是一个神奇的问题。在网上找了个方法, 就解决了:
pip install opencv-python
3、KeyError: 'AHF_longsword_against_Rapier_and_Dagger_Fight_sword_f_cm_np2_ri_bad_0'
路径错了。。。。check一下视频帧(or 光流)的路径。
Temporal Segment Networks(TSN)实验及错误日志相关推荐
- 行为识别论文笔记|TSN|Temporal Segment Networks: Towards Good Practices for Deep Action Recognition
行为识别论文笔记|TSN|Temporal Segment Networks: Towards Good Practices for Deep Action Recognition Temporal ...
- [行为识别论文详解]TSN(Temporal Segment Networks)
摘要 本文旨在设计有效的卷积网络体系结构用于视频中的动作识别,并在有限的训练样本下进行模型学习.TSN基于two-stream方法构建. 论文主要贡献: 提出了TSN(Temporal Segment ...
- 论文学习:(TSN)Temporal segment networks: Towards good practices for deep action recognition
论文:<Temporal Segment Networks:Towards Good Practices for Deep Action Recognition> 目录 0.导论 1.TS ...
- TSN(Temporal Segment Networks)算法笔记
论文:Temporal Segment Networks: Towards Good Practices for Deep Action Recognition 论文链接:https://arxiv. ...
- 【TSN(Temporal Segment Networks)】
TSN可以看做是双流(two stream)系列的改进. 在此基础上,TSN网络要解决两个问题1.是长时间视频的行为判断问题(有些视频的动作时间较长).2.是解决数据少的问题,数据量少会使得一 ...
- Temporal Segment Networks for Action Recognition in Videos 用于动作识别的时序分割网络
Temporal Segment Networks for Action Recognition in Videos 用于动作识别的时序分割网络 本文原创,欢迎转载 https://blog.csdn ...
- 视频动作识别--Temporal Segment Networks: Towards Good Practices for Deep Action Recognition
Temporal Segment Networks: Towards Good Practices for Deep Action Recognition ECCV2016 https://githu ...
- 动作识别阅读笔记(三)《Temporal Segment Networks: Towards Good Practices for Deep Action Recognition》
(注:为避免中文翻译不准确带来误解,故附上论文原句.) 论文:Wang L , Xiong Y , Wang Z , et al. Temporal Segment Networks: Towards ...
- 【论文阅读】Temporal Segment Networks: Towards Good Practices for Deep Action Recognition
Abstract 卷积网络在动作识别领域带来的提升不像图像领域那么大 提出TSN,基于长距离时序建模的思想,结合时序稀疏采样(sparse temporal sampling)策略和视频级监督(vid ...
最新文章
- 高等数学·为什么f``(x)小于0:则f(x)在[a,b]上的图形是凹的。f``(x)大于0:则f(x)在[a,b]上的图形是凸的。
- response设置content-type
- java环境用openoffice转pdf
- wizard generated application - how is detail page rendered
- 凝思系统改时间_国产操作系统往事:四十年激变,终再起风云
- 经典面试题(29):以下代码将输出的结果是什么?
- Char05 Ansible 最佳实践
- 史上最全Linux面试题(2020最新版)
- IntelliJ IDEA汉化解决方案教程
- chrome插件离线安装包(.crx)下载
- 输入一个十进制整数,分别输出其二进制、八进制、十六进制字符串
- 线性代数笔记29——正定矩阵和最小值
- 年薪翻倍的100篇面经:如何转型AI拿到阿里等大厂的40万offer
- Pixhawk---sdlog2应用详解
- 获取referer中的请求参数_javaweb之request获取referer请求头实现防盗链
- 使用自己的微信账号登录掘金社区
- matlab 龙贝格法,matlab龙贝格法
- BigDecimal 保留小数位
- python3---字符串
- 数据结构与常用集合总结