Visual Tracking:运行ECO模型
ECO是MD大神發表在CVPR2017上的論文《ECO: Efficient Convolution Operators for Tracking》中的模型。下面介紹如何在本機中運行和測試ECO模型。
?
環境:Ubuntu 18.04 LST、Matlab2016b、gcc6.4.0
?
以下翻譯部分源于“https://github.com/martin-danelljan/ECO”;
1.在https://github.com/martin-danelljan/ECO中下載模型的ZIP文件,并解壓;
2.在https://github.com/vlfeat/matconvnet中下載MatConvnet,并解壓到ECO解壓目錄的"/external_libs/matconvnet/"文件夾下;
3.在https://github.com/pdollar/toolbox中下載PDollorToolBox,并解壓到ECO解壓目錄的"/external_libs/pdollar_toolbox/"文件夾下;
4.打開Matlab,將當前文件夾切換到ECO文件夾,在命令行窗口輸入insall;
? 在這一步驟中,會涉及到gcc版本問題,我最開始使用的是gcc4.7,執行install的時候,會報warning,提示應使用gcc4.9,并且在install結束時會報錯。我嘗試去安裝gcc4.9,但是找不到安裝gcc4.9的源。
? 于是,我安裝了gcc5和gcc6,發現用這兩個版本的每個版本都可以成功的執行install(雖然還是有waring)。
5.install成功后,執行demo_ECO,成功的話,會看到如下圖所示的圖片(一幀一幀的動)
? 但是,,,怎么可能一次就成功呢!會出現這個錯誤:
Invalid MEX-file '/home/matconvnet-1.0-beta20/matlab/mex/vl_nnconv.mexa64': /usr/local/MATLAB/R2016a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/matconvnet-1.0-beta20/matlab/mex/vl_nnconv.mexa64)? 這個問題折磨了我好久,嘗試了很多辦法,終于找到了一個好使的!(出自https://stackoverflow.com/questions/25929332/version-glibcxx-3-4-11-not-found-required-by-buildw-mexglx?rq=1)
? 解決步驟如下:
? a.刪除/重命名Matlab的libstdc++.so,并將系統版本與相同名稱進行符號鏈接:
sudo rm /usr/local/MATLAB/R20116b/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6 sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/local/MATLAB/R2016b/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6? b.刪除Matlab版本,選擇系統中的libstdc++:?
sudo rm /usr/local/MATLAB/R2016b/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6? c.添加環境變量
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 matlab? 這樣就解決了上述問題。
6.這時,我又想運行demo_ECO_gpu,結果,運行時又報錯了,如下:
Error using vl_nnconv An input is not a numeric array (or GPU support not compiled).Error in vl_simplenn (line 300) res(i+1).x = vl_nnconv(res(i).x, l.weights{1}, l.weights{2}, ...Error in get_cnn_layers (line 23) cnn_feat = vl_simplenn(fparams.net, im,[],[],'CuDNN',true, 'Mode', 'test');Error in extract_features (line 59) feature_map(ind:ind+num_blocks-1) = feat.getFeature(img_samples{img_sample_ind}, feat.fparams, gparams);Error in tracker (line 347) xl = extract_features(im, sample_pos, currentScaleFactor, features, global_fparams, feature_extract_info);Error in testing_ECO_gpu (line 129) results = tracker(params);Error in demo_ECO_gpu (line 13) results = testing_ECO_gpu(seq);? 意思不就是你沒有對matconvnet進行gpu的編譯么(大概是這個意思吧。。。),然后我就去對matconvnet進行編譯去了,參考https://blog.csdn.net/qq_27432889/article/details/54866471和https://blog.csdn.net/m0_37407756/article/details/72541222,最后的vl_testnn('gpu', true)顯示如下結果:
? 按理說,應該已經編譯好了把,可是運行demo_ECO_gpu還是報一樣的錯誤,這個問題待研究。
? 研究出來了,鏈接在這:https://blog.csdn.net/ms961516792/article/details/82762973
總結
以上是生活随笔為你收集整理的Visual Tracking:运行ECO模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu 18.04 美化mac主题
- 下一篇: 模型学习 - HNN、RBM、DBN