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

2023-12-19

【文末送书】今天推荐一本机器视觉领域优质书籍

机器视觉

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

缺陷检测

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

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

在这里插入图片描述

工业上常见缺陷检测方法

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

在这里插入图片描述

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

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

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

在这里插入图片描述
方法五:基于深度学习UNet模型网络,实现裂纹与划痕检测,运行截图如下:

在这里插入图片描述
方法六:基于深度学习实例分割网络模型网络,实现细微缺陷检测,运行截图如下:

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

在这里插入图片描述
OpenCV4应用开发:入门、进阶与工程化实践

贾志刚 张振 著

工业界和学术界专家联袂推荐

一线开发专家与金牌讲师撰写,一站式解决OpenCV工程化开发痛点

推荐语

以工业级视觉应用开发所需知识点为主线,讲透OpenCV相关核心模块,案例化详解1000个常用函数、深度学习知识以及模型的推理与加速。

本书专注于介绍OpenCV4在工业领域的常用模块,通过合理的章节设置构建了阶梯式的知识点学习路径。化繁就简、案例驱动,注重算法原理、代码演示及在相关场景的实际使用。本书还介绍了必备的深度学习知识与开发技巧,拓展OpenCV开发者技能。

文末送书

本次活动赠书一本,参与方式:三连文章,评论区随机抽取中奖粉丝;公布方式及日期:2023.12.25于私信及评论区。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenCV4工业缺陷检测的六种方法 的相关文章

  • 使用 OpenCV 进行车牌识别

    我有一个项目 需要使用 OpenCV 识别汽车的车牌 我想加载数字或字母的图像 让 OpenCV 识别它并将其打印到控制台 有一个函数可以做到这一点吗 如果没有 我该怎么办 Note 我正在研究灰度级 请帮忙 我必须在一周后完成 谢谢你的快
  • 使用 cmake 和 opencv 对符号“gzclose”的未定义引用[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我尝试构建该项目 doppia https bitbucket org rodrigob doppia 但发生链接错误 我想这是一
  • C++ OpenCV imread 无法在 Android 中工作

    我正在尝试读取 C 代码中的图像 LOGD Loading image s n inFile c str Mat img imread inFile CV LOAD IMAGE GRAYSCALE CV Assert img data 0
  • 在opencv中保存帧而不压缩

    我正在尝试使用写 OpenCV 函数 我想保存帧 TIFF扩大 我遇到的问题是保存的图像被压缩 所以我无法使用它们 知道如何摆脱这种压缩吗 提前致谢 不要介意西奇说的话 TIFF 标志通过 LZW 压缩硬编码在 opencv 二进制文件中
  • 如何将 OpenCV 等待键与 Chaquopy 一起使用

    我正在尝试使用 Chaquopy 将计算机视觉应用程序移植到 Android 当我尝试运行脚本时 以下行中出现以下错误 cv2 waitKey 100 打印到嵌入式 python 控制台的错误是 java chaquopy CQPEnv c
  • 收据褪色部分可以恢复吗?

    我有一些包含一些扫描收据的文件 我需要使用 OCR 从中提取文本 由于收据上打印的文字在一段时间后会褪色 导致收据上的某些文字不清晰 影响OCR结果 褪色单词的一些示例 有什么方法可以恢复褪色的部分 以便提高 OCR 结果吗 我在OpenC
  • C++ OpenCV 2.3 中缺少 MoveWindow()

    我正在使用 OpenCV 2 3 的 C 版本 并且正在努力完成一项基本任务 我想做的是创建一个窗口并将其移动到屏幕上的特定位置 例如使用 cv namedWindow My Window 1 cv MoveWindow My Window
  • 如何解决 Python 'Pyzbar' 库的导入错误?

    我刚刚开始熟悉 Pyzbar 库 但是当使用decode方法我得到一个错误 这是代码 import cv2 import numpy as np import pyzbar code image cv2 imread C Users Ace
  • CvMat 和 Imread 与 IpImage 和 CvLoadImage

    使用 OpenCv 2 4 我有两个选项来加载图像 1 CvMat and Imread 2 IpImage and CvLoadImage 使用哪一个更好 我尝试将两者混合并最终出现段错误 imread返回一个Mat not CvMat
  • 使用 openCV 和 python 检测物体

    我正在尝试使用 OpenCV 和 Python 检测下图中的白点 我尝试使用函数 cv2 HoughCircles 但没有成功 我需要使用不同的方法吗 这是我的代码 import cv2 cv import numpy as np impo
  • brew 链接 jpeg 问题

    我正在尝试安装opencv在 Mac OSX Lion 上 brew install opencv 我收到以下错误 以及其他一些类似的错误 Error The linking step did not complete successful
  • opencv中矩阵的超快中值(与matlab一样快)

    我正在 openCV 中编写一些代码 想要找到一个非常大的矩阵数组 单通道灰度 浮点数 的中值 我尝试了几种方法 例如对数组进行排序 使用 std sort 和选择中间条目 但与 matlab 中的中值函数相比 它非常慢 准确地说 在 ma
  • 如何在给定目标大小的情况下在 python 中调整图像大小,同时保留纵横比?

    首先 我觉得这是一个愚蠢的问题 对此感到抱歉 目前 我发现计算最佳缩放因子 目标像素数的最佳宽度和高度 同时保留纵横比 的最准确方法是迭代并选择最佳缩放因子 但是必须有更好的方法来做到这一点 一个例子 import cv2 numpy as
  • 来自 OpenCV 的外部参数

    我正在使用 OpenCV 来校准立体相机对 我拍摄了各种校准照片 并且使用 cv2 calibrateCamera 对内在参数进行了令人满意的拟合 然而 目前尚不清楚如何获取外部参数 该函数仅返回cameraMatrix 尽管它很有用 但实
  • OpenCV的拼接模块可以拼接平行运动相机拍摄的图像吗?

    我想知道是否缝合 http docs opencv org modules stitching doc stitching html http docs opencv org modules stitching doc stitching
  • 如何计算图像中的 RGB 或 HSV 通道组合?

    我使用 python opencv 加载形状为 30 100 3 的图像 现在想要按颜色计算所有颜色的频率 我不是指单个通道 而是指通道组合 含义 3 个频道列表 例如 255 0 0 表示红色 255 255 0 表示黄色 100 100
  • OpenCV 仅围绕大轮廓绘制矩形?

    第一次发帖 希望我以正确的方式放置代码 我正在尝试检测和计算视频中的车辆 因此 如果您查看下面的代码 我会在阈值处理和膨胀后找到图像的轮廓 然后我使用 drawContours 和矩形在检测到的轮廓周围绘制一个框 我试图在 drawCont
  • 无法在 Windows 7 机器中使用 OpenCV 2.4.3、Python 2.7 打开“.mp4”视频文件

    我目前正在进行一个涉及读取 mp4 视频文件的项目 我遇到的问题是它在Windows 7机器上使用Python 2 7 32位 OpenCV 2 4 3 cv2 pyd 代码片段如下 try video cv2 VideoCapture v
  • 如何将输出视频保存到 OpenCV 中的文件中

    我想将输出视频保存到文件中而不是显示它并尝试使用 cvcaptureimage 但仍然无法获得结果 include
  • OpenCV C++ 如何知道每行的轮廓数进行排序?

    我有一个二值图像 https i stack imgur com NRLVv jpg在这张图片中 我可以使用重载的函数轻松地对从上到下 从左到右找到的轮廓进行排序std sort 我首先通过以下方式从上到下排序 sort contours

随机推荐

  • 【计算机毕业设计】外卖小程序

    随着科技的进步 微信小程序慢慢进入了生活当中 由于轻便快捷 方便使用 基于微信这个大平台 使得小程序飞速发展 趋于成熟 因此 针对用户对外卖点餐方面的需求 特开发了本外卖小程序 该外卖小程序分为小程序前端和Java后端系统 遵循数据前后端交
  • YoloV7改进策略:双动态令牌混合器(D-Mixer)的TransXNet,实现YoloV7的有效涨点

    摘要 双动态令牌混合器 D Mixer 一种输入依赖的方式聚合全局信息和局部细节 D Mixer通过分别在均匀分割的特征片段上应用有效的全局注意力模块和输入依赖的深度卷积 使网络具有强大的归纳偏差和扩大的有效感受野 使用D Mixer作为基
  • 【计算机毕业设计】基于微信小程序的电子购物系统

    由于APP软件在开发以及运营上面所需成本较高 而用户手机需要安装各种APP软件 因此占用用户过多的手机存储空间 导致用户手机运行缓慢 体验度比较差 进而导致用户会卸载非必要的APP 倒逼管理者必须改变运营策略 随着微信小程序的出现 解决了用
  • 我的创作纪念日-IT从业者张某某

    机缘 勿忘初心 牢记使命 我成为创作者的初心是什么呢 时间有些久了 回头看下自己的第一篇博客 还是略显青涩的 有种不忍直视的感觉 我的第一篇博客 应该是想记录下工作中的一个演示项目 并想着把这个演示项目通过文章的方向进行记录下来 便于和团队
  • STM32 GPIO工作原理详解

    STM32 GPIO介绍 1 STM32引脚说明 GPIO是通用输入 输出端口的简称 是STM32可控制的引脚 GPIO的引脚与外部硬件设备连接 可实现与外部通讯 控制外部硬件或者采集外部硬件数据的功能 以STM32F103ZET6芯片为例
  • Js new Date() 年月日时分秒的日期时间格式排序

    new Date 日期对象 效果 排序前 2023 12 10 12 01 21 2023 12 10 18 53 09 2023 12 10 08 10 12 2023 12 10 00 06 06 2023 12 10 16 36 08
  • 关于“Python”的核心知识点整理大全26

    目录 10 3 9 决定报告哪些错误 10 4 存储数据 10 4 1 使用 json dump 和 json load number writer py number reader py 10 4 2 保存和读取用户生成的数据 对于用户生
  • 在AI技术的无情侵袭下,学学Java的23种设计模式还是非常有必要的

    目前国内80 程序员的主要工作是调用组合api实现各种业务需求 在顶层架构师设定好的框架下 做着重复且无聊的编码工作 如果未来ai被广泛应用 那么被替代的风险是很高的 比较扎心的是 其实目前用ai生成片段代码已经是各个公司比较普遍的做法了
  • 【计算机毕业设计】南宁周边乡村游

    随着我国经济迅速发展 人们对手机的需求越来越大 各种手机软件也都在被广泛应用 但是对于手机进行数据信息管理 对于手机的各种软件也是备受游客的喜爱 南宁周边乡村游被游客普遍使用 为方便游客能够可以随时进行南宁周边乡村游的数据信息管理 特开发了
  • Java版企业电子招标采购系统源码Spring Cloud + Spring Boot +二次开发+ MybatisPlus + Redis

    功能描述 1 门户管理 所有用户可在门户页面查看所有的公告信息及相关的通知信息 主要板块包含 招标公告 非招标公告 系统通知 政策法规 2 立项管理 企业用户可对需要采购的项目进行立项申请 并提交审批 查看所有的立项信息 主要功能包含 招标
  • 网络攻击3——拒绝服务攻击与缓冲区溢出攻击

    目录 拒绝服务攻击 拒绝服务攻击介绍 分布式拒绝服务攻击介绍 CDN 软件缺陷漏洞 缓冲区溢出 其它高级攻击 拒绝服务攻击 拒绝服务攻击不会破坏信息的机密性和完整性 而是破坏服务的可用性 拒绝服务攻击分为两大类 DoS 拒绝服务攻击 DDo
  • Java设计模式:模板方法模式

    作者主页 欢迎来到我的技术博客 个人介绍 大家好 本人热衷于 Java后端开发 欢迎来交流学习哦 如果文章对您有帮助 记得 关注 点赞 收藏 评论 您的支持将是我创作的动力 让我们一起加油进步吧 文章目录 一 模板方法模式的定义 二 模板方
  • 【计算机毕业设计】基于微信小程序的二手闲置交易市场系统

    随着计算机技术的成熟 互联网的建立 如今 PC平台上有许多关于二手闲置交易方面的应用程序 但由于使用时间和地点上的限制 用户在使用上存在着种种不方便 而开发一款基于微信小程序的二手闲置交易市场系统 能够有效地解决这个问题 本基于微信小程序的
  • 【计算机毕业设计】网络小说微信小程序

    社会的发展和科学技术的进步 互联网技术越来越受欢迎 网络小说也逐渐受到广大人民群众的喜爱 也逐渐进入了每个用户的使用 网络小说具有便利性 速度快 效率高 成本低等优点 因此 构建符合自己要求的操作系统是非常有意义的 本文从管理员 用户的功能
  • 如何看待名企的内推策略?

    内推肯定是可行的 现在 多数名企大厂都会有内推 不管是社招 还是校招 实习 有些公司通过内推获取的 简历数量甚至占到了总简历量的1 3 质量一般也不错 成本相对更低一些 内推想要做好 有效果 需要做到以下几点 做好内部宣贯工作 充分调动内部
  • pytest自动化框架运行全局配置文件pytest.ini

    还记得在之前的篇章中有讲到Pytest是目前主要流行的自动化框架之一 他有基础的脚本编码规则以及两种运行方式 pytest的基础编码规则是可以进行修改 这就是今日文章重点 看到这大家心中是否提出了两个问题 pytest的基础编码规则在哪可以
  • 钡铼无线R10A工业级路由器在工业机器人领域的创新应用

    随着工业机器人的普及 对于高可靠性和高稳定性的网络接入设备的需求也越来越大 传统的有线网络虽然稳定 但在现场布置和维护上面临很多困难 而无线网络虽然方便 但受到信号干扰和传输距离限制等问题的影响 如何解决这些问题 提高工业机器人在生产过程中
  • shell中的sort和uniq命令

    参考链接sort https www runoob com linux linux comm sort html 参考链接uniq https www runoob com linux linux comm uniq html 一 sort
  • 如何提高云服务器的安全性

    近年来 随着人们对云技术不断研发 可以说依托云技术出现的产物是十分的炙手可热 云服务器目前已用作企业和个人的常 用服务器产品 与传统服务器架构不同 云服务器为用户带来了非常有效和便捷的用户体验 值得站长们注意的是 在云服务 器的实际使用中
  • OpenCV4工业缺陷检测的六种方法

    文末送书 今天推荐一本机器视觉领域优质书籍 机器视觉 机器视觉是使用各种工业相机 结合传感器跟电气信号实现替代传统人工 完成对象识别 计数 测量 缺陷检测 引导定位与抓取等任务 其中工业品的缺陷检测极大的依赖人工完成 特别是传统的3C制造环