在开发iOS应用时,如果需要在设备端(如iPad或iPhone)运行模型以实现更快的推理速度或解锁新功能(例如增强现实),则可以考虑将计算机视觉模型嵌入到原生移动应用中。这样,开发者可以赋予应用“视觉”能力,使其能够识别和理解图像内容。
示例应用:CashCounter
CashCounter是一个示例iOS应用,它可以计算美元硬币和纸币的数量。这个简单的示例展示了如何将计算机视觉模型嵌入到移动应用中,并实现一些附加功能。
支持的硬件和软件
所有iOS设备都支持设备端推理,但iPhone 8(A11 Bionic处理器)及更旧型号的设备将回退到能效较低的GPU引擎。Roboflow要求iOS的最低版本为15.4。
安装SDK
在运行示例应用之前,请确保已安装Expo和CocoaPods。从GitHub克隆RoboflowExpoExample项目,打开项目并运行expo install。在终端中,导航到项目的iOS目录并运行pod install。成功安装Podfile后,打开XCode中的RoboflowExpoExample.xcworkspace。在左侧点击项目名称,然后选择签名和功能,选择团队。在XCode中打开RoboflowFrameProcessorPlugin.swift,添加API密钥、模型名称和模型版本。
class RoboflowFrameProcessorPlugin: NSObject {
var apiKey: String
var modelName: String
var modelVersion: String
init(apiKey: String, modelName: String, modelVersion: String) {
self.apiKey = apiKey
self.modelName = modelName
self.modelVersion = modelVersion
super.init()
}
// 其他代码...
}
运行应用
最后一步是在XCode中使用设备运行应用。应用将使用Roboflow提供的API密钥、模型名称和模型版本进行配置。
预测格式
应用将返回以下格式的预测结果:
struct Prediction {
var x: Float // 物体中心的x坐标
var y: Float // 物体中心的y坐标
var width: Float
var height: Float
var className: String
var confidence: Float
var color: UIColor
var box: CGRect
}
CGRect是Apple开发者文档中定义的一个结构体,用于表示矩形区域。
创建自定义应用
和提供了更多信息,帮助创建自定义应用以部署模型。
下一步
如果应用中存在误检或低置信度的检测结果,可以将样本图像发送回Roboflow进行标注和重新训练,以快速改进模型。实施主动学习是提高模型性能的有效方法。