iOS MachineLearning系列(1)——简介

简介: 最近,随着Chat-GPT的发布,人工智能相关的资讯和话题再次火热了起来。有了人工智能的加持,对人们的生活以及各行各业的工作都将带来效率的极大提升。目前,各种大模型的发布层出不穷,这些大模型虽然功能非常强大(如文本理解,绘图等),但对于个人来说,要跑起这样一个模型来对外提供服务还是比较困难的,其需要有非常强大的算力支持。

iOS MachineLearning系列(1)——简介

最近,随着Chat-GPT的发布,人工智能相关的资讯和话题再次火热了起来。有了人工智能的加持,对人们的生活以及各行各业的工作都将带来效率的极大提升。目前,各种大模型的发布层出不穷,这些大模型虽然功能非常强大(如文本理解,绘图等),但对于个人来说,要跑起这样一个模型来对外提供服务还是比较困难的,其需要有非常强大的算力支持。

本系列博客,主旨在讨论使用分布式的方式来运行ML或AI相关的服务功能,在iOS平台中,系统本身就提供了ML相关的框架以及内置API接口,使用内置接口已经可以实现非常强大的AI功能,且不需要引入额外的模型,不会增大App的体积。如果有更高级的AI需求,我们也可以使用CoreML框架来运行第三方的模型,非常强大。更甚一步,如果有非常定制化的AI需求,我们也可以通过Xcode工具来自己训练模型,使用自己训练的模型来实现更加复杂的功能。

在结构上,本系列博客将从应用的角度由浅入深的进行介绍,先介绍系统API的功能,再介绍如何使用三方模型,最后讨论如何自己训练模型。希望这些文章可以起到抛砖引玉的效果,帮助你打开在iOS平台上AI应用的新思路,并充分的利用用户的设备来实现AI功能,而不是中心服务器。

1 - 关于Machine Learning

CoreML是iOS系统提供的机器Learning核心框架,其可以将训练好的模型轻松的集成到我们的应用中,至于模型,我们可以使用自己训练的,也可以使用三方训练好的,甚至可以将其他框架的模型转换成CoreML所需要的类型进行使用。

iOS中的Machine Learning能力可以概括为以下几个方面:

  • Machine Learning APIS
  • Create ML
  • Use Models
  • ML Converters

2 - Machine Learning APIS

我们知道,iOS系统本身就有一些AI功能,例如人脸识别,语音识别等,这些系统内置的功能其实也开发了API供开发者使用,我们只需要很少的代码,即可在应用中集成这些功能,包括:

  • 视觉:分析图像和视频的相关功能。
  • 自然语言:处理和理解文本相关的。
  • 语音:语音内容识别相关的。
  • 音频:音频类型识别相关的。

与视觉相关的API功能包括有:

图片分类:自动识别图像中的内容。

图片增强:将图像的关键部分进行突出。

图像对齐:处理图像边缘对齐。

图像相似性对比:生成特征对比图像相似性。

目标检测:在图像中找到目标物。

对象跟踪:跟踪视频中的移动对象。

轨迹检测:检测视频中运动物体的轨迹。

轮廓检测:检测图像或视频中物体的轮廓。

文本检测:检测图像中的文本区域。

文本识别:识别图像中的文本,提取文本。

人脸检测:检测图像中的人脸。

人脸追踪:实时追踪相机视频流中的人脸。

面部特征提取:检测面部特征提取人脸特征。

人脸捕获质量:比较一组图中的人脸捕获质量。

人体检测:在图片中查找人体。

身体姿势分析:分析图像中的人体姿势。

手部姿势识别:在图像中识别手部姿势。

动物识别:识别图像中的猫狗。

条形码识别:识别条形码。

矩形检测:查找图片中的矩形区域。

地平线检测:分析图片中的地平线角度。

光电流:分析对象在连续视频帧之间的运动模式。

人像细分:为图片中的人物生成无光图像。

文档分析:检测图像中包含的文本矩形区域。

与自然语言处理相关API有:

token化:枚举文本字符串中的单词。

语言识别:识别文本的主体语言。

打标签:对文本中的实体进行标签化。

词性标注:标注文本中实体的词性。

单词嵌入:嵌入相近词。

句子嵌入:嵌入相近句。

情绪分析:分析文本的情绪。

与语音识别API有:

语音识别:将语音提取成文字。

与音频处理相关的API有:

声音分类:将声音进行分类。

本系列的后续文章会对这些API的使用多详细介绍。

2 - Create ML

Create ML是Mac上提供的一种模型训练方式,其训练完成后的模型可以直接在CoreML框架上进行使用。降低了模型训练的复杂性。

Create ML支持对多种类型的数据为内容进行训练,包括图片,视频,活动,声音,文本和表格等。如果安装了Xcode,则自动也将安装Create ML工具,其中自带了很多训练模板,如下图所示:

