分类

本章说明了如何在训练和推理阶段使用基于深度学习的分类。

基于深度学习的分类是一种方法,其中图像获得一组分配的置信度值。这些置信度值指示图像属于每个区别类别的可能性。因此,如果仅考虑最高预测,则分类意味着将给定类别集中的特定类别分配给图像。下面的模式对此进行了说明。

orange:0.03apple:0.85lemon:0.12

一个可能的分类示例,其中网络区分三个类别。输入图像获得为三个不同类别中的每个类别分配的置信度值:“苹果” 0.85,“柠檬” 0.03和“橙色” 0.12。最高预测告诉我们,该图像被识别为“苹果”。

为了执行您的特定任务,从而将数据分类为您要区分的类,必须对分类器进行相应的训练。在HALCON中,我们使用一种称为转移学习的技术(另请参阅“深度学习”一章)。因此,我们提供了经过预训练的网络,这些网络代表了已针对大量带标签图像数据进行训练的分类器。这些分类器已经过培训和测试,可以很好地完成工业图像分类任务。这些分类器之一已经接受了一般分类的培训,现在可以针对您的特定任务进行重新训练。为此,分类器需要知道,要区分哪些类以及此类示例的外观。这由您的数据集表示,即具有相应地面真相标签的图像。有关数据要求的更多信息,请参见“分类数据”部分。

有关应用深度学习分类的特定系统要求,请参阅HALCON“Installation Guide”。

操作员工作流程

请查看HDevelop示例classify_fruit_deep_learning.hdev,以获取简短简要的概述以及classify_pill_defects_deep_learning.hdev更复杂的工作流程(均可在参考资料中找到examples/hdevelop/Deep-Learning/Classification/)。它们为如何将不同的部分一起使用提供了很好的指导。准备网络和数据

read_dl_classifier_data_set首先,必须使用操作员读取预训练的网络

在使用保存了自己的训练过的网络之后,也可以使用该运算符。write_dl_classifier

要读取数据以进行深度学习分类训练,请执行以下步骤

可用。使用此过程,您可以获取图像文件路径及其相应标签(地面真相标签)的列表以及至少列出的图像所属的唯一类的列表。

网络将对图像施加一些要求,例如图像尺寸和灰度值范围。默认值在中列出。这些是对网络进行预训练的值。网络体系结构允许使用不同的图像尺寸,可以使用来设置图像尺寸,但是根据网络的不同,可能需要进行重新培训。实际设置的值可以用read_dl_classifierset_dl_classifier_param

该过程preprocess_dl_classifier_images为如何实施这样的预处理阶段提供了很好的指导。我们建议在开始分类器训练之前对用于训练的所有图像进行预处理和存储,因为这样可以大大加快训练速度。

接下来,我们建议将数据集分为三个不同的数据集,用于训练,验证和测试,请参阅“深度学习”一章中的“数据”部分。这可以使用以下步骤来实现

您需要指定您要与分类器区分开的(在使用之前确定)。为此,操作员'classes'read_dl_classifier_data_set

可用。

该运算符还可用于设置超参数,这对于训练很重要,例如和。有关详细说明,请参阅“深度学习”一章和的文档。'batch_size''learning_rate'set_dl_classifier_param

培训网络并评估培训进度

建立网络并准备好数据后,就可以为您的特定任务训练分类器了。plot_dl_classifier_training_progress

select_percentage_dl_classifier_data,

apply_dl_classifier_batchwise和

evaluate_dl_classifier设置用于与操作员一起训练的超参数

有关可能的超参数的概述,请参见的文档。其他解释可以在“深度学习”一章中找到。set_dl_classifier_param

训练分类器的操作员

可用。中间训练结果存储在输出句柄中。

顾名思义,此运算符可一次处理一批数据(图像和地面真相标签)。我们遍历训练数据,以便依次使用训练分类器。您可以多次重复此过程,并反复进行许多次训练,直到对训练结果感到满意为止。train_dl_classifier_batchtrain_dl_classifier_batch

要知道分类器学习新任务的程度,程序

提供。有了它,您可以绘制出训练期间的分类错误。要计算可视化所需的输入,请执行以下步骤

可用。使用它们,您可以减少用于此分类验证的图像数量,将分类器应用于所选数据,并计算例如top-1错误。看一下HDevelop示例classify_pill_defects_deep_learning.hdev,看看如何将这些过程一起使用。

应用和评估最终分类器

您的分类器已针对您的任务进行了培训,随时可以应用。但是在实际环境中部署之前,您应该根据测试数据评估分类器的性能。gen_confusion_matrix

gen_interactive_confusion_matrix。

get_dl_classifier_image_results

