参考资料:
https://github.com/Charmve/Surface-Defect-Detection
https://github.com/Eatzhy/surface-defect-detection
缺陷问题的两个关键点:
- 缺陷检测在工业上应用广,但相比于ImageNet 千万级的图片数量相比,数据不足,是小样本问题。
常采用的方法有:
a。数据增强和生成。对原始缺陷样本进行镜像、旋转、平移、扭曲、滤波和对比度调整等,以获得更多的样本。另一种常见的方法是数据合成,单个缺陷被融合并叠加在正常样本上以形成缺陷样本。
b。 迁移学习。小样本学习容易导致过拟合。
c。 合适的网络结构设计。基于压缩采样定理对小样本数据进行压缩和扩展,利用CNN对压缩后的采样数据特征进行直接分类。与原始图像输入相比,压缩输入可以大大降低网络对样本的需求。此外,基于twin network的表面缺陷检测方法也可以视为一种特殊的网络设计,可以大大降低样本要求。
d。无监督学习,只有正常的样本被用于训练;半监督学习。 - 基于深度学习的缺陷检测方法包括工业应用中的三个主要环节:数据标注、模型训练和模型推理。实际工业应用中的实时更注重模型推理。目前,大多数缺陷检测方法都集中在分类或识别的准确性上,很少关注模型推理的效率。加速模型的方法有很多,比如模型加权和模型剪枝。另外,虽然现有的深度学习模型使用GPU作为通用计算单元(GPU),但是随着技术的发展,相信FPGA会成为一种有吸引力的替代方案。