Temporal Segment Networks(TSN)实验及错误日志

Temporal Segment Networks(TSN)实验及错误日志_第1张图片
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= bash build_all.sh MPI_ON
    build_all.sh文件会下载opencv 2.4.13denseflow(用来截取视频帧和光流),并且编译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

Temporal Segment Networks(TSN)实验及错误日志_第2张图片

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

Temporal Segment Networks(TSN)实验及错误日志_第3张图片

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'
Temporal Segment Networks(TSN)实验及错误日志_第4张图片
路径错了。。。。check一下视频帧(or 光流)的路径。

你可能感兴趣的:(Papers)