0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深度学习是如何工作的?如何使用图像处理来检测图像中的缺陷

新机器视觉 来源:新机器视觉 2023-02-10 14:56 次阅读

简介

制造业中任何公司的主要目标都是为客户生产无缺陷产品。如果在产品开发过程中出现任何内部孔、凹坑、磨损或划痕(由于多种原因,从生产设备故障到恶劣的工作条件),其结果不仅是产品缺陷,而且导致客户满意度的损失。

在本文中,您将了解可用于识别缺陷的各种深度学习方法,从而防止缺陷产品流入市场。

深度学习是如何工作的?

深度学习是一种机器学习,其特点是使用神经元或数据计算流经的节点。深度学习神经元之所以如此命名,是因为它们最初被建模为以类似于人脑中神经元的结构发送和接收信号。神经元接收一个或多个输入信号(要么来自原始数据,要么来自模型前一层的神经元),对这些输入信号进行一些计算,然后(通过突触)将输出信号发送到神经网络深处的神经元。

通过这种方式,这些模型模仿了人类大脑如何学习检测、识别和分类周围环境中的项目,并做出非线性决策。最初的神经网络设计非常简单(或“肤浅”),但今天的架构已经变得极其复杂,现在被称为“深层”神经网络。

然而,深度神经网络不仅仅是一堆神经层。考虑一层作为单个神经元的外壳。这些层将始终以输入层开始(接收数据),以输出层结束(产生结果)。此外,在神经网络中,可以有零个或多个隐藏层堆叠在一起。层架构的类型包括但不限于密集(或完全连接)、卷积、反褶积和递归。然而,单独添加额外的层并不足以解决更复杂的问题,事实上可能会带来额外的挑战和潜在的错误。

必须根据需要解决的问题提出多种技术。存在不同形式的深度神经网络,每种网络都以不同的方式和不同的算法来解决问题。

图像分析-在分析图像时,更需要查看像素定义的事物层次,而不是单独查看每个像素。卷积网络使用称为卷积层的神经元的特定层,通常用于解释、编码或生成图片。由于许多卷积层的叠加,检测图片中更复杂的分层模式是可能的。卷积层越深,生成的特征图越抽象。

f59ce9ea-a90f-11ed-bfe3-dac502259ad0.png

文本处理——文本分类、情感分析、自动翻译和语言建模概念是文本数据处理的一些最常见的深度学习用例。在某些情况下,例如分类,神经网络的表现几乎和人类一样好。然而,在某些工作中,神经网络仍然远远不能与人类进行比较,例如情绪分析等。

f5c60dca-a90f-11ed-bfe3-dac502259ad0.png

自动编码器-自动编码器的目标是能够完全解构并重建输入数据。重建需要使用中间压缩表示,因此神经网络的表示必须具有足够的信息来进行此生成。自动编码器的压缩表示随后可用于各种任务,例如分类。

f5e2c050-a90f-11ed-bfe3-dac502259ad0.png

生成对抗网络-它们已被有效地用于黑白照片的着色、增强图像分辨率和重建部分擦除的图像等。然而,GAN陡峭的学习曲线限制了他们的潜力,这似乎非常有前景。它主要用于医学图像,以提高图像性能,并使人们更容易发现疾病。

f6077738-a90f-11ed-bfe3-dac502259ad0.png

深度学习缺陷检测技术

物体识别、智能机器人、显著性检测、停车场声音事件检测和无人机叶片问题诊断只是受益于深度学习技术的众多学科中的几个例子。有时,可以通过抽象表示或奇异特征(如边缘和梯度)更好地解释数据。深度学习模型结合了这些低级特征,以构建属性和特征的更抽象的高级表示,并提高模型的性能。利用这些核心概念,一些学者正在尝试将深度学习技术应用于产品缺陷的识别,以提高产品质量。

1.LeNet,卷积神经网络(CNN)

CNN代表“卷积神经网络”,是具有一个或多个卷积层的任何前馈神经网络,但也可能包含完全连接的层、池化层、ReLU校正层等。最初的卷积神经网络结构之一是LeNet框架,它可以识别手写字符。

在这里,我们将探讨使用LeNet模型结构原理来检测缺陷的两种方法。一种是创建复杂的多层CNN结构,使用不同的网络结构添加图像内容特征,并完成端到端训练以检测图像中的缺陷。

2.基于神经网络的产品缺陷检测工具

AutoEncoder网络的编码和解码阶段是最重要的。这是一种数据压缩技术,其中压缩和解压缩功能是从样本数据中自动学习的,而不是由人类编程的。在编码阶段将输入信号转换为用于特征提取的编码信号;特征信息在解码阶段被转换为重建信号,并且通过调整权重和偏置来最小化重建误差,以在解码阶段实现缺陷检测。

AutoEncoder网络与其他机器学习技术的区别在于,AutoEncode器网络的学习目标是特征学习,而不是分类。它还具有卓越的自学能力,能够进行极为非线性的映射。为了处理分割复杂背景和前景区域的挑战,它可以学习非线性度量函数。

3.深度残差神经网络产品故障检测技术

深度残差网络向卷积神经网络添加残差模块。残差网络具有简单的优化过程,并且可以通过增加网络深度来提高精度。生成对抗网络、CNN等。提取特征随着网络深度的增加而改善,然而,激活函数可能无法收敛。深度残差网络的目标是在增长网络结构的同时优化网络层的数量,使得残差单元中卷积层的输出和输入元素维度相同。

4.全卷积神经网络

当两个相邻层中的所有节点都连接时,该层称为密集层或完全连接层。由于完全连接的神经网络采用完全连接的操作,因此将有更多的权重值,这意味着网络将需要更多的内存和计算。在构建完全连接的神经网络期间,卷积层创建的特征图被映射为固定长度的特征向量。整个卷积神经网络可以拍摄任何大小的输入图片,通过用去卷积层对最后一个卷积层的特征图进行采样,可以恢复到与原始图像相同的大小。

实施

下面,我们实施图像处理技术,这些技术产生的输出类似于深度学习网络可能产生的卷积神经网络中的特征图。

import numpy as np
import cv2
import matplotlib.pyplot as plt

接下来,将创建一个函数,使用图像处理来检测缺陷,以显示不同形式的图像,如hsv、binay、dst、扩张等。

