iOS--CoreML初识

作者: 上善若水_Sam | 来源:发表于2017-11-29 08:48 被阅读0次

    1.机器学习

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

    什么是机器学习?

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

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

    面部识别


    图片.png

    部特征识别


    图片.png

    特征检测和替换


    图片.png
    机器是怎么学习的?
    图片.png

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

    训练好的模型有什么用?
    图片.png

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

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

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

    图片.png

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

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


    图片.png

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

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

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

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

    图片.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)
                }
                
            }
    

    项目地址

    1511915643.gif

    相关文章

      网友评论

        本文标题:iOS--CoreML初识

        本文链接:https://www.haomeiwen.com/subject/hfnebxtx.html