利用Ubuntu生成Caffe2的Android依賴

NO IMAGE

Caffe2官網有生成Android依賴的步驟https://caffe2.ai/docs/getting-started.html?platform=android&configuration=compile,不過也花了一下午時間才完成。

安裝NDK

官網寫的是需要安裝Android Studio,說是Android Studio能夠提供NDK等必要的元件,那就只安裝NDK試試。

下載NDK

NDK下載地址https://developer.android.google.cn/ndk/downloads/index.html,下載後解壓。

配置環境變數

開啟終端,執行命令:

sudo gedit ~/.bashrc

在開啟的文字末尾新增以下程式碼:

export ANDROID_NDK=/home/obby/android-ndk-r14b
export PATH=${PATH}:$ANDROID_NDK

注意:程式碼中的路徑是解壓後NDK目錄的路徑(可以在資料夾的屬性中檢視)。
在終端執行以下命令後配置立即生效:

source ~/.bashrc

安裝Automake和Libtool

在終端執行命令:

sudo apt-get install automake libtool

下載Caffe2

在終端執行命令:

git clone --recursive https://github.com/caffe2/caffe2.git

如果出現以下情況,則先執行安裝git的命令,再執行上面的命令。

程式“git”尚未安裝。 您可以使用以下命令安裝:
sudo apt install git

執行指令碼

cd caffe2
./scripts/build_android.sh

執行後竟然報錯了:

Using Android ndk at /home/obby/android-ndk-r14b
Build Caffe2 Android into: /home/obby/caffe2/build_android
Building protoc
/home/obby/caffe2/scripts/build_host_protoc.sh: 行 40: /home/obby/caffe2/third_party/protobuf/cmake: 是一個目錄

開啟指令碼找到報錯的那行程式碼:

$CMAKE $SHARED $OTHER_FLAGS || exit 1

向上查詢CMAKE,找到了為CMAKE賦值的程式碼:

CMAKE=$(which cmake || which /usr/bin/cmake || which /usr/local/bin/cmake)

也就是說CMAKE是cmake的絕對路徑,由報錯可知cmake不應該是一個目錄,而應該是一個檔案,再由賦值程式碼中的查詢路徑可知應該是缺少CMake工具。

安裝CMake

在終端執行命令:

sudo apt install cmake

安裝完後再次執行生成Android依賴的指令碼,不會再報錯了。生成完畢後,Caffe2目錄下多了build_android和build_host_protoc兩個子目錄。

Caffe2官網給出了一個Android示例AI Camera,地址https://caffe2.ai/docs/AI-Camera-demo-android.html,專案地址https://github.com/bwasti/AICamera