基于深度学习的烟草成熟度鉴定及算法优化
深度学习是机器学习的一个子领域,其核心是通过多层非线性神经网络模型,从数据中自动学习多层次的特征表示。相较于传统机器学习依赖人工设计特征,深度学习通过端到端的学习方式,能够直接从图像、文本等的原始数据中提取抽象的高层语义信息,在处理复杂如目标检测、自然语言处理等非线性问题中展现出显著优势。
1.1算法原理及其分类
采用的算法分类:YOLOv10是由清华大学研究团队于2024年推出的算法,作为YOLO系列的较新一代算法,在继承前代模型优势的基础上,通过多项技术创新显著提升了检测性能的平衡性。该算法延续了CSPDarkNet53主干网络与PANet颈部网络的基础架构,同时创新性地引入空间通道解耦下采样模块(SCDown),优化了特征提取过程中的信息处理流程,并采用基于排序的块分配策略以增强计算资源利用效率。在模型训练与推理机制方面,YOLOv10突破性地采用无需非极大抑制(NMS)的一致双分配策略,有效解决了传统目标检测算法因后处理过滤冗余预测框而产生的计算延迟问题,显著提升了实时检测效率。
YOLOv10是一种先进的实时目标检测模型,是系列算法的最新版本 。YOLO系列算法以其高效、准确的特性在目标检测领域取得了显著的成就,其核心思想是将目标检测任务视为一个端到端的回归问题,通过单个神经网络的前向传播即可完成图像中目标的定位和分类[3] 。
算法基本原理:使用训练集对YOLO模型进行训练,训练过程中YOLO会使用卷积算法进行映射,具体表现为,数据标注后把训练数据分成N份,每一份创造一个1*1*8的矩阵,矩阵[Pc,Bx,By,Bh,Bw,C1,C2,C3],整个训练集中,每一个训练数据被分为8*√N*√N的三维矩阵,yolo算法会对标签归一化,按比例转化为新的矩阵,此项量为最优值,权重Pc永远唯一,此时yolo算法使用卷积层处理把图片对产生的三维矩阵做一次卷积运算,映射后得到所需要的最好数值best.pt。 监控损失函数和准确率,检测中使用非极大值抑制,规定权重阈值,若存在多个超出阈值的矩阵则比较交并比,若大于0.5,则抑制权重较低的矩阵,以此算法防止同目标位多矩阵,多目标同矩阵的情况。[4]
公式如下:

Conf(Object)是对应于单元格的候选框的置信度;IOUpred truth 是交集/并集,即预测框的交集面积与实际帧的交集面积与并集面积之比,用于评估两个不同边界框之间的重叠。选择YOLOv10作为本模型的核心算法是基于以下优势:
速度与实时性能:YOLO系列算法以速度著称,YOLOv10在继承这一优点的基础上,通过架构优化进一步提升了处理速度,能够满足对大量烟叶进行快速分级的需求 。
高检测精度:YOLO系列在目标检测任务中表现出较高的精度,YOLOv10通过引入新的技术,例如一致性双重分配等,进一步提升了检测精度 。
更好的泛化能力:YOLOv10作为最新的版本,通常具备更强的泛化能力,能够适应不同场景和数据变化 。
单阶段检测:YOLO采用单阶段检测方法,将目标定位和分类同时进行,提高了效率并降低了计算复杂度 。
无NMS训练:YOLOv10引入了无非极大值抑制的训练方法,消除了后处理步骤,进一步降低了推理延迟和计算开销,尤其适用于边缘设备的部署 。
轻量级分类头:YOLOv10采用了轻量级的分类头,通过使用深度可分离卷积等技术,减少了计算冗余,提高了运行效率,且对精度影响较小 。
一致性双重分配:这种训练策略结合了一对多和一对一的标签分配方法,为模型训练提供了更丰富的监督信号,并实现了高效的端到端推理,提升了模型性能 。
空间通道解耦下采样:YOLOv10采用空间通道解耦下采样技术,在进行特征提取时,能够更有效地保留图像细节并降低计算成本 。
排序引导的块设计和大型卷积核:这些设计能够增强模型捕获复杂特征的能力,同时控制计算开销 。
部分自注意力机制:YOLOv10引入了高效的部分自注意力机制,能够在较低的计算成本下学习图像的全局表示,这对于区分视觉上相似但整体特征略有不同的成熟度等级非常有利。[5]
1.2Pytorch框架
PyTorch是一种广泛应用于人工智能领域的开源计算框架,其设计理念强调灵活性与动态性,为研究人员提供了高效构建与调试模型的工具环境。该框架的核心特征在于其动态计算图机制,允许用户在模型训练过程中实时调整网络结构,这种即时反馈特性尤其适合需要快速迭代的实验场景,例如在探索新型神经网络架构或调试复杂模型时,开发者能够逐行执行代码并即时观察中间变量变化,大幅缩短开发周期。
在技术实现层面,PyTorch通过张量数据结构实现多维数组的高效运算,支持CUDA加速计算以处理大规模数据。其自动微分系统通过追踪张量操作自动构建计算图,实现反向传播过程中梯度的自动计算,这种机制既简化了代码编写复杂度,又保留了底层数学运算的透明度。框架内建的神经网络模块采用分层封装设计,将常见的网络层、损失函数及优化算法模块化,使得用户既能通过高层API快速搭建常规模型,也能深入底层自定义特殊操作。
对于分布式计算的支持体现在灵活的数据并行策略中,开发者可通过简单的代码调整实现CUDA训练加速。同时,PyTorch的生态系统集成了丰富的扩展库,针对计算机视觉的TorchVision、自然语言处理的Transformers库等,这些工具链的协同作用显著降低了从理论研究到工程落地的技术门槛。其活跃的开源社区持续贡献预训练模型和前沿算法实现,使得框架始终保持与学术研究前沿的同步更新。这种技术特性与生态优势的结合,使其成为当前深度学习领域主流工具之一。
2.2 模型评估相关理论
在模型性能评估阶段,验证集作为独立于训练过程的数据子集,其核心功能是客观反映模型对未知样本的泛化能力。这一过程通过构建分类结果的统计量化指标,揭示模型在真实场景中的实际表现。针对分类任务,评估体系通常围绕混淆矩阵展开——该矩阵将预测结果与真实标签交叉划分观察误判率,形成后续指标计算的底层逻辑。其次需要观察其他各项指标,验证模型性能。[6]
2.2.1模型评估的各项指标
混淆矩阵(ConfusionMatrix):其是一种用于评估分类模型性能的表格形式。它以实际类别(真实值)和模型预测类别为基础,将样本分类结果进行统计和汇总。
混淆矩阵归一化(Confusion Matrix Normal):对混淆矩阵做了一个归一化处理,对混淆矩阵进行归一化可以将每个单元格的值除以该类别实际样本数,从而得到表示分类准确率的百分比。这种标准化使得我们可以直观地比较类别间的分类准确率,并识别出模型在哪些类别上表现较好或较差。
置信度(Confidence): 在模型的识别过程中会有一个概率,就是模型判定一个物体并不是百分百判定它是属于某一个分类,它会给予它以个概率,Confidence就是我们设置一个阈值,如果超过这个概率那么就确定为某一分类。
平均精确度(Average Precision, AP):用于计算不同类别的平均精确度。

平均精确度(Mean Average Precision, mAP):多类别问题的平均精确度。

准确率(Accuracy):衡量模型整体预测正确的比例,计算为正确预测样本数占总样本数的比值。其数学表达为:

该指标适用于类别均衡的场景,但当数据分布高度偏斜时(如正负样本比例为1:10),准确率可能因多数类主导而掩盖模型对少数类的识别缺陷。
召回率(Recall):聚焦于模型对实际正类样本的覆盖能力,定义为正确识别的正类样本占全部真实正类样本的比例。其数学表达为:

该指标在漏检代价高昂的领域具有核心价值,高召回率意味着较少的关键样本遗漏。
精确率(Precision)则关注预测为正类的样本中真实正类的占比,反映模型预测结果的可靠性。其数学表达为:

在烟草成熟度分析这类误报成本较高的应用中,精确率的优化优先级常高于召回率。
F1值(F1-Score):精确率和召回率二者间的权衡关系通过F1分数调和,其定义为精确率与召回率的几何平均。其数学表达为:

