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_scoreflow部分
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_scorefusion
python tools/eval_scores.py ucf101/rgb_score.npz ucf101/flow_score.npz --score_weights 1 1.5HMDB51 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 中的解決方法。
但是在我的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啊,真是一個神奇的問題。在網上找了個方法, 就解決了:
3、KeyError: 'AHF_longsword_against_Rapier_and_Dagger_Fight_sword_f_cm_np2_ri_bad_0'
路徑錯了。。。。check一下視頻幀(or 光流)的路徑。
總結
以上是生活随笔為你收集整理的Temporal Segment Networks(TSN)实验及错误日志的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 后缀的形容词_后缀:ing 名词、形容词
- 下一篇: 未检测到其他显示器_同维工控机显示器显示