Opencv 图像识别Android实战(识别扑克牌 4.图像识别扫盲)

什么是机器学习?

        我想来看这篇文章的人大多对机器学习都有一定的了解,我觉得没有必要非常学术话的解读这个意义。人的学习目的不就是为了认识更多的事物么,机器学习也是一样,就是让计算机通过学习类比来认识更多的事物。

         在这里我们是让计算机认识图像,要让计算机认识事物,首先得教他,他学会了自然就认识了,所以我们准备了很多样本来告诉计算机什么是方块,什么是梅花等等,当样本足够多的时候,计算机通过类比自然就能区别它所看到的事物了。

          机器学习算法有很多种,比如KNN,K-means,决策树,SVM,贝叶斯等,我们通过提取样本和目标的特征数据,再应用这些分类算法达到事物分类的目的,这样就简单的完成了一个机器学习的过程。当然机器学习不光用来分类,还有用来完成更多,更复杂的事情,目前图像识别领域的机器学习,千变万化的应用其实还是用来分类。所以图像分类还是图像识别的最基本,最重要的工作之一。


在图像识别领域如何来分类?

        在任何情况对任何事物分类都需要有分类目标,比如一株植物是什么科,那么分类目标是这个植物,样本自然就是我们已经定义好的各种植物以及植物类别。一个人是谁,我们可以用ta的面部特征来分类,人脸就是一个需要分类的目标。同样图像分类我么首先要找到分类的目标,比如我们需要知道某张图里面是否有苹果,通常情况下我们需要把可能存在苹果的地方扣下来和苹果图片作为对比,通过对比当匹配度达到一定程度时我们就认为被扣下来图片区域就是苹果,这样的处理过程通常来讲叫做图像分割,是图像识别中不可或缺的过程,图像分割的效果直接影响图像识别的最终效果。为了解决这个过程,人们提出了很多算法来解决这个问题,在我看来图像分割任然是一个需要不断改进技术。碰巧在这个开源项目中用到的图像分割很简单,不需要知道太多其中的原理,也可以很好的完成这个任务。

          当前图像识别领域有两类主要的图像识别手段;单步法和基于候选区识别。单步法比如yolo算法,他直接把未知图片传入到神经网络,不用查找候选区就可以识别目标物体。基于候选区方法则多一个过程,第一首先找到可能存在某个物体的候选区,第二步把这些候选区和已知的样本比对,如果匹配达到一定的程度就认为识别到某个物体。

单步法和基于候选区方式各有优缺点简单类比如下

基于候选区的算法优缺点如下:

        更少的样本,更高效的运行速度,更容易理解的算法,更廉价的设备,但是有些情况无法用单步法解决或者效果非常差,本开源项目就是用的基于候选区方式来解决问题。

单步法优缺点:

         更多的样本,单步法更多的使用神经网络,对设备性能要求高,能解决更加复杂的问题。

你可能感兴趣的:(Opencv 图像识别Android实战(识别扑克牌 4.图像识别扫盲))