F1分数综合考量了模型在正类识别上的质量与覆盖度,尤其适用于类别不平衡问题的评估。评估过程中需确保验证集的数据分布与真实应用场景一致,避免因采样偏差导致指标虚高。
2.3模型优化
统计2.2.1模型评估的各项指标后,对于不达标的模型进行优化,模型优化需要从数据、模型结构、训练策略、后处理、部署等多个方面入手,结合具体任务需求进行有针对性的调整。同时,需要不断实验和评估,找到最适合当前任务的优化组合,深度学习模型的训练和优化是迭代的过程,需要不断调整模型的参数和超参数来提高模型的性能。[7]
2.3.1数据增强与削弱
使用数据增强技术可以增加数据集的样本数量和多样性,从而提高模型的泛化能力。对于图像训练集的图像增强,采用旋转90°,翻转,调整饱和度,部分剪切,批量提高饱和度,调整亮度,调整模糊度,调整噪声的方法生成额外的图片,增强数据集的数量,提升整体模型的泛化能力,如果模型针对同一类别识别性能较好,对其他类较差,则采用随机剔除的方法可以可以显著提升模型效能。
2.3.2关键训练模型参数
epochs:模型在整个训练数据集上完整遍历的次数。作用:每个epoch包含一次前向传播、损失计算和反向传播,更多的epochs通常能让模型学习更充分,但可能过拟合。值过小,模型可能未充分收敛,导致欠拟合。目标检测任务通常需要50~200个epochs,但此次训练数据集为12G,在高精度模型yolov10m下大约为100个epochs。
batch_size:单次输入模型的样本数量。显存关系表达如下:

单张640x640图像显存占用1.2GB,batch_size=8需约9.6GB显存。调整如下,本毕业设计使用RTX4060Ti16G显存,显存充足:增大至batch_size=12以稳定梯度,学习率联动:增大batch_size时需按比例提高学习率(lr0)。
patience:早停机制的耐心值,单位为epochs。作用:若验证集指标(如mAP)在连续patience个epoch内未提升,则提前终止训练,通常设为总epochs的20%~30%
lr0:学习率是深度学习训练中最核心的超参数之一,控制模型参数在每次梯度更新时的调整步长。学习率的作用控制收敛速度过大(如lr0=1.0):参数更新幅度大,可能跳过最优解(损失震荡或发散)。过小(如lr0=1e-5):收敛缓慢,训练时间显著增加影响模型性能合适的学习率帮助模型跳出局部极小值,找到更优解。与batch_size的联动线性缩放规则:当batch_size扩大k倍时,学习率应同步增大k倍以保持梯度方差稳定,数学表达如下

