最近公司打算做人工智能方面,我這個什么也不懂的菜鳥就被推出來扛起大旗磷蛹,在網(wǎng)上隨便找了個貼子來安裝caffe,沒想到這一安裝步步為坑溪烤,太多淚了
現(xiàn)在把詳細的踩坑過程記錄一下味咳,以供后來人參考:
配置環(huán)境:Ubuntu14.04
1、先下載caffe源碼檬嘀,在https://github.com/BVLC/caffe直接下載還是用wget下載都可以槽驶。
2、解壓后會看到里面既有Cmakelist文件和Makefile鸳兽,Makefile.config用make直接編譯和cmake都是可以的掂铐,兩種方式我都測試了带兜,下面講一下直接make的方式。
3聪廉、先做準備工作安裝依賴庫饥悴,打開caffe的官方安裝文檔http://caffe.berkeleyvision.org/install_apt.html,其實直接用官方的東西是最好的烤镐,還是少搜貼子了蛋济,
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
由于是Ubuntu14.04的還要加幾個包sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
4、注意注意?這里安裝完的opencv版本應(yīng)該是2.7的炮叶,很關(guān)鍵后面會用到碗旅。要以用?pkg-config --modversion opencv查看一下版本
5、準備Makefile的配置文件镜悉,目錄下本身就有個例子我們改改就可以了cp -rf Makefile.config.example Makefile.config祟辟,打開?Makefile.config
打開這個選項,只用CPU編譯侣肄,由于先前安了好久的cuda都裝不上旧困,可能是我的機器顯卡有問題,都快崩潰了稼锅,后來果斷放棄改用cpu
6吼具、有的地方好像還用atlas我也忘了,反正先裝上吧sudo?apt-get?install?libatlas-base-dev?
7矩距、然后直接make -j4
8拗盒、由于以前自己還安裝了opencv3.6的庫,這下出了很大的麻煩锥债,caffe默認去找了3.6的庫陡蝇,這樣就會出現(xiàn)找不到libIlmImf.so的情況,新的opencv3.6是不帶so文件的哮肚,有三種方法可以解決
? ? ?1.將新版本卸載登夫,2.采用opencv版本切換這個可以網(wǎng)上搜一下很用弄,3.將舊版本的庫復(fù)制到新版本的目錄下允趟,舊版本是/usr/lib/下悼嫉,新版本是在/usr/local/lib下
9、這次再重新編譯有的會出現(xiàn)
[cpp]?view plain?copy
undefined?reference?to?`cv::imencode(cv::String?const&,?cv::_InputArray?const&,?std::vector?>&,?std::vector?>?const&)'??
.build_release/lib/libcaffe.so:?undefined?reference?to?`cv::imdecode(cv::_InputArrayconst&,?int)'??
.build_release/lib/libcaffe.so:?undefined?reference?to?`cv::imread(cv::Stringconst&,?int)??
? ?這種情況應(yīng)該是庫沒有鏈接到拼窥,這個是采用網(wǎng)上找的方法戏蔑,將opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs加到LIBRARIES下,
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5 opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
記得要make clean 或者rm -rf ./build/*鲁纠,然后再make
10总棵、順利編譯成功,有點小興奮唉改含。情龄。。
11、進入cd build/tools/骤视,下面應(yīng)該有個caffe的可執(zhí)行文件鞍爱,運行一下試試會彈出這么一坨,基本已經(jīng)安裝成功了专酗。
12睹逃、因為下面的例子一般都是python的還需要安裝一下python庫,
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
13祷肯、跑一個小例子沉填,滿足一下好奇心,http://caffe.berkeleyvision.org/model_zoo.html這上面是有很多牛人的模型佑笋,我們下載一個測試一下翼闹。
14、我們測試一下識別圖片的小例子吧蒋纬,回到根目錄下有個scripts目錄猎荠,
./scripts/download_model_binary.py models/bvlc_reference_caffenet
15、接下來下載對應(yīng)的標簽文件
./data/ilsvrc12/get_ilsvrc_aux.sh
16蜀备、在網(wǎng)上隨便下載了圖片,放在了examples/images/dada.jpg
運行模型進行檢測
./build/examples/cpp_classification/classification.bin \
? models/bvlc_reference_caffenet/deploy.prototxt \
? models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel \
? data/ilsvrc12/imagenet_mean.binaryproto \
? data/ilsvrc12/synset_words.txt \
? examples/images/dada.jpg
看見輸出結(jié)果顯示
88%的概率是非洲象关摇,這個區(qū)分的還是很細的,自己也可以下載一下大牛的模型自己試試哦琼掠,后面也會傳一些自己訓(xùn)練的模型上來
有什么不明白的給我留言。