百度easydl代码Android移植方法 想把百度easydl的模型代码移植到自己项目来,要么看不懂官方的操作文档要么就是照着流程搞下来运行不了,为此苦恼了好久,最后联系了一下百度easydl工程师小姐姐才得以解决这个问题,感谢百度easydl的工程师小姐姐很耐心技术很到位。
下面介绍一下代码移植具体的步骤
第一步: 第一步是复制库文件和so 这一步对照官方文档搞就好了。
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
为了大家看的明白我贴个步骤图
1.首先将项目调为Project模式 ![在这里插入图片描述](https://img-blog.csdnimg.cn/f7db465eec2348989ff112ddc7da2475.png)
2.复制示例代码app\libs下的arm64-v8a 、armeabi-v7a和easyedge-sdk.jar到自己的项目同路径下,如果自己的项目app下没有libs新建一个就好,放进去就行。
第二步 模型第一次初始化需要联网激活,需要获取网络权限,给项目添加权限 ![在这里插入图片描述](https://img-blog.csdnimg.cn/37920802e20f436a816b8d66bb004bef.png)
第三步 将assets模型文件复制到同名目录,没有assets就新建,复制assets下的文件 ![在这里插入图片描述](https://img-blog.csdnimg.cn/00dc0fe2c3f943f3a8862f966c8819b8.png)
第四步 也是最关键的一步 最关键的是这一步,有些兄弟看到官方文档上这一步直接蒙了:“我按照搞了不行啊,怎么报错啊,这些代码哪些是有用的,哪些是没用的啊,网上也找不到步骤啊”。 我最开始也是按照官方的这一个步搞得,直接把项目中某个infertest文件夹直接复制到自己项目,最后搞了差不多一天,我一度怀疑是我步骤问题。 其实想运行模型的核心代码只有那么几十行,这几十行中有模型初始化和detect执行预测和销毁模型,根本不需要把这 intertest整个文件夹复制下来
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
那么清楚这些,下面就跟着我一步一步来吧 我们打开infertest,根据自己模型的类型,打开相应的类,比如我的模型任务是分类,我就点开TestInferClassifyTask
打开TestInferClassifyTask来找核心代码,最核心的代码就这些,这些代码复制到自己项目MainActivity中就可以运行,注意模型每次运行都会初始化和销毁,如果不销毁模型就跑死了程序就会报错。
简单复制到自己项目里,别忘了其中的一些参数,缺哪个去源代码里找一下,都在代码上面声明了的,在此就不做介绍了,就是NUM_OF_API_CALLS还有serialNum(序列号)这些。 然后可以放张图片到assets下进行预测 运行查看预测结果,注意序列号是由硬件id的,失效的序列号需要重新申请。
|