• 机器学习 AI 谷歌ML Kit 与苹果Core ML


    概述

    移动端所说的AI,通常是指“机器学习”。
    定义:机器学习其实就是研究计算机怎样模拟人类的学习行为,以获取新的知识或技能,并重新组织已有的知识结构使之不断改善自身。从实践的意义上来说,机器学习是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。

    目前,机器学习已经有了十分广泛的应用,如:数据挖掘、计算机视觉、自然语言处理、语音和手写识别、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、战略游戏与机器人运用。

    机器学习

    机器学习包含了几个重要元素:数据集、AI算法、AI模型,如下图:
    AI模型训练过程.png

    通过训练,得到最终的AI模型,可以做什么?如下图:
    AI 使用.png

    预测结果的准确性取决于模型的判断合理性(即算法的准确性与合理性、数据特征各参数的正确性)

    移动端应用.png

    移动端现状

    Android端,谷歌提供的面向Android和iOS设备的跨平台人工智能SDK: ML Kit

    iOS端,苹果提供的用于iOS设备的机器学习软件开发工具包:Core ML

    ML Kit与 Core ML功能对比,如下:

    ML Kit
    
    1、跨平台,支持Android与iOS
    2、支持模型云托管
    3、支持模型离线本地化
    4、使用*.tflite 模型文件
    5、系统版本要求Android  4.1 + ,   iOS  9.0 +
    
    Core ML
    
    1、非跨平台,仅支持iOS
    2、不支持模型云托管
    3、支持模型离线本地化
    4、使用*.mlmodel模型文件
    5、系统版本要求iOS  11+
    

    AI 模型

    现阶段,机器学习模型推理框架较多,常用的如:TensorFlow、keras、Caffe等。
    通过训练产生的模型文件种类也较多,包括:.pb、.ckpt、.caffemodel、.h5、.pkl等格式。

    移动端受设备限制,不能支撑常规模型运算:

    1、内存、存储空间较小,模型不能复杂;
    2、运算能力差,不如专门的伺服器,只能使用相对简单的运算法;
    3、电力有限,不适合长时间运算;
    

    所以,移动设备使用AI时,需要将框架已训练模型文件转为Android与iOS能识别的.tflite、.mlmodel模型文件。
    模型转换.png

    模型转换

    下面列出几个主流的模型框架与对应的转换工具(本处只列出主流转换工具,第三方平台也有很多转换工具)
    模型转换(信息来源于互联网,因未做实测,如有问题,请指正,多谢).png

    Toco示例:

    toco --input_file=$(pwd)/mobilenet_v1_1.0_224/frozen_graph.pb 
          --input_format=TENSORFLOW_GRAPHDEF 
          --output_format=TFLITE 
          --output_file=/tmp/mobilenet_v1_1.0_224.tflite 
          --inference_type=FLOAT 
          --input_type=FLOAT 
          --input_arrays=input 
          --output_arrays=MobilenetV1/Predictions/Reshape_1 
    --input_shapes=1,224,224,3
    
    

    tflite_convert示例:

    tflite_convert --output_file=/home/yourname/Documents/tensorflow/images/500pics2/model/my_model.tflite --keras_model_file=/home/yourname/Documents/tensorflow/images/500pics2/model/my_model.h5
    

    Core ML Tools示例:

    import coremltools
    coreml_model = coremltools.converters.caffe.convert('XXX.caffemodel')
    coreml_model.save('XXX.mlmodel')
    

    官方已提供的模型与API

    谷歌:

    基于FireBase提供的ML Kit模型与API.png
    官网:https://firebase.google.com/docs/ml-kit/

    苹果:

    苹果提供的AI Model.png

    ML Kit的使用

    谷歌的ML Kit是与Firebase移动开发平台完全集成的机器学习模块,可用于iOS和Android,移动端集成示意图,如下:
    ML Kit集成示意图.png

    总结

    本篇文章仅为说明AI的基础概念,让大家对移动端AI有一定的认识。
    文章中概念性的内容较多,如有描述不当的地方,请指出,多谢。

    后续,会继续更新Android与iOS AI相关的使用。

  • 相关阅读:
    Android Fragment和FragmentActivity区别和用法
    百度地图
    test
    Activity的跳转与传值
    判断Android应用是否安装、运行
    爬取当当网 Top 500 本五星好评书籍
    TED-WordCloud: 4000+视频标题词云分析
    记第一个爬虫
    requests-html简介
    用requests-html爬取7000+PDF
  • 原文地址:https://www.cnblogs.com/qixingchao/p/11652401.html
Copyright © 2020-2023  润新知