当前位置: 首页 > article >正文

芯片封装表面溢胶缺陷检测技术【附代码】

✨ 长期致力于小目标检测、YOLOv5s-SOP、Unet-glue、OpenCV、Matlab-GUI研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1基于Zemax仿真的图像采集装置与Unet-glue分割网络设计针对传感器芯片尺寸小于1cm导致溢胶缺陷采集困难的问题首先在Zemax中光学仿真确定最佳成像距离和镜头参数。采用远心镜头放大倍率0.5x工作距离110mm景深±2mm搭配500万像素工业相机光源为环形白光LED。自主设计图像采集装置平台包括三轴微调支架和防抖动底座采集到的芯片原始图像分辨率为2592x1944ROI裁切后为1024x1024。然后提出Unet-glue分割网络在标准Unet的跳跃连接中加入注意力门控模块增强对溢胶边缘特征的响应并在解码器末端增加胶水分割头和一个辅助的分类头判断溢胶类型过多、过少、合格。损失函数为Dice损失与交叉熵损失的加权和权重系数0.7和0.3。训练数据集为采集的3200张芯片图像手工标注溢胶区域按7:2:1划分。Unet-glue模型在验证集上Dice系数达到0.916溢胶分类准确率94.2%比标准Unet分别提升4.5%和6.1%。在测试集上溢胶过多检测召回率96%溢胶过少检测召回率91%。该模块部署在工控机上单张图像推理时间35ms。2YOLOv5s-SOP表面缺陷检测模块与图像矫正算法针对芯片表面其他缺陷划痕、污点、崩边同时检测的需求改进YOLOv5s网络。在主干网络中添加SE注意力模块压缩比为16提升对通道特征的敏感性。特征金字塔部分增加一个针对小目标的高分辨率检测头160x160使得整体检测头变为四个尺度。锚框聚类使用K-means重新计算得到六组锚框。训练集除了溢胶图像外额外标注2000张包含划痕和崩边的芯片图像。YOLOv5s-SOP在芯片表面缺陷检测任务上的平均精度均值达到0.928相比原YOLOv5s提升5.1个百分点。图像矫正模块针对采集图像中芯片倾斜的情况先使用Hough变换检测芯片边界直线计算旋转角度再通过仿射变换进行校正确保后续溢胶检测在标准姿态下进行。矫正模块的处理时间为12ms矫正后芯片角度误差小于0.3度。两个检测模块可以串联运行首先YOLOv5s-SOP检测整片区域有无明显缺陷若有则报警若无则进入Unet-glue精细分割溢胶区域。该串联检测使平均处理时间控制在60ms以内满足生产线100ms的节拍要求。3OpenCV溢胶判别与Matlab-GUI交互平台集成针对Unet-glue输出的分割掩膜使用OpenCV进行后处理判别溢胶缺陷。首先计算掩膜中溢胶区域的像素面积转换为实际面积标定系数0.0015mm²/像素。然后提取溢胶轮廓的最小外接矩形计算溢胶区域距离芯片边缘的最大扩散距离。设定阈值溢胶面积小于0.05mm²为合格0.05-0.25mm²为轻微溢胶可接受大于0.25mm²为过多溢胶不合格若溢胶区域未覆盖整个焊盘边缘则判为溢胶不足。同时计算溢胶的圆度过大的圆度表明胶水扩散不良。开发Matlab-GUI用户交互界面包含实时视频显示、检测结果图像叠加、历史数据统计和报告导出功能。用户可通过界面选择检测模式单帧/连续查看溢胶区域的伪彩图并将检测结果保存为Excel。界面底层通过TCP/IP与检测算法工控机通信接收检测结果。在航伟光电科技的封装产线上试运行两周共计检测芯片8000颗系统检测准确率98.1%漏检率0.6%过检率1.3%达到合同要求的检测精度。相比人工目检检测速度提升20倍且避免了人为疲劳误判。import cv2 import numpy as np import torch import torch.nn as nn import torch.nn.functional as F class AttentionGate(nn.Module): def __init__(self, F_g, F_l, F_int): super().__init__() self.W_g nn.Sequential(nn.Conv2d(F_g, F_int, 1), nn.BatchNorm2d(F_int)) self.W_x nn.Sequential(nn.Conv2d(F_l, F_int, 1), nn.BatchNorm2d(F_int)) self.psi nn.Sequential(nn.Conv2d(F_int, 1, 1), nn.BatchNorm2d(1), nn.Sigmoid()) def forward(self, g, x): g1 self.W_g(g) x1 self.W_x(x) psi self.psi(F.relu(g1 x1)) return x * psi class UnetGlue(nn.Module): def __init__(self, n_channels3, n_classes1): super().__init__() # Encoder 简略 self.enc1 self.conv_block(n_channels, 64) self.pool1 nn.MaxPool2d(2) self.enc2 self.conv_block(64, 128) self.pool2 nn.MaxPool2d(2) self.enc3 self.conv_block(128, 256) self.pool3 nn.MaxPool2d(2) self.enc4 self.conv_block(256, 512) self.bottleneck self.conv_block(512, 1024) self.up4 nn.ConvTranspose2d(1024, 512, 2, stride2) self.att4 AttentionGate(512, 512, 256) self.dec4 self.conv_block(1024, 512) self.up3 nn.ConvTranspose2d(512, 256, 2, stride2) self.att3 AttentionGate(256, 256, 128) self.dec3 self.conv_block(512, 256) self.up2 nn.ConvTranspose2d(256, 128, 2, stride2) self.att2 AttentionGate(128, 128, 64) self.dec2 self.conv_block(256, 128) self.up1 nn.ConvTranspose2d(128, 64, 2, stride2) self.att1 AttentionGate(64, 64, 32) self.dec1 self.conv_block(128, 64) self.out_conv nn.Conv2d(64, n_classes, 1) self.classifier nn.Linear(1024, 3) # 三分类 def conv_block(self, in_ch, out_ch): return nn.Sequential(nn.Conv2d(in_ch, out_ch, 3, padding1), nn.BatchNorm2d(out_ch), nn.ReLU(inplaceTrue), nn.Conv2d(out_ch, out_ch, 3, padding1), nn.BatchNorm2d(out_ch), nn.ReLU(inplaceTrue)) def forward(self, x): e1 self.enc1(x); p1 self.pool1(e1) e2 self.enc2(p1); p2 self.pool2(e2) e3 self.enc3(p2); p3 self.pool3(e3) e4 self.enc4(p3); p4 self.pool3(e4) b self.bottleneck(p4) d4 self.up4(b); a4 self.att4(d4, e4); d4 torch.cat([a4, d4], dim1); d4 self.dec4(d4) d3 self.up3(d4); a3 self.att3(d3, e3); d3 torch.cat([a3, d3], dim1); d3 self.dec3(d3) d2 self.up2(d3); a2 self.att2(d2, e2); d2 torch.cat([a2, d2], dim1); d2 self.dec2(d2) d1 self.up1(d2); a1 self.att1(d1, e1); d1 torch.cat([a1, d1], dim1); d1 self.dec1(d1) out_mask torch.sigmoid(self.out_conv(d1)) return out_mask def opencv_postprocess(mask, pixel_to_mm20.0015): mask (mask 0.5).astype(np.uint8) * 255 contours, _ cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) if not contours: return no_glue area cv2.contourArea(max(contours, keycv2.contourArea)) * pixel_to_mm2 if area 0.05: return qualified elif area 0.25: return minor_excess else: return excess_glue

