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

OpenCV4工业缺陷检测的六种方法

👨‍🎓博主简介

  🏅云计算领域优质创作者
  🏅华为云开发者社区专家博主
  🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗


文章目录

  • 机器视觉
  • 缺陷检测
  • 工业上常见缺陷检测方法
  • 文末福利
  • 中奖名单 -- 待定

机器视觉

机器视觉是使用各种工业相机,结合传感器跟电气信号实现替代传统人工,完成对象识别、计数、测量、缺陷检测、引导定位与抓取等任务。其中工业品的缺陷检测极大的依赖人工完成,特别是传统的3C制造环节,产品缺陷检测依赖于人眼睛来发现与检测,不仅费时费力还面临人员成本与工作时间等因素的制约。使用机器视觉来实现产品缺陷检测,可以节约大量时间跟人员成本,实现生产过程的自动化与流水线作业。

缺陷检测

常见得工业品缺陷主要包括划痕、脏污、缺失、凹坑、裂纹等,这些依赖人工目检(眼睛检测)的缺陷都可以通过机器视觉的缺陷检测算法来实现替代。当前工业缺陷检测算法目前主要分为两个方向,基于传统视觉的算法和基于深度学习的算法,前者主要依靠对检测目标的特征进行量化,比如颜色,形状,长宽,角度,面积等,好处是可解释性强、对样本数量没有要求、运行速度快,缺点是依赖于固定的光照成像,稍有改动就要改写程序重新部署,而且检测规则和算法跟开发者经验其主导作用。基于深度学习的缺陷检测算法刚好能弥补前者的不足之处,能够很好适应不同的光照,更好地适配同类缺陷要求,缺点是对样本数量有一定要求,对硬件配置相比传统也会有一定要求。

《OpenCV应用开发:入门、进阶与工程化实践》一书第十四 章 通过案例详细介绍基于OpenCV如何实现传统方式的缺陷检测跟基于深度学习的缺陷检测。

在这里插入图片描述

工业上常见缺陷检测方法

  • 方法一:基于简单二值图像分析实现划痕提取,效果如下:

在这里插入图片描述

  • 方法二:复杂背景下的图像缺陷分析,基于频域增强的方法实现缺陷检测,运行截图:

在这里插入图片描述

  • 方法三:复杂背景下的图像缺陷分析,基于空域增强实现图像缺陷分析,针对复杂背景的图像,通过空域滤波增强以后实现缺陷查找,运行截图如下:

在这里插入图片描述

  • 方法四:基于样品模板比对实现基于空域增强实现图像缺陷分析,通过二之分析与轮廓比对实现缺陷查找,运行截图如下:

在这里插入图片描述

  • 方法五:基于深度学习UNet模型网络,实现裂纹与划痕检测,运行截图如下:

在这里插入图片描述

  • 方法六:基于深度学习实例分割网络模型网络,实现细微缺陷检测,运行截图如下:

在这里插入图片描述

以上内容均来自最近出版的一本新书《OpenCV应用开发:入门、进阶与工程化实践》一书第十四章,分享给大家。

延伸阅读

在这里插入图片描述

OpenCV4应用开发:入门、进阶与工程化实践
贾志刚 张振 著
工业界和学术界专家联袂推荐
一线开发专家与金牌讲师撰写,一站式解决OpenCV工程化开发痛点
  • 推荐语:

以工业级视觉应用开发所需知识点为主线,讲透OpenCV相关核心模块,案例化详解1000个常用函数、深度学习知识以及模型的推理与加速。
本书专注于介绍OpenCV4在工业领域的常用模块,通过合理的章节设置构建了阶梯式的知识点学习路径。化繁就简、案例驱动,注重算法原理、代码演示及在相关场景的实际使用。本书还介绍了必备的深度学习知识与开发技巧,拓展OpenCV开发者技能。

文末福利

《OpenCV应用开发:入门、进阶与工程化实践》免费包邮送出!

在这里插入图片描述

推荐购买链接:https://item.jd.com/10092255924058.html

  • 抽奖方式:评论区随机抽取小伙伴免费送出!送出几本基于阅读量来决定。
  • 参与方式:关注博主、点赞、收藏、评论区任意评论即可(切记要点赞+收藏,否则抽奖无效!)
  • 活动截止时间:2023-12-25 10:00:00

中奖名单 – 待定

http://www.lryc.cn/news/264633.html

相关文章:

  • ICC2:Less than minimum edge length和Concave convex edge enclosure
  • RouterSrv-DHCP
  • 【人生苦短,我学 Python】(8)文件的读写和过滤器
  • 智能优化算法应用:基于饥饿游戏算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • leetCode算法—10. 正则表达式匹配
  • Android Studio 实现音乐播放器
  • 端口占用命令 netstat (centos)+netstat (windows)
  • Python-基于fastapi实现SSE流式返回(类似GPT)
  • iOS中宿主APP与录屏扩展进程数据传递方式
  • Windows系统下的可用RADIUS软件-[资源]
  • 基于VUE3+Layui从头搭建通用后台管理系统(前端篇)十五:基础数据模块相关功能实现
  • MAC苹果笔记本电脑如何彻底清理垃圾文件软件?
  • 【Linux C | 文件I/O】文件的打开关闭 | open、creat、colse 函数
  • 【BEV感知】BEVFormer 融合多视角图形的空间特征和时序特征 ECCV 2022
  • Amazon Toolkit — CodeWhisperer 使用
  • Flink SQL填坑记2:Flink和MySQL的Bigdata类型不同导致ClassCastException报错
  • 本地MinIO存储服务如何创建Buckets并实现公网访问上传文件
  • 通过https协议访问Tomcat部署并使用Shiro认证的应用跳转登到录页时协议变为http的问题
  • Backend - Django 项目创建 运行
  • C# .Net学习笔记—— Expression 表达式目录树
  • 《论文阅读28》Unsupervised 3D Shape Completion through GAN Inversion
  • 一个正则快速找到在ES中使用profile的时产生慢查询的分片
  • 链接未来:深入理解链表数据结构(一.c语言实现无头单向非循环链表)
  • Python tkinter控件全集之组合选择框 ttk.ComboBox
  • Axure之中继器的使用(交互动作reperter属性Item属性)
  • 数字化医疗新篇章:构建智能医保支付购药系统
  • 11_12-Golang中的运算符
  • k8s-ingress特性 9
  • 【redis】redis系统实现发布订阅的标准模板
  • Python 时间日期处理库函数