jetson nano 配置caffe環境

一、安裝Protobuf

        1、安裝依賴庫

               sudo apt install -y autoconf automake libtool curl make g++ git python-dev python-setuptools unzip

        2、下載protobuf3.2

             git clone https//github.com/google/protobuf ~/protobuf -b '3.2.x'

        3、編譯安裝

              cd ~/protobuf          sudo  ./autogen.sh       sudo ./configure       sudo make -j6        sudo make install    sudo ldconfig   cd                      python     sudo python setup.py  install  --cpp_implementation

          安裝完後顯示Finished processing dependencies for protobuf==3.2.0  說明安裝成功     

二、安裝NVIDIA Caffe

      1、安裝各種依賴庫

            sudo apt install -y build-essential cmake git gfortran libopenblas-dev libboost-all-dev  libgflags-dev libgoogle-glog-dev libhdf5-serial-dev libleveldb-dev liblmdb-dev libopencv-dev libsnappy-dev python-all-dev python-dev python-h5py python-matplotlib python-numpy python-opencv python-pil python-pip python-pydot python-scipy python-skimage python-sklearn libturbojpeg0-dev libfreetype6-dev

     2、下載NVIDIA Caffe

          這裏最好下載最新版本,git clone https://github.com/NVIDIA/caffe

     3、安裝Python運行庫

           sudo apt install python-leveldb

           gedit ~/caffe/python/requirements.txt

           刪除文件中“leveldb>=0.191”行

           sudo -H install -r ~/caffe/python/requirements.txt

      4、編譯NVIDIA Caffe

           cd ~/caffe     mkdir  build        cd build     cmake ..      sudo  make -j6       sudo   make install

           不過不幸的是,由於nano系統中自帶的是opencv4.x而caffe-ssd的作者是根據opencv2.0版本寫的,所以會出現很多錯誤。

            如下圖所示:

   

         錯誤(1):

/src/caffe/layers/video_data_layer.cpp:55:30: error: ‘CV_CAP_PROP_FRAME_COUNT’ was not declared in this scope
     total_frames_ = cap_.get(CV_CAP_PROP_FRAME_COUNT);

         解決方法:

//加上一個頭文件
#include <opencv2/videoio.hpp>
//加上cv命名空間
using namespace cv;
//去掉CV_CAP_PROP_FRAME_COUNT,CV_CAP_PROP_POS_FRAMES前面的CV_
不過建議還是在文件頭部進行宏定義:
#define CV_CAP_PROP_FRAME_COUNT CAP_PROP_FRAME_COUNT
#define CV_CAP_PROP_POS_FRAMES   CAP_PROP_POS_FRAMES

錯誤(2):

caffe/src/caffe/layers/window_data_layer.cpp:293:42: error: ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope
         cv_img = cv::imread(image.first, CV_LOAD_IMAGE_COLOR);

解決方法:cv::IMREAD_COLOR 代替 CV_LOAD_IMAGE_COLOR

錯誤(3):

/home/neuron-drop/workspace/caffe/src/caffe/util/bbox_util.cpp:2186:42: error: ‘CV_FILLED’ was not declared in this scope
                   CV_RGB(255, 255, 255), CV_FILLED);

解決方法:

//修改CV_RGB爲cv::Scalar,但應該注意兩者的區別,前者爲RGB,後者爲BGR
//修改CV_FILLED爲cv::FILLED

錯誤(四):

caffe/src/caffe/util/bbox_util.cpp:2221:48: error: there are no arguments to ‘CV_FOURCC’ that depend on a template parameter, so a declaration of ‘CV_FOURCC’ must be available [-fpermissive]
         cv::VideoWriter outputVideo(save_file, CV_FOURCC('D', 'I', 'V', 'X'),

解決方法:

cv::VideoWriter writer;
// 修改CV_FOURCC爲writer.fourcc

錯誤(5):

caffe/src/caffe/util/im_transforms.cpp:246:39: error: ‘CV_BGR2GRAY’ was not declared in this scope
     cv::cvtColor(in_img, in_img_gray, CV_BGR2GRAY);

解決方法:

註釋掉代碼對opencv版本的if判斷,並加上以下
#define CV_BGR2HSV cv::COLOR_BGR2HSV
#define CV_HSV2BGR cv::COLOR_HSV2BGR
#define CV_BGR2Lab cv::COLOR_BGR2Lab

錯誤(6):

caffe/src/caffe/util/io.cpp:86:34: error: ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope
   int cv_read_flag = (is_color ? CV_LOAD_IMAGE_COLOR :
  
  /home/neuron-drop/workspace/caffe/src/caffe/util/io.cpp:87:5: error: ‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scope
     CV_LOAD_IMAGE_GRAYSCALE);

解決方法:加上
#define CV_LOAD_IMAGE_COLOR cv::IMREAD_COLOR
#define CV_LOAD_IMAGE_GRAYSCALE cv::IMREAD_GRAYSCALE
 

錯誤(7):CV_INTER_LINEAR was not declared in this scope 

解決方法 : cv::INTER_LINEAR 替換 CV_INTER_LINEAR

 

      5、配置環境變量

           在 ~/.bashrc 中添加  export PYTHONPATH=/home/nvidai/caffe/python

           source ~/.barshrc

      命令行中輸入

           python

            >>>import caffe

            >>>

       表示安裝成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章