计算机基础项目实战 1_第1页
计算机基础项目实战 1_第2页
计算机基础项目实战 1_第3页
计算机基础项目实战 1_第4页
计算机基础项目实战 1_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机视觉项目开发实战

(微课版)项目八中草药分类—SVM图像分类思维导图学习目标概览能够将实际问题抽象为机器学习问题知识目标学习目标素养目标技能目标培养算法公平性与算法偏见的认知素养培养合理利用资源与可持续发展的意识激发创新精神与社会责任感能够使用SVM构建分类模型能够准确计算并解读分类模型的评价指标掌握机器学习的基本概念、主要分类及典型工作流程理解SVM的基本原理,以及核函数的作用与选择掌握准确率、精确率、召回率等指标的计算方法与适用场景,理解混淆矩阵的构成及其在模型性能分析中的作用目录项目导入知识准备项目拓展项目实施项目巩固8.1机器学习基础8.2支持向量机8.3分类模型评价指标PART01项目导入项目导入在中华文明五千多年的历史长河中,中草药作为传统医学的瑰宝,不仅承载着古人“天人合一”的哲学智慧,更凝聚着中华民族守护生命健康的集体智慧。古老智慧正迎来数字化新机遇。从基于手工特征的传统机器学习,已演进到基于深度CNN的图像分类,并进一步探索能理解植物百科知识的多模态大模型。用前沿的数字技术,守护千年的文化瑰宝PART02知识准备知识准备—机器学习基础计算机视觉的目标是让计算机像人一样能够“看懂”并理解图像和视频。如何将一幅图像中的内容(例如,中草药的叶片)转化为计算机能够理解的“知识”呢?

通过分析大量已标注的图像数据,从中归纳特征、学习规律,从而形成能够进行“识别”与“判断”的智能模型。这种模型构成了图像分类与目标检测等视觉任务实现智能决策的基础。知识准备—机器学习基础8.1.1机器学习的概念机器学习是人工智能的一个核心分支,它通过模拟人类学习的方式,使现代计算机具备一定的思考与推理能力。机器学习并不依赖于人类预先设定的规则,而是通过从大量数据中自行分析、归纳出规律,从而构建出一个能够对未知数据进行预测或决策的智能模型。以本项目“中草药分类”为例,让计算机识别出输入的植物叶片图像是薄荷、艾草还是枸杞,如图8-1所示。图8-1薄荷、艾草、枸杞图像知识准备—机器学习基础8.1.1机器学习的概念机器学习的本质是对人类学习机制的简化与模拟。机器学习是数据驱动的,它以计算机作为工具,从大量数据中发现并学习其内在规律,并将其应用到新的场景中。在图像分类任务中,计算机并非直接“理解”图像内容,而是通过分析海量已标注图像,学习到不同类别(如中草药)的视觉特征模式,从而获得对新图像进行归类的判别能力。

