Ubuntu16.04+Opencv2.4.13+caffe配置跟蹤算法Goturn

在深度學(xué)習(xí)的過(guò)程中益兄,參考了很多網(wǎng)上的資料戒洼,感謝很多大神把自己的經(jīng)驗(yàn)分享給我們這些小白。今天在配置goturn的過(guò)程中遇到了很多問(wèn)題间唉,大部分在github上找到了解決方案绞灼,將自己的解決方法分享出來(lái)利术,希望對(duì)大家有用呈野。有些問(wèn)題參考網(wǎng)上資料解決了,但是并不明白原理印叁,歡迎知情大神指點(diǎn)迷津^~^

算法背景資料:

先看一下跟蹤效果(其他效果更好的視頻之后再更新):


GOTURN跟蹤算法_騰訊視頻

文章的題目:《Learning to Track at 100 FPS with Deep Regression Networks》

算法簡(jiǎn)稱:GOTURN(Generic Object Tracking Using Regression Networks)

文章以及附件:http://davheld.github.io/GOTURN/GOTURN.html

算法源碼:https://github.com/autocyz/GOTURN

編譯配置

注:所有的cmake操作通過(guò)cmake gui來(lái)操作

cmake安裝:

$ sudo apt-get install cmake

cmake gui的安裝:

$ sudo apt-get install cmake-qt-gui

1. Cmake編譯安裝Opencv

www.linuxidc.com/Linux/2014-12/110045.htm

2. Cmake編譯安裝Caffe

2.1 安裝依賴庫(kù)

caffe的的編譯需要很多的lib文件和支持模塊:

$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler

$ sudo apt-get install --no-install-recommends libboost-all-dev

$ sudo apt-get install libatlas-base-dev

$ sudo apt-get install libhdf5-serial-dev

$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

$ sudo apt-get install python-numpy

$ sudo apt-get install python-dev

2.2 安裝Anaconda

下面給出了anaconda的官方網(wǎng)站被冒,找到對(duì)于的python版本,下載對(duì)應(yīng)Linux版本的文件:

www.continuum.io/downloads

注意下載自己電腦對(duì)應(yīng)的版本轮蜕!

下載完成后在其路徑下輸入bash指令昨悼,完成安裝:

$ bash Anaconda2-4.3.0-Linux-x86_64.sh

2.3 安裝CUDA和Cudnn

安裝CUDA之前需要先安裝顯卡驅(qū)動(dòng),顯卡必須是NVIDIA顯卡跃洛。

在終端中輸入以下指令:

$ sudo? add-apt-repositoryppa:graphics-drivers/ppa

之后刷新軟件庫(kù)并安裝最新驅(qū)動(dòng):

$ sudo apt-get update

$ sudo apt-get install nvidia-367

$ sudo apt-get install nvidia-settings nvidia-prime

$ sudo apt-get install mesa-common-dev

$ sudo apt-get install freeglut3-dev

安裝完成后通過(guò)下面命令查看是否安裝成功:

$ nvidia-settings

如果出現(xiàn)以下畫面率触,說(shuō)明安裝成功:

安裝CUDA

CUDA(Compute Unified Device Architecture),是顯卡廠商N(yùn)VIDIA推出的運(yùn)算平臺(tái)汇竭,是一種由NVIDIA推出的通用并行計(jì)算架構(gòu)葱蝗,該架構(gòu)使GPU能夠解決復(fù)雜的計(jì)算問(wèn)題。首先查看自己的GPU能不能進(jìn)行計(jì)算细燎,算力如何两曼,網(wǎng)址如下:

developer.nvidia.com/cuda-downloads


選擇自己對(duì)應(yīng)的版本和安裝方式,安裝指令如圖所示玻驻。安裝完之后檢查nvcc悼凑,即在終端中輸入nvcc應(yīng)出現(xiàn)相應(yīng)選項(xiàng)。

環(huán)境變量配置

安裝完畢后璧瞬,再聲明一下環(huán)境變量户辫,并將其寫入到 ~/.bashrc 的尾部

$ export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}

$ export LD_LIBRARY_PATH=/usr/local/cuda8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

安裝CUDNN

cudnn為優(yōu)化GPU加速計(jì)算的程序,首先從官網(wǎng)上下載cudnn的安裝包嗤锉。這里一定要注意渔欢,安裝對(duì)應(yīng)自己cuda版本的的cudnn!


將安裝包解壓,將此安裝包放在home路徑下即可档冬,并在當(dāng)前路徑下進(jìn)行解壓,解壓后的文件夾名為cuda膘茎。