相关文章:

芯片封装表面溢胶缺陷检测技术【附代码】

✨ 长期致力于小目标检测、YOLOv5s-SOP、Unet-glue、OpenCV、Matlab-GUI研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)基于Zemax仿真的图像采集装置…...

MATLAB新手也能懂:用Jakes模型仿真120km/h车速下的无线信道衰落(附完整代码)

MATLAB实战:从零构建120km/h车速下的Jakes信道仿真模型 第一次接触无线信道仿真时,我被那些复杂的公式和抽象的概念弄得晕头转向。直到亲手在MATLAB中实现了Jakes模型,看着屏幕上跳动的多普勒谱曲线,才真正理解了移动通信中多普勒…...

基于ChatGPT与智能音箱的AI语音助手:桥接架构与本地化部署实践

1. 项目概述:当智能音箱“学会”了思考最近在折腾一个挺有意思的项目,叫“ChatGPT-OpenAI-Smart-Speaker”。简单来说,就是让一个普通的智能音箱,比如亚马逊的Echo或者谷歌的Home,接入ChatGPT这类大型语言模型的能力。…...

Clawforge SaaS Starter:基于云端AI与Docker的本地开发环境部署指南

1. 项目概述与核心价值 如果你正在寻找一个能快速启动、专注于AI驱动的SaaS应用开发的本地开发环境,并且希望绕过本地GPU部署的复杂性和高昂成本,那么Clawforge SaaS Starter就是你一直在等的那个“开箱即用”的解决方案。这个项目本质上是一个经过精心…...

5分钟掌握FanControl:Windows风扇控制终极解决方案