知识准备—机器学习基础8.1.2机器学习的分类监督学习监督学习是从带有标签的数据中学习,其核心特点是所使用的训练数据都带有明确的“答案”(即标签)。监督学习模型的任务就是学习输入数据(如图像)与输出标签(如艾草、薄荷)之间的映射关系。例如,本项目要实现的中草药分类就是一个典型的监督学习任务。为此,需要准备已标注的大量中草药图像,其中每个中草药叶片都对应一个准确的中草药名称标签。然后,监督学习模型通过分析这些“数据-标签”对,学习如何根据叶片的颜色、纹理、形状等特征来区分不同类别。知识准备—机器学习基础8.1.2机器学习的分类监督学习监督学习主要包括分类和回归两大任务,如图8-2所示。图8-2分类与回归任务示意图分类:预测离散的类别标签,其输出结果是一个有限的、不连续的类别标识。回归:预测连续的数值。在分类任务中,除了本项目将使用的SVM,常见的分类模型还包括KNN、决策树、神经网络等。知识准备—机器学习基础8.1.2机器学习的分类无监督学习与监督学习相反,无监督学习所使用的数据是不包含标签的。无监督学习模型的任务不是预测某个标签,而是自主发现数据中的潜在结构或分布规律。图8-3降维与聚类任务无监督学习主要包含降维[如主成分分析(PrincipalComponentAnalysis,PCA)]和聚类(如k-Means算法)两种任务,如图8-3所示。知识准备—机器学习基础8.1.2机器学习的分类强化学习强化学习模拟了一种更接近人类“从交互中学习”的方式,它通过智能体(Agent)与环境进行持续交互,根据其行动所获得的奖励或惩罚反馈来学习最优策略,其核心是“试错”与“延迟回报”。理解这3种学习方式的区别,有助于我们根据实际任务需求(如是否需要标注数据、目标是分类还是发现结构等)选择正确的机器学习算法。知识准备—机器学习基础8.1.3机器学习的流程数据收集与准备数据是机器学习模型的“燃料”,其质量直接决定模型性能的上限。比如,为了完成中草药分类任务,我们首先需要建立一个高质量的图像数据集。在获得图像后,为每幅图像打上正确的类别标签(如艾草、薄荷、枸杞),这是监督学习的基础。在数据准备阶段会对数据进行一些预处理。数据集划分也是数据准备阶段的重要工作。通常会把处理好的数据集随机划分为互不相交的训练集、验证集和测试集,分别用于训练模型、调整参数和评估模型的性能。完整的机器学习流程主要包括以下5个阶段。知识准备—机器学习基础模型选择在完成数据的收集与准备后,需根据任务类型选择合适的机器学习模型。在本项目中,我们将选择SVM作为中草药叶片图像的分类模型。SVM特别适合在少样本、高维数据(如图像特征)上寻找最优决策边界。8.1.3机器学习的流程模型训练模型训练是使用准备好的训练集数据对模型进行参数优化的过程。在这一过程中,算法会根据事先设定的损失函数不断调整模型的参数,以提升模型性能。损失函数在模型训练中起着关键的指导作用,它量化了模型预测结果与真实标签之间的差异。知识准备—机器学习基础模型评估与调优在模型训练完成后,需在验证集上评估其性能。通过观察模型在验证集上的分类准确率、精确率、召回率等指标,可以了解模型在未知数据上的泛化能力,并据此调整模型的超参数。在本项目的中草药分类任务中,使用SVM作为分类模型。通过评估与调优,对模型的惩罚系数、核函数类型和相关参数等进行调整,找到其最优配置,以获得最佳的中草药叶片图像识别准确率。

