跑了一下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多的模型,勉强识别出来人
示例代码嘛,多读读代码学习哈~