基于深度学习多图像融合的屏幕缺陷检测方案

公司项目,已申请专利。

深度学习作为新兴技术在图像领域蓬勃发展,因其自主学习图像数据特征的性能避免了人工设计算法的繁琐,精准的检测性能、高效的检测效率以及对各种不同类型的图像任务都有比较好的泛化性能,使得深度学习技术在图像领域得到广泛应用,包括图像检测、图像分类、图像重构等。

屏幕缺陷检测作为保障显示屏质量的重要步骤在显示屏生产过程中占有重要位置,屏幕缺陷包括点线缺陷比如暗点暗线,Mura缺陷,外观缺陷等。显示屏缺陷需要通过高清工业相机拍照成像后再由算法进行检测,而不同的缺陷需要通过不同的光学方案才能得到较为清晰的图像,光学方案包括相机拍摄角度包括正视斜视,打光方案包括光源强度及光源角度等,因此不同屏幕缺陷类型或者同一类缺陷类型的不同表现需要通过不同的光学方案得到多张拍摄图像供算法处理。

多张图像的处理增加了算法的工作量以及需要后期对多张图像进行检出结果整合,需要考虑不同图像中同一个缺陷的像素位置对齐的问题,增加了算法的复杂度。

深度学习图像算法通过提取图像中的特征信息,在高维空间中构建特征向量空间,可以通过提取多张图像中的特征信息,在高维空间中进行融合,将多张图像中的缺陷信息融合在一个统一的高维特征信息空间中,实现端到端(End-To-End)的屏幕缺陷检测,通过融合不同光学方案下的单一缺陷图像,整合不同图像中的多维缺陷信息,提高缺陷检测的精度,消除传统算法分别对多张图像进行处理后再做结果整合的弊端,提高屏幕缺陷检测效率。

本专利将深度学习中的多图像融合技术应用于显示屏缺陷的检测中,设计出一种基于Mixed-Attention结构的神经网络,称为MIFT-Net(Multi Image Fuse Test Net),对同一个缺陷显示屏进行不同光学方案的拍照,得到多张不同的图像,通过对各个图像进行特征提取及特征对齐融合,使用多头混合注意力机制进行各个图像特征的对齐融合,形成统一的高维特征空间,通过对同一个缺陷在不同图像中的特征进行特征信息整合,得到该缺陷更加清晰更加全面丰富的缺陷信息,提高检测效率。本专利缺陷检测部分属于开放方式,可以使用各种不同检测模块处理不同缺陷任务,即可以进行多任务处理,大大增强了模型的泛化性,提高了模型的通用性。

本专利提出了一种基于深度学习多图像融合的屏幕缺陷检测方案,使用不同光学方案对同一个缺陷屏幕进行拍照取图,包括相机参数的不同设置,相机拍摄角度以及不同光源的打光方案,得到同一个缺陷屏幕的不同成像方式的多张图像,通过神经网络卷积操作对多张图像进行特征提取,通过混合注意力机制对各张不同特征图进行特征对齐融合,统一编码成一个高维特征信息向量空间,然后在这个统一特征空间中进行后期缺陷检测。

在图像特征信息提取阶段,使用基于金字塔结构的分层卷积方式,融合同一张图像中不同层次的特征信息,能更好地得到整张图像全面丰富的特征信息。在多图像特征融合阶段,使用基于Self-Attention和Cross-Attention的多头混合注意力机制,对同一缺陷屏幕多张不同的特征图进行特征对齐,融合各张图像的多角度信息。针对缺陷屏幕图像分辨率高,缺陷像素面积小的特点,使用基于Deformable Attention的混合注意力机制,使得大大减少计算量,更加关注缺陷部分及其周围像素的特征而或略远处无关像素的信息,提高缺陷特征的提取精度及效率,创新性地在互注意力模块中也使用了Deformable Attention,能更好的得到各张不同图像特征中的对齐信息。

Deformable Attention

将Transformer注意力应用到图像特征图上的核心问题是,它将查看所有可能的空间位置。为了解决这个问题,可变形注意模块只关心参考点周围的一小组关键采样点,而不考虑特征图的空间大小。通过为每个查询分配少量固定数量的键,可以缓解收敛性和特征空间分辨率问题。

