IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 基于MATLAB的胶囊缺陷检测 -> 正文阅读

[人工智能]基于MATLAB的胶囊缺陷检测

目录

源码下载

1. Introduction

?2 Proposed approach

2.1 胶囊板位置获取

2.2 去雾算法增强对比度

2.3 胶囊位置获取

2.4 胶囊位置校正

2.5 基于二值图像面积占比的胶囊缺陷检测

2.6 基于RGB直方图相似性的胶囊缺陷检测

3 Experimental results and analysis

3.2 去雾算法增强对比度

3.4 胶囊位置校正

?3.5 基于二值图像面积占比的胶囊缺陷检测

3.6 基于RGB直方图相似性的胶囊缺陷检测

4 Conclusion

References ?


源码下载

基于MATLAB的胶囊缺陷检测.rar-图像处理文档类资源-CSDN下载基于MATLAB的胶囊缺陷检测更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/qq_42816065/75304192


GitHub - PoistRXE/Caspsule_Defect_dectection: 基于MATLAB的胶囊缺陷检测icon-default.png?t=LBL2https://github.com/PoistRXE/Caspsule_Defect_dectection

1. Introduction

?任务说明:找到所有胶囊的位置,正确的胶囊标绿色的方框,错误的胶囊标红色,错误的胶囊存在如下缺陷:漏装胶囊、胶囊放置在错误的位置、胶囊泄漏内部药粉、胶囊被挤压变形等。如图1所示分别为漏装胶囊、胶囊放置在错误的位置、胶囊泄漏内部药粉、胶囊被挤压变形对应的实物图。

Fig.1 漏装胶囊、胶囊放置在错误得位置、胶囊泄漏内部药粉、胶囊被挤压变形(从左至右)

To solve the problem:

1.找到胶囊板的位置,将其进行定位并从背景中提取出来。

2.找到每一个胶囊的位置,对其进行定位并从胶囊板背景中的提取出来。

3.对胶囊进行缺陷检测,将正确的胶囊标绿色方框,错误的胶囊标红色方框。

?2 Proposed approach

?The proposed approach includes:

利用常规的开闭运算和连通域识别来获取胶囊板的位置;利用去雾算法增强胶囊与胶囊板背景之间的对比度,在HSV空间提取出胶囊的信息;利用开闭运算、图像重建、连通域识别获取胶囊的位置及其外接矩形的大小;对胶囊位置进行矩阵式重排列,并利用template中的位置信息作为模板对待检测的胶囊位置进行位置校正、对胶囊的外接矩形大小进行校正;利用校正后的胶囊位置和外接矩形将每一个胶囊从原始图像和中间二值图像中截取出来原始胶囊图集ISRC和二值胶囊图集IBW;对二值胶囊图集IBW中的每一个胶囊进行面积检测,通过判断面积占比来检测漏装胶囊、胶囊泄漏内部药粉、胶囊被挤压变形这三种缺陷;对原始胶囊图集ISRC中的每一个胶囊进行RGB检测,通过计算RGB三个通道的直方图相似性获取每一张图片相互比对后的相似性系数矩阵,分析矩阵来检测胶囊放置在错误的位置这种缺陷;最后将正确的胶囊标绿色方框,错误的胶囊标红色方框。

2.1 胶囊板位置获取

观察图像,发现药板和黑色背景对比度较强,可以用简单的开闭运算和连通域识别来获取胶囊板的位置。

2.2 去雾算法增强对比度

观察图像,发现两种胶囊板的背景略有区别:蓝白色胶囊的背景更为复杂,同时有彩色的反光,导致无法利用RGB阈值将胶囊从背景中提取出来。同时观察发现胶囊板透明的塑料类似于雾,所以采用去雾算法来提高胶囊与背景之间的对比度。再利用HSV阈值来提取胶囊成分,并对胶囊成分进行滤波、图像重建、二值化处理得到待定位的胶囊图片。

2.3 胶囊位置获取

观察图像,发现胶囊二值化后的图像上存在很多离散的点,为了获得一个个邻域连通的胶囊,这样才能使用连通域识别函数对每一个胶囊进行定位。所以利用开闭运算、图像重建、连通域识别获取胶囊的位置及其外接矩形的大小。

2.4 胶囊位置校正

观察图像,发现标记出来的胶囊位置错误,为了解决这个问题,使用相同程序通过对template图像标记获取每个胶囊的位置及其外接矩形的大小,并将这两个数据作为模板来校正待检测胶囊的位置及其外接矩形的大小。

为了使模板匹配能够和待检测胶囊位置匹配,需要对胶囊位置进行矩阵式重排列:先找出所有胶囊的中心点坐标行坐标最小的值centriod_min,再以[centriod_min-15, centriod_min+55]为阈值来找出同一行的其他胶囊,并将这组胶囊中心坐标另存为一组按照列坐标由大到小排列的数据表,然后将这组胶囊的原始行列坐标置为[1000,1000]。其余行胶囊的重排列与第一行的方法一样,这样就可以得到矩阵式重排列后的胶囊位置。

然后使用模板的位置信息中行坐标为参考值template,再以[template-40, template+30] 为阈值来判断程序标记出来的待检测胶囊的位置是否在中心位置,不在此区间的胶囊中心坐标替换为模板中对应的中心坐标,同时不在此区间的胶囊外接矩形数据也替换为模板中对应的外接矩形数据。

最后,还有可能出现中心位置符合要求,但是外接矩形大小相差很大的情况,此时使用模板中的外接矩形长宽与待检测胶囊的外接矩形长宽进行对比,同样也需要设置阈值区间来判断待检测胶囊的外接矩形长宽是否符合正常,具体步骤与位置信息比对流程类似,这里不做累述。通过上述步骤就可以将胶囊的位置进行校正。

2.5 基于二值图像面积占比的胶囊缺陷检测

首先获取每个胶囊的字图片,利用校正后的胶囊位置和外接矩形将每一个胶囊从2.3节中的二值图像I_UnW_Gray_Re中截取出来二值胶囊图集IBW,同时将每个焦囊从原始图片中截取出来得到原始胶囊图集ISRC。一开始希望直接通过对二值图像集中每张图片统计白色点数Nw占整张图片像素点NA的比例来判断胶囊是否完整,但是在图像运算的过程中会出现胶囊信息的丢失,如图6所示。这时会导致白色点数占比达不到阈值,会判定为缺陷。这里引入基于灰度强度差权重来分离背景,由此可以得到背景点数NB,再利用公式Nw/(NA-NB)计算面积占比。当每一个胶囊的面积占比低于0.45时,判定为缺陷胶囊。

Fig.6 胶囊信息丢失

2.6 基于RGB直方图相似性的胶囊缺陷检测

? 对2.4节得到的原始胶囊图集ISRC进行RGB直方图相似性判断:该相似性比对仅在每一行胶囊之间进行,每一个胶囊与同行其他胶囊进行RGB直方图相似性计算,这样就可以获得一个相似性矩阵,如表1所示。

Table 1 相似性矩阵

0

0.7556

0.8006

0.7625

0.7653

0.7556

0

0.7861

0.7276

0.7420

0.8006

0.7861

0

0.8874

0.7932

0.7625

0.7276

0.8874

0

0.7645

0.7653

0.7420

0.7932

0.7645

0

?选取该表中相似性系数最大的值为参考值max,以(max-0.2,0]?(0.4,0]为阈值区间判断相似性是否过低,可以得到相似性过低标志矩阵,如表2所示。

Table 2 标志矩阵

1

0

0

0

0

0

1

0

0

0

0

0

1

0

0

0

0

0

1

0

0

0

0

0

1

?当某一列1的个数达到行数-1时,判断该列对应的胶囊为缺陷胶囊。最后将面积缺陷检测和RGB直方图缺陷检测的结果进行或运算得到最终的缺陷检测结果,将判定的结果在原始图片中标记出来,绿色框表示正常胶囊,红色框表示缺陷胶囊。

3 Experimental results and analysis

3.1 胶囊板位置获取

读入原始图像—>转变为灰度图片—>利用80*80的模板进行闭开运算去除黑色背景中可能存在的干扰—>二值化—>连通域识别获取胶囊板的中心位置和外接矩形的大小。

效果展示:

Fig.2 胶囊板定位结果

3.2 去雾算法增强对比度

利用2.1中获取得到的胶囊板的中心位置和外接矩形截取胶囊板的局部图像—>去雾处理—>转换到HSV空间—>设置HSV阈值提取胶囊成分—>变回RGB空间、灰度化—>中值滤波得到I_UnW_Gray—>开运算分离残余的背景和胶囊得到I_UnW_Gray_Open—>以I_UnW_Gray_Open为MAKER,I_UnW_Gray为MASK重构图像—>二值化

效果展示:

Fig.3 胶囊颗粒与背景分离结果

3.3 胶囊位置获取

开运算,分离粘连的胶囊—>闭运算填补胶囊的孔洞得到图像I_UnW_Gray_Close—>腐蚀得到图像I_UnW_Gray_Erode—>以I_UnW_Gray_Erode为MAKER,I_UnW_Gray_Close为MASK重构图像I_UnW_Gray_Re—>连通域识别获取每个胶囊的中心位置和外接矩形的大小

效果展示:

?Fig.4 胶囊颗粒定位结果

3.4 胶囊位置校正

胶囊位置矩阵式重排列—>胶囊中心坐标校正—>胶囊的外接矩形长宽校正—>在原始图片中标记出每个胶囊的位置,绿色框为直接通过连通域识别出来的位置,蓝色框为通过中心位置校正后重新标记出的位置,红色框为通过外接矩形长宽校正后重新标记出来的位置

效果展示:

?Fig.5 胶囊颗粒定位校正结果

?3.5 基于二值图像面积占比的胶囊缺陷检测

利用校正后的胶囊位置和外接矩形从2.3节中的二值图像I_UnW_Gray_Re中截取出来二值胶囊图集IBW,同时将每个焦囊从原始图片中截取出来得到原始胶囊图集ISRC—>统计IBW中每张子图片中白色点数Nw—>计算ISRC中每张图片的灰度强度差权重来分离背景—>统计每张子图片中背景点数NB—>利用公式Nw/(NA-NB)计算面积占比—>如果胶囊的面积占比低于0.45时,判定为缺陷胶囊

效果展示:

Fig.7 ?胶囊与背景点数统计

3.6 基于RGB直方图相似性的胶囊缺陷检测

原始胶囊图集ISRC进行RGB直方图相似性判断—>获得相似性矩阵—>选取该表中相似性系数最大的值为参考值max,以(max-0.2,0]?(0.4,0]为阈值区间判断相似性是否过低,可以得到相似性过低标志矩阵—>当某一列1的个数达到行数-1时,判断该列对应的胶囊为缺陷胶囊—>将面积缺陷检测和RGB直方图缺陷检测的结果进行或运算得到最终的缺陷检测结果—>将判定的结果在原始图片中标记出来,绿色框表示正常胶囊,红色框表示缺陷胶囊

效果展示:

Fig.7 最终定位结果

过检:

Fig.7 过检图片

原因分析:第一排的三张图片因为曝光不均匀,导致在胶囊信息提取的过程中丢失了信息,导致在面积检测时胶囊占比太小,被过检为缺陷胶囊。第二排的图片在RGB直方图缺陷检测中过检也是因为这个原因,导致相同胶囊的RGB直方图相差很大,或者导致一些胶囊的RGB。

漏检:

Fig.8 漏检图片

原因分析:第一张的图片在RGB直方图缺陷检测中过检是因为曝光不均匀,导致相同胶囊的RGB直方图相差很大,或者导致一些胶囊的RGB。第二张图片也是因为曝光不均匀,导致背景中的阴影也识别为胶囊的轮廓,导致在面积检测时胶囊占比过大,被漏检为正常胶囊。

4 Conclusion

该方案能准确对胶囊定位,但是对于胶囊的缺陷检测方面还有较大的提升空间,需要加入其他的算法来降低过检和漏检。

References ?

[1]张明英. 图像特征相似性度量方法研究及应用[D].电子科技大学,2019.

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-01-11 23:59:55  更:2022-01-12 00:01:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 21:45:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码