天天看點

【ncnn】Ubuntu16.04+OpenCV3.4.0 ncnn環境搭建一、安裝OpenCV二、安裝cmake三、編譯ncnn

環境:

Ubuntu16.04

OpenCV 3.4.0

Cmake 3.10.0

一、安裝OpenCV

請參考連結:【Linux】Ubuntu16.04安裝OpenCV3.4.0+OpenCV_contrib3.4.0+CUDA9.0完全教程。

二、安裝cmake

其實我的電腦上已經安裝了cmake,但版本是3.5.3,而ncnn要求cmake的版本最低是3.10,是以需要更新。

1. 下載下傳cmake

wget https://cmake.org/files/v3.10/cmake-3.10.0-Linux-x86_64.tar.gz
           

2. 解壓

tar -xf cmake-3.10.0-Linux-x86_64.tar.gz
           

解壓之後有四個檔案夾。

【ncnn】Ubuntu16.04+OpenCV3.4.0 ncnn環境搭建一、安裝OpenCV二、安裝cmake三、編譯ncnn

其中bin檔案夾裡面就有cmake的可執行程式。

【ncnn】Ubuntu16.04+OpenCV3.4.0 ncnn環境搭建一、安裝OpenCV二、安裝cmake三、編譯ncnn

對于原來低版本的cmake我并沒有解除安裝,它在/usr/bin下面,我将它重命名為cmake-bak。

sudo mv cmake cmake-bak
           
【ncnn】Ubuntu16.04+OpenCV3.4.0 ncnn環境搭建一、安裝OpenCV二、安裝cmake三、編譯ncnn

3. 連結新版本cmake

sudo ln -sf /home/mysoftware/cmake/bin/cmake /usr/bin/cmake
           
【ncnn】Ubuntu16.04+OpenCV3.4.0 ncnn環境搭建一、安裝OpenCV二、安裝cmake三、編譯ncnn

檢視一下現在cmake的版本。

cmake --version
           
【ncnn】Ubuntu16.04+OpenCV3.4.0 ncnn環境搭建一、安裝OpenCV二、安裝cmake三、編譯ncnn

已經是3.10.0的版本了。

三、編譯ncnn

1. 克隆源碼。

git clone https://github.com/Tencent/ncnn.git
           

2. 修改examples/CMakeLists.txt

這裡首先修改的是examples/CMakeLists.txt,主要是針對OpenCV3,因為ncnn預設是支援opencv2,如果這裡不進行修改,直接cmake之後make會報很多opencv的undefined reference錯誤。

【ncnn】Ubuntu16.04+OpenCV3.4.0 ncnn環境搭建一、安裝OpenCV二、安裝cmake三、編譯ncnn

打開examples/CMakeLists.txt,在最上面添加

set(OpenCV_DIR /home/mysoftware/opencv/build)
           

這裡設定的路徑就是第一步【Linux】Ubuntu16.04安裝OpenCV3.4.0+OpenCV_contrib3.4.0+CUDA9.0完全教程中編譯OpenCV建立的build目錄,因為這裡面有OpenCVConfig.cmake檔案。

3. 修改CMakeLists.txt

現在修改根目錄下的CMakeLists.txt,将

#add_subdirectory(examples)
           

的注釋取消。

add_subdirectory(examples)
           

因為我需要編譯ncnn下的examples。

4. 編譯

mkdir -p build
cd build
cmake ..
           
【ncnn】Ubuntu16.04+OpenCV3.4.0 ncnn環境搭建一、安裝OpenCV二、安裝cmake三、編譯ncnn
make -j4
           
【ncnn】Ubuntu16.04+OpenCV3.4.0 ncnn環境搭建一、安裝OpenCV二、安裝cmake三、編譯ncnn

5. 測試

cp ../examples/squeezenet_v1.1.bin examples/
cp ../examples/squeezenet_v1.1.param examples/
           
cd examples
./squeezenet test.jpg
           
【ncnn】Ubuntu16.04+OpenCV3.4.0 ncnn環境搭建一、安裝OpenCV二、安裝cmake三、編譯ncnn

輸出

【ncnn】Ubuntu16.04+OpenCV3.4.0 ncnn環境搭建一、安裝OpenCV二、安裝cmake三、編譯ncnn

打開根目錄下examples/synset_words.txt,看一下152代表什麼,

【ncnn】Ubuntu16.04+OpenCV3.4.0 ncnn環境搭建一、安裝OpenCV二、安裝cmake三、編譯ncnn

吉娃娃,應該是差不多的。

繼續閱讀