def fab_defect_detect(img):
    image = img.copy()
    hsv = cv2.cvtColor(image,cv2.COLOR_BGR2HSV)
    h = hsv[:,:,0]
    s = hsv[:,:,1]
    v = hsv[:,:,2]


    blr = cv2.blur(v,(16,16))
    dst = cv2.fastNlMeansDenoising(blr,None,10,7,22)
    _,binary = cv2.threshold(dst, 127,256,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
    kernel = np.ones((5,5),np.uint8)
    erosion = cv2.erode(binary,kernel,iterations = 1)
    dilation = cv2.dilate(binary,kernel,iterations = 1)
    if(dilation==0).sum() >1:
        print("Fabric has a defect")
        contours,_ = cv2.findContours(dilation,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
        for i in contours:
            if cv2.contourArea(i) < 261124.0:
                cv2.drawContours(image, i, -1, (0,255,0), 3)
             else:
                  print("There is No Defect in Fabric")
      return img,hsv,v,blr,dst,binary,dilation,image

最后,使用以下命令生成输出。

input_img= cv2.imread('Fabric1.jpg')
image,hsv,v,blr,dst,binary,dilation,img = defect_detect(input_img)
fig, ax = plt.subplots(2,4,figsize=(16,12))
ax[0,0].imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
ax[0,0].set_title('Original Image')
ax[0,1].imshow(cv2.cvtColor(hsv, cv2.COLOR_BGR2RGB))
ax[0,1].set_title('HSV Image')
ax[0,2].imshow(cv2.cvtColor(v, cv2.COLOR_BGR2RGB))
ax[0,2].set_title('V Image')
ax[0,3].imshow(cv2.cvtColor(blr, cv2.COLOR_BGR2RGB))
ax[0,3].set_title('Blur Image')
ax[1,0].imshow(cv2.cvtColor(dst, cv2.COLOR_BGR2RGB))
ax[1,0].set_title('Filter Image')
ax[1,1].imshow(binary,cmap='gray')
ax[1,1].set_title('Binary Image')
ax[1,2].imshow(dilation,cmap='gray')
ax[1,2].set_title('Dilation Image')
ax[1,3].imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
ax[1,3].set_title('Output Image')
fig.tight_layout()

输出

以下是以与第一张原始图像不同的格式生成的图像。

f637359a-a90f-11ed-bfe3-dac502259ad0.png

结论

在本文中,我们了解了什么是深度学习,它是如何工作的,以及我们可以使用什么技术来检测产品中的缺陷,同时学习了如何使用图像处理来检测图像中的缺陷。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码器
    +关注

    关注

    45

    文章

    3562

    浏览量

    133886
  • 神经网络
    +关注

    关注

    42

    文章

    4732

    浏览量

    100366
  • GaN
    GaN
    +关注

    关注

    19

    文章

    1905

    浏览量

    72497
  • 机器学习
    +关注

    关注

    66

    文章

    8335

    浏览量

    132247

原文标题:深度学习工具在缺陷检测中是如何工作的?

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    图像处理应用深度学习的重要性分析

    作者:Martin Cassel,Silicon Software 工业应用FPGA 上的神经元网络(CNN) 深度学习应用凭借其在识别应用超高的预测准确率,在
    的头像 发表于 12-13 11:24 6108次阅读

    labview深度学习PCB插件光学检测

    `labview在检测PCBA插件的错、漏、反等缺陷的应用检测原理通过高精度彩色工业相机不停板实时抓取板卡图像,采取卷积神经网络算法
    发表于 07-13 15:27

    基于深度学习和3D图像处理的精密加工件外观缺陷检测系统

    检测检测准确性和检测稳定性较差、容易误判。 基于深度学习和3D图像
    发表于 03-08 13:59

    印刷缺陷检测图像对准算法

    介绍了基于数字图像处理的印刷品缺陷计算机自动检测系统的设计。该系统能从印刷品图像中提取缺陷
    发表于 07-16 17:59 18次下载

    PCB缺陷检测图像分割算法

    图像分割 在图像处理占有重要的地位,分割结果的好坏直接影响图像的后续处理。本文介绍了4种常用的
    发表于 06-16 15:31 0次下载
    PCB<b class='flag-5'>缺陷</b><b class='flag-5'>检测</b><b class='flag-5'>中</b><b class='flag-5'>图像</b>分割算法

    图像分类的方法之深度学习与传统机器学习

    实际情况非常复杂,传统的分类方法不堪重负。现在,我们不再试图用代码描述每一个图像类别,决定转而使用机器学习的方法处理图像分类问题。 目前,
    发表于 09-28 19:43 0次下载

    深度学习图像超清化的应用

    深度学习的出现使得算法对图像的语义级操作成为可能。本文即是介绍深度学习技术在图像超清化问题上的最
    发表于 09-30 11:15 1次下载
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b>在<b class='flag-5'>图像</b>超清化的应用

    如何在图像处理应用深度学习技术的详细资料概述

    深度学习应用凭借其在识别应用超高的预测准确率,在图像处理领域获得了极大关注,这势必将提升现有图像
    的头像 发表于 03-30 11:31 4404次阅读

    深度学习图像分割的方法和应用

    分析和分类以及机器人和自动驾驶车辆的图像处理等应用上。 许多计算机视觉任务需要对图像进行智能分割,以理解图像的内容,并使每个部分的分析更加
    的头像 发表于 11-27 10:29 3097次阅读

    基于相位偏折术和图像处理结合的缺陷检测

    基于相位偏折术和图像处理结合的缺陷检测
    发表于 06-19 15:47 3次下载

    深度学习图像分割

    深度学习可以学习视觉输入的模式,以预测组成图像的对象类。用于图像处理的主要
    的头像 发表于 05-05 11:35 1190次阅读

    基于Halcon图像处理的表面缺陷检测方案

    本文采用Halcon图像处理软件搭建工业标签表面缺陷检测检测系统,主要
    发表于 07-13 12:19 1362次阅读
    基于Halcon<b class='flag-5'>图像</b><b class='flag-5'>处理</b>的表面<b class='flag-5'>缺陷</b><b class='flag-5'>检测</b>方案

    OpenCV库在图像处理深度学习的应用

    本文深入浅出地探讨了OpenCV库在图像处理深度学习的应用。从基本概念和操作,到复杂的图像
    的头像 发表于 08-18 11:33 820次阅读

    机器视觉在织物缺陷图像识别的应用与分析

    基于图像的织物疵点自动检测技术已成为了该领域近年来的的研究热点,其代替人工织物疵点检测的研究算法也逐渐成为可能,主流方法一般分为两大类, 一是基于传统图像
    发表于 02-20 14:24 455次阅读
    机器视觉在织物<b class='flag-5'>缺陷</b><b class='flag-5'>图像</b>识别<b class='flag-5'>中</b>的应用与分析

    基于深度学习缺陷检测方案

    图像处理通常包括直方图均衡化、滤波去噪、灰度二值化、再次滤波几部分,以得到前后景分离的简单化图像信息;随后利用数学形态学、傅里叶变换、Gabor 变换等算法以及机器学习模型完成
    发表于 04-23 17:23 746次阅读
    基于<b class='flag-5'>深度</b><b class='flag-5'>学习</b>的<b class='flag-5'>缺陷</b><b class='flag-5'>检测</b>方案