3、模型训练与验证
3.1模型目标
本模型的主要目标是实现对烤烟烟叶成熟度的精确分类,将其划分为成熟、尚熟、欠熟和假熟四个档次。模型将重点解决人工分级中成熟、尚熟、欠熟和假熟烟叶难以区分的问题,旨在通过计算机视觉技术实现对这两种相近成熟度等级的准确辨别。此外,模型的另一个重要目标是降低人工分级所需的高昂劳动成本,通过自动化分级过程提高效率和生产力。
3.2模型训练
3.2.1模型训练前瞻
我国现行烤烟国家标准中,将烟叶成熟度划分为完熟、成熟、尚熟和假熟、欠熟五个档次。传统的人工分级主要依赖分级员的感官经验,通过观察烟叶的颜色、质地、形状等外观特征进行判断 。然而,这种方法具有固有的主观性,易受分级员的情绪、视力、工作环境光照条件以及个人经验等因素的影响,缺乏客观性和统一的标准 。尤其是在区分成熟、尚熟、欠熟、假熟这四个成熟度等级时,由于其视觉特征的细微差别,人工判断往往难以保持一致性和准确性 。研究指出,成熟叶呈现出更明显的黄色或者略微黄色,而略微尚熟的叶子则绿色和黄色强度相近 。这种细微的颜色差异使得人工区分极具挑战性。此外,面对大量烟叶时,人工分级效率低下且耗时,容易产生疲劳和错误 。不准确的成熟度评估可能导致过熟或欠熟的烟叶被采摘,从而降低产量、损害质量并增加烘烤难度。本模型的主要目标是实现对烤烟烟叶成熟度的精确分类,将其划分为成熟、尚熟、欠熟、假熟这四个档次。模型将重点解决人工分级中成熟、尚熟、欠熟、假熟烟叶难以区分的问题,旨在通过计算机视觉技术实现对这四种等级两者之间成熟度等级的准确辨别。此外,模型的另一个重要目标是降低人工分级所需的高昂劳动成本,通过自动化分级过程提高效率和生产力。
本模型旨在将烤烟烟叶的成熟度分为四个明确的档次:
成熟:叶片主要呈现黄绿色,绿色减少,黄色增多,整体呈现黄色至半透明白色,大部分茸毛已脱落,叶面可能出现黄色斑点。叶尖和边缘略微泛白白色,并显示出轻微的萎蔫、尖锐和焦化,叶尖向下卷曲 。
尚熟:叶片颜色从浅绿色过渡到黄绿色。部分茸毛脱落,叶尖开始轻微向下弯曲。
欠熟:叶片呈现绿色至浅绿色,开始出现黄化的迹象。主脉完全为绿色,茸毛仍然完整。
假熟:这一类别可能指叶片呈现出类似成熟的黄色外观,但并非由于自然成熟所致,可能是由病害、营养不良或过早烘烤等因素引起。对于新鲜烟叶而言,其具体的视觉特征可能需要进一步研究确定 。
3.2.2实验环境配置与模型选择
为了进行本次研究中的目标检测任务,我采用了先进的 YOLOv10 模型框架。实验环境的搭建基于 Anaconda 平台,以确保依赖库的隔离与管理。具体步骤如下:首先,创建了一个名为 yolov10 的独立 Conda 环境,并指定 Python 版本为 3.9 (conda create -n yolov10 python=3.9)。随后,激活此环境 (conda activate yolov10)。
为了利用 GPU 加速计算,我们安装了支持 NVIDIA CUDA 的 PyTorch 深度学习框架。实验所使用的硬件平台为配备 16GB显存的 NVIDIA GeForce RTX 4060 Ti 显卡,该配置为模型训练和推理提供了必要的计算支持。
YOLOv10 的源代码直接从其官方 GitHub 仓库获取,以保证代码的权威性和最新性。按照官方指南,我们通过 pip install -r requirements.txt 命令安装了所有必需的依赖库,并通过 pip install -e . 命令将 YOLOv10 框架本身安装到环境中,以便于开发和调试。
在模型选择阶段,我们对 YOLOv10 提供的不同规模的预训练模型(包括 YOLOv10-N, -S, -M, -B, -L, -X)进行了评估。评估指标主要关注模型的参数量 (#Params)、计算复杂度 (FLOPs)、在标准数据集上的验证精度 (APval),以及在目标硬件上的推理延迟 (Latency)。
上述中所有指令均来源于官方文档,再次参考官方文档可得知以下表格,根据表格选择需要的模型。
注:表格中的延迟数据来源于官方文档
表1
|
模型 |
测试尺寸 |
参量 |
FLOPs |
APval |
延迟 |
|
YOLOv10-N |
640 |
2.3M |
6.7G |
38.50% |
≈ 1.84ms |
|
YOLOv10-S |
640 |
7.2M |
21.6G |
46.30% |
≈ 2.49ms |
|
YOLOv10-M |
640 |
15.4M |
59.1G |
51.10% |
≈ 4.74ms |
|
YOLOv10-B |
640 |
19.1M |
92.0G |
52.50% |
≈ 5.74ms |
|
YOLOv10-L |
640 |
24.4M |
120.3G |
53.20% |
≈ 7.28ms |
|
YOLOv10-X |
640 |
29.5M |
160.4G |
54.40% |
≈ 10.70ms |
综合考虑模型的性能表现与现有硬件资源(NVIDIA GeForce RTX 4060 Ti 16GB),我最终选择了 YOLOv10-M 模型。该模型在保持较高检测精度(APval 达到 51.1%)的同时,其参数量(15.4M)和计算需求(59.1G FLOPs)相对适中,推理延迟(约 4.74ms)也处于可接受范围内,能够在我们的硬件平台上实现高效的运行,达到了精度与效率的良好平衡。
3.2.3数据的获取与预处理
成熟:X1L-X3L、X1F-X3F、C1L-C4L、C1F-C4F、B1L-B4L、B1F-B4F、B1R-B3R
尚熟:CX1K、B1K、X2VC3V、B2V、B3V、GY1
欠熟:CX2K、B2K、B3K、S1、S2、GY2
假熟:X4L、X4F
按照以上标准分类为成熟、尚熟、欠熟和假熟四个档次的数据文件。
其中,
成熟:7605,假熟:206,欠熟283,尚熟949。
使用标注工具进行标注,生成YOLO官方权重文件,格式为txt,训练集:验证集:测试集数据量为7:2:1,训练集数据如下。

图1 训练集

图2 训练集权重文件
数据增强策略
为了提升模型的泛化能力和对各种实际场景变化的鲁棒性,我采用了丰富的数据增强)策略。在训练过程中,对输入图像应用了多种在线变换,旨在模拟真实世界中可能遇到的图像变化,并有效扩充训练数据集的多样性。具体采用的增强方法包括:
几何变换: 随机旋转90度、随机水平/垂直翻转、随机部分图像剪切。
色彩变换: 随机调整图像的饱和度、亮度,以及对整个批次进行饱和度调整。
图像质量变换: 随机应用高斯模糊、添加随机噪声。
通过实施这些数据增强技术,不仅增加了训练样本的数量和多样性,还有助于模型学习到更本质、更鲁棒的特征表达,从而在未见过的测试数据上获得更好的性能表现。所有上述配置和策略被用于启动模型的训练流程。[8]
关键图像增强代码如下:
|
augmentation_args = { 'degrees': 90.0, # 随机旋转角度范围 (+/- 90度) 'fliplr': 0.5, # 水平翻转的概率 (0.5 表示 50% 概率翻转) 'flipud': 0.3, # 垂直翻转的概率 (根据需要调整或设为 0) 'hsv_s': 0.7, # 图像饱和度调整因子 (随机范围) 'hsv_v': 0.4, # 图像亮度调整因子 (随机范围) 'mosaic': 1.0, # 使用 Mosaic 数据增强的概率 (涉及裁剪、拼接) # Mosaic 自身包含了部分剪切的效果 'translate': 0.1, # 图像平移因子 (随机范围, 也有裁剪效果) 'scale': 0.5, # 图像缩放因子 (随机范围, 也有裁剪效果) 'copy_paste': 0.1, # Copy-Paste 增强的概率 (从其他图片复制对象粘贴,涉及裁剪) # 'mixup': 0.1, # MixUp 增强概率 (可选,图像混合) } |
3.2.3 模型训练与验证
在选定 YOLOv10-M 模型后,我们进行了详细的训练配置。模型结构采用了官方提供的 yolov10m.yaml 配置文件,其路径为 G:\AI\yolov10-main\ultralytics\cfg\models\v10\yolov10m.yaml。为了利用迁移学习的优势并加速模型收敛,训练过程基于官方发布的预训练权重 yolov10m.pt (路径: G:\AI\yolov10-main\yolov10m.pt) 进行初始化。
数据集的组织结构与路径信息通过 data.yaml 文件 (路径: G:\AI\yolov10-main\ultralytics\cfg\datasets\data.yaml) 进行定义。该配置文件指定了数据集的根目录为 G:\AI\yolov10-main\test,并分别定义了训练集、验证集和测试集的图像文件路径:
训练集图像 (train): G:\AI\yolov10-main\test\train\images
验证集图像 (val): G:\AI\yolov10-main\test\val\images
测试集图像 (test): G:\AI\yolov10-main\test\test\images
训练主要代码和参数如下:
|
model_yaml_path = r'G:\AI\yolov10-main\ultralytics\cfg\models\v10\yolov10m.yaml' # 虽然下面会用 .pt,但保留以供参考 data_yaml_path = r'G:\AI\yolov10-main\ultralytics\cfg\datasets\data.yaml' pretrained_weights = r'G:\AI\yolov10-main\yolov10m.pt' # 使用预训练权重启动 epochs = 100 # 训练的总轮数 (根据需要调整) batch_size = 16 # 每个批次的图像数量 (根据 GPU 显存调整,16GB ) img_size = 640 # 训练图像尺寸 device = 0 # 使用 GPU 0 (如果是 'cpu' 则使用 CPU) project_name = 'YOLOv10_Custom_Training' # 训练结果保存的项目文件夹名称 experiment_name = 'yolov10m_augmented_run1' # 本次训练运行的名称 (会在此项目下创建子文件夹) |
经过100轮验证,best.pt权重各类评估参数如下

图3 混淆矩阵(ConfusionMatrix)-采用分类数据算法与削弱前

图4 混淆矩阵归一化(Confusion Matrix Normal)- 采用分类数据算法与削弱前

图5 精确率-召回率曲线(Precision-Recall Curve)- 采用分类数据算法与削弱前

图6 精确率-置信度曲线(Precision-Confidence Curve)- 采用分类数据算法与削弱前

图7 F1分数-置信度曲线(F1-Confidence Curve)- 采用分类数据算法与削弱前

图8 召回率-置信度曲线(Recall-Confidence Curve)- 采用分类数据算法与削弱前
通过以上数据分析后,此模型对成熟类的烟叶已经有了相当高的识别能力,单对其他类烟叶仍然没有非常强大的识别能力,此模型已经可以针对成熟类烟叶进行区分,已经可以用于生产中对成熟和非成熟烟叶的区分。
如果要优化其他成熟度的鉴定能力,优化思路如下:
分类数据增强与削弱:根据以上评估,在数据集中7605个成熟类数据,把其中数据用随机取样的方法删除50%,代码如下
|
def delete_random_half_images(directory): image_extensions = ['*.jpg', '*.jpeg', '*.png', '*.gif', '*.bmp', '*.webp'] image_files = [] for ext in image_extensions: image_files.extend(glob(os.path.join(directory, ext))) if not image_files: print("未找到图片文件!") return # 随机选择50%的图片 num_to_delete = len(image_files) // 2 files_to_delete = random.sample(image_files, num_to_delete)
# 删除选中的文件 for file_path in files_to_delete: try: os.remove(file_path) print(f"已删除: {file_path}") except Exception as e: print(f"删除失败 {file_path}: {e}")
print(f"完成!共删除 {len(files_to_delete)} 张图片。") |
其他类数据用,水平翻转,垂直翻转,明暗度调整,旋转10°生成额外的数据。
|
def augment_images(input_dir, output_dir): # 支持的图片格式 image_extensions = ['*.jpg', '*.jpeg', '*.png', '*.gif', '*.bmp', '*.webp'] image_files = [] for ext in image_extensions: image_files.extend(glob(os.path.join(input_dir, ext)))
if not image_files: print("未找到图片文件!") return
# 创建输出目录 os.makedirs(output_dir, exist_ok=True)
for img_path in image_files: # 读取图片 img = cv2.imread(img_path) if img is None: continue
# 获取文件名(不含扩展名) base_name = os.path.splitext(os.path.basename(img_path))[0]
# 保存原始图片(可选) # cv2.imwrite(os.path.join(output_dir, f"{base_name}_original.jpg"), img)
# 1. 水平翻转 flipped_h = cv2.flip(img, 1) cv2.imwrite(os.path.join(output_dir, f"{base_name}_flip_h.jpg"), flipped_h)
# 2. 垂直翻转 flipped_v = cv2.flip(img, 0) cv2.imwrite(os.path.join(output_dir, f"{base_name}_flip_v.jpg"), flipped_v)
# 3. 明暗度调整(变暗和变亮) # 变暗(乘以 0.5) darker = np.clip(img * 0.5, 0, 255).astype(np.uint8) cv2.imwrite(os.path.join(output_dir, f"{base_name}_darker.jpg"), darker)
# 变亮(乘以 1.5) brighter = np.clip(img * 1.5, 0, 255).astype(np.uint8) cv2.imwrite(os.path.join(output_dir, f"{base_name}_brighter.jpg"), brighter)
# 4. 旋转 10° (h, w) = img.shape[:2] center = (w // 2, h // 2) M = cv2.getRotationMatrix2D(center, 10, 1.0) # 旋转 10°,不缩放 rotated = cv2.warpAffine(img, M, (w, h)) cv2.imwrite(os.path.join(output_dir, f"{base_name}_rot10.jpg"), rotated)
print(f"已增强: {base_name}") print(f"数据增强完成!输出目录: {output_dir}") |
4.结论
使用3.2.3的方法,在3.2.3的权重文件基础下进行训练,训练结束的后得到数据如下:

图10 混淆矩阵归一化(Confusion Matrix Normal)- 采用分类数据算法与削弱后

图11 精确率-召回率曲线(Precision-Recall Curve)- 采用分类数据算法与削弱后

图12 精确率-置信度曲线(Precision-Confidence Curve)- 采用分类数据算法与削弱后
图13 F1分数-置信度曲线(F1-Confidence Curve)- 采用分类数据算法与削弱后

图14 召回率-置信度曲线(Recall-Confidence Curve)- 采用分类数据算法与削弱后
模型各方面均衡且以达到较好的识别能力,证明分类数据增强与削弱可以显著提升模型的综合性能。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)