【机器视觉】——裂纹检测笔记

目录

传统算法处理裂缝的基本思路:

第一种思路

第二种思路:

第三种思路

CPP代码

halcon代码

python代码

Matlab代码

深度学习缺陷检测

裂缝检测文献


传统算法处理裂缝的基本思路:

第一种思路

1.先转换彩色图为灰度图
2.进行自适应局部阈值化,目的是为了减少光照与阴影对阈值的影响
3.进行膨胀操作,尽量放大凸显裂缝,在用中值滤波平滑一下,去除一些高频噪声
4.进行腐蚀操作,让轮廓枝干化,减少类似裂缝物体的干扰。
5.测量裂缝宽和高
代码见:https://blog.csdn.net/freedom098/article/details/52774911/

第二种思路:

基于机器视觉的裂纹检测与跟踪
1.针对白亮的图像,先结合原色先验理论和去雾技术,增强裂纹特征,并对增强后的裂纹特征进行边缘提取,分析比较亚像素边缘检测。
https://blog.csdn.net/qq_16481211/article/details/79963651

第三种思路

形态学梯度(形态学边缘提取)
https://blog.csdn.net/wenhao_ir/article/details/51888042

CPP代码

1.标裂缝长宽–裂缝的检测与测量
处理流程如下:
图像灰度化
增加对比度
Canny边缘检测
用形态学连接临近裂缝
找出所有连通域,删除非裂缝噪点区域
对每个连通域提取骨架,测量长度和宽度
https://blog.csdn.net/m0_37350758/article/details/89413655
2.处理简单裂缝:
https://blog.csdn.net/qq_16481211/article/details/79963651
3.找轮廓并画缺陷
https://blog.csdn.net/hechaoqi09/article/details/84862938
4.sobel算子与scharr算子
canny算子不保证边缘连续,而且无法给出直线划分,但却给我们一个分析问题的方向。以下思路是在canny算子的基础上进行的。对于比较直,但长度粗细不定,有些地方非常微弱,断断续续的直线,可能是个好方向,此处记录一下。
https://blog.csdn.net/weixin_34068198/article/details/91306309
5.基于OpenCv的金属表面划痕检测
https://blog.csdn.net/guoruijiushiwo/article/details/77412617
6.圆环零件检测,划痕检测
https://blog.csdn.net/weixin_44076038/article/details/87723386
7.凹点检测研究
https://blog.csdn.net/u014003644/article/details/80288830

halcon代码

1…缺陷检测之高纹理图像检测
https://blog.csdn.net/y363703390/article/details/82424988
2.缺陷检测之划伤检测
https://blog.csdn.net/y363703390/article/details/82454045
3.处理金属表面凹坑
https://blog.csdn.net/Bamboo265925/article/details/85252042

python代码

1.寻找相似的灰度值来找到可能存在的裂缝
https://blog.csdn.net/cywtiancai/article/details/80601407
2.python处理缺陷图像,返回缺陷面积
https://blog.csdn.net/qq_19656669/article/details/79963347
3.圆口缺陷检测,通过面积的差别判断圆口是否是规范圆
https://blog.csdn.net/renegade_m/article/details/82292313

Matlab代码

1.对钢板表面缺陷检测:几何校正、分割、填充红色、计算面积
https://blog.csdn.net/qq_41385719/article/details/80273946

深度学习缺陷检测

1.结合GAN生成多样性裂缝,提高数据多样性和均衡性
https://blog.csdn.net/c2a2o2/article/details/85111283
2.SSD深度学习模型对工件裂纹进行检测
https://blog.csdn.net/qq_29462849/article/details/83472430
3.基于yolov3的铁轨缺陷/裂纹检测
https://blog.csdn.net/qq_29462849/article/details/84772263
4.tiny YOLO v3做缺陷检测实战
https://blog.csdn.net/qq_27871973/article/details/85009026
5.手机屏缺陷检测《Scale insensitive and focus driven mobile screen defect detection in industry》
https://blog.csdn.net/qq_27871973/article/details/83345023
细节和技巧:
1).将放缩后的不同尺寸的图像输入AlexNet网络,看各个网络层的feature map激活情况
2).最后作者将一个原始图像分成多个模块进行特征提取,然后将提取的特征输入RNN网络进行判别
3).作者在实验中,使用了简单的数据扩充方法对样本进行扩充。不过对于显示屏检测这个领域有些缺陷很明显,有的缺陷真的是肉眼都难以分辨,通过微妙的色调变换,就构成了缺陷.
6.深度学习实现工业零件的缺陷检测
https://blog.csdn.net/qq_29462849/article/details/82662928
细节和技巧:
1).对工业缺陷零件来说,由于特征不是太明显,往往只是一小块,在选择网络的时候,要考虑把浅层特征和深度特征进行融合,这样的话就不会造成主要特征丢失。关于网络,推荐使用ResNet、DenseNet、InceptionResNetV2这些,经过自己的测试,DenseNet效果要更好些,深度在22层左右。
2).可以选取不同的数据(数据最好不要完全相同)训练几个不同的模型,比如训练出三个模型分别对应:ResNet、DenseNet、InceptionResNetV2。训练完成后,把这三个模型的全连接层去掉,只用这三个模型的卷积层进行特征提取,然后把提取的特征进行拼接,可以在channel方向上(此时要求feature map的w和h必须相同),也可以在对应位置上进行特征相加(点加)。然后把这些特征进行汇总,重新建立三个网络,每个网络模型分别对应训练好的三个模型,提取训练好模型的参数,赋给新的模型,然后建立全连接层,这个时候只有一个全连接层。在训练的时候,新的网络只用来做特征提取,卷积层的参数不做训练,把这些网络参数冻结,只更新全连接层。
3).对于2中的特征融合,还有一种方法就是:用三个训练好的模型进行特征提取,然后建立一个mlp多层感知机类型的网络。训练好的模型去掉全连接层,只保存卷积层,做特征提取,并把产生的特征进行拼接,训练时只对全连接层进行更新。
如果整个场景图像特别大,缺陷特征比较局部化,对图像进行卷积操作后,特征基本上不存在,这时可以考虑把场景图像进行切分,比如一个场景图像被切分成四份,可以横向切分,也可以纵向切分。然后需要自己去做数据,赋以标签。在做数据上可能要花点时间,不过效果还不错。在预测的时候,只要场景图像的四个子图像有一个是缺陷图像,就认为其是缺陷图像。这在一定程度上避免了特征过于局部化。
4).Focal Loss:用来解决数据不均衡问题。

裂缝检测文献

1.kmeans筛选裂缝,然后膨胀,腐蚀,把裂缝轮廓清晰化
http://www.doc88.com/p-7377816204970.html

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

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

相关文章

利用union判断系统的大小端

int checkCPUendian()//返回1,为小端;反之,为大端; { union{ unsigned int a; unsigned char b; }c; c.a 1; return 1 c.b; }大端模式(Big-endian),是指数据的高字节保存在内存的低地址中,而数据…

Filter(过滤器) 和 interceptor(拦截器)的区别

Filter(过滤器) 和 interceptor(拦截器)的区别 1.拦截器是基于java反射机制的,而过滤器是基于函数回调的。 2.过滤器依赖于Servlet容器,而拦截器不依赖于Servlet容器。 3.拦截器只对Action请求起作用&#…

ROS探索总结(二)——ROS总体框架

一、 总体结构 根据ROS系统代码的维护者和分布来标示,主要有两大部分:(1)main:核心部分,主要由Willow Garage公司和一些开发者设计、提供以及维护。它提供了一些分布式计算的基本工具,以及整个…

python 阿狸的进阶之路(4)

装饰器 #1、开放封闭原则:对扩展开放,对修改是封闭#2、装饰器:装饰它人的,器指的是任意可调用对象,现在的场景装饰器-》函数,被装饰的对象也是-》函数#原则:1、不修改被装饰对象的源代码 2、不修…

【深度学习】——利用pytorch搭建一个完整的深度学习项目(构建模型、加载数据集、参数配置、训练、模型保存、预测)

目录 一、深度学习项目的基本构成 二、实战(猫狗分类) 1、数据集下载 2、dataset.py文件 3、model.py 4、config.py 5、predict.py 一、深度学习项目的基本构成 一个深度学习模型一般包含以下几个文件: datasets文件夹:存放…

二叉树的序遍历

