跑了一下TensorFlow Lite裏的示例程序Image segmentation,從GitHub上TensorFlow Lite example下載,lite/example裏全是示例代碼。我只嘗試了一個Image segmentation,裏面的坑好多。。。。下面講一下我遇到的問題
0. TensorFlow Lite要求Android studio版本要在3.5以上
sync了好久來了這麼一個錯誤真的好氣啊。。。我真怕以前的項目跑不動了。。。不更新又用不了。。老老實實下新版本。。。
1. Gradle sync failed: Connection timed out: connect
從Android studio打開Image segmentation,啥都不幹,先等自動配置,然後就會報這個錯。
(借別人的圖,因爲我自己的忘了截。。。)
爲啥要自動配置?因爲要從服務器同步下載一些包。
爲啥time out?因爲是從谷歌的服務器下載。。。
谷歌的資源衆所周知。。。所以需要換成國內阿里的鏡像
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
在build.gradle 裏插入 maven{ url ‘http://maven.aliyun.com/nexus/content/groups/public/’}
這兩個地方都要加
然後file->sync project with gradle files
如果success就可以build->make build
2. Unable to download file ‘deeplabc3_257_mv_gpu.tflite’ in offline mode
在這之前可能還會遇到Connection timed out: connect. If you are behind an HTTP proxy, please configure,實際上這個和標題是一個問題,多sync幾次或者看詳細的問題,就會變成下不了文件這個問題
這塊還是sync那的問題,這個工程裏有個專門的 download.gradle文件負責下這個文件
這地址被牆了。。。我專門出去把這個文件下來了,這裏分享給大家:deeplabc3_257_mv_gpu.tflite
這個文件直接複製到assets裏就可以了
3. Execution failed for task ‘:app:compileDebugKotlin’.
好像在make build 的時候遇到了,點開詳細的錯誤跳到了代碼裏,變成了Unresolved reference: Options 這個錯誤
居然提示沒有options()這個方法!Interpreter這個類是用來加載模型的!居然沒有方法!
實際上是少下了一個包,要在build.gradle里加上implementation ‘org.tensorflow:tensorflow-lite:+’
implementation 'org.tensorflow:tensorflow-lite:+'
在build就好了
附上app運行圖:
開了gpu運行速度要快點
不過這個模型不好,2m多的模型,勉強識別出來人
示例代碼嘛,多讀讀代碼學習哈~