Halcon 深度学习(三):缺陷检测
目录
- 前言
- 一、准备
- 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 深度学习(三):缺陷检测相关推荐
- 使用深度学习 进行缺陷检测,GAN用于表面缺陷检测
使用深度学习 进行缺陷检测 链接: 千顺智能. 数据库– GRIMA database http://dmery.ing.puc.cl/index.php/material/gdxray/ steel ...
- 总结|深度学习实现缺陷检测
作者:Tom Hardy Date:2020-01-06 来源:总结|深度学习实现缺陷检测
- 基于AI深度学习的缺陷检测系统
1. 基于AI深度学习的工业缺陷检测现状 在工业生产中,由于生产和运输环境中的不可控因素,很容易产生划痕.压伤.擦挂等缺陷.而其中的缺陷大部分都极其微小,甚至是肉眼难以识别,这些缺陷所造成的坏品率极大 ...
- 深度学习实现缺陷检测
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 前言 缺陷检测是工业上非常重要的一个应用,由于缺陷多种多样,传统的 ...
- 基于深度学习的表面缺陷检测方法综述-论文阅读笔记
//2022.3.2日阅读笔记 原文链接:基于深度学习的表面缺陷检测方法综述 (aas.net.cn) 个人对本篇综述内容的大致概括 论文首先介绍了表面缺陷检测中不同场景下的成像方案,主要根据表面颜色 ...
- 论文《基于深度学习的表面缺陷检测方法综述》学习笔记
<基于深度学习的表面缺陷检测方法综述>学习笔记 前段时间完成了<基于图像的零部件缺陷识别系统设计>毕业课程设计,过程中收获了很多,老师也分享了很多论文,在此记录一下学习的收获. ...
- AI-无损检测方向速读:基于深度学习的表面缺陷检测方法综述
1 表面缺陷检测的概念 表面缺陷检测是机器视觉领域中非常重要的一项研究内容, 也称为 AOI (Automated optical inspection) 或 ASI (Automated surfa ...
- 深度学习三(PyTorch物体检测实战)
深度学习三(PyTorch物体检测实战) 文章目录 深度学习三(PyTorch物体检测实战) 1.网络骨架:Backbone 1.1.神经网络基本组成 1.1.1.卷积层 1.1.2.激活函数层 1. ...
- HALCON 21.11:深度学习笔记---对象检测, 实例分割(11)
HALCON 21.11:深度学习笔记---对象检测, 实例分割(11) HALCON 21.11.0.0中,实现了深度学习方法. 本章介绍了如何使用基于深度学习的对象检测. 通过对象检测,我们希望在 ...
最新文章
- python操作目录_详解python中的文件与目录操作
- 二次开发是什么意思_什么是框架?为什么要使用框架?我告诉你理由哦!
- Vs Code 配置C/C++ 开发环境
- lisp医院化验系统_浅谈医院化验室信息系统(LIS)的建设
- 792. 高精度减法
- C++ std::move/std::forward/完美转发
- 衡水互联网服务器网站,衡水联通dns的服务器地址
- 缺陷管理工具--mantis使用过程
- linux系统中鼠标键盘失灵,电脑键盘失灵的原因以及解决技巧
- 2011年的暑假(大一的暑假——还算充实)
- kali linux 安装lxde_【kaliLinux】安装
- 记可视化项目代码设计的心路历程以及理解
- 狼人杀代码(c++)
- Neo4j 第一篇:在Windows环境中安装Neo4j
- vue 手脚架创建 项目
- C/C++小游戏---贪吃蛇
- 【流行框架】Spring
- 电脑技巧:分享6个实用的资源网站
- Openstack“T版“全组件手动部署
- 尚硅谷 Linux系统管理教程 笔记