【halcon深度学习】create_dl_model_detection

news2024/9/24 23:28:51

基本介绍

create_dl_model_detection 不是一个封装的库函数,是一个算子。用于创建用于目标检测或实例分割任务的深度学习模型。

输入参数:

  1. Backbone (input_control): 指定用作背骨网络的深度学习分类器,充当模型的基础。用户可以选择不同的预训练分类器,如 AlexNet、Compact 等。

  2. NumClasses (input_control): 指定模型要区分的类别数目。

  3. DLModelDetectionParam (input_control): 一个字典,包含用于配置对象检测模型的各种参数。这些参数将影响模型的结构、训练方式等。

输出参数:

  1. DLModelHandle (output_control): 返回创建的深度学习模型的句柄。

描述:

  • 该操作符的主要目的是创建一个深度学习模型,该模型可用于目标检测或实例分割任务。

  • 用户需要通过参数 Backbone 指定用作背骨网络的深度学习分类器,以及通过 NumClasses 指定模型要区分的类别数。

  • 参数 DLModelDetectionParam 是一个字典,用户可以在其中设置各种用于配置对象检测模型的参数。这些参数包括锚点角度、锚点纵横比、Backbone 网络层级、图像维度、最大检测数等。

  • 用户还可以设置参数 instance_segmentation,以指定模型是否用于实例分割任务。

  • 对于参数 Backbone,用户可以选择不同的预训练分类器,每个分类器具有不同的特点和适用场景。例如,AlexNet 适用于简单分类任务,MobileNet V2 适用于移动和嵌入式应用。

示例用法:

* 创建一个用于目标检测的深度学习模型
create_dl_model_detection('pretrained_dl_classifier_compact.hdl', 3, DLModelDetectionParam, DLModelHandle)

上述代码创建一个目标检测模型,使用 ‘pretrained_dl_classifier_compact.hdl’ 作为背骨网络,模型要区分的类别数为 3,其他参数通过字典 DLModelDetectionParam 进行配置,并将模型的句柄存储在 DLModelHandle 中。

详细分析

Backbone

第一个参数 Backbone ,Backbone 主要就是用来提取特征的,Backbone 有很多成熟的模型。halcon用的也不是自己原创的,而是早就有的成熟模型。(根据我的粗浅认知,Backbone 就是一个神经卷积网络,什么是神经卷积网络?可以参考我之前写的一篇文章《卷积神经网络CNN中的卷积操作详解》)

create_dl_model_detection这个函数的Backbone ,有哪些参数可选呢?一共有6个!
(pretrained 表示预训练,表示这些都是预训练的好的网络。)

  1. 'pretrained_dl_classifier_alexnet.hdl':

    • 适用于简单的分类任务。
    • 部分卷积层中的卷积核较大,与其他性能相当的网络(例如 'pretrained_dl_classifier_compact.hdl')相比,这可能有助于特征提取。
    • 默认特征金字塔建立在此背骨网络上,最高级别为 4。
  2. 'pretrained_dl_classifier_compact.hdl':

    • 旨在在内存和运行时上具有高效性。
    • 默认特征金字塔建立在此背骨网络上,最高级别为 4。
  3. 'pretrained_dl_classifier_enhanced.hdl':

    • 拥有比 'pretrained_dl_classifier_compact.hdl' 更多的隐藏层,因此被认为更适用于更复杂的任务,但以时间和内存为代价。
    • 默认特征金字塔建立在此背骨网络上,最高级别为 5。
  4. 'pretrained_dl_classifier_mobilenet_v2.hdl':

    • 是一个小型且低功耗的模型,更适合移动和嵌入式视觉应用。
    • 默认特征金字塔建立在此背骨网络上,最高级别为 4。
  5. 'pretrained_dl_classifier_resnet18.hdl':

    • 适用于更复杂的任务,与 'pretrained_dl_classifier_enhanced.hdl' 类似,但结构不同,使训练更加稳定且内部更健壮。
    • 默认特征金字塔建立在此背骨网络上,最高级别为 5。
  6. 'pretrained_dl_classifier_resnet50.hdl':

    • 适用于更复杂的任务,与 'pretrained_dl_classifier_enhanced.hdl' 类似,但结构不同,使训练更加稳定且内部更健壮。
    • 默认特征金字塔建立在此背骨网络上,最高级别为 5。

