使用Android Studio編譯TensorFlow Lite for Android展示程式

前一篇文章” 編譯TensorFlow Lite for Android展示與範例程式”說明如何使用bazel來編譯TensorFlow Lite for Android展示(demo)程式,但其並不是開發Android APP常用的方式;因此本文將說明如何使用Android Studio來編譯TensorFlow Lite for Android專案,介紹以下三種方法:首先是編譯第三方包裝好的展示程式原始碼,其次是編譯廠商提供的TfLiteSSDDemo展示專案,最後則為TensorFlow官方編譯展示程式之標準程序。

方法一:編譯第三方包裝好展示程式原始碼

  • 直接從GitHub上下載,專案名稱為” Android TensorFlow Lite Machine Learning Example”:https://github.com/amitshekhariitbhu/Android-TensorFlow-Lite-Example
  • 在Android Studio匯入下載的程式碼,之後進行編譯即可。
  • 如果是用到新的NDK,編譯過程中會出現以下錯誤:” No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android ”;這是因為新的NDK已不支援mips64el-linux-android這種架構,對應方式有很多種,請參考這個網頁;我選擇其中一種方式對應:Change this in build.gradle : from: classpath ‘com.android.tools.build:gradle:3.0.0’ to: classpath ‘com.android.tools.build:gradle:3.2.1’。修改後請重新編譯(Rebuild)專案。

方法一產生APK安裝到裝置(百度人臉識別開發套件)上,執行結果如下:

方法二:編譯廠商提供的TfLiteSSDDemo展示專案

  • TfLiteSSDDemo展示專案僅限用於廠商所支援的平台(Firefly-RK3399/AIO-3399J)。
  • 請到廠商論壇中文章內連結下載原始碼TfLiteSSDDemo_release.7z,如果無法下載,請聯絡”汯采有限公司”取得。
  • 參考方法一的流程,將專案匯入至Android Studio中,進行編譯。

方法二產生APK後安裝到裝置(百度人臉識別開發套件)上,執行結果如下:

方法三:官方標準編譯展示程式之程序

  • 首先,用git clone方式下載官方最新TensorFlow原始碼: git clone https://github.com/tensorflow/tensorflow.git。本文撰寫當下,TensorFlow版本為1.12.0
  • 參考官方說明文件demo_android.mdhttps://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/g3doc/demo_android.md;其中” Build in Android Studio with TensorFlow Lite AAR from JCenter”這段說明如何匯入及編譯demo專案。
  • 在Android Studio匯入 tensorflow/lite/java/demo 專案並進行編譯。
  • 編譯過程中如果發生錯誤,就依照錯誤訊息逐一排除。可能需於SDK Manager中安裝Support Repository的”ConstraintLayout for Android”項目與”Solver for ConstraintLayout”項目(參考說明在此)。使用新的NDK可參考”方法一”所提供方式進行修改,但修改後可能碰到在JCenter(版本控制)倉庫中找不到對應元件,此時請參照這篇這篇文章進行調整。若有碰到”Could not find method jackOptions() for arguments”錯誤則請參考這篇文章進行設定修改。

方法三產生APK後安裝到裝置(百度人臉識別開發套件)上,執行結果如下:

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *