前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >体态识别算法在 Android 端部署实例

体态识别算法在 Android 端部署实例

原创
作者头像
联远智维
修改2022-12-05 10:37:28
6830
修改2022-12-05 10:37:28
举报
文章被收录于专栏:联远智维联远智维

背景介绍

随着软硬件技术的发展,智能穿戴式设备逐渐从概念走向商用化。在过去几年内,Google、Apple以及Sony等科技公司在体积、功耗控制以及成本等方面做得越来越好,推出了一大批可穿戴产品,具有代表性的成果有:1. 智能手环:产品具备运动监测、睡眠监测、心率测量以及震动唤醒等功能;2. 智能眼镜:广泛应用于VR、AR领域。

近来,在哔哩哔哩上看到一个很有趣的成果:项目中将陀螺仪集成到狗狗衣服内,后续通过无线的方式将关节数据传输给手机APP,在手机端通过人工智能算法识别狗的运动状态,并且通过three.js将结果进行可视化。整个项目主要包含硬件和软件两部分,其中硬件部分主要是对传感器的输出信号进行采集,前期文章中具有详细描述,具体可以参考:数据采集版以及血压信号采集等;近来,想要在软件方面做一些初期工作,将深度学习模型集成到Android 端,具体过程如下所示:

图1 体态识别算法的应用实例
图1 体态识别算法的应用实例

附1、不管是现阶段非常火的机器学习,还是研究生阶段从事的有限元模拟,其本质都是如何利用数据,让数据发挥应有的价值。

系统框架

前期推文中详细介绍了体态识别算法的原理、模型的训练过程以及算法的应用实例等,然而如何将模型部署到手机端是一个亟待解决的问题。调研发现,项目实施过程主要包含:1. 将现有的checkpoints模型文件转化为 .tflite文件;2. 在 Android 端加载 .tflite文件,具体过程如下所示:

图2 体态识别算法在Android 端部署实例
图2 体态识别算法在Android 端部署实例

深度学习模型格式转化

预想中这部分应该没有任何难度,通过几行代码就能实现模型格式转化,奈何实际执行过程中一直报错,显示找不到相应的库函数,场面一度极为尴尬。因为环境问题折腾了大半天,最后将tensorflow升级到1-14版本,成功解决该问题(在此记录一波,希望大家能够少走弯路)~

代码语言:javascript
复制
converter = tf.compat.v1.lite.TFLiteConverter.from_session(sess, [X], [y_pred_softmax])
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)

程序运行后能够自动输出 .tflite文件,具体如图3所示:

图3 模型转换结果文件
图3 模型转换结果文件

深度学习模型在Android 端的部署

近来在同学小A的帮组下,将深度学习模型部署在Android studio 内。我们通过调用 'org.tensorflow:tensorflow-lite-support:0.1.0'实现 .tflite 模型的加载,后续编写数据接口函数,对硬件端传输的数据进行解算,并作为输入参数传递给深度学习模型,图4展示了模型的预测结果(与Linux端部署完全一致)。

图4 深度学习在Linux端部署时的预测结果
图4 深度学习在Linux端部署时的预测结果

项目中用到的程序代码为:

代码语言:javascript
复制
val outputs = model.process(inputFeature0)
            val resultByteBuffer = outputs.outputFeature0AsTensorBuffer.buffer
            val arr = ByteArray(resultByteBuffer.limit())
            resultByteBuffer.position(0)
            resultByteBuffer.get(arr, 0, arr.size)
            findViewById<TextView>(R.id.tv_result).apply {
                text = "原始数据: ${arr.contentToString()}\n解析数据: ${Utils.byteArrayToFloatArray(arr).contentToString()}"
            }
            model.close()

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景介绍
  • 系统框架
    • 深度学习模型格式转化
      • 深度学习模型在Android 端的部署
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档