时间限制: 1 s空间限制: 32000 KB题目等级 : 白银 Silver题目描述 Description求一棵二叉树的前序遍历,中序遍历和后序遍历 输入描述 Input Description第一行一个整数n,表示这棵树的节点个数。 接下来n行每行2个整数L和R。第i行的两个整数Li和Ri代表编号…

GUI登录界面

在这次的作业中,我先使用单选按钮,输入框,复选框设计了一个简单地登录界面。接着我使用了MouseListener将登陆按钮与下一个“查询界面”连接起来。最后我使用了我们本周所学的JFrame框架与事件处理机制设计了一个简单地界面。我所设计的登录界…

浅谈ROS操作系统及其应用趋势

ROS操作系统是最先由斯坦福开发的开源机器人操作系统,目前由willowgarage公司开发和维护,相关的开发社区也很成熟( http://www.ros.org , http://answers.ros.org, http://www.willowgarage.com), 经过几年的发展API也逐渐稳定&a…

Raft学习传送门

Raft官网 官方可视化动画1 官方可视化动画2 论文中文翻译 论文英文地址 Paxos Made Simple论文翻译 Raft理解 技术分享 《分布式一致性raft算法实现原理》 状态机 MIT: raft实现 分布式系统学习2-Raft算法分析与实现 分布式系统MIT 6.824学习资源 知乎大神的&#…

【Python生成器与迭代器的区别】

目录 一、迭代 二、迭代器 1)创建迭代器——两种方法 iter()方法 利用()和range结合使用 2)具体案例 3、生成器 4、二者的异同 1)、共同点 2)、不同点 a、语法上 b、用法上 一、迭代 首先理解一…

BZOJ4426 : [Nwerc2015]Better Productivity最大生产率

如果一个区间包含另一个区间,那么这两个区间是否在一起的生产率是一样的。 将所有这种包含了其他区间的区间放入数组$b$,其余的放入数组$c$,有多个相同的时候则从$b$移一个到$c$。 那么$c$里所有区间左端点递增,右端点也递增&…

[codevs1105][COJ0183][NOIP2005]过河

[codevs1105][COJ0183][NOIP2005]过河 试题描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子,青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的…

ABB机器人套接口通信 机器人部分

ABB机器人套接口通信 机器人部分 文章机器人部分,描述如何运行机器人从机程序,使机器人根据上位机节点发送的命令,执行具体运动。 ABB机器人执行3个任务。这些任务都配置为SEMISTATIC(背景程序)的任务,第三任务是正常动作任务。下文描述如…

CRM项目总结

CRM项目总结 一:开发背景 在公司日益扩大的过程中,不可避免的会伴随着更多问题出现。 对外 : 如何更好的管理客户与公司的关系?如何更及时的了解客户日益发展的需求变化?公司的产品是否真的符合客户需求?以…

【面经——《速腾聚创科技有限公司——深度学习算法工程师》】

自我介绍 实习项目 1)项目主要应用的领域? 2)难点在哪?——机械臂吸盘大小和目标大小之间坐标的协调 3)难点不在于算法,在于数据的处理和均衡性?对于数据均衡方面有什么理解&#xf…

js变量和数据类型

转载于:https://www.cnblogs.com/songyinan/p/6181421.html

offline .net3.5

1.加载虚拟光驱 2.dism.exe /online /enable-feature /featurename:netfx3 /Source:D:\sources\sxs转载于:https://www.cnblogs.com/BillLei/p/5294082.html

(九)模板方法模式详解(包含与类加载器不得不说的故事)

作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可。 模板方法模…

阿里云openapi接口使用,PHP,视频直播

1.下载sdk放入项目文件夹中 核心就是aliyun-php-sdk-core,它的配置文件会自动加载相应的类 2.引入文件 include_once LIB_PATH . ORG/aliyun-openapi/aliyun-php-sdk-core/Config.php; 3.配置客户端对象,需要Access Key ID,Access Key Secret $iClientProfile Defa…

【面经——《广州敏视数码科技有限公司》——图像处理算法工程师-深度学习方向】

目录 笔试 HR面 专业面——60多分钟 主管面 反问: 笔试 8道题——简答题 1道编程 苹果、香蕉、梨、菠萝,彩色图像如何进行分类?一辆带车牌的汽车,图像亮度整体呈现偏亮状态,如何…