Halcon 深度学习分类模型介绍

Halcon提供了预训练网络。这些网络在使用前已经经过丰富的图像库训练过,在此基础上训练出的网络对于图像分类任务表现更好。接下来分别介绍Halcon提供的预训练网络。

pretrained_dl_classifier_compact.hdl模型

网络的优点是节省内存以及运行效率高。
模型支持‘real’图像类型。如果想知道网络模型各参数值,可以使用算子get_dl_classifier_param获取,下面列举的部分参数是预训练网络使用图像数据集训练时的值。
图像宽度:224
图像高度:224
图像通道数:3
图像灰度范围下限:-127
图像灰度范围上限:128
网络没有全连接层。网络架构支持改变训练图像尺寸,但最小尺寸不能低于15 x 15

pretrained_dl_classifier_enhanced.hdl模型

对比上面的迷你型分类网络,此网络拥有更多的隐含层,因此可以胜任更复杂的分类任务。但是需要的代价是更大内存以及更长的训练时间,另外由于隐含层的增多,计算相较于上面的网络更复杂,所以批处理数不能设置太大。
对图像以及使用数据集预训练的参数同上。
同样此网络架构也支持改变训练图像尺寸,但是最小尺寸不能低于47 x 47。虽然网络架构没有对图像尺寸设置上限,但是如果图像尺寸越大,那么需要占用的内存资源就越多,对内存的要求就更高,同时耗时更多。更改图像大小将重新初始化全连接层的权重,因此需要重新训练网络。

retrained_dl_classifier_resnet50.hdl模型

对比pretrained_dl_classifier_enhanced.hdl网络模型,此模型对更复杂的分类任务表现效果更好。它的网络结构不同于以上两个模型,训练时稳定性以及鲁棒性更好。
对图像以及使用数据集预训练的参数同上。
同样此网络架构也支持改变训练图像尺寸,但是最小尺寸不能低于32 x 32。虽然网络架构没有对图像尺寸设置上限,但是如果图像尺寸越大,那么需要占用的内存资源就越多,对内存的要求就更高,同时耗时更多。
尽管同样是全连接层,图像大小的改变不会导致权重的重新初始化。

总结

以上三个网络模型中列出的参数值都是在使用网络之前预训练网络时使用的值。如果想要不同的图像尺寸,可以通过算子 set_dl_classifier_param 设置。
对于至少有一个全连接层的网络模型,只要图像尺寸变了,就需要重新训练,比如pretrained_dl_classifier_enhanced模型;对于没有全连接层的网络,训练好的网络模型可以直接应用在不同尺寸的图像上,但分类精度会降低。

1、pretrained_dl_classifier_compact迷你型分类网络,占用内存少,训练速度快。没有全连接层,训练好的网络模型可以应用在不同尺寸的图像上,但精度会降低。
2、pretrained_dl_classifier_enhanced增强版网络模型,对比pretrained_dl_classifier_compact网络可以胜任更复杂的分类,但占用内存资源多,训练速度慢,因此批处理数不能太大。含有全连接层,更改图像大小将重新初始化全连接层的权重,因此需要重新训练网络。
3、pretrained_dl_classifier_enhanced不同于以上两个网络结构,对更复杂的分类任务,占用内存资源更多,训练速度更慢,但稳定性以及鲁棒性更好。尽管同样是全连接层,图像大小的改变不会导致权重的重新初始化。

### Halcon 深度学习分类模型使用教程 #### 准备工作环境 为了有效利用Halcon中的深度学习功能进行图像分类,建议先熟悉HDevelop集成开发环境中提供的示例程序。具体来说,在`examples/hdevelop/Deep-Learning/Classification/`目录下有两个重要文件:一个是提供简单概览的`classify_fruit_deep_learning.hdev`;另一个则是展示更为复杂的处理流程——即用于药片缺陷检测的应用实例`classify_pill_defects_deep_learning.hdev`[^1]。 这些例子不仅展示了如何构建基本框架来执行物体识别任务,还深入探讨了从准备训练集到最终部署整个过程的关键环节。对于初学者而言,前者作为入门级指南非常适合快速上手实践操作;而后者则适合那些希望进一步探索高级特性和优化技巧的学习者。 #### 构建与训练模型 当涉及到实际建立并训练一个基于卷积神经网络(CNN)架构下的分类器时,用户可以通过图形界面完成大部分配置选项的选择。这包括但不限于定义输入尺寸、选择预训练权重初始化方式等参数设置。一旦所有必要的准备工作就绪之后,则可通过点击相应按钮启动自动化的训练进程,并实时监控进度条直至结束。值得注意的是,在此期间还可以灵活调整诸如置信度阈值这样的超参以改善性能表现,甚至借助滑动热力图工具直观感受不同设定带来的影响变化情况[^2]。 ```python # Python伪代码示意如何调用Halocn API实现简单的CNN分类器训练逻辑 import halcon as hl # 加载数据集 training_data = hl.read_image('path_to_training_set') # 定义网络结构及其它必要组件... network_architecture = 'resnet50' # 假设采用ResNet-50作为基础骨干网 classifier = hl.create_dl_classifier( network=network_architecture, num_classes=len(unique_labels), ) # 开始训练循环 for epoch in range(num_epochs): classifier.train(training_data, labels) # 保存最佳模型权值至本地磁盘以便后续加载重用 hl.save_dl_model(classifier, './best_trained_weights') ``` 上述Python风格的伪代码片段仅用来辅助理解整体思路,并非真实可用语法。真正的C++或HALCON专有脚本编写需参照官方手册给出的具体API文档说明。 #### 部署与应用 成功训练好满意的分类模型后,下一步就是将其应用于真实的工业场景当中去了。此时可能涉及将已学得的知识迁移到新的硬件平台上运行,或是与其他软件模块相结合形成完整的解决方案链路。无论哪种情形都离不开细致入微地测试验证阶段,确保每一步都能稳定可靠地达成预期目标。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值