1.机器学习
CoreML是今天苹果在WWDC上推出的一款面向开发者的机器学习技术框架,这也充分说明了苹果公司在未来人工智能领域早已提前布局。
什么是机器学习?
机器学习是 智能的 一个分支 ,他的目的在于吸收任何的数据比如说(图像,文本,语言 ,统计数据) 然后作出预测数据当中所隐藏的特征或是行为。
我们来看看 ML 现在都可以做些什么?
面部识别
部特征识别
特征检测和替换
机器是怎么学习的?
我们使用海量的图片来训练他们识别面部特征,最终被训练出来的结果就叫做 『训练好的模型』
训练好的模型有什么用?
有什么用?看看大家的想象力吧
接下来介绍的CoreML专门用于处理图像
2.我们先来看看苹果官网对CoreML的介绍:
??经过训练的模型是将机器学习算法应用于一组训练数据的结果。该模型基于新的输入数据进行预测。例如,一个接受过地区历史房价的模型,当考虑到卧室和浴室的数量时,可能能够预测出房子的价格。
??CoreML是特定于领域的框架和功能的基础。CoreML支持图像分析的远景,自然语言处理的基础(例如,NSLinguisticTagger类),以及用于评估学习决策树的GameplayKit。CoreML本身构建在底层的基础上,比如Accelerate和BNNS,以及Metal Performance Shaders.
??CoreML针对设备的性能进行了优化,从而减少了内存占用和功耗。严格地在设备上运行可以确保用户数据的隐私,并保证当网络连接不可用时,您的应用程序仍然具有功能性和响应性。
3.案例展示(物体识别)
功能实现:点击手机屏幕中心位置,识别手机摄像头所检测到的物体,在AR里并用3D效果展示结果。
原理分析:通过手势可以截取当前屏幕的画面,把当前的画面丢给已经训练好的模型,再把当前识别的结果包装成SCNNode节点加到当前sceneView中。
项目用到了苹果官方一个已经训练好的模型,把识别到的结果用ARKit的3D文字显示出来。模型下载地址,
核心代码:
func perfomVisionRequest(pixelBuffer:CVPixelBuffer) {
let visionModel = try! VNCoreMLModel(for: self.resentModel.model)
let request = VNCoreMLRequest(model: visionModel) { (response, error) in
if error != nil{return}
guard let observations = response.results else{return}
//把結果中的第一位拿出來進行分析
let observation = observations.first as! VNClassificationObservation
print("name \(observation.identifier) and confidence is \(observation.confidence)")
DispatchQueue.main.async {
self.displayPredictions(text: observation.identifier)
}
}
项目地址