Temporal Segment Networks(TSN)实验及错误日志
TSN是16年Activity Challenge比賽中”untrimmed video classification”項(xiàng)目的冠軍。
TSN項(xiàng)目代碼地址:https://github.com/yjxiong/temporal-segment-networks
實(shí)驗(yàn)流程記錄
參考README.md
下載項(xiàng)目代碼,并編譯
- 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文件會(huì)下載opencv 2.4.13,denseflow(用來(lái)截取視頻幀和光流),并且編譯caffe-action
這里有一點(diǎn)值得注意的是需要先clone代碼,再編譯。如果是從網(wǎng)上download的代碼直接編譯的話,會(huì)因?yàn)槿鄙俨糠治募?dǎo)致編譯失敗。
獲取視頻幀和光流
論文中使用的數(shù)據(jù)庫(kù)是HMDB-51和UCF-101,可以到他們的數(shù)據(jù)庫(kù)官網(wǎng)中下載,并解壓。
獲取視頻幀和光流代碼:
bash scripts/extract_optical_flow.sh SRC_FOLDER OUT_FOLDER NUM_WORKER
各參數(shù)含義如下:
- 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
下載預(yù)訓(xùn)練好的模型
bash scripts/get_reference_models.sh
模型比較大,網(wǎng)絡(luò)連接不通順或者有精力的話,可以自己直接復(fù)制鏈接,從網(wǎng)頁(yè)上download。
測(cè)試
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
遇到的問(wèn)題及解決方案
1、在測(cè)試時(shí)遇到:libdc1394 error: Failed to initialize libdc1394,后面緊接著出現(xiàn):ImportError: No module named _caffe,但是之前執(zhí)行build_all.sh的時(shí)候已經(jīng)顯示“Caffe Built.”
方法一:參考了:https://github.com/yjxiong/temporal-segment-networks/issues/66 中的解決方法。
但是在我的lib/caffe-action/python/caffe已經(jīng)存在_caffe.so文件,并且先卸載libboost-all-dev,再安裝 libboost1.55-all-dev并沒(méi)有解決我的問(wèn)題。(只是因?yàn)榭吹骄W(wǎng)上有其他人采用了這種方法并且解決了問(wèn)題才列出來(lái)供參考)
方法二:export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
具體來(lái)說(shuō)就是要在lib/caffe-action/路徑中輸入你的python路徑。注意,要輸入絕對(duì)路徑。
另外這種方法并不是一勞永逸的,在重新進(jìn)入docker后,需要再次輸入該條命令,才能運(yùn)行成功。
2、本來(lái)之前都已經(jīng)跑通了,第二次再跑的時(shí)候不知道怎么就發(fā)生了這個(gè)問(wèn)題:ImportError: No module named cv2
但是我的文件夾中明明存在著cv2.so啊,真是一個(gè)神奇的問(wèn)題。在網(wǎng)上找了個(gè)方法, 就解決了:
3、KeyError: 'AHF_longsword_against_Rapier_and_Dagger_Fight_sword_f_cm_np2_ri_bad_0'
路徑錯(cuò)了。。。。check一下視頻幀(or 光流)的路徑。
總結(jié)
以上是生活随笔為你收集整理的Temporal Segment Networks(TSN)实验及错误日志的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 后缀的形容词_后缀:ing 名词、形容词
- 下一篇: 未检测到其他显示器_同维工控机显示器显示