【2】coreML基于图像的处理(图像识别)

来源:互联网 发布:三维接线软件 编辑:程序博客网 时间:2024/06/05 09:32

什么是 Machine Learning?

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

AI  ML  DL 之间的关系

ML可以做什么?

面部识别
面部特征识别 (微笑、哭泣…)
特征检测和替换 (把你的哭变成笑)

ML是怎么学习的?

我们使用海量的图片,数据等等来告诉他A是啥B是啥,笑是什么等等
然后让他通过这些数据找到最符合这个图的结果。

但是,怎么和学习有关吗?
一个模型,经过多次的使用,会越来越聪明,分辨的可靠性越来越高。
有点像走迷宫,有很多种出去的方法。走的多了,就知道最近的一条路是哪了。
万一遇到死胡同怎么办呢?对,比方说他识别是个砖头,但是后面的信息是它的叫声是汪汪汪,很明显猜测砖头是错。我们就返回去,接着去找其它的路。
直到所有的数据都分析完了,给你一个最可靠的答案。当然这个答案也可能是错的。。。

神经网络

1、人工神经网络(ANN)

人工神经网络Artificial Neuron Network是基于生物的神经结构和功能的一种计算模式。

2、积卷神经网络(CNN)

卷积神经网络Convolutional Neural Network是一种反馈形式的人工神经网络。

3、递归神经 (RNN)

递归神经网络Recurrent Neural Network 他是一种深层次的学习模式,他跟 CNN 有点不同,他会在许多的神经网络的隐藏层之间反覆的游走,我们甚至可以说他是有记忆的。

=============================================
【下面让我们通过coreML来识别一条狗,看它能不能行】

STEP1

我找到一只大金毛、hello.jpeg
hello.jpeg

STEP2

导入Resnet50.mlmodel

STEP3

代码如下:

import UIKitimport CoreMLimport Visionclass ViewController: UIViewController {    override func viewDidLoad() {        super.viewDidLoad()        //在内存里面拿到这个图片。        let path = Bundle.main.path(forResource: "hello", ofType: "jpeg");        let imageUrl = NSURL.fileURL(withPath: path!);        let modelFile = Resnet50();        let model = try! VNCoreMLModel(for: modelFile.model); //把这个模型拿来视觉处理        let handler = VNImageRequestHandler(url: imageUrl);        //结果从模型里面取        let request = VNCoreMLRequest(model: model, completionHandler: myResultMethod);        try! handler.perform([request]);    }    //处理结果    func myResultMethod(request: VNRequest,error: Error?){        //判别结果是否存在        guard let resultes = request.results as? [VNClassificationObservation] else {            fatalError("拿不到结果");        }        //相似物名称        var bestPrediction = "";        //相似度        var bestConfidence:VNConfidence = 0;        //递归        for classIfication in resultes {            if(classIfication.confidence > bestConfidence){                bestConfidence = classIfication.confidence;                bestPrediction = classIfication.identifier;            }        }        print("预测结果\(bestPrediction) 可信度\(bestConfidence)")    }}

STEP4

我们看下控制台的结果

我们可以看到预测的结果是golden retriever,准确度有96.434%

准确度很高了。我们看下是不是对。

恭喜恭喜!!你这个小家伙预测对了。就是我最爱的大金毛。

阅读全文
1 0
原创粉丝点击