yolov5 模型导入 Android 后编译的 apk 文件体积巨大

文章目录

    参考前文,用 yolov5 的 pytorch torchscript lite 模型开发了一个多物体检测的 Android APP

    调试完成之后,进行编译打包 Generate Signed Bundle/APK。

    然而,编译后的 APK 文件大小让我大吃一惊,足足有 240M。

    使用 Android Studio 自带的 Build - Analyze APK 功能的分析结果:

    yolov5 android apk 包大小

    好在不是面向 C 端的产品,否则估计没有几个人愿意下载这么大的 App,仅仅为了一个图像识别功能。

    巨大的 apk 文件

    • torchscript lite 模型 model 文件大小:23M
    • libpytorch_jni_lite.so 这个是大头,每个 cpu 架构一份,共 4 份,接近 200M

    优化 apk 文件大小的一些策略

    • 分离 CPU 架构:Android 系统支持多个 CPU 架构,但是如果只支持一种 CPU 架构,那么可以减少 APK 的大小并且加快应用程序的启动速度。
    • 使用 TensorFlow Lite 模型,这样就可以依赖 Google Play 服务自带的功能,不需要额外引入依赖文件。但是这个仅限于海外用户,国内的阉割版 Android 不支持。
    • 将图片识别功能做成服务端接口,由 APP 调用服务器端的接口实现,如果模型很大,比如 ChatGPT 这种庞大的模型,肯定是放在了服务端。

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式