给定一个输入特征图 x ∈ R C × H × W使q为上下文特征 Z q的查询元素, P q ​为一个二维参考点,可变形注意力特征可以通过以下方式计算:

 

输入特征图 x(C x H x W),特征图中每个像素点都是一个C通道的向量 z q,每个像素点的索引(Reference Point)也就是二维位置坐标为 p q。M代表多头注意力机制中头的数目。每一个头中只考虑 z q附近 K个点(K远小于H x W)。 Δ p m q k代表采样的位置偏移量,是一个二维的坐标(初始化采样点是固定的,但后续将通过全连接层计算预测更加值得关注的点的坐标)。 A m q k ​代表注意力的权重( ∑ k = 1 A m q k = 1)。 W m 和W ’ m代表两组全连接层的权重参数。

两个需要学习预测的值 A m q k ​和 Δ p m q k ​都是通过 z q计算而来的。

  1. 其中位置偏移delta_pmqk是可学习的,由query经过全连接层得到。

b.注意力权重直接由query经过全连接层得到。
c.每个query在每个头部中采样K个位置,只需和这些位置的特征交互(x(pq+delta_pmqk)代表基于采样点位置插值出来的value)

Deformable-Attention通过仅计算某个特征点附近有限个其他特征点而不是计算整张特征图中所有特征点,大大降低了计算量,并且使得该特征点忽视了很多和它本身无关的其他特征点,使得注意力计算更加精准,特别适合分辨率较大且缺陷所占像素较少的图像。

光学方案及缺陷图像获取

缺陷照片获取

本专利使用的是监督学习的深度学习技术,通过一个垂直缺陷屏幕的主相机和两个带有侧光源的斜视相机,得到三张缺陷屏幕图像。

 照片预处理

对于通过拍照获取的缺陷图片,在送入AI神经网络进行训练前,需要对图片进行一些预处理工作,包括图片裁剪和图片数据集增强等。

图片裁剪缩放:使用相机拍摄得到的缺陷图像除了显示器屏幕部分外还包括一些周围背景部分,这部分图像是不需要的,可能会对AI神经网络的训练及检测带来影响,且多出来的图像也会增加AI神经网络训练和测试时的时间成本以及GPU显存消耗,因此需要通过裁剪的方式去除这些无用图像,只保留原图片内容。并使原图和拍照图的长宽为2的次方,便于后期AI运算。

数据集增强:AI神经网络训练时需要大量的样本图片,通过从大量样本中学习到的数据特征进行建模,有些时候数据集并不是那么充分且通过拍照增加数据集需要额外的时间人力成本,需要通过数据增强方式人为“增加”样本数据,数据增强包括对照片进行旋转、偏移、镜像、裁剪、拉伸、灰度变换等图像操作,使得新图片和原图“看起来”不一样,一定意义上生成了新的图片,扩充了数据集。

基于深度学习多图像融合的神经网络

本专利MIFT-Net神经网络分为图像特征提取的Backbone(左侧),不同图像间特征对齐及融合的注意力模块(中间)以及作为缺陷检测的Detect Head模块(右侧)。

整个神经网络分为三部分,左边为图像特征提取模块,通过三台相机拍照得到三张图像,一张主视图,两张侧视图,通过Backbone提取各自的图像特征信息;将三张图像的特征信息送入中间的特征对齐融合模块,使用多头混合注意力机制融合三张图像各自的特征信息并进行特征对齐,然后通过通道叠加以及卷积操作,生成统一的高维特征信息空间,送入检测头模块;右边的检测头模块根据得到的统一特征信息,进行后续各类缺陷检测。 

特征提取Backbone

通过多次使用基于金字塔FPN的图像信息提取模块+区域像素注意力模块RPA+特征压缩模块FS+注意力Dropout模块,从三张图像中得到各自的特征信息。

金字塔特征提取模块FPN

FPN通过对输入不同层特征进行多次提取及融合,利用各层特征图的多角度信息,更好的提取输入图像的全局特征信息,并且通过Res连接在深层特征中直接加入浅层特征信息,避免了特征信息消散的弊端。

输入特征图F1经过4个卷积块生成4个分层特征(F2-F5),每个分层特征大小为前一层的一半,通道是前一层的两倍,F5特征层得到中间结果特征层D5。

D5进过双线性插值得到R5,使得特征大小尺寸和F4相同,R5再和F4按特征通道进行叠加,再进过一个1×1卷积块进行通道间特征融合,之后再和R5进行加和操作,再进过一个1×1卷积块中间结果特征层D4。

D4和R5进行加和操作,进过双线性插值得到R4,使得特征大小尺寸和F3相同,R4再和F3按特征通道进行叠加,再进过一个1×1卷积块进行通道间特征融合,之后再和R4进行加和操作,再进过一个1×1卷积块中间结果特征层D3。

D3和R4进行加和操作,进过双线性插值得到R3,使得特征大小尺寸和F2相同,R3再和F2按特征通道进行叠加,再进过一个1×1卷积块进行通道间特征融合,之后再和R3进行加和操作,再进过一个1×1卷积块中间结果特征层D2。

D2进过双线性插值得到R2,使得特征大小尺寸和F1相同,R2再和F1按特征通道进行叠加,再进过一个1×1卷积块进行通道间特征融合,之后再和R2进行加和操作,再进过一个1×1卷积块中间结果特征层D1。

D1和R2进行加和操作,得到最终结果R1,R1的特征尺寸和F1相同,通道数比F1多。

区块像素注意力模块RPA

RPA给输入特征的每块区域像素分配一个权重,使得神经网络对于图像特征明显的区域更加关注。输入特征(B,C,H,W)先经过一个BatchNorm-DefConv-ReLU进行通道压缩为(B,C*r,H/2,W/2),r<1;再经过一个BatchNorm-DefConv还原成(B,C,H/4,W/4),通过SigMoid函数生成每个像素值的权重,最后使用双线性插值还原成(B,C,H,W),和原输入特征一对一相乘相乘。

Feature Squeeze

使用卷积对上一层输出的特征图进一步提取缺陷特征信息,并压缩特征图的长宽。

注意力Dropout

基于注意力的Dropout方法,不同于一般Dropout使用的随机方式,利用注意力保留更重要的特征信息,使得神经网络的性能和泛化性更好。

对输入特征经过两个批次归一化+可变性卷积+ReLU/SigMiod,生成和原特征形同尺寸的注意力矩阵,根据注意力矩阵的值,将注意力小于阈值的原特征矩阵对应位置神经元置零。

多图像特征融合模块

通过使用多头(N个)混合注意力机制,每个混合注意力头里多次(k次)使用基于Deformable-Attention的自注意力机制+基于Deformable-Attention的互注意力模块+加和/标准化操作,对齐并融合三张不同图像的特征信息,再将各个混合注意力头的输出通过一个通道叠加以及卷积操作,得到统一的特征信息空间。

多头注意力机制能够从不同角度得到图像的更全面信息,Cross Attention模块可以对多张图像特征进行特征信息的对齐以及融合,Deformable Attention模块通过只关注某个特征点附近有限个特征点的信息而计算所有特征点的信息,更加关注和该特征点关联大的其他特征点,有效解决缺陷图像大分辨率带来的计算量激增以及小尺寸缺陷难以检测的问题。

注意力机制模块

输入三组特征编码得到三组Query和Value值,然后两两分组,使用Query值互相进行基于Deformable-Attention的互注意力计算,将结果进行通道叠加再使用1×1卷积进行通道特征融合,得到三组Z值。

混合注意力机制 

输入三个图像特征编码得到三组Query和Value值,这三组(Q,V)首先各自进行基于Deformable-Attention的自注意力计算,得到各自的Z值,再编码得到三组新的Query和Value值,然后两两分组,各自进行互注意力计算,得到三组新的Z值,和之前的Z值进行加和操作并标准化。

结果送入下一次注意力模块,把每次加和操作并标准化的结果进行按通道叠加,并把每次注意力机制的输出结果进行加和操作。

生成统一特征信息空间 

将注意力模块的各个输出特征结果进行通道叠加和卷积处理,得到一个统一的特征信息空间,对齐并融合了三张原始图像各自的缺陷特征信息,得到整张显示屏的整体信息,供下一步检测处理。

Detect HEAD 

得到整张显示屏多图像的统一特征信息空间后,就可以进行显示屏缺陷检测,本专利该模块属于开放性部分,可以用于不同的缺陷检测任务,包括分类网络、目标检测网络、分割网络等,同一个检测任务也可以使用各种不同检测头。

本专利通过对缺陷显示屏使用不同的光学方案进行多次拍照,得到不同拍摄角度和拍摄方式的三张不同图像,使用深度学习神经网络的方式得到三张图像的特征信息,并加以特征对齐和融合,形成一个统一的特征信息空间,全面包含了三张图像中的不同信息,得到更加全面完整的缺陷特征,使得后期的检测任务可以使用三张图像中的多个角度丰富的缺陷信息,使得缺陷检测精度大大提高,也避免了传统多图像算法需要对各张图像单个处理的弊端,消除了单张图像中缺陷信息不完整不丰富的缺点,以及免除了传统算法后期需要进行多张图像特征对齐的麻烦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/494229.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据库】Redis—Java 客户端

一、常见的几种 Java 客户端 Jedis&#xff1a;以 Redis 命令作为方法的名称&#xff0c;便于学习&#xff0c;简单实用&#xff0c;但其实例是线程不安全的&#xff0c;多线程下需要基于连接池来使用。lettce&#xff1a;基于 Netty 实现&#xff0c;支持同步、异步和响应式编…

重拾设计模式--观察者模式

文章目录 观察者模式&#xff08;Observer Pattern&#xff09;概述观察者模式UML图作用&#xff1a;实现对象间的解耦支持一对多的依赖关系易于维护和扩展 观察者模式的结构抽象主题&#xff08;Subject&#xff09;&#xff1a;具体主题&#xff08;Concrete Subject&#xf…

贪心算法 part01

class Solution { public:int maxSubArray(vector<int>& nums) {int result INT32_MIN;int count 0;for (int i 0; i < nums.size(); i) {count nums[i];if (count > result) { // 取区间累计的最大值&#xff08;相当于不断确定最大子序终止位置&#xff…

Pytorch | 利用NI-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击

Pytorch | 利用NI-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集NI-FGSM介绍背景算法流程 NI-FGSM代码实现NI-FGSM算法实现攻击效果 代码汇总nifgsm.pytrain.pyadvtest.py 之前已经针对CIFAR10训练了多种分类器&#xff1a; Pytorch | 从零构建AlexNet对CIFAR10进行…

SAP抓取外部https报错SSL handshake处理方法

一、问题描述 SAP执行报表抓取https第三方数据,数据获取失败。 报错消息: SSL handshake with XXX.COM:449 failed: SSSLERR_SSL_READ (-58)#SAPCRYPTO:SSL_read() failed##SapSSLSessionStartNB()==SSSLERR_SSL_READ# SSL:SSL_read() failed (536875120/0x20001070)# …

AI开发:使用支持向量机(SVM)进行文本情感分析训练 - Python

支持向量机是AI开发中最常见的一种算法。之前我们已经一起初步了解了它的概念和应用&#xff0c;今天我们用它来进行一次文本情感分析训练。 一、概念温习 支持向量机&#xff08;SVM&#xff09;是一种监督学习算法&#xff0c;广泛用于分类和回归问题。 它的核心思想是通过…

信奥赛四种算法描述

#include <iostream> #include <iomanip> using namespace std;// 使用unsigned long long类型来尽量容纳较大的结果&#xff0c;不过实际上这个数值极其巨大&#xff0c;可能最终仍会溢出 // 更好的方式可以考虑使用高精度计算库&#xff08;如GMP等&#xff09;来…

Ajax中的axios

既然提到Ajax&#xff0c;那就先来说一说什么是Ajax吧 关于Ajax Ajax的定义 Asynchronous JavaScript And XML&#xff1a;异步的JavaScript和XML。 反正就是一句话总结&#xff1a; 使用XML HttpRequest 对象与服务器进行通讯。 AJAX 是一种在无需重新加载整个网页的情况下&…

vscode 使用说明

文章目录 1、文档2、技巧显示与搜索宏定义和包含头文件 3、插件4、智能编写5、VSCode 与 C&#xff08;1&#xff09;安装&#xff08;2&#xff09;调试&#xff08;a&#xff09;使用 CMake 进行跨平台编译与调试&#xff08;b&#xff09;launch.json&#xff08;c&#xff…

多功能护照阅读器港澳通行证阅读机RS232串口主动输出协议,支持和单片机/Linux对接使用

此护照阅读器支持护照、电子芯片护照、港澳通行证、台湾通行证&#xff0c;和串口的被动的方式不一样。此护照阅读器通电后&#xff0c;自动读卡&#xff0c;串口输出&#xff0c;软件只需要去串口监听数据即可&#xff0c;例如用串口助手就可以收到读卡信息。 非常适用于单片…

petalinux-adi ---移植adi内核(一)

1. 设备树生成 将 前 面 生 成 的 设 备 树 文 件 ( 笔 者 这 里 生 成 的 设 备 树 文 件 在Petalinux 工 程 的components/plnx_workspace/device-tree/device-tree/ 目 录 下 ) pcw.dtsi 、 pl.dtsi 、system-top.dts 以 及 zynq-7000.dtsi 四 个 文 件 直 接 拷 贝 到 内 …

基于MindSpore NLP的PEFT微调

创建notebook 登录控制台 创建notebook 如果出现提示按如下操作 回到列表页面创建notebook参数如下&#xff1a; 配置mindnlp环境 打开GitHub - mindspore-lab/mindnlp: Easy-to-use and high-performance NLP and LLM framework based on MindSpore, compatible with model…

centos-stream9系统安装docker

如果之前安装过docker需要删除之前的。 sudo dnf -y remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine 安装yum-utils工具&#xff1a; dnf -y install yum-utils dnf-plugin…

Redis存在安全漏洞

Redis是美国Redis公司的一套开源的使用ANSI C编写、支持网络、可基于内存亦可持久化的日志型、键值&#xff08;Key-Value&#xff09;存储数据库&#xff0c;并提供多种语言的API。 Redis存在安全漏洞。攻击者利用该漏洞使用特制的Lua脚本触发堆栈缓冲区溢出漏洞&#xff0c;从…

黑马Java面试教程_P8_并发编程

系列博客目录 文章目录 系列博客目录前言1.线程的基础知识1.1 线程和进程的区别&#xff1f;难2频3面试文稿 1.2 并行和并发有什么区别&#xff1f; 难1频1面试文稿 1.3 创建线程的四种方式 难2频4面试文稿 1.4 runnable 和 callable 有什么区别 难2频3面试文稿 1.5 线程的 run…

ubuntu22.04 nginx配置下载目录,亲测成功

安装nginx ubuntu最简单&#xff0c;apt安装即可 apt install nginx 配置文件 文件都在目录下 /etc/nginx/添加内容 修改/ etc/nginx/sites-available/default &#xff0c; 注意这里不是nginx.conf&#xff0c;直接修改nginx.conf不奏效 location /downloads { …

【从零开始入门unity游戏开发之——C#篇21】C#面向对象的封装——`this`扩展方法、运算符重载、内部类、`partial` 定义分部类

文章目录 一、this扩展方法1、扩展方法的基本语法2、使用扩展方法3、扩展方法的注意事项5、扩展方法的限制6、总结 二、运算符重载1、C# 运算符重载2、运算符重载的基本语法3. 示例&#xff1a;重载加法运算符 ()4、使用重载的运算符5、支持重载的运算符6、不能重载的运算符7、…

android EditText密码自动填充适配

android上的密码&#xff08;其实不仅仅是密码&#xff0c;可以是用户名也可以是邮箱&#xff09;自动填充&#xff0c;是需要考虑适配的。 官方文档&#xff1a;https://developer.android.com/identity/autofill/autofill-optimize?hlzh-cn 什么是自动填充 手机厂商一般会…

stm32制作CAN适配器5--WinUsb上位机编写

上次我们要stm32制作了一个基于winusb有canfd适配器&#xff0c;今天我们来制作一个上位机程序来进行报文收发。 上位机还是用以前写好的&#xff0c;只是更改下dll文件。 项目链接器&#xff0c;输入&#xff0c;附加依赖项中增加winusb.lib winusb初始化&#xff1a;#incl…

数据库管理系统——数据库设计

摘要&#xff1a;本博客讲解了数据库管理系统中的数据库设计相关内容&#xff0c;包括概念结构设计&#xff1a;E-R模型&#xff0c;逻辑结构设计&#xff1a;E-R模型到关系设计等内容。 目录 一、数据库设计和数据模型 1.1.数据库设计概述 1. 2.数据库结构概述 1.3.数据库…