在使用 create_dl_model_detection 操作符时,你可以选择其中一个作为 Backbone 参数,具体选择取决于任务的需求和资源约束。
在这里插入图片描述

DLModelDetectionParam

DLModelDetectionParam 参数是一个字典,用于指定创建目标检测或实例分割模型时的各种参数。以下是一些可能在 DLModelDetectionParam 中设置的参数,你可以根据任务需求进行调整:

  1. 'anchor_angles': 锚定框的角度。

  2. 'anchor_aspect_ratios' (旧版本 'aspect_ratios'): 锚定框的宽高比。

  3. 'anchor_num_subscales' (旧版本 'num_subscales'): 锚定框的子刻度数量。

  4. 'backbone_docking_layers': Backbone 的对接层。

  5. 'bbox_heads_weight', 'class_heads_weight': 目标框和类别框的权重。

  6. 'capacity': 模型的容量。

  7. 'class_ids': 类别的标识。

  8. 'class_ids_no_orientation': 无方向的类别标识。

  9. 'class_names': 类别名称。

  10. 'class_weights': 类别权重。

  11. 'freeze_backbone_level': Backbone 网络的级别。

  12. 'ignore_direction': 是否忽略方向。

  13. 'image_dimensions': 图像的维度。

  14. 'image_height', 'image_width': 图像的高度和宽度。

  15. 'image_num_channels': 图像的通道数。

  16. 'instance_segmentation': 是否进行实例分割。

  17. 'instance_type': 实例的类型。

  18. 'mask_head_weight': 掩膜框的权重(仅适用于实例分割)。

  19. 'max_level', 'min_level': 特征金字塔的最大和最小级别。

  20. 'max_num_detections': 最大检测数量。

  21. 'max_overlap': 最大重叠。

  22. 'max_overlap_class_agnostic': 类别无关的最大重叠。

  23. 'min_confidence': 最小置信度。

  24. 'optimize_for_inference': 是否优化用于推断。

这些参数提供了对创建模型的各个方面进行精细控制的能力,以满足不同场景和任务的需求。你可以根据实际情况选择性地设置这些参数。

一些参数的说明

'max_overlap': 最大重叠。 和 'max_overlap_class_agnostic': 类别无关的最大重叠。
指的的选择框(锚定框)的重叠,这个和非极大抑制有关(交并比)。
可以去看看这篇:《非极大抑制》
instance_segmentation,以指定模型是否用于实例分割任务。

当然这里面很多参数,其实可以来自之前讲到的一个函数:
determine_dl_model_detection_param

直译为 “确定深度学习模型检测参数”。 这个过程会自动针对给定数据集估算模型的某些高级参数,强烈建议使用这一过程来优化训练和推断性能。

没错关联起来了。

代码上下文

