Core ML入门:构建一个简单的图像识别应用

图灵汇官网

Core ML 的简介与应用

Apple 在 WWDC 2017 发布了一系列令人振奋的新框架和 API,其中最受欢迎的莫过于 Core ML。Core ML 让开发者可以轻松地将机器学习模型集成到应用程序中,而无需具备额外的神经网络或机器学习知识。开发者只需将已经训练好的模型转换为 Core ML 格式即可使用。

Core ML 的特点

Core ML 支持多种机器学习模型,包括深度学习、树集成、SVMs 和广义线性模型等。它利用底层技术如 Metal 和 Accelerate,从而在设备上高效运行,确保数据处理无需离开设备。本文将展示如何将 Core ML 应用到一个简单的图像识别程序中。

演示程序概览

本文将实现一个简单的程序,允许用户拍摄或从相册中选择照片,然后通过机器学习算法预测照片中的物体。尽管预测结果可能不完全准确,但读者可以借此了解如何将 Core ML 应用到应用程序中。

开始

首先,打开 Xcode 9 beta 并创建一个新项目。选择单视图应用程序模板,并确保使用的语言设置为 Swift。

创建用户界面

如果不想从头开始搭建 UI,可以下载起始项目并直接跳转到 Core ML 部分。在 Main.storyboard 中,添加一些 UI 元素到视图中,并嵌入导航控制器。将导航栏命名为“Core ML”。

实现拍照和相册功能

ViewController.swift 中,首先遵从 UIImagePickerControllerDelegate 协议。接下来,添加两个 IBOutlet 分别用于 UIImageViewUILabel,并将它们命名为 imageViewclassifier。此外,还需添加两个按钮点击事件处理方法,分别处理拍照和从相册选择照片的功能。

集成 Core ML 数据模型

为了将 Core ML 数据模型集成到程序中,需要下载并添加一个训练好的模型。本文使用的是 Inception v3 模型。该模型需要输入一张 299x299 的图像,并输出最可能的类型及对应的概率。

转换图片

ViewController.swift 中,更新代码以处理选中的图像。使用 Core Image 将选中的图像转换为 299x299 的尺寸,并将其传递给 Inceptionv3 模型进行预测。

使用 Core ML

最后,将处理后的图像传递给 Inceptionv3 模型进行预测,并更新 classifier 标签以显示预测结果。

测试应用

编译并在模拟器或实际设备上运行应用,测试其识别图像中物体的能力。尽管预测可能不总是准确,但通过本文的步骤,读者可以初步了解如何将 Core ML 应用到实际项目中。

总结

通过本文,读者可以掌握如何将 Core ML 集成到应用程序中,实现图像识别等功能。更多关于 Core ML 的详细信息,请参考官方文档和相关视频教程。

本文来源: 图灵汇 文章作者: 优博讯