当前位置: 首页>移动开发>正文

iOS--CoreML初识

1.机器学习

CoreML是今天苹果在WWDC上推出的一款面向开发者的机器学习技术框架,这也充分说明了苹果公司在未来人工智能领域早已提前布局。

什么是机器学习?

机器学习是 智能的 一个分支 ,他的目的在于吸收任何的数据比如说(图像,文本,语言 ,统计数据) 然后作出预测数据当中所隐藏的特征或是行为。

我们来看看 ML 现在都可以做些什么?

面部识别


iOS--CoreML初识,第1张
图片.png

部特征识别


iOS--CoreML初识,第2张
图片.png

特征检测和替换


iOS--CoreML初识,第3张
图片.png
机器是怎么学习的?
iOS--CoreML初识,第4张
图片.png

我们使用海量的图片来训练他们识别面部特征,最终被训练出来的结果就叫做 『训练好的模型』

训练好的模型有什么用?
iOS--CoreML初识,第5张
图片.png

有什么用?看看大家的想象力吧

接下来介绍的CoreML专门用于处理图像

2.我们先来看看苹果官网对CoreML的介绍:

iOS--CoreML初识,第6张
图片.png

??经过训练的模型是将机器学习算法应用于一组训练数据的结果。该模型基于新的输入数据进行预测。例如,一个接受过地区历史房价的模型,当考虑到卧室和浴室的数量时,可能能够预测出房子的价格。

??CoreML是特定于领域的框架和功能的基础。CoreML支持图像分析的远景,自然语言处理的基础(例如,NSLinguisticTagger类),以及用于评估学习决策树的GameplayKit。CoreML本身构建在底层的基础上,比如Accelerate和BNNS,以及Metal Performance Shaders.


iOS--CoreML初识,第7张
图片.png

??CoreML针对设备的性能进行了优化,从而减少了内存占用和功耗。严格地在设备上运行可以确保用户数据的隐私,并保证当网络连接不可用时,您的应用程序仍然具有功能性和响应性。

3.案例展示(物体识别)

功能实现:点击手机屏幕中心位置,识别手机摄像头所检测到的物体,在AR里并用3D效果展示结果。

原理分析:通过手势可以截取当前屏幕的画面,把当前的画面丢给已经训练好的模型,再把当前识别的结果包装成SCNNode节点加到当前sceneView中。
项目用到了苹果官方一个已经训练好的模型,把识别到的结果用ARKit的3D文字显示出来。模型下载地址,

iOS--CoreML初识,第8张
图片.png

核心代码:

 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)
            }
            
        }

项目地址

iOS--CoreML初识,第9张
1511915643.gif

https://www.xamrdz.com/mobile/4vp1848580.html

相关文章: