目录

  • 前言
  • 一、准备
    • 1、准备缺陷检测所需图片
      • 1.1、images文件夹:3种类型图片
      • 1.2、divisionImages文件夹:3种类型图片(用于分割背景)
  • 二、编写代码
    • 1、设置输入输出路径
    • 2、设置参数
    • 3、处理图片、拆分
    • 4、预处理数据集
    • 5、测试
  • 三、下载地址

前言

最近学习深度学习时的一些总结和看法,参照深度学习的自带案例(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

Halcon 深度学习(三):缺陷检测相关推荐

  1. 使用深度学习 进行缺陷检测,GAN用于表面缺陷检测

    使用深度学习 进行缺陷检测 链接: 千顺智能. 数据库– GRIMA database http://dmery.ing.puc.cl/index.php/material/gdxray/ steel ...

  2. 总结|深度学习实现缺陷检测

    作者:Tom Hardy Date:2020-01-06 来源:总结|深度学习实现缺陷检测

  3. 基于AI深度学习的缺陷检测系统

    1. 基于AI深度学习的工业缺陷检测现状 在工业生产中,由于生产和运输环境中的不可控因素,很容易产生划痕.压伤.擦挂等缺陷.而其中的缺陷大部分都极其微小,甚至是肉眼难以识别,这些缺陷所造成的坏品率极大 ...

  4. 深度学习实现缺陷检测

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 前言 缺陷检测是工业上非常重要的一个应用,由于缺陷多种多样,传统的 ...

  5. 基于深度学习的表面缺陷检测方法综述-论文阅读笔记

    //2022.3.2日阅读笔记 原文链接:基于深度学习的表面缺陷检测方法综述 (aas.net.cn) 个人对本篇综述内容的大致概括 论文首先介绍了表面缺陷检测中不同场景下的成像方案,主要根据表面颜色 ...

  6. 论文《基于深度学习的表面缺陷检测方法综述》学习笔记

    <基于深度学习的表面缺陷检测方法综述>学习笔记 前段时间完成了<基于图像的零部件缺陷识别系统设计>毕业课程设计,过程中收获了很多,老师也分享了很多论文,在此记录一下学习的收获. ...

  7. AI-无损检测方向速读:基于深度学习的表面缺陷检测方法综述

    1 表面缺陷检测的概念 表面缺陷检测是机器视觉领域中非常重要的一项研究内容, 也称为 AOI (Automated optical inspection) 或 ASI (Automated surfa ...

  8. 深度学习三(PyTorch物体检测实战)

    深度学习三(PyTorch物体检测实战) 文章目录 深度学习三(PyTorch物体检测实战) 1.网络骨架:Backbone 1.1.神经网络基本组成 1.1.1.卷积层 1.1.2.激活函数层 1. ...

  9. HALCON 21.11:深度学习笔记---对象检测, 实例分割(11)

    HALCON 21.11:深度学习笔记---对象检测, 实例分割(11) HALCON 21.11.0.0中,实现了深度学习方法. 本章介绍了如何使用基于深度学习的对象检测. 通过对象检测,我们希望在 ...

最新文章

  1. python操作目录_详解python中的文件与目录操作
  2. 二次开发是什么意思_什么是框架?为什么要使用框架?我告诉你理由哦!
  3. Vs Code 配置C/C++ 开发环境
  4. lisp医院化验系统_浅谈医院化验室信息系统(LIS)的建设
  5. 792. 高精度减法
  6. C++ std::move/std::forward/完美转发
  7. 衡水互联网服务器网站,衡水联通dns的服务器地址
  8. 缺陷管理工具--mantis使用过程
  9. linux系统中鼠标键盘失灵,电脑键盘失灵的原因以及解决技巧
  10. 2011年的暑假(大一的暑假——还算充实)
  11. kali linux 安装lxde_【kaliLinux】安装
  12. 记可视化项目代码设计的心路历程以及理解
  13. 狼人杀代码(c++)
  14. Neo4j 第一篇:在Windows环境中安装Neo4j
  15. vue 手脚架创建 项目
  16. C/C++小游戏---贪吃蛇
  17. 【流行框架】Spring
  18. 电脑技巧:分享6个实用的资源网站
  19. Openstack“T版“全组件手动部署
  20. 尚硅谷 Linux系统管理教程 笔记

热门文章

  1. QCY蓝牙耳机恢复双耳模式
  2. 手机百度打不开html网页,手机百度网页打不开怎么办 手机百度网页打不开的解决方法...
  3. Vue学习(十六):组件间通信
  4. C语言实现 帅气 的进度条~
  5. 商家都热衷的砍价活动,对商家真的有好处吗?
  6. JAVA数组---------数组的定义
  7. linux压缩日志脚本
  8. usb设备的检测及区分(sata硬盘、优盘及移动硬盘)
  9. CSS选择器全局归纳
  10. 服务端渲染和客户端渲染以及服务器部署