TNN是腾讯开源的一个深度学习框架:https://github.com/Tencent/TNN
快速实现一个Android Demo:https://github.com/Tencent/TNN/blob/master/doc/cn/user/demo.md
第一步:安装JDK
JDK官网链接:
https://www.oracle.com/java/technologies/javase-downloads.html
JDK安装参考链接:
https://blog.csdn.net/Mr_Bobcp/article/details/108621926
坑一:
这个安装挺顺利的,唯一不同的地方是我下载的时候是JDK15,和教程中的版本不同,并没有JRE这个文件路径,需要自己生成,方法如下:
用管理员身份运行cmd,进入安装目录,如:
cd e:\Java\jdk-15
执行下面命令(会在当前目录生成一个名字的jre-11.0.3目录)
bin\jlink.exe --module-path jmods --add-modules java.desktop --output …/jre-15
注:用管理员身份登录很重要。
第二步:安装Android studio
Android studio 安装参考链接:Windows10 安装 Android Studio 并运行一个项目
坑二:
发现gradle-6.1.1-all.zip下载特别慢,从外部链接下载
https://services.gradle.org/distributions/
之后将对应版本的包放到以下路径即可:
C:\Users\用户名\.gradle\wrapper\dists\gradle-xxxx-all\27位字符文件名
例如:C:\Users\1.gradle\wrapper\dists\gradle-6.1.1-all\cfmwm155h49vnt3hynmlrsdst
坑三:
关于虚拟机错误问题:VT-x is disabled in BIOS.
需要进入的电脑的BIOS中修改,重启进入BIOS的目录:Advanced Mode –> Advanced –> CPU Configuration –> Intel Virtual Technology设置为Enabled。
虚拟机运行结果。
第三步:安装NDK
TNN中有要求要安装NDK,安装方式参考下图,在Android Studio中可以直接安装。
第四步:创建虚拟机
通过AVD Manager创建虚拟机,可以创建Nexus 5 API 30这个虚拟手机,这里有个坑就是手机型号不兼容问题,我一开始选择了Pixel这个型号的虚拟机,一直报错:
Cannot build selected target ABI: x86, no suitable splits configured: armeabi-v7a, arm64-v8a;
后来发现这是因为不同型号的手机力能这几个配置文件是有差异的,后来换了个型号后就可以正常使用了。
第五步:下载Demo模型
cd <path_to_tnn>/model
sh download_model.sh
PS:如因网络问题脚本无法下载模型,请根据脚本中的信息手动创建对应文件夹并自行下载.
自行下载方法如下:
1、在<path_to_tnn>/model下创建如下目录:
2、将download_model用记事本打开,将里面的链接复制到下载软件中下载文件,并复制到这些文件夹下。
第六步:打开TNNExamples工程
用Android studio打开TNNExamples工程,路径如下:<path_to_tnn>/examples/android/,运行。
第七步:真机部署
发现在Android studio生成SDK只需要一步,在上方菜单栏Build——Build Bundle(s)/APK(s)——Build APK(s)
生成文件在<path_to_tnn>\examples\android\demo\build\outputs\apk\下,剩下的和安装app一样。
我用的是Oppo Reno ACE,在gpu模式大概13ms左右一帧,但是精度不是很高。