5分钟掌握FanControl:Windows风扇控制终极解决方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/Fa…...

初创公司如何借助Taotoken快速构建AI功能原型并控制预算

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 初创公司如何借助Taotoken快速构建AI功能原型并控制预算 对于资源有限的初创团队而言,在产品中集成智能对话或内容生成…...

如何优雅地解决网盘下载困境:一个技术爱好者的高效下载方案

如何优雅地解决网盘下载困境:一个技术爱好者的高效下载方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 /…...

5分钟快速上手:TMSpeech离线语音转文字终极指南

5分钟快速上手:TMSpeech离线语音转文字终极指南 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech TMSpeech是一款完全免费的Windows离线语音转文字工具,能够实时将电脑声音或麦克风输入转换为文…...

崩坏星穹铁道模拟宇宙自动化工具架构剖析与实战指南

崩坏星穹铁道模拟宇宙自动化工具架构剖析与实战指南 【免费下载链接】Auto_Simulated_Universe 崩坏:星穹铁道 模拟宇宙自动化 (Honkai Star Rail - Auto Simulated Universe) 项目地址: https://gitcode.com/gh_mirrors/au/Auto_Simulated…...

Nodejs开发者如何通过Taotoken快速集成大模型到现有项目

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Node.js开发者如何通过Taotoken快速集成大模型到现有项目 对于正在使用Node.js构建后端服务或全栈应用的开发者来说,集…...

Midjourney Turbo模式实测报告:启动速度提升3.8倍、出图稳定性达99.2%——但92%用户根本没开对开关

更多请点击: https://intelliparadigm.com 第一章:Midjourney Turbo模式的核心价值与行业影响 加速生成与质量平衡的范式跃迁 Turbo 模式并非简单提速,而是通过动态计算图剪枝、低精度混合推理(FP16/INT8)及缓存感知…...

从草图到精确模型:CAD_Sketcher如何重新定义Blender参数化设计工作流

从草图到精确模型:CAD_Sketcher如何重新定义Blender参数化设计工作流 【免费下载链接】CAD_Sketcher Constraint-based geometry sketcher for blender 项目地址: https://gitcode.com/gh_mirrors/ca/CAD_Sketcher 想象一下这样的场景:你正在Blen…...

5分钟掌握Windows免安装:Postman便携版终极实战指南

5分钟掌握Windows免安装:Postman便携版终极实战指南 【免费下载链接】postman-portable 🚀 Postman portable for Windows 项目地址: https://gitcode.com/gh_mirrors/po/postman-portable 你是否曾在客户现场调试API时,因系统权限限制…...

ESP32连接ROS保姆级教程:用Arduino IDE搞定WiFi通信(附完整代码)

ESP32连接ROS保姆级教程:用Arduino IDE搞定WiFi通信(附完整代码) 如果你手头有一块ESP32开发板,想快速实现与ROS系统的无线通信,却苦于找不到简单明了的教程,那么这篇文章就是为你准备的。我们将从零开始&a…...

3个步骤彻底解决macOS窗口遮挡问题:Topit让你的工作流效率翻倍

3个步骤彻底解决macOS窗口遮挡问题:Topit让你的工作流效率翻倍 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 还在为macOS上窗口遮挡而烦恼吗&…...

NotebookLM+OpenCV工作流提速300%:零代码实现图像标注、缺陷检测与报告生成

更多请点击: https://intelliparadigm.com 第一章:NotebookLM计算机视觉辅助 NotebookLM 是 Google 推出的基于 LLM 的研究型笔记工具,虽原生聚焦文本理解与溯源,但通过合理集成外部视觉模型 API,可构建轻量级计算机视…...

Nginx Server Configs与Docker容器化部署:5步实现高性能Web服务器配置终极指南

Nginx Server Configs与Docker容器化部署:5步实现高性能Web服务器配置终极指南 【免费下载链接】server-configs-nginx Nginx HTTP server boilerplate configs 项目地址: https://gitcode.com/gh_mirrors/se/server-configs-nginx 想要快速搭建安全、高性能…...

终极指南:如何用AntiDupl快速清理电脑中的重复图片,释放宝贵存储空间

终极指南:如何用AntiDupl快速清理电脑中的重复图片,释放宝贵存储空间 【免费下载链接】AntiDupl A program to search similar and defect pictures on the disk 项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl 你是否曾因为电脑里堆积如…...

从Windows CFG到Linux Kernel CFI:手把手教你理解现代操作系统的控制流防护

