本文提出一种基于主动学习的民用设施缺陷检测方法,其思路主要是考虑到在样本较少的情况下,训练得到的网络可能不能很好的对各种类型的缺陷都进行准确的检测,但它仍然具备对于大部分简单缺陷的识别能力。如果让人类专家对所有的样本图像都进行人工标记,那无疑是工作量庞大的,但如果只对部分网络识别困难或者网络不太确定的样本进行人工标记,然后作为新的训练样本对网络进行重训练,这样就能不断提高网络的识别能力了,本文算法的流程如下图所示 首先,深度学习网络利用部分带有标记的样本进行训练得到一个初始的分类器。然后将新的数据样本输入到训练好的网络中进行类别预测,根据预测的概率值,选择出困难样本,提供给人类专家进行人工标记,将重新标记的样本补充到训练集中,再次对网络进行重训练。 对于原始图像,作者采用滑动窗口的方式划分成多个512 * 512大小的图块,然后将图块输入到网络中进行类别预测,输出结果大于0.5时表示该图块内包含缺陷,结果小于0.5时则表示图块内不含缺陷。再对困难样本进行采样时,作者提出了两种采样策略:基于不确定性的采样方法和基于正向样本的采样方法。网络输出的数值其实表示了该图块内包含缺陷的概率,当概率值非常接近1或0时,说明网络非常确定该图块是否包含缺陷,而当概率值在0.5左右时,说明网络并不确定图块中是否包含缺陷,基于这个不确定性,可以选择那些预测概率在0.5附近的样本作为困难样本。另一种方法是考虑到现实情况下正向样本(带有缺陷)的数量是远少于负向样本(不带缺陷)的,因此可以根据网络输出的概率值从大到小进行排序,选择前面几个认为存在缺陷概率较大的样本作为困难样本。
网络主体部分采用了ResNet网络,具体结构参数如下
采用了加权交叉熵损失函数,权重是根据正向样本和负向样本的比例设定的,预测为正向样本的损失权重是负向样本占总样本数的比例,同理预测为负向样本的损失权重是正向样本占总样本数的比例。
主动学习我认为是解决实际缺陷检测问题的一个重要途径,这就类似与我们去培训一个技术工人,一开始的初步学习固然很重要,但很多情况下工人是在生产过程中逐步提升自己的能力的。主动学习就类似与一个逐步学习的过程,在遇到新的样本时,对于不确定的样本询问人类专家获取正确标签,这样也不需要人类专家对所有的样本都进行标记了。但这里需要解决许多工程问题,首先人类专家不会时时刻刻等待模型的询问,也就是说如果是在实际生产过程中,模型初期可能会出现许多的误判,但必须要等待一批样本处理结束才能交给人类专家进行标记和重训练。其次,通常模型在部署下去之后是不具备训练的能力的,这里就需要解决一个在线训练的问题。
如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。