美文网首页
马智恒工业检测讲座笔记

马智恒工业检测讲座笔记

作者: 猴子喜 | 来源:发表于2018-12-12 21:04 被阅读0次

    工业检测背景知识

    打光 lighting

    采集 capture

    图片处理 procssing

    建模 modeling

    深度学习,端到端
    系统集成的能力,各方面都不能太差

    案例:手机玻璃盖板的检测

    难点:
    打光很困难
    缺陷的面积小,难以观测

    深度学习在工业检测的应用

    mask r cnn

    功能是进行高层次的语义抽象
    边界明显(人,车很容易分出来)

    但缺陷检测是:
    底层纹理的检测,部分和局部几乎没什么关系。
    数据标注很困难(很多缺陷经验丰富的老师傅才能标注,每个工人标注的不一样)

    为什么要用深度学习

    1.弱的语义信息不代表没有语义信息
    2.传统的规则不够general
    比如:遥控器的型号在变化,阈值不能general
    很多传统的机器学习做得挺好的(定一个阈值,卡阈值就好),但是传统方法进展停滞的挺久的了

    网络设计

    网络越深,概念不断抽象,丢掉越来越多和任务无关的细节。
    使用image net pre-trained model,比直接训练效果好
    检测使用coco效果好

    (1)dense net:channel-wise concat feature map,使得每一层的特征可以得到充分使用。是网络更加简洁,表达性也好。
    因为可以复用底层的特征,所以在工业检测中效果有时很比resnet好。
    (2)RCF net:融合每个stage的所有卷积层的feature map。
    可视化结果显示,中间层包含了丰富的细节特征

    自己的设计(分类任务)

    1.(dense net)每个stage 内部使用dense net,复用特征形成层级之间的高速通路
    2.(RCF net)每个stage 的输出降采样之后拼接到最后的输出,形成层级之间的高速通路
    --> 加强底层特征在最终决策中的比重进行分类任务。
    比res_net,dense_net结果好,但是思想都是一样的。

    如何选取任务

    1.分类

    缺陷占原图的比重很大30%
    原图分块之后,每一块进行分类,one stage dectection

    2.分割

    适用于划痕(框不住)等。
    标注成本高一些,实际还是会有所取舍。

    3.检测

    画框框

    评价指标:都是分类(good / no good)!!!

    任务设计

    1.使用阈值将分割、检测的结果直接转化为分类结果
    (1)缺陷的面积、周长
    (2)检测框的置信度
    …….
    2.训练模型的时候使用多任务框架,分类作为主任务,检测和分割是辅助任务
    3.直接使用分类模型,检测框和分割直接作为attention模块(让模型聚焦到分类任务)引入

    多任务框架(推荐)

    u-net:
    分割任务的最好baseline,把特征在channel级别concat,尽可能的复用底层特征。但是不适用于辅助任务的设计

    1.多任务——分割(segment)

    分类主网络的stage+分割辅助网络

    每个stage都降采样到原图1/16,然后接一个分类损失

    辅助网络采用net2net_transform(演讲者在比赛的时候采用的),分辨率没有变,感受野一样,尽可能保存细节信息。
    >实现细节:去掉pooling,加dilate

    作用:
    可以把segment作为attention
    可以把segment的结果直接可视化,看segment这一步是不是找到了缺陷的位置,来判断模型的泛化能力。
    使用dialate可以让分辨率下降慢一下。

    2.多任务——检测

    (1)one stage(在缺陷面积大的时候使用)
    (2)two stage(在非常遇到小缺陷的时候用。能放大缺陷)
    FPN是检测任务常用的网络,bottom-up, top-down高层检测大物体,底层检测小物体

    3.多任务——分类

    FPN到了最高层的时候,加上global pooling,可以把控全局信息,进行分类

    和传统方法结合来提升鲁棒性

    1.直接融合结果

    一个record高,一个preception高,就直接融合两个方法

    2.用传统方法做图片处理

    图像增强(增加对比度等)
    在第一层的卷积里加入写死的两个卷积
    本来是3通道输入,再加入2个用传统算法做处理的通道,concat,作为输入

    3.传统的方法作为attention引入卷积神经网络

    (1)神经网络自学习得到_residual attention论文方法
    右边是神经网络的预测,左边是attention 掩码,pixel-wise相乘。
    因为是soft attention,所以+1
    使用soft attention(确定每个区域被关注的程度大小),通过M(x)注意力掩码实现。
    每个stage使用attention要比全局使用attention更好
    总之,要保证神经网络有足够的学习空间

    (2)实践过程中生成掩码的方法:、
    canny算子
    引入multi-task,子任务产生的掩码,分割或者检测任务产生的掩码。

    如何解决标注数据不够的问题

    定义问题

    分类 分割 检测

    采用半监督方法——mean teacher, self training

    因为工业检测中存在大量的无标签数据,所以用半监督的方法。
    只使用在分类 分割任务中,检测还没有半监督的方法。

    迭代标记的流程

    1.(网络debug)首先用分类的方式标注数据,一个类30-40张,训练模型,过拟合。
    特征可视化,缺陷太小了,虽然分类分对了,但是关注点不是缺陷。就要用检测或者分割的方式来标注数据

    2.使用少校样本+大量无标记的样本,进行半监督训练,在验证集上进行可视化,测试

    3.有针对性的收集更多的标注数据(表现差的,针对性多采数据)训练模型

    图片过大怎么办

    分块,每块单独处理,然后合并
    降采样的标准——人眼仍然能发现缺陷
     
    参考
    【极市】马智恒-深度学习在工业缺陷检测中的应用

    相关文章

      网友评论

          本文标题:马智恒工业检测讲座笔记

          本文链接:https://www.haomeiwen.com/subject/fcfmhqtx.html