【2】coreML基于图像的处理(图像识别)
来源:互联网 发布:三维接线软件 编辑:程序博客网 时间:2024/06/05 09:32
什么是 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 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%
准确度很高了。我们看下是不是对。
恭喜恭喜!!你这个小家伙预测对了。就是我最爱的大金毛。
- 【2】coreML基于图像的处理(图像识别)
- 基于图像处理的汽车牌照的识别
- 我的毕设 图像处理 基于ARM车牌识别
- Matlab图像处理学习笔记(三):基于匹配的目标识别
- Matlab图像处理学习笔记(六):基于sift特征点的人民币识别
- 图像处理学习笔记(三):基于匹配的目标识别
- 图像处理实例--基于Hough变化的答题卡识别(未完成)
- 基于FPGA的图像处理(三)--图像融合
- 图像处理------基于像素的图像混合
- 基于Java的图像象素处理(2)
- 基于Web的图像处理
- 图像处理&识别:应用
- 图像处理与识别
- 图像处理与识别
- 基于视频图像的识别算法
- 基于OpenCV的细胞图像识别
- 基于深度学习的图像文字识别
- 基于canvas的灰度图像识别
- Java
- laravel 添加触发事件
- php curl请求https接口返回curl: (60) SSL certificate problem: unable to get local issuer certificate 错误
- Java常见Lock(五): lock之CyclicBarrier
- Python爬虫入门:爬虫基础了解
- 【2】coreML基于图像的处理(图像识别)
- js键盘键值
- [leetcode]第八周作业
- Newtonsoft.Json 转Json字符串为空不序列化
- Android Activity生命周期以及Fragment生命周期的区别与分析
- 分页查询时,把数据保存在session中,在点击下一页的时候取不到session中的值
- 上联网关中IP地址填写问题
- hbuilder 如何配置tomcat
- 最晚火起来的家电后市场,还面临着哪些痛点和难点