端智能技术的演进与实践|青训营笔记

406 阅读5分钟

这是我参与「第四届青训营 」笔记创作活动的第6天 主要为思维导图大纲,收集课堂要点和一些补充知识 欢迎补充&指正

端智能技术的演进与实践

1.端智能技术是什么

1.定义:把机器学习、深度学习算法模型应用和部署到端设备上(手机、物联网...)

2.客户端案例

  • 1.换装特效
  • 2.文字识别
  • 3.实时肢体检测、手势识别

3.优势

  • 1.低延迟
  • 2.实时性
  • 3.可离线使用
  • 4.节省成本
  • 5.保护用户隐私数据

4.不足

  • 算力不足,资源受限

5.端云结合

2.端智能技术实践案例

1.手写数字识别

  • 1.解决方法

    • 1.训练一个可以识别手写数字的机器学习模型。
    • 2.将此模型部署应用到App中,实现手写输入到识别的过程,并将识别结果供给用户选择输入。
  • 2.数据收集

    • 1.开源数据 - ~~~~MNIST

    • 2.合成数据 如将各种字体下的数字写在黑板上生成图片,作为样本。

    • 3.人工收集和标注的数据

      • 设计和实际需求贴合的一个数据采集程序
      • 兼顾不同年龄段、性别、左手/右手等
      • 数据增广 对原始图片进行旋转、平移、缩放变换,扩充更多数据集,增强模型适应性。
  • 3.模型设计

    • 输入图片,由二维展开成一维分量,对应置信度
  • 4.模型训练

    • 1.搭建环境
    • 2.训练样本处理
    • 3.模型构建
    • 4.模型训练
    • 5.验证模型准确度
  • 5.模型压缩和转换

    • 移动端使用的是被优化的推理引擎,可以在不同CPU和GPU架构下高效的执行模型推理计算。
  • 6.模型部署到移动端

    • 1.放在App包体内assets目录下。
    • 2.通过url动态下载,支持动态更新,同时减少包体积。
  • 7.移动端推理预测

    • 1.加载模型到内层

    • 2.构造模型输入

      • 将bitmap图片 resize 缩放到28x28像素,转灰度,再转成bytebuffer,这是 interpreter 接受的输入格式。
    • 3.执行推理预测

      • 构造输出buffer,调用run执行计算
    • 4.获取推理预测结果

      • result中的10个数值代表手写输入是 0~9 这10个数字置信度分值,对分值进行排序,把排序前三的数字作为预测输出,供用户选择。
  • 8.拿到结果执行业务策略

2.左右手智能识别

  • 1.问题和方案

    • 设计一种方法检测用户是左手在操作手机、还是右手在操作手机,然后依据检测结果动态调整交互,提升用户体验。

    • 如识别到右手时,交互设计保持右手适配模式;识别到左手时,交互设计更改为左手适配模式。

    • 方案

      • 训练一个二分类的CNN神经网络模型来识别用户是左手 or 右手操作。
      • 输入:用户在屏幕上的滑动轨迹
      • 输出:左手 or 右手
  • 2.训练AI模型

    • 1.数据格式

      • X样本:[p0, p1, p2, p3, p4, … ] ,p=(x, y, w, h, density, dt)。
      • Y样本:left / right
    • 2.收集方式

      • 1.滑动轨迹:拦截Activity的dispatchTouchEvent

      • 2.事件,缓存手指滑动产生的MotionEvent序列。

      • 3.左右手标签

        • 开启左手样本收集时,只用左手持机操作,只录制左手滑动数据。
        • 开启右手样本收集时,只用右手持机操作,只录制右手滑动数据。
    • 3.模型设计

      • 二分类模型( Left or Right ),卷积神经网络。
    • 4.模型训练和转换

      • 滑动轨迹X样本需要采样对齐成9个固定点输入方式
      • 在Demo案例我们继续用Tensorflow Lite 提供的转换器 TFLite Convert,将模型转为移动端模型。
      • 在抖音使用的端上推理计算框架是ByteNN,其也提供了相应的Tensorflow Lite模型进一步转成ByteNN模型的工具。
    • 5.模型部署到移动端

      • 在抖音中模型是通过url下发的,动态更新,需要更新模型时也可以通过Libra实验进行对比。
      • 在案例Demo中,是和案例1一样,放在安装包assets目录下。
    • 6.移动端推理预测

      • 接入模型后,在用户滑动后触发预测,将预测结果缓存,业务使用时获取最近识别结果。
      • 案例中我们继续使用Tensorflow Lite作为推理引擎,加载和执行模型预测。
      • 抖音中使用ByteNN推理引擎执行推理预测。

3.案例落地

  • 1.问题和方案

    • 1.问题描述和定义
    • 2.设计机器学习解决方案
  • 2.训练AI模型

    • 1.数据收集
    • 2.模型设计、模型训练
    • 3.模型压缩、模型转换
  • 3.AI模型在移动端部署应用

    • 1.模型部署到移动端
    • 2.收集输入、推理预测
    • 3.拿到结果,执行业务推测

3.端智能工程师学习长路线

入门

  • 对端智能技术有一定认识,可以协作完成端智能技术的需求落地
  • 了解端智能技术是什么、可以做什么
  • 掌握移动端开发、Machine Learning 基础知识,了解业内端智能框架
  • 理解怎么做端智能,可以协作完成端智能技术解决实际业务问题的需求落地

进阶

  • 达成:对移动端技术、端智能技术和负责业务有更深入的理解,可以站在更全面的视野上设计端上智能解决方案,建设端上智能架构。