从Windows CFG到Linux Kernel CFI:现代操作系统控制流防护实战指南 在系统安全领域,控制流劫持攻击始终是最具破坏力的威胁之一。想象一下,攻击者能够像操纵木偶一样控制程序的执行流程,绕过所有安全检查直接获取系统权限——这正…...

解锁VideoLingo高级功能:打造你的AI字幕组全流程定制指南

解锁VideoLingo高级功能:打造你的AI字幕组全流程定制指南 【免费下载链接】VideoLingo Netflix-level subtitle cutting, translation, alignment, and even dubbing - one-click fully automated AI video subtitle team | Netflix级字幕切割、翻译、对齐、甚至加上…...

【零基础部署】Ollama 部署 Qwen2.5 保姆级教程

你是否想在本地运行大语言模型,但又被复杂的环境配置劝退?Ollama 是一款轻量级的本地大模型运行工具,只需一行命令即可部署。Qwen2.5 是阿里巴巴通义千问团队推出的强大开源模型,支持多种规格。本教程将手把手带你通过 Ollama 在 Ubuntu 上部署 Qwen2.5,从安装到 API 调用…...

Midjourney Pro订阅后必须立即配置的4项安全策略(含会话隔离等级、生成日志留存周期与团队权限熔断机制)

更多请点击: https://intelliparadigm.com 第一章:Midjourney Pro订阅后的安全策略总览 完成 Midjourney Pro 订阅后,账户权限提升与 API 接入能力开放同步带来新的安全责任。平台虽默认启用双因素认证(2FA)和会话隔…...

SuperMap GIS 三维性能跃迁:从硬件选型到显卡驱动的深度调优指南

1. 为什么你的SuperMap三维场景总是卡顿? 每次打开大型三维场景时,是不是总遇到画面卡顿、加载缓慢的问题?作为从业十年的GIS工程师,我见过太多项目因为硬件配置不当导致性能浪费的情况。上周刚帮某规划院优化了一个城市级三维项目…...

终极PHP代码规范指南:让你的代码更易读、可维护的10个核心技巧

终极PHP代码规范指南:让你的代码更易读、可维护的10个核心技巧 【免费下载链接】clean-code-php :bathtub: Clean Code concepts adapted for PHP 项目地址: https://gitcode.com/gh_mirrors/cl/clean-code-php clean-code-php是一个将Robert C. Martin的《C…...

如何快速入门Three.js:10个基础案例带你上手三维开发 [特殊字符]

如何快速入门Three.js:10个基础案例带你上手三维开发 🚀 【免费下载链接】three-cesium-examples WebGL Three.js Cesium.js Examples And Demo - WebGL 的 Three.js 和 Cesium.js 案例 --- Star ---点星星 项目地址: https://gitcode.com/gh_mirrors/…...

站点可靠性工程性能监控与调优闭环:10个关键步骤的完整指南

站点可靠性工程性能监控与调优闭环:10个关键步骤的完整指南 【免费下载链接】awesome-sre A curated list of Site Reliability and Production Engineering resources. 项目地址: https://gitcode.com/gh_mirrors/awe/awesome-sre 站点可靠性工程&#xff0…...

多模态AI在移动端测试中的应用:视觉+日志+性能联合分析

一、从单点验证到全景追溯:测试范式的必然演进 移动端测试的复杂性早已超越传统Web应用。设备碎片化、网络环境多变、系统资源受限、跨应用交互频繁,这些因素使得单一维度的测试手段越来越力不从心。过去,测试工程师习惯在UI自动化、接口测试…...

我们训练了一个“Bug预测模型”,上线前就能标记高风险模块

一、引言:当“测试左移”遇见机器学习在软件测试领域,“测试左移”早已不是新鲜概念。我们希望在需求阶段就介入质量保障,在代码编写时就开始设计测试用例,在提测之前就能发现潜在缺陷。然而现实总是骨感:即便有了单元…...

Dism++完全攻略:3分钟掌握Windows系统维护神器

Dism完全攻略:3分钟掌握Windows系统维护神器 【免费下载链接】Dism-Multi-language Dism Multi-language Support & BUG Report 项目地址: https://gitcode.com/gh_mirrors/di/Dism-Multi-language 你是否曾经为Windows系统越用越慢而烦恼?C盘…...

Java 并发容器深度解析:从早期遗留类到现代高并发架构

Java 并发容器的演进历程是 Java 语言在多线程环境下追求性能与安全平衡的缩影。本文将针对 List、Set、Queue(含 Stack)以及 Map 的并发实现方案进行系统化总结,并深度剖析装饰器模式与 Legacy 类的原理差异及底层实现机制。一、 并发容器实…...