在home路徑下打開(kāi)終端:

$ cd cuda/include (進(jìn)入home/cuda/include文件夾)

$ sudo cp *.h /usr/local/cuda/include/? (注意這里是你自己的cuda的安裝地址,復(fù)制*.h文件)

關(guān)閉終端并重新打開(kāi)(也可以返回最開(kāi)始的目錄)

$ cd cuda/lib64

$ sudo cp libcudnn* /usr/local/cuda/lib64/

終端運(yùn)行:

$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

安裝Caffe

前期準(zhǔn)備工作:

在下載caffe源碼前酷誓,先安裝兩個(gè)小工具披坏,一個(gè)是pip,python的包管理器盐数,另一個(gè)是Git棒拂,用了下載github上的源碼

$ sudo apt install python-pip

$ sudo apt-get install git-core

下面將caffe的源碼clone下來(lái)

$ git clone https://github.com/BVLC/caffe.git

下載完成之后,進(jìn)入CAFFE文件夾, 進(jìn)入里面的PYTHON文件夾,然后輸入

$ for req in $(cat requirements.txt); do pip install $req; done

好的,那么下面就準(zhǔn)備編譯了,準(zhǔn)備編譯之前帚屉,跟新一下anaconda的gcc庫(kù)谜诫,caffe在python接口下使用時(shí)只支持libgcc5版本,因此需要跟新

$ conda update libgcc

以下給出兩種安裝caffe的方式攻旦,普通安裝和cmake安裝喻旷。普通安裝caffe:根據(jù)給定的makefile文件安裝caffe。

普通安裝caffe參考博客:

blog.csdn.net/angelfish91/article/details/56019558

注意:Goturn中要求用cmake來(lái)install caffe牢屋。

cmake安裝caffe

給出官網(wǎng)教程:caffe.berkeleyvision.org/installation.html 最下面的CMake Build

$ mkdir build

$ cd build

$ cmake ..

$ make all

$ make install

$ make runtest

出現(xiàn)的錯(cuò)誤:

問(wèn)題1:

/usr/bin/ld: cannot find -lopencv_dep_cudart

collect2: error: ld returned 1 exit status

src/caffe/CMakeFiles/caffe.dir/build.make:30208: recipe for target 'lib/libcaffe.so.1.0.0' failed

make[2]: *** [lib/libcaffe.so.1.0.0] Error 1

CMakeFiles/Makefile2:304: recipe for target 'src/caffe/CMakeFiles/caffe.dir/all' failed

make[1]: *** [src/caffe/CMakeFiles/caffe.dir/all] Error 2

Makefile:127: recipe for target 'all' failed

make: *** [all] Error 2


解決方法:參考:devtalk.nvidia.com/default/topic/970325/jetson-tx1/cmake-cannot-find-lopencv_dep_cudart/

即在終端輸入:

$ ln -s /usr/local/cuda8-0/lib64/libcudart.so /usr/local/lib/

$ ln -s /usr/local/cuda8-0/lib64/libcudart.a /usr/local/lib/

Cmake的GUI中修改:

$set(CUDA_USE_STATIC_CUDA_RUNTIME OFF)

點(diǎn)擊caffe/build 文件夾中的CMakeCache.txt可以直接打開(kāi)cmake gui.(注意點(diǎn)擊advance才能出現(xiàn)這個(gè)選項(xiàng))


問(wèn)題2:

fatal error: caffe/proto/caffe.pb.h: No such file or directory

#include "caffe/proto/caffe.pb.h"


解決方法:參考:blog.csdn.net/u012258999/article/details/56001541

用protoc從caffe/src/caffe/proto/caffe.proto生成caffe.pb.h和caffe.pb.cc

protoc語(yǔ)法參考如下(路徑請(qǐng)根據(jù)自己情況):

$ ~/caffe3/build$ protoc --cpp_out=/home/sophie/caffe3/include/caffe/ caffe.proto

之后在

/home/sophie/caffe3/include/caffe/proto目錄下新建文件夾且预,命名為proto,然后把編譯出來(lái)的caffe.pb.h和caffe.pb.cc放進(jìn)去之后烙无,錯(cuò)誤消失锋谐。


3. Cmake編譯安裝Goturn

給出官網(wǎng)指南:

github.com/autocyz/GOTURN


成功安裝就是以上的過(guò)程,caffe和opencv參見(jiàn)上面的教程截酷,但是其中還是遇到了很多問(wèn)題:


問(wèn)題1:

/home/angelfish/GOTURN/src/native/vot.h:50:22: fatal error: trax.h: No such file or directory

compilation terminated.

CMakeFiles/GOTURN.dir/build.make:62: recipe for target 'CMakeFiles/GOTURN.dir/src/helper/bounding_box.cpp.o' failed

make[2]: *** [CMakeFiles/GOTURN.dir/src/helper/bounding_box.cpp.o] Error 1

make[2]: *** Waiting for unfinished jobs....

CMakeFiles/Makefile2:215: recipe for target 'CMakeFiles/GOTURN.dir/all' failed

make[1]: *** [CMakeFiles/GOTURN.dir/all] Error 2

Makefile:83: recipe for target 'all' failed

make: *** [all] Error 2


解決方法:參考:github.com/davheld/GOTURN/issues/2

在GOTURN的CMakeList.txt文檔中

# Add src to include directories.

include_directories(src)

后面加上

include_directories(src/native)

問(wèn)題解決涮拗!


問(wèn)題2:

vot.cpp:(.text+0x4cc): undefined reference to trax_cleanup' collect2: error: ld returned 1 exit status CMakeFiles/test_tracker_vot.dir/build.make:175: recipe for target 'test_tracker_vot' failed make[2]: *_\* [test_tracker_vot] Error 1 CMakeFiles/Makefile2:305: recipe for target 'CMakeFiles/test_tracker_vot.dir/all' failed make[1]: **\* [CMakeFiles/test_tracker_vot.dir/all] Error 2 Makefile:75: recipe for target 'all' failed make: **\* [all] Error 2


解決方法:參考:github.com/davheld/GOTURN/issues/1

下載 traxhttps://github.com/votchallenge/trax/? 并且cmake

在GOTURN的CMakeList.txt文檔中:

add_executable (test_tracker_vot src/test/test_tracker_vot.cpp)

target_link_libraries(${PROJECT_NAME} /home/public/git/trax/build/libtrax.so)

target_link_libraries (test_tracker_vot ${PROJECT_NAME})

后添加:

target_link_libraries(${PROJECT_NAME} /home/sophie/trax/build/libtrax.so)

注意修改路勁

測(cè)試階段

下載預(yù)訓(xùn)練模型,可以通過(guò)終端輸入:

bash scripts/download_trained_model.sh

也可以在windows下通過(guò)其他下載工具下載好迂苛,復(fù)制到nets/models/pretrained_model 文件下中

測(cè)試:

下載數(shù)據(jù)集:www.votchallenge.net/vot2014/dataset.html

運(yùn)行測(cè)試腳本(vot_folder為數(shù)據(jù)集文件夾名稱):

bash scripts/show_tracker_test.sh vot_folder

測(cè)試時(shí)間在我的顯卡(GTX1050)上平均為9.19ms

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末三热,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子灾部,更是在濱河造成了極大的恐慌康铭,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赌髓,死亡現(xiàn)場(chǎng)離奇詭異从藤,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)锁蠕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門夷野,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人荣倾,你說(shuō)我怎么就攤上這事悯搔。” “怎么了舌仍?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵妒貌,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我铸豁,道長(zhǎng)灌曙,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任节芥,我火速辦了婚禮在刺,結(jié)果婚禮上逆害,老公的妹妹穿的比我還像新娘。我一直安慰自己蚣驼,他們只是感情好魄幕,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著颖杏,像睡著了一般纯陨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上输玷,一...
    開(kāi)封第一講書(shū)人閱讀 52,337評(píng)論 1 310
  • 那天队丝,我揣著相機(jī)與錄音,去河邊找鬼欲鹏。 笑死,一個(gè)胖子當(dāng)著我的面吹牛臭墨,可吹牛的內(nèi)容都是我干的赔嚎。 我是一名探鬼主播,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼胧弛,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼尤误!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起结缚,我...
    開(kāi)封第一講書(shū)人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤损晤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后红竭,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體尤勋,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年茵宪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了最冰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡稀火,死狀恐怖暖哨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情凰狞,我是刑警寧澤篇裁,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站赡若,受9級(jí)特大地震影響达布,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜斩熊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一往枣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦分冈、人聲如沸圾另。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)集乔。三九已至,卻和暖如春坡椒,著一層夾襖步出監(jiān)牢的瞬間扰路,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工倔叼, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留汗唱,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓丈攒,卻偏偏與公主長(zhǎng)得像哩罪,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子巡验,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容