機器學習 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相關的使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM