首页 > 其他分享 >Halcon - 深度学习 - 目标分类

Halcon - 深度学习 - 目标分类

时间:2023-06-30 16:44:05浏览次数:37  
标签:dl set DLModelHandle 分类 param Halcon dev 深度 model

这是一个例子,通过读取桃子和梨的图片集来进行模型训练,得到一个可以识别桃子或是梨的深度学习识别器。

*********************************************
* Halcon-深度学习-分类测试
* 这是一个例子,通过读取桃子和梨的图片集来进行模型训练,
* 得到一个可以识别桃子或是梨的深度学习识别器
*********************************************
dev_close_window ()
dev_update_off ()
set_system ('seed_rand', 42)
get_system ('example_dir', PathExample)
ImageBaseFolder := PathExample + '/images/food/'
ImageFolder := ImageBaseFolder + ['peach','pear']
OutputDir := './images/classify/'
************
* 预处理
************
read_dl_dataset_classification(ImageFolder, 'last_folder', DLDataSet)
read_dl_model ('pretrained_dl_classifier_compact.hdl', DLModelHandle)
get_dict_tuple(DLDataSet, 'class_names', ClassNames)
set_dl_model_param(DLModelHandle, 'class_names', ClassNames)
* 分割数据集,70%用作训练,15%用作验证,剩下作为测试
split_dl_dataset(DLDataSet, 70, 15, [])
create_dl_preprocess_param_from_model(DLModelHandle, 'none', 'full_domain', [], [], [], DLPreprocessParam)
create_dict(PreprocessSettings)
set_dict_tuple(PreprocessSettings, 'overwrite_files', true)
preprocess_dl_dataset(DLDataSet, OutputDir, DLPreprocessParam, PreprocessSettings, DLDatasetFileName)
************
* 训练模型
************
* 每次迭代的训练样本数,值过大可能会报内存不足
set_dl_model_param(DLModelHandle, 'batch_size', 64)
* 学习率,会影响识别准确率
set_dl_model_param(DLModelHandle, 'learning_rate', 0.001)
set_dl_model_param(DLModelHandle, 'runtime_init', 'immediately')
create_dl_train_param(DLModelHandle, 20, 1, 'true', 41, [], [], TrainParam)
train_dl_model(DLDataSet, DLModelHandle, TrainParam, 0, TrainResults, TrainInfos, EvaluationInfos)
* 训练完成后将模型写入文件
write_dl_model(DLModelHandle, './trainModel.hdl')
stop ()
************
* 分类识别测试
************
dev_clear_window ()
dev_open_window (0, 0, 256, 256, 'black', WindowHandle)
set_display_font (WindowHandle, 20, '黑体', 'false', 'false')
* 读取训练模型
read_dl_model('./trainModel.hdl', DLModelHandle)
create_dl_preprocess_param_from_model(DLModelHandle, 'none', 'full_domain', [], [], [], DLPreprocessParam)
list_files('./images/test/', 'files', Files)
for I := 0 to |Files|-1 by 1
read_image (Image, Files[I])
    * 对测试图片进行识别
    gen_dl_samples_from_images(Image, DLSample)
    preprocess_dl_samples(DLSample, DLPreprocessParam)
    apply_dl_model(DLModelHandle, DLSample, [], DLResult)
    get_dict_tuple(DLResult, 'classification_class_names', ClassNames)
    dev_display(Image)
    dev_disp_text('识别结果:' + ClassNames[0], 'window', 'top', 'center', 'red', ['box'], ['false'])
    stop()
endfor

训练过程会有图形化输出显示:

训练完成后,在网上找了一些图片进行测试,效果还不错:

 

标签:dl,set,DLModelHandle,分类,param,Halcon,dev,深度,model
From: https://www.cnblogs.com/lgyup/p/17517214.html

相关文章

  • 浅谈PCBA板机械加工分类
    印制板的机械加工主要应用于印制板坯料的下料(俗称开料)、孔加工和外形加工,是印制板整个工艺程序中的重要步骤。由于印制板的孔和外形加工质量都直接影响印制板的机械装配性能和电气连接性能,尤其是印制板上各种用途的孔(元件安装孔、导通孔、安装孔、定位孔、检测孔等)加工质量还会影......
  • 自动消毒系统行业市场深度调研及规模分析报告2023-2029
    2023-2029全球自动消毒系统行业调研及趋势分析报告2022年全球自动消毒系统市场规模约亿元,2018-2022年年复合增长率CAGR约为%,预计未来将持续保持平稳增长的态势,到2029年市场规模将接近亿元,未来六年CAGR为%。从核心市场看,中国自动消毒系统市场占据全球约%的市场份额,为全球最主......
  • 自行车U型锁行业市场深度调研及规模分析报告2023-2029
    2023-2029全球自行车U型锁行业调研及趋势分析报告2022年全球自行车U型锁市场规模约亿元,2018-2022年年复合增长率CAGR约为%,预计未来将持续保持平稳增长的态势,到2029年市场规模将接近亿元,未来六年CAGR为%。从核心市场看,中国自行车U型锁市场占据全球约%的市场份额,为全球最主要的......
  • 响应式布局分类
    响应式设计中常用的三种布局模式。   缩放、流式布局与响应式缩放布局,旨在相对缩放每一个元素。它们会随着窗口大小变化动态缩放内容,就这方面而言,它们是响应式的。布局本身保持静止,通过改变每一个元素来保持一致的表现。流式布局就不一样,因为它们随着窗口尺寸缩放容器元素......
  • 【QoS预测】基于深度协同过滤的位置感知QoS预测
    论文题目:JiaZ,JinL,ZhangY,etal.Location-AwareWebServiceQoSPredictionviaDeepCollaborativeFiltering[J].IEEETransactionsonComputationalSocialSystems,2022.问题:目前有大量具有类似功能的web服务,用户根据服务质量(QoS)选择最佳。因此,QoS预测是服务推......
  • Qt联合海康威视工业相机采集,在线转Halcon变量并显示(独立封装、支持多相机、支持黑白相
    Qt联合海康威视工业相机采集,在线转Halcon变量并显示(独立封装、支持多相机、支持黑白相机和彩色相机)。原创文章,转载请说明出处,资料来源:http://imgcs.cn/5c/668685372998.html......
  • 【QoS预测】用于QoS预测的基于多源特征学习的联合深度网络
    论文题目:XiaY,DingD,ChangZ,etal.Jointdeepnetworksbasedmulti-sourcefeaturelearningforQoSPrediction[J].IEEETransactionsonServicesComputing,2021,15(4):2314-2327.问题:云环境的多样性和动态性给服务推荐中的QoS预测带来了诸多挑战。其中一个挑......
  • 在vue文件中使用 deep深度选择器
    使用场景有的时候我们需要在父组件中去修改第三方组件或者子组件的样式就会使用到deep深度选择器。比如:App组件中定义了.title的样式,也想让Test子组件中的.title也应用对应的样式App.vue<template><divclass="app"><h1>app组件</h1><divclass="title">这是app......
  • 深度分析:企业大数据分析的选型需要关注哪些能力
    随着信息时代的到来,企业对于企业大数据分析的需求日益提升,促使市场上出现了越来越多的企业大数据分析相关的软件工具。在具体选型时,给企业造成了不小的困扰。这里,就以连续四年入围Gartner魔力象限报告,获得国际广泛认可的瓴羊QuickBI为例,为大家重点分析一下,企业大数据分析的选型需......
  • 漏洞深度分析 | Apache StreamPipes 存在权限绕过漏洞导致垂直越权
    项目地址https://github.com/apache/streampipes项目介绍ApacheStreamPipes使工业数据分析变得简单!StreamPipes是工业物联网的端到端工具箱。它带有针对非技术用户的丰富的图形用户界面,并提供以下功能: 快速连接超过20种工业协议,例如OPC-UA、PLC、MQTT、REST、Pulsar、Kafka......