【2】coreML基于图像的处理(图像识别)
2017-10-30 11:46
260 查看
什么是 Machine Learning?
机器学习是人工智能的一个分支,他的目的在于吸收任何的数据比如说(图像,文本,语音,统计数据) 然后作出预测数据当中所隐藏的特征或是行为。ML可以做什么?
面部识别面部特征识别 (微笑、哭泣…)
特征检测和替换 (把你的哭变成笑)
ML是怎么学习的?
我们使用海量的图片,数据等等来告诉他A是啥B是啥,笑是什么等等然后让他通过这些数据找到最符合这个图的结果。
但是,怎么和学习有关吗?
一个模型,经过多次的使用,会越来越聪明,分辨的可靠性越来越高。
有点像走迷宫,有很多种出去的方法。走的多了,就知道最近的一条路是哪了。
万一遇到死胡同怎么办呢?对,比方说他识别是个砖头,但是后面的信息是它的叫声是汪汪汪,很明显猜测砖头是错。我们就返回去,接着去找其它的路。
直到所有的数据都分析完了,给你一个最可靠的答案。当然这个答案也可能是错的。。。
神经网络
1、人工神经网络(ANN)人工神经网络Artificial Neuron Network是基于生物的神经结构和功能的一种计算模式。
2、积卷神经网络(CNN)
卷积神经网络Convolutional Neural Network是一种反馈形式的人工神经网络。
3、递归神经 (RNN)
递归神经网络Recurrent Neural Network 他是一种深层次的学习模式,他跟 CNN 有点不同,他会在许多的神经网络的隐藏层之间反覆的游走,我们甚至可以说他是有记忆的。
=============================================
【下面让我们通过coreML来识别一条狗,看它能不能行】
STEP1
我找到一只大金毛、hello.jpeg。
STEP2
导入Resnet50.mlmodel
STEP3
代码如下:import UIKit import CoreML import Vision class 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%
准确度很高了。我们看下是不是对。
恭喜恭喜!!你这个小家伙预测对了。就是我最爱的大金毛。
相关文章推荐
- 图像处理之基于NCC模板匹配识别
- 我的毕设 图像处理 基于ARM车牌识别
- Matlab图像处理学习笔记(三):基于匹配的目标识别
- 基于OpenCV及Python的数独问题识别与求解(一)图像预处理
- 数字图像处理:基于MATLAB的车牌识别项目 标签: 图像处理matlab算法 2017-06-24 09:17 98人阅读 评论(0)
- 图像处理实例--基于Hough变化的答题卡识别(未完成)
- 数字图像处理:基于MATLAB的车牌识别项目
- 基于嵌入式Linux与S3C2410平台的图像识别与处理
- 图像处理之基于NCC模板匹配识别
- 图像处理之基于NCC模板匹配识别
- Matlab图像处理学习笔记(六):基于sift特征点的人民币识别
- Matlab图像处理学习笔记(三):基于匹配的目标识别
- Matlab图像处理学习笔记(六):基于sift特征点的人民币识别
- Matlab图像处理学习笔记(三):基于匹配的目标识别
- 图像处理之CoreImage图片滤镜
- 基于深度卷积特征的增量式图像识别
- 图像识别与处理之Opencv——Mat表达式的运算(矩阵的一些运算)
- 图像识别前处理---学习(1)
- 数字图像处理和图像识别中常用的OpenCV函数
- 基于opencv和c++的图像处理:直方图均衡化