Halcon 深度学习(三):缺陷检测


前言

最近学习深度学习时的一些总结和看法,参照深度学习的自带案例(segment_pill_deep_learning_1_preprocess.hdev)


一、准备

1、准备缺陷检测所需图片

1.1、images文件夹:3种类型图片

在这里插入图片描述
每个类型中分为3种:contamination(污染)、crack(裂纹)、good(正常)

在这里插入图片描述
contamination(污染)
在这里插入图片描述
crack(裂纹)
在这里插入图片描述
good(正常)
在这里插入图片描述

1.2、divisionImages文件夹:3种类型图片(用于分割背景)

在这里插入图片描述
每个类型中分为3种:contamination(污染)、crack(裂纹)、good(正常)

在这里插入图片描述
contamination(污染)、crack(裂纹)、good(正常)
在这里插入图片描述

二、编写代码

1、设置输入输出路径

*** 设置输入输出路径 ***
*总路径
AllDir := 'E:/视觉/halcon_深度学习/DeepLearning/缺陷检测/'
*图片路径
ImageDir := AllDir + 'images'
*分割图片路径
DivisionImagesDir := AllDir + 'divisionImages'
*存放数据总路径
DataDir := AllDir + 'data'
*预处理后的路径
DataDirectoryBaseName := DataDir + '/dldataset'
*存储预处理参数
PreprocessParamFileBaseName := DataDir + '/dl_preprocess_param'

2、设置参数

*** 设置参数 ***
*类别名称
ClassNames := ['good','contamination','crack']
*类别ID
ClassIDs := [0,1,2]
*拆分数据集
TrainingPercent := 70
ValidationPercent := 15
*图片尺寸参数
ImageWidth := 400
ImageHeight := 400
ImageNumChannels := 3
*图片灰度范围
ImageRangeMin := -127
ImageRangeMax := 128
*图像预处理的进一步参数
ContrastNormalization := 'false'
DomainHandling := 'full_domain'
IgnoreClassIDs := []
SetBackgroundID := []
ClassIDsBackground := []
*随机种子
SeedRand := 42

3、处理图片、拆分

*** 处理图片并进行拆分 ***
*设置随机种子
set_system ('seed_rand', SeedRand)
*通过参数将文件夹中数据分割为数据集 参数:图像路径、分割图像路径、类别名称、类别ID、图像路径列表、分割图像路径列表、字典、生成的数据集
read_dl_dataset_segmentation (ImageDir, DivisionImagesDir, ClassNames, ClassIDs, [], [], [], DLDataset)
*拆分数据集
split_dl_dataset (DLDataset, TrainingPercent, ValidationPercent, [])

在这里插入图片描述

4、预处理数据集

*** 预处理数据集 ***
file_exists (DataDir, FileExists)
if (not FileExists)
    make_dir (DataDir)
endif
*创建预处理参数
create_dl_preprocess_param ('segmentation', ImageWidth, ImageHeight, ImageNumChannels, ImageRangeMin, ImageRangeMax, ContrastNormalization, DomainHandling, IgnoreClassIDs, SetBackgroundID, ClassIDsBackground, [], DLPreprocessParam)
*预处理后的数据集路径
PreprocessParamFile := PreprocessParamFileBaseName +'.hdict'
*将参数写入
write_dict (DLPreprocessParam, PreprocessParamFile, [], [])
*创建字典
create_dict (GenParam)
set_dict_tuple (GenParam, 'overwrite_files', true)
*预处理
preprocess_dl_dataset (DLDataset, DataDirectoryBaseName, DLPreprocessParam, GenParam, DLDatasetFilename)

在这里插入图片描述

5、测试

*** 测试 ***
*随机选取10张图像
get_dict_tuple (DLDataset, 'samples', DatasetSamples)
find_dl_samples (DatasetSamples, 'split', 'train', 'match', SampleIndices)
tuple_shuffle (SampleIndices, ShuffledIndices)
read_dl_samples (DLDataset, ShuffledIndices[0:9], DLSampleBatchDisplay)
* 
create_dict (WindowHandleDict)
for Index := 0 to |DLSampleBatchDisplay| - 1 by 1
    *可视化不同的图像、注释和推理结果
    dev_display_dl_data (DLSampleBatchDisplay[Index], [], DLDataset, ['image','segmentation_image_ground_truth'], [], WindowHandleDict)
    get_dict_tuple (WindowHandleDict, 'segmentation_image_ground_truth', WindowHandleImage)
    dev_set_window (WindowHandleImage[1])
    Text := 'Press Run (F5) to continue'
    dev_disp_text (Text, 'window', 400, 40, 'black', [], [])
    stop ()
endfor
*关闭窗体
dev_display_dl_data_close_windows (WindowHandleDict)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、下载地址

很多人找我要源码,Github又不太好上传大文件,我就把我的网站新增了下载功能,如果下载接口出现问题请大家评论区回复一下,谢谢。

地址:https://zhoujinyong.com/index.aspx/Files/缺陷检测.rar

  • 19
    点赞
  • 183
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
Halcon深度学习缺陷检测是一种基于深度学习技术的自动化缺陷检测方法。该方法通过训练神经网络模型来识别产品中的缺陷,如裂纹、划痕、变形等,从而实现自动化的检测和分类。 Halcon是一款常用的机器视觉软件平台,支持多种图像处理和分析功能。通过集成深度学习技术,Halcon可以提高缺陷检测的准确度和效率,同时减少人力和时间成本。 Halcon深度学习缺陷检测的实现过程包括以下步骤: 1. 数据准备:收集产品图片和标注数据,构建训练数据集。 2. 模型选择:根据缺陷检测任务的特点,选择合适的深度学习模型。 3. 模型训练:使用训练数据集对模型进行训练,不断调整参数直至达到最佳效果。 4. 模型测试:使用测试数据集对模型进行测试,评估其准确度和泛化能力。 5. 部署应用:将训练好的模型部署到实际应用中,实现自动化缺陷检测Halcon深度学习缺陷检测具有以下优点: 1. 高准确度:深度学习模型可以学习和识别复杂的缺陷形态和纹理特征,从而提高检测准确度。 2. 高效性:深度学习模型可以快速处理大规模的数据,实现高效的自动化检测。 3. 可扩展性:可以根据不同的应用场景和产品类型,自定义训练模型,实现个性化的缺陷检测。 总之,Halcon深度学习缺陷检测是一种先进的自动化检测技术,可以大大提高产品质量和生产效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值