dev_display_dl_classifier_heatmap,要将分类器应用于包含任意数量图像的集合,请使用运算符

该运算符的运行时间取决于给定映像集所需的批处理数量。

结果返回到句柄中。

要检索预测的类别和置信度,请使用运算符

现在该评估这些结果了。分类器的性能可以在训练期间进行评估evaluate_dl_classifier。

为了可视化和分析分类器质量,混淆矩阵是一个有用的工具(请参阅下面的说明)。为此,您可以使用以下步骤

交互式过程使您可以选择特定类别的示例,但不适用于导出的代码。

此外,将分类器应用于一组数据后,您可以使用以下步骤

根据某些标准(例如错误分类的图像)显示和返回图像。然后,您可能需要将此输入用于过程

显示输入图像的热图,您可以使用该热图分析图像的哪些区域与分类结果相关。

推理阶段

对分类器进行训练并对其性能感到满意时,可以使用它对新图像进行分类。为此,您只需根据网络要求对图像进行预处理(即,与用于训练分类器的数据集的方法相同),然后使用

分类数据

我们区分用于训练的数据和用于推理的数据。后一种由裸露的图像组成。但是对于前一种,您已经知道图像属于哪一类,并在相应的标签上提供此信息。

训练数据用于训练您的特定任务的分类器。借助这些数据,分类器可以了解要区分哪些类以及它们的代表如何。在分类中,图像被整体分类。因此,训练数据由图像及其地面真相标签组成,因此您说该图像属于该类。请注意,图像应尽可能代表您的任务。有多种可能的方式,如何存储和检索地面真相标签。该过程read_dl_classifier_data_set支持图像的地面真理标签的以下来源:包含图像的最后一个文件夹名称

文件名。

为了训练分类器,我们使用了一种称为转移学习的技术(请参阅“深度学习”一章)。为此,您需要较少的资源,但仍然需要一组合适的数据,每类通常大约数百到数千。虽然通常在较大的数据集上进行训练时网络应该更可靠,但是训练所需的数据量还取决于任务的复杂性。您还希望有足够的训练数据将其分为三个子集,最好是独立且分布均匀的三个子集,请参阅“深度学习”一章中的“数据”部分。

无论何种应用,网络都会对图像提出有关图像尺寸,灰度值范围和类型的要求。具体值取决于网络本身,可以使用查询。您可以找到有关如何通过该过程实现这样的预处理阶段的指南。get_dl_classifier_parampreprocess_dl_classifier_images

解释分类结果

在对图像进行分类时,我们获得了一组置信度值,告诉我们图像对每个类别的亲和力。也可以计算以下值。混淆矩阵,精度,召回率和F分数

在分类中,将整个图像分类。结果,混淆矩阵的实例是图像。有关混淆矩阵的说明,请参阅“深度学习”一章。

您可以生成的程序援助混淆矩阵gen_confusion_matrix和gen_interactive_confusion_matrix。因此,交互式过程使您可以选择特定类别的示例,但不适用于导出的代码。

从这样的混淆矩阵中,您可以得出各种值。精度是所有正确的预测阳性值与所有预测的阳性率(正确和错误的阳性值)的比例。因此,它衡量了多少积极预测确实属于所选类别。

召回率也称为“真实阳性率”,是所有正确的预测阳性率与所有真实阳性率的比例。因此,它衡量了正确地预测了属于所选类别的多少个样本为阳性。

召回率高但精度低的分类器会找到大多数否定词(因此属于类成员),但这样做的代价是还要将许多否定词归类为该类成员。相反,具有高精度但召回率低的分类器恰恰相反,仅将少量样本分类为阳性,但是大多数预测是正确的。具有高精度和高查全率的理想分类器将以高精度将许多样本分类为阳性。

为了用单个数字表示,我们计算F1分数,即精度和召回率的谐波平均值。因此,它是分类器准确性的度量。

对于深度学习中显示的混淆矩阵的示例,对于'apple'类,我们得到的值精度为:1.00(= 68 /(68 + 0 + 0)),回忆:0.74(= 68 /(68 + 21 + 3) ))和F1-分数:0.85(= 2 *(1.00 * 0.74)/(1.00 + 0.74))。使用基于深度学习的分类器来推断一组图像的类从属关系。

#转载请注明出处 www.skcircle.com 《少有人走的路》勇哥的工业自动化技术网站。如果需要本贴图片源码等资源,请向勇哥索取。

扫码加本站公众号

收藏 | 0点赞 | 0打赏作者

