什么是图像分类?
图像分类的核心任务是从预定义的一类图像中为图像分配标签。分析输入图像并返回标签对图像进行分类。标签始终来自一组预定义的可能类别。
比如预定义的标签为:
categories = {cat, dog, panda}
image.png
分类系统还可以通过概率为图像分配多个标签。比如狗:95%;猫:4%;熊猫:1%。更重要的是,W×H像素输入图像有三个通道,Red,Green和Blue,分析W×H×3 = N像素图像,并弄清楚如何正确分类图像的内容。
image.png
在图像分类中,我们的数据集是图像的集合。因此,每个图像都是数据点。
image.png
左边猫,右边狗,电脑看到的是像素矩阵。实际上,计算机并不知道图像中有动物。
image.png
上图可描述如下:
•空间:天空位于图像的顶部,沙/海洋位于底部。
•颜色:天空是深蓝色,海水浅蓝色,而沙子则是
棕褐色。
•纹理:天空具有相对均匀的图案,而沙子非常粗糙。
需要应用特征提取来量化图像的内容。特征提取是获取输入图像,应用算法和获得特征向量的过程。可使用HOG,LBP或其他传统图像量化方法。也可应用深度学习来自动学习。
image.png
视角:方向/旋转等
大小
变形
遮挡
照明
背景
类内变异
对内容做出假设:图像以及容忍的变化。最终目标是什么?我们想要建立什么?
如果采用过于广泛的方法,例如“我想对厨房的每个对象进行分类和检测,除非你有多年构建图像分类器的经验,否则不太可能表现良好。但是,如果你构建问题并使其范围缩小,例如“我想要识别只是炉子和冰箱“,那么你的系统更可能是准确和有效。尽管深度学习和卷积神经网络强大,你仍然应该尽可能地保持项目的范围。ImageNet的图像分类的事实标准的基准数据集:计算算法由我们在日常生活中遇到的1,000个对象组成。
学习类型
常见的监督学习算法包括逻辑回归(Logistic Regression),支持向量机(SVM Support Vector Machine)随机森林(Random Forest)和人工神经网络(Artificial Neural Network)。
image.png
无监督学习(有时称为自学式学习)没有与输入数据相关联的标签,因此我们无法更正我们的模型预测。
用于无监督学习的经典机器学习算法包括主成分分析(PCA Principle Component Analysis)和k均值聚类( k-means clustering)。对于神经网络,还有自动编码器(Autoencoders),自组织映射(Self-Organizing Map: SOM)和自适应共振理论(Adaptive Resonance Theory)。
image.png
半监督学习算法将采用已知的数据,分析它们,并尝试标记每个未标记的数据点。半监督学习在计算机视觉中特别有用,我们根本没有时间或资源来标记每个个人形象。方法有标签传播(label spreading),标签累积(label propagation),梯形网络(ladder network)和共同学习/共同培训(co-learning/co-training)。
image.png
深度学习的流程
思维方式的转变
0,1,1,2,3,5,8,13,21,34 ......
当然,我们也可以使用(在极其未经优化的)Python函数中定义此模式
递归:
>>> def fib(n):... if n == 0:... return 0... elif n == 1:... return 1... else:... return fib(n-1) + fib(n-2)... >>> fib(7)13>>> fib(13)233>>> fib(35
深度学习和图像分类没有定义函数这么简单。没有确定的规则,而是采用数据驱动的方法归类。
每个类别看起来像然后教我们的算法识别之间的差异
训练数据集包括:
1.图像
2.图像的标签/类别(即狗,猫,熊猫等)
image.png
步骤#1:收集数据集
图像本身以及与每个图像相关联的标签。例如:categories = dog,cat,panda。此外,每个类别的图像数量应大致相同(即每个类别的相同数量的例子)。
步骤2:拆分数据集
现在我们有了初始数据集,我们需要将它分成两部分:
1.训练集
2.测试集
image.png
神经网络有需要调整,例如,学习率,衰减,正则化等,称为超参数。注意训练集、调整超参数的验证集和测试集一定要严格分开。
步骤3:训练您的网络
网络了解如何识别标记数据中的每个类别。当模型出错时,如何从这个错误中学习并改进自己。一般来说,我们应用一种梯度下降的方法。
步骤#4:评估测试
除了正确性(ground-truth标签),还有聚合报告,如精度,recall和f-measure,用于量化整个网络的性能。
在传统的,基于特征的图像分类方法中,在步骤#2和步骤#3之间有特征提取。采用HOG、LBP等算法,基于我们想要编码的图像的特定分量(即形状、颜色、纹理)量化图像的内容,然后继续训练我们的分类器并对其进行评估。
在构建卷积神经网络时,我们实际上可以跳过特征提取。这是因为CNN是端到端的模型。但训练CNN是非常重要的过程。
作者:python作业AI毕业设计
链接:https://www.jianshu.com/p/273ec3b1b988