* 
determine_dl_model_detection_param (DLDataset, ImageWidth, ImageHeight, GenParam, DLDetectionModelParam)
* 
* Get the generated model parameters.
MinLevel := DLDetectionModelParam.min_level
MaxLevel := DLDetectionModelParam.max_level
AnchorNumSubscales := DLDetectionModelParam.anchor_num_subscales
AnchorAspectRatios := DLDetectionModelParam.anchor_aspect_ratios
* 
* *******************************************
* **   Create the object detection model  ***
* *******************************************
* 
* Create dictionary for generic parameters and create the object detection model.
DLModelDetectionParam := dict{}
DLModelDetectionParam.image_width := ImageWidth
DLModelDetectionParam.image_height := ImageHeight
DLModelDetectionParam.image_num_channels := ImageNumChannels
DLModelDetectionParam.min_level := MinLevel
DLModelDetectionParam.max_level := MaxLevel
DLModelDetectionParam.anchor_num_subscales := AnchorNumSubscales
DLModelDetectionParam.anchor_aspect_ratios := AnchorAspectRatios
DLModelDetectionParam.capacity := Capacity
* 
* Get class IDs from dataset for the model.
ClassIDs := DLDataset.class_ids
DLModelDetectionParam.class_ids := ClassIDs
* Get class names from dataset for the model.
ClassNames := DLDataset.class_names
DLModelDetectionParam.class_names := ClassNames
* 
* Create the model.
create_dl_model_detection (Backbone, NumClasses, DLModelDetectionParam, DLModelHandle)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1324391.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

贝蒂快扫雷~(C语言)

✨✨欢迎大家来到贝蒂大讲堂✨✨ ​​​​🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:贝蒂的游戏 贝蒂的主页:Betty‘s blog 引言: 扫雷相信大家小时候到玩过吧,那…

【python】在线代码混淆方案及注意事项

▒ 目录 ▒ 🛫 导读开发环境 1️⃣ 在线网站pyob混淆操作步骤编写测试代码混淆转pyc缺点中文路径问题:python: Cant reopen .pyc file 2️⃣ 反编译python文件格式对比uncompyle6 3️⃣ 其它方案cpythonpython-obfuscatorPyInstaller【不推荐】pyminifie…

内网穿透工具frp安装使用

摘要:之前使用的 nps 目前没有维护更新了,和在使用的过程中做内网穿透的的网速应该有限制,不论云服务器带宽是多少,下载速度都比较慢。这里切换到 frp 试试,对安装和使用简单记录,其和 nps 有很大的操作配置…

机器人也能干的更好:RPA技术的优势和应用场景

RPA是什么? 机器人流程自动化RPA(Robotic Process Automation)是一种自动化技术,它使用软件机器人来高效完成重复且有逻辑性的工作。近年来,随着人工智能和自动化技术的不断发展和普及,RPA已经成为企业提高…

流程挖掘技术在数字化转型中的应用价值

2023年2月27日国家正式发布了《数字中国建设整体布局规划》,指出建设数字中国是数字时代推进中国式现代化的重要引擎,是构筑国家竞争新优势的有力支撑,为加速数字化转型发出了明确号令。 随着数字化转型的推进,流程挖掘技术逐渐成…

CUMT--Java复习--异常

目录 一、异常 1、概述 2、异常处理机制 二、捕获异常 (1)try...catch语句 (2)try...catch..finally语句 (3)自动关闭资源的try语句 (4)其他 三、抛出异常 (1&…

ICC2:illegal dimension route

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 illegal dimension route DRC的违例常出现的先进工艺里,部分层次在水平方向和竖直方向有宽度梯度的要求。如下示例: 意思就是竖直方向(yLegalDim&#x…

yolov5障碍物识别-雪糕筒识别(代码+教程)

简介 这是一个检测交通锥并识别颜色的项目。我使用 yolov5 来训练和检测视锥细胞。此外,我使用 k 均值来确定主色,以对锥体颜色进行分类。目前,支持的颜色为红色、黄色、绿色和蓝色。其他颜色被归类为未知。 数据集和注释 我使用了一个自收…

会声会影2024永久汉化中文版本百度网盘下载

会声会影2024破解版免费下载是经过修改的视频剪辑软件,它能够免费为您提供很多功能。会声会影2024免费下载提供超过 1500 种独特的效果,可让您提升自我。会声会影破解版是用于是制作独一无二的视频的最强大、功能最全的软件。 它是一个简单而快速的视频编…

漏洞复现-log4j2原理分析及CVE-2021-44228

log4j2原理分析及漏洞复现 0x01 log4j2简介 Log4j2 是一个用于 Java 应用程序的成熟且功能强大的日志记录框架。它是 Log4j 的升级版本,相比于 Log4j,Log4j2 在性能、可靠性和灵活性方面都有显著的改进。 Log4j2 特点 高性能:Log4j2 使用异步…

JVM垃圾收集器三色标记算法

垃圾收集算法 分代收集理论 当前虚拟机的垃圾收集都采用分代收集算法,这种算法没有什么新的思想,只是根据对象存活周期的不同将内存分为几块。一般将java堆分为新生代和老年代,这样我们就可以根据各个年代的特点选择合适的垃圾收集算法。 比…

【华为OD机试真题2023CD卷 JAVAJS】加密算法

华为OD2023(C&D卷)机试题库全覆盖,刷题指南点这里 加密算法 知识点DFS搜索 题目描述: 有一种特殊的加密算法,明文为一段数字串,经过密码本查找转换,生成另一段密文数字串。规则如下: 1. 明文为一段数字串由0~9组成 2. 密码本为数字0~9组成的二维数组 3. 需要…

将Abp默认事件总线改造为分布式事件总线

文章目录 原理创建分布式事件总线实现自动订阅和事件转发 使用启动Redis服务配置传递Abp默认事件传递自定义事件 项目地址 原理 本地事件总线是通过Ioc容器来实现的。 IEventBus接口定义了事件总线的基本功能,如注册事件、取消注册事件、触发事件等。 Abp.Events…

关键字:void关键字

在编程中,void 是一个关键字,用于表示函数没有返回值。具体来说,void 关键字的作用如下: 函数声明:在函数声明中使用 void 关键字可以指定函数没有返回值。例如: 这表示 func() 函数不返回任何值。 函数…

英国版咸鱼「Depop」,小众二手跨境电商平台如何入驻?

对标美国二手闲鱼平台Mercia,PoshMark、东南亚Etsy,Depop是英国的一个面向创意人群的二手时尚市场,类似于Instagram,但更专注于买卖二手服装、配饰和艺术品。 近一年来,受通胀和高利率影响,英国的经济几乎一直处于停滞状态,零售市…

亚信安慧AntDB数据库——助力5G计费核心替换,全面自主可控

数字经济时代,5G以更快、更丰富、更智能的连接方式服务于各行各业。AntDB数据库,源于亚信科技,自2008年起成功落地全国24个省份的中国移动、中国电信、中国联通和中国广电等运营商项目,为数字化服务和信息化基础建设提供支持。 在…

【开源软件】最好的开源软件-2023-第四名 vaadin

自我介绍 做一个简单介绍,酒架年近48 ,有20多年IT工作经历,目前在一家500强做企业架构.因为工作需要,另外也因为兴趣涉猎比较广,为了自己学习建立了三个博客,分别是【全球IT瞭望】,【…

DAPLink源码固件编译与制作

DAPLink源码固件编译与制作 ✨这里以Air/stm32f103cbt6固件编译为例。📌DAPLink源码地址:https://github.com/ARMmbed/DAPLink🔖 如果不想自己生成,可以使用合宙提供的现成的工程以及固件;https://gitee.com/openLuat/…

以太网的数据速率、互连介质和物理层规范

以太网协议连接已经广泛应用于我们周围的大量事物或设备中。过去,以太网用在局域网 (LAN) 和城域网 (MAN) 中,而如今,由于以太网的普及和多种优势,例如巨大的生态体系和日益增长的规模经济,它越来越多地用在存储和汽车…

手拉手全栈EasyExcel实现web上传下载

环境介绍 技术栈 springbootmybatis-plusmysqleasyexcel 软件 版本 mysql 8 IDEA IntelliJ IDEA 2022.2.1 JDK 1.8 Spring Boot 2.7.13 mybatis-plus 3.5.3.2 EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。 他能让你在不用考虑性…