8.1.3机器学习的流程模型的测试最终,将调优后的模型在从未参与训练或调优的测试集上进行测试。测试集的性能客观反映了模型对未知数据的预测能力。若性能达标,即可将该模型部署到实际应用中。知识准备—支持向量机8.2.1支持向量机的概念支持向量机(SVM)是一种经典的监督学习算法,主要用于解决分类问题。观察图8-4(a),对于二维平面中线性可分的两类样本,存在很多能够将它们分开的直线。哪一条直线的分类效果最优呢?图8-4最优分类器与支持向量SVM核心思想:在特征空间中寻找一个最优的决策超平面,使得不同类别样本的间隔最大化。这个超平面可以被视为一个“决策边界”,能够较好地区分不同类别的数据点。知识准备—支持向量机【例8-1】使用SVM对线性可分数据进行二分类。8.2.1支持向量机的概念—案例知识准备—支持向量机运行本例完整代码,将输出如下结果,并展示图8-5所示的图形。8.2.1支持向量机的概念—案例【例8-1】使用SVM对线性可分数据进行二分类。图8-5分水岭算法分割结果与最终交通标志检测结果知识准备—支持向量机8.2.1支持向量机的概念现实世界中的数据往往充满挑战:决策边界可能不是完全线性的,数据中可能存在噪声或异常值,不同类别的样本可能会出现部分重叠。SVM引入了“软间隔”概念。软间隔允许出现一定程度的分类错误,即在追求最大间隔的同时,容忍部分样本被错误分类或落入间隔区域内。软间隔的实现依赖于关键参数—惩罚系数C,体现了模型在“最大化间隔”与“最小化分类错误”之间的平衡。惩罚系数C的选择根据具体问题和数据特点进行权衡。当训练数据质量较高、噪声较少且决策边界清晰时,可以选择较大的C值,以更好地捕捉数据的精细结构。当数据存在明显噪声或决策边界模糊时,选择较小的C值能够获得更好的泛化性能,确保模型在实际应用中的可靠性。知识准备—支持向量机【例8-2】在线性不可分数据上对比不同C值对SVM分类结果的影响。8.2.1支持向量机的概念—案例知识准备—支持向量机运行上述代码,将输出图8-6所示的结果。8.2.1支持向量机的概念—案例图8-6不同C值对SVM决策边界的影响【例8-2】在线性不可分数据上对比不同C值对SVM分类结果的影响。知识准备—支持向量机8.2.2支持向量机的核函数线性不可分的数据集,即无法通过一个线性超平面将不同类别的样本完美地分开。当两类样本呈现出复杂的非线性分布时,需要借助核函数来处理非线性分类问题。图8-7核函数示意图SVM中核函数的基本思想是通过非线性映射,将原始空间中的数据点映射到更高维度的特征空间,使得数据点在这个新空间中变得线性可分。以图8-7中的数据点为例,在原始的二维平面中,无法用一条直线将这些点完美分开。知识准备—支持向量机8.2.2支持向量机的核函数SVM中核函数的巧妙之处在于,它可以避免显式的高维映射计算,而是直接在原始空间中计算样本在高维空间中的内积,大大降低了计算复杂度。这一技巧被称为“核技巧”,其核心优势在于有效规避了“维度灾难”问题。SVM中常用的核函数主要有以下几种类型。线性核:最简单的核函数,形式为,适用于线性可分的情况。多项式核:通过多项式变换将数据映射到高维空间,形式为。径向基函数(RadialBasisFunction,RBF)核:也称为高斯核,是最常用的核函数,形式为。在这些核函数中,RBF核最为灵活和常用,它能够将数据隐式地映射到无限维空间,具有很强的表达能力。RBF核通过调节参数γ来控制单个训练样本的影响范围。对于中草药分类项目,由于不同中草药叶片的特征可能呈现出复杂的非线性关系,RBF核通常是较合适的选择。知识准备—支持向量机【例8-3】使用RBF核函数SVM对线性不可分数据进行分类。8.2.2支持向量机的核函数—案例知识准备—支持向量机运行上述代码,将得到图8-8所示的结果。8.2.2支持向量机的核函数—案例图8-8不同γ值对RBF核函数SVM决策边界的影响【例8-3】使用RBF核函数SVM对线性不可分数据进行分类。知识准备—分类模型评价指标分类模型常用的评价指标包括准确率、精确率、召回率等,这些指标可以从不同维度评估模型的性能。此外,混淆矩阵作为一种直观的工具,能够清晰展示模型在各个类别上的预测结果分布。在二分类任务中,通常将标签为1的样本称为正例,标签为0的样本称为负例。根据样本的真实标签与分类模型的预测结果,可以把样本分为以下4种类型。真正例(TruePositive,TP):表示被正确地预测为正例的样本数量,即样本真实标签为1,预测标签也为1。假正例(FalsePositive,FP):表示被错误地预测为正例的样本数量,即样本真实标签为0,但预测标签为1。假负例(FalseNegative,FN):表示被错误地预测为负例的样本数量,即样本真实标签为1,但预测标签为0。真负例(TrueNegative,TN):表示被正确地预测为负例的样本数量,即样本真实标签为0,预测标签也为0。知识准备—分类模型评价指标将TP、FP、FN、TN等数值组织为一个2×2的矩阵,就会得到图8-9所示的二分类混淆矩阵。通过该矩阵,可以直观地统计各类别样本被正确分类和错误分类的数量,进而方便地计算出准确率、精确率和召回率等各种评价指标。图8-9二分类混淆矩阵知识准备—分类模型评价指标准确率(accuracy)是最常见的分类模型评价指标之一,它衡量了被正确分类的样本所占的比例,即预测正确样本占总样本的比例。其计算公式如下:accuracy=(TP+TN)/(TP+TN+FP+FN)精确率(precision)和召回率(recall)基于模型对正例的预测结果来衡量其性能。精确率衡量的是在所有被预测为正例的样本中,真正例的比例,它关注的是预测结果的“准确性”。其计算公式如下:precision=TP/(TP+FP)召回率衡量的是在所有真正为正例的样本中,被模型正确预测出来的比例,它关注的是模型对正例的“覆盖能力”。其计算公式如下:recall=TP/(TP+FN)精确率和召回率通常存在此消彼长的关系。提高精确率可能会降低召回率,反之,提高召回率可能会降低精确率。在实际分类问题中,通过调整模型的预测阈值来平衡二者。知识准备—分类模型评价指标【例8-4】根据给定的真实标签与模型预测标签,绘制二分类混淆矩阵,并计算各性能评价指标。假设真实标签为[1,1,1,1,0,1,0,1,1,0],预测结果为[1,0,0,1,0,1,0,1,0,1]。知识准备—分类模型评价指标【例8-4】根据给定的真实标签与模型预测标签,绘制二分类混淆矩阵,并计算各性能评价指标。假设真实标签为[1,1,1,1,0,1,0,1,1,0],预测结果为[1,0,0,1,0,1,0,1,0,1]。运行本例代码,将输出下面的结果,并展示图8-10所示的图形。图8-10二分类混淆矩阵可视化结果PART03项目实施项目实施项目任务输入植物叶片图像,识别常见中草药植物。任务实现本项目将按照机器学习的一般流程使用SVM实现中草药图像的自动分类。整个过程包括数据集准备与预处理、特征提取、模型训练与评估、绘制混淆矩阵以及图像的分类与预测5个核心环节。为保持代码的模块化和可维护性,将针对每个步骤编写独立的函数或类,包括图像数据的加载与预处理函数、特征提取函数、模型训练与评估函数、混淆矩阵绘制函数、预测功能类。此外,还将设计专门的可视化函数用于展示分类结果和模型性能,最终通过主程序将这些模块有机整合,形成一个完整的中草药图像分类系统。这种模块化的设计思路不仅便于对代码进行调试和优化,还有利于后续功能的扩展。程序使用OpenCV结合os与glob模块实现图像数据的读取,使用Scikit-learn库实现数据的预处理、数据集分割、SVM模型构建、训练与测试评估,使用skimage与NumPy库提取图像特征。项目实施步骤1:数据集准备与预处理load_dataset()函数用于从指定的目录下读取中草药图像数据,在将图像缩放到统一的大小后进行随机旋转与随机光照变化等数据增强处理。函数最终返回以NumPy数组格式存储的图像数据与标签。具体代码如下:项目实施步骤2:特征提取使用extract_features()函数遍历图像数组中的各幅图像,分别提取HSV直方图、LBP纹理特征和Hu矩形状特征。最后,返回由这些特征拼合成的特征矩阵。具体代码如下:项目实施步骤3:模型训练与评估定义train_and_evaluate()函数,首先对特征进行标准化处理,然后使用PCA进行降维。接着,将特征划分为训练集与测试集。进而构建RBF核函数SVM,并通过交叉验证搜索最优的惩罚系数C与核函数参数γ。最后,在测试集上评估模型的性能。具体代码如下:项目实施步骤4:绘制混淆矩阵plot_confusion_matrix()函数用于接收混淆矩阵与数据集中样本的类别数,并将其进行可视化展示。具体代码如下:项目实施步骤5:图像的分类与预测HerbClassifier类中包含初始化函数、predict()函数和visualize_prediction()函数。初始化时加载训练好的模型及预处理组件;预测时对单幅图像进行预处理和特征提取,并给出类别预测结果与置信度;可视化函数用于展示图像及其在各个类别上的预测概率。具体代码如下:项目实施按顺序组织上述步骤中的函数与类,并编写主程序调用,即可完成整个中草药图像分类项目的训练与预测流程。运行本项目的完整代码,将输出如下结果,并展示图8-11所示的图形。

图8-11中草药识别的可视化结果PART04项目拓展项目拓展从传统方法到深度学习:中草药识别的性能跃升使用SVM进行中草药图像分类代表了传统机器学习算法的经典范式,但存在固有局限性:首先,人工设计的特征往往依赖于专家的先验知识,难以全面捕捉图像中的细微判别信息;其次,这些特征对图像的旋转与缩放、光线变化及复杂背景干扰等的鲁棒性较差,导致模型在真实复杂场景下的泛化能力受限。深度学习模型可以直接从原始像素数据中自动学习由低层到高层的分级特征表示,摆脱了对人工设计特征的依赖。这种变革具体体现在识别

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论