halcon 深度学习标注_halcon深度学习: 分类相关推荐

  1. halcon 深度学习标注_HALCON深度学习工具0.4 早鸟版发布了

    原标题:HALCON深度学习工具0.4 早鸟版发布了 HALOCN深度学习工具在整个深度学习过程中扮演着重要的作用,而且在将来将扮演更重要的辅助作用,大大加快深度学习的开发流程,目前发布版本工具的主要 ...

  2. halcon 深度学习标注_Halcon deep learning之目标检测笔记(一)

    设置输入输出的路径 输入路径有两个,一个是图像路径HalconImageDir,一个是Json文件路径PillBagJsonFile.这两个参数用于后续在图像路径中读取coco文件. 输出路径首先定义 ...

  3. 深度学习标注工具2021-07-13

    深度学习标注工具   深度学习前期需要做 Label,说实话,其实深度学习大多数就是在做 label, 本科 RS 其实做监督分类也是在做 label,只不过像素级别的 label. 常见的标注的工具 ...

  4. (Halcon深度学习)安装深度学习工具(DLT)

    0.软件说明: 标记训练数据是迈向任何深度学习应用的第一个关键步骤.当涉及到应用程序的性能.准确性和健壮性时,这些标记数据的质量起着重要作用. 借助DLT,您可以通过直观的用户界面轻松标记数据,而无需 ...

  5. 基于深度学习的弹道目标智能分类

    关注微信公众号:人工智能技术与咨询.了解更多资讯! 来源:系统工程与电子技术,作者李江等 摘要 针对弹道目标微动分类前需平动补偿及典型雷达散射截面积(radar cross-section, RCS) ...

  6. 机器学习_深度学习毕设题目汇总——文本分类

    下面是该类的一些题目:| 题目 | |–| |基于主题特征的多标签文本分类方法研究| |融合全局和局部特征的文本分类方法研究| |BiGRU-CapsNet文本分类模型研究| |基于Attentio ...

  7. 【深度学习】U-Net 网络分割多分类医学图像解析

    [深度学习]U-Net 网络分割多分类医学图像解析 文章目录 [深度学习]U-Net 网络分割多分类医学图像解析 1 U-Net 多分类 2 Keras 利用Unet进行多类分割2.1 代码实现2.2 ...

  8. bert使用做文本分类_使用BERT进行深度学习的多类文本分类

    bert使用做文本分类 Most of the researchers submit their research papers to academic conference because its ...

  9. 花书+吴恩达深度学习(四)多分类 softmax

    目录 0. 前言 1. 二分类 sigmoid 2. 多分类 softmax 3. 多分类 softmax 梯度下降推导 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书 ...

  10. 基于3D CNN的深度学习卫星图像土地覆盖分类

    本文帮助读者更好地理解使用3D-CNN对卫星数据进行土地覆盖分类的不同深度学习方法. 遥感概论 土地覆盖分类的深度学习 Sundarbans 国家公园卫星图像 CNN在土地覆盖分类中的实现 结论 参考 ...

最新文章

  1. 64 DLL动态链接库换一台电脑就不能加载
  2. [C#参考]锁定lock
  3. Jackson序列化和反序列化
  4. 有关GNU GCC的基本内容整理
  5. 迁移pg_塑料包装袋中添加剂迁移到食品和药品中危害健康
  6. 开发人员提升自己的四种方式
  7. service数据保存_精通IPFS:IPFS 保存内容之下篇
  8. 深圳40K都招不到嵌入式开发人员?
  9. 收藏+下载!Flink 社区 2021 最新最全学习渠道汇总
  10. Chapter3:Gradle依赖管理
  11. Skyline三维地理信息系统软件平台
  12. CentOS-Linux操作系统镜像文件下载
  13. threejs 特效,自定义发光墙体,贴图动画版本。发光围栏。
  14. 太平洋网站的css样式
  15. 鸿蒙系统是什么?有哪些优势?
  16. 电脑硬盘怎样合并分区?
  17. 弱电布线施工规范与工艺(适用于强电与弱电改造)
  18. nmon和nmon analyser的下载和使用
  19. 一个适合在校生宝藏编程学习网站
  20. 代码生成有趣的python精短程序 代码生成

热门文章

  1. python端口扫描工具_基于Python的简易端口扫描器
  2. Cobalt Strike神器使用教程
  3. python人口普查数据数据分析_7、Python 数据分析-Pandas人口分析案例
  4. 创建Tapestry5 工作环境
  5. 详解站长之家之站长工具四大新功能
  6. Web前端可视化绘图软件编辑器-汇总
  7. 本地Markdown编辑器推荐
  8. mysql数据库安装教程(超级超级详细)
  9. 轻量java框架_smart-framework
  10. 二叉树各种遍历算法 Java 实现总结