【Surface Detection】Segmentation-Based Deep-Learning Approach for Surface-Defect Detection

物体表面缺陷检测现状
传统机器学习局限性
- 传统机器学习方法对于特定的算法只能解决特定的问题,不够灵活,无法快速适应新产品;
- 不同的问题有不同的特征,当需要解决新问题时,需要重新设计特征,开发周期长;
深度学习遇到的问题
- 训练数据数量需求大;
- 标注精度、耗时需求严格;
- 计算能力需求高。
该篇paper解决了深度学习遇到的如上三个问题
Paper贡献
该篇paper提出了一个两阶段的网络,即分割网络 + 决策网络。
- 分割网络用于对输入的图片进行缺陷的具体定位,最后生成分割掩码(二值图像);
- 决策网络用于判断输入的图片是否存在缺陷,生成二值分类输出。

实现细节

分割网络
分割网络要在高分辨率的图像表面上检查小的缺陷,需满足两个要求:
- 具有较大的感受野;
- 能够捕捉到较小的特征细节;
因此,在设计时,需要具有下采样层,在比较深的层中使用尺寸大的卷积核。
决策网络
为什么要提出这样的决策网络?有什么作用?
简单的分割网络似乎没有足够的信息来预测图像中缺陷的存在。
- 决策网络能够从最后一个分割层的特征图中捕获信息;
- 额外的下采样增加了感受野的大小,能够捕获缺陷的全局形状。全局形状对分类很重要,有助于提高性能。

网络训练过程

数据集
该篇paper中使用到的是工业界中电机转向器的拍摄样本集Kolektor


网络在不同配置下的评估
网络在四个配置组下进行评估:
五种精度的标注;

两种损失函数 (均方误差、交叉熵);
输入图像是全尺寸(1408 x 512 px)还是半尺寸(704 x 256 px);
是否对输入图像进行90°的旋转。
实验结果如下:

可见,paper提出的网络在如下:
1. 标注精度为Dilate = 5;
2. 交叉熵损失函数;
3. 全尺寸图像;
4. 不对图像进行90°旋转。
配置,达到了最优的性能。
性能评估
paper的作者把提出的网络与目前最常用的两个分割网络(DeepLab v3+与U-Net)和用于缺陷检测的商业软件Cognex ViDi Suite进行了性能对比。如下性能指标皆在三个网络和商业软件最优配置下进行评估:


结果如上图所示:
paper提出的网络AP最高,达到了99.9%,漏检个数与误检个数也最少。
所需训练样本个数

如上图所示,paper提出的网络,在仅有33个缺陷样本的训练下,AP能够达到99.9%;在仅有5个缺陷样本的训练下,AP依旧能够达到96.1%。超过了其它分割网络和商业软件在同等配置下的效果,一定程度上解决了深度学习所需样本数量大的问题。
所需训练时间