关于模型的训练,也将在后续文章中做介绍。

3 - Use Models

自己训练模型是有一定的成本的,比如首先要有大量的用于训练的数据。Core ML社区也为开发者提供了一些训练好的模型,可以直接下载使用。可以在如下网站进行下载:

https://developer.apple.com/machine-learning/models/

这些模型的功能还是很强大的,比如进行图像的深度预测,数字手写体识别,绘图分类,物体识别,像素分割,人类关节分析,以及查找问题的答案等等。

后续文章会介绍如何使用这些模型。

4. ML Converters

Core ML本身是Apple提供的模型框架,我们知道还有很多第三方的训练库,我们也可以将其他框架训练的模型转换为Core ML模型,从而集成进iOS应用。支持的库和框架包括:

  • TenscrFlow
  • PyTorch
  • XGboost
  • scikit-learn
  • LIBSVM
专注技术,懂的热爱,愿意分享,做个朋友
目录
相关文章
|
4月前
|
Linux Android开发 iOS开发
iOS 应用上架的步骤和工具简介
iOS 应用上架的步骤和工具简介
|
7月前
|
存储 iOS开发
iOS初级->const,static,extern简介
iOS初级->const,static,extern简介
65 0
|
3月前
|
Linux Android开发 iOS开发
iOS 应用上架的步骤和工具简介
APP开发助手是一款能够辅助iOS APP上架到App Store的工具,它解决了iOS APP上架流程繁琐且耗时的问题,帮助跨平台APP开发者顺利将应用上架到苹果应用商店。最重要的是,即使没有配置Mac苹果机,也可以使用该工具完成一系列操作,包括iOS证书申请、创建iOS开发者证书和 iOS发布证书等各类证书。此外,在Windows、Linux或Mac系统中上传IPA到App Store也变得简单快捷,从而大大简化了iOS APP上架的流程。
|
12月前
|
机器学习/深度学习 API iOS开发
iOS MachineLearning 系列(17)—— 几个常用的对象识别 CoreML 模型
上一篇文章中,我们介绍了几个官方的图片分类的模型,图片分类模型的应用场景在于将图片中最主要的事物进行识别,在已有的词库中找到最可能得事物。而对象识别则要更高级一些。再之前的文章,我们介绍过可以使用官方提供的API来进行矩形识别,文本识别,二维码识别以及人脸识别等,这类识别功能的特点是我们不仅可以将图片中的物体位置和尺寸分析出来,还可以对其进行类别的分类。
252 0
|
9月前
|
网络协议 数据安全/隐私保护 iOS开发
Cisco设备的简介和IOS的备份、恢复、升级
在使用路由器、交换机的过程中,lOS的备份,恢复和升级是网络管理员的重要工作。
205 0
|
9月前
|
安全 网络协议 Shell
iOS 逆向编程(六) SSH、OpenSSH、SSL、OpenSSL 简介与关系
iOS 逆向编程(六) SSH、OpenSSH、SSL、OpenSSL 简介与关系
185 0
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
iOS MachineLearning 系列(22)——将其他三方模型转换成CoreML模型
本篇文章将是本系列文章的最后一篇。本专题将iOS中有关Machine Learning的相关内容做了整体梳理。下面是专题中的其他文章地址,希望如果你有需要,本专题可以帮助到你。
229 0
|
10月前
|
数据可视化 数据挖掘 iOS开发
iOS MachineLearning 系列(21)——CoreML模型的更多训练模板
前面文章中,有介绍如何训练生成定制化需求的 CoreML 模型,以图像分类为例做了演示.
120 0
|
12月前
|
人工智能 数据挖掘 API
iOS MachineLearning 系列(20)—— 训练生成CoreML模型
本系列前面的文章详细的介绍了在iOS中与AI能力相关的API的使用,也介绍了如何使用训练好的CoreML模型来实现更强大的AI能力。然而,无论是成熟的API提供的能力,还是各种各样的三方模型,有时候都并不能满足某一领域内的定制化需求。当我们拥有很多的课训练数据,且需要定制化的AI能力时,其实就可以自己训练生成CoreML模型,将此定制化的模型应用到工程中去。
257 0
iOS MachineLearning 系列(20)—— 训练生成CoreML模型
|
12月前
|
自然语言处理 搜索推荐 iOS开发
iOS MachineLearning 系列(19)—— 分析文本中的问题答案
本篇文章将介绍Apple官方推荐的唯一的一个文本处理模型:BERT-SQuAD。此模型用来分析一段文本,并根据提供的问题在文本中寻找答案。需要注意,BERT模型不会生成新的句子,它会从提供的文本中找到最有可能的答案段落或句子。
137 0
iOS MachineLearning 系列(19)—— 分析文本中的问题答案