如上图所示:
paper提出的网络在对单张图片进行检测的平均准确度和时间上,都有着不错的效果,如何能做到这样的效果,也取决于上图,可以看到,paper提出的网络所需的参数,远少于另外两种分割网络,因此在训练以及检测的过程中,花费的时间得到了很大程度的提升。
【Surface Detection】Segmentation-Based Deep-Learning Approach for Surface-Defect Detection的更多相关文章
- 【论文笔记】DeepOrigin: End-to-End Deep Learning for Detection of New Malware Families
DeepOrigin: End-to-End Deep Learning for Detection of New Malware Families 标签(空格分隔): 论文 论文基本信息 会议: I ...
- 论文笔记之:From Facial Parts Responses to Face Detection: A Deep Learning Approach
From Facial Parts Responses to Face Detection: A Deep Learning Approach ICCV 2015 从以上两张图就可以感受到本文所提方法 ...
- 《3-D Deep Learning Approach for Remote Sensing Image Classification》论文笔记
论文题目<3-D Deep Learning Approach for Remote Sensing Image Classification> 论文作者:Amina Ben Hamida ...
- Review of Semantic Segmentation with Deep Learning
In this post, I review the literature on semantic segmentation. Most research on semantic segmentati ...
- 【论文阅读】HydraPlus-Net: Attentive Deep Features for Pedestrian Analysis
转载请注明出处:https://www.cnblogs.com/White-xzx/ 原文地址:https://arxiv.org/abs/1709.09930 Github: https://git ...
- 【论文阅读】PBA-Population Based Augmentation:Efficient Learning of Augmentation Policy Schedules
参考 1. PBA_paper; 2. github; 3. Berkeley_blog; 4. pabbeel_berkeley_EECS_homepage; 完
- 【论文阅读】End to End Learning for Self-Driving Cars
前言引用 [1] End to End Learning for Self-Driving Cars从这里开始 [1.1] 这个是相关的博客:2016:DRL前沿之:End to End Learni ...
- 机器学习案例学习【每周一例】之 Titanic: Machine Learning from Disaster
下面一文章就总结几点关键: 1.要学会观察,尤其是输入数据的特征提取时,看各输入数据和输出的关系,用绘图看! 2.训练后,看测试数据和训练数据误差,确定是否过拟合还是欠拟合: 3.欠拟合的话,说明模 ...
- 【流行前沿】联邦学习 Federated Learning with Only Positive Labels
核心问题:如果每个用户只有一类数据,如何进行联邦学习? Felix X. Yu, , Ankit Singh Rawat, Aditya Krishna Menon, and Sanjiv Kumar ...
- 【Unity Shaders】Diffuse Shading——创建一个基本的Surface Shader
本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...
随机推荐
- Codeforces 1672 E. notepad.exe
题意 这是一道交互题,有n个字符串,每个字符串长度:0-2000, n :0-2000 有一个机器对他进行排版,你可以给他一个每行的最大宽度w,那么每行只能放长度为w的字符: 每行相邻两个字符串之间至 ...
- .NET中的拦截器filter的使用
拦截器的使用 使用场景分析 我们先想像一个场景,就是程序员开发软件,他是怎么工作的呢?我们都知道,普通的程序员只需要根据需求文档开发相应的功能即可,他不用和客户谈论软件需求,不用理会软件卖多少钱,他要 ...
- 学习笔记之——C语言 函数
采用函数的原因: 随着程序规模的变大,产生了以下问题: --main函数变得相当冗杂 --程序复杂度不断提高 --代码前后关联度提高,修改代码往往牵一发而动全身 --变量使用过多,命名都成了问题 -- ...
- N32G4系列——复用功能重映射(USART为例)
开发测试环境:SDK,N32G455x系列芯片 在国民MCU中G系列IO口有第二复用功能,这时需要用到重映射功能. 一.系列芯片手册定义 1.1.芯片IO口默认功能查看 如图,在该系列芯片的数据手册中 ...
- 自动化运维?看看Python怎样完成自动任务调度⛵
作者:韩信子@ShowMeAI Python3◉技能提升系列:https://www.showmeai.tech/tutorials/56 本文地址:https://www.showmeai.tech ...
- Linux环境下执行脚本重启Weblogic控制台中部署的应用程序
之前有写过一篇博文介绍切换登录方式的脚本,脚本中存在一个缺点:仍需手动去Weblogic控制台重启应用程序:本文即介绍如何在脚本中更新Weblogic控制台中部署的应用程序. 一.配置Weblogic ...
- 记一次线上频繁fullGc的排查解决过程
发生背景 最近上线的一个项目几乎全是查询业务,并且都是大表的慢查询,sql优化是做了一轮又一轮,前几天用户反馈页面加载过慢还时不时的会timeout,但是我们把对应的sql都优化一遍过后,前台响应还是 ...
- Vue3组件间传值
12种方式 1. 父组件 ./father.vue 点击查看代码 <template> <h1>father:</h1> <h3>子组件传过来的:{{ ...
- 安装kali linux(干货)
安装kali 一. 准备工具 1. VMware Workstation Pro https://www.vmware.com/cn/products/workstation-pro/workstat ...
- C温故补缺(一):数据类型和基本类型占位
数据类型 基本类型:就是算术类型,包括整型和实型 枚举类型:一组离散的整数 void类型:无可用值类型 派生类型:指针(*),数组([]),结构体(struct),共用体(union),函数(fun( ...