本文转载自:act视觉系统设计微信公众号
深度学习是解决所有计算机视觉问题的最佳方案吗?
首先,视觉世界是无限变化的,系统设计者有无数种方法使用视觉数据。其中有一些应用案例,如目标识别和定位,都可以通过深度学习技术得到很好的解决。因此,如果你的应用需要一种算法来识别家具,那么你很幸运:你可以选择一种深度神经网络算法,并使用自己的数据集对其进行重新编译。
训练数据对有效的深度学习算法至关重要。训练一个DNN 通常需要数千个带标记的训练图像(即用所需输出标 记的图像),以及数千个带标记的图像来评估候选训练算法。当然,这些数据的性质非常重要:训练和验证数据,必须能够代表算法要处理的情况的多样性。如果很难或者不可能获得足够多样化的训练数据,那么最好还是使用传统技术。当我们深入研究客户的需求时,我们经常发现,最初看起来像单一视觉问题的任务,往往可以分解为几个子任务。通常,在这些子任务中,自然有一些子任务是适合使用DNN 解 决的,而另一些子任务则不适合用 DNN 来解决。对于这些项目,结合DNN和传统技术的解决方案,通常是更好的选择,而不是试图将整个问题都强制转向DNN解决方案。
鉴于DNN 在研究和技术方面的巨大投资,很明显,DNN 作为首选解决方案的适用范围,将会继续迅速扩大。然而,在可预见的未来,许多应用将通过传统技术(包括其他形式的机器学习)或通过深度学习和传统算法的组合,来获得最好的解决方案。
接下来,我们就一起了解一下,深度学习在机器视觉中的典型应用。
1、图像处理中的深度学习应用
与传统图像处理相比,深度学习应用需要在训练方面投入较多时间,但是相较其带来的可靠性和处理速度,这些投入是值得的。图像采集卡和(嵌入式)视觉设备上所使用的 FPGA 技术,令神经网络应用于工业级应用成为可能,这需要强大的实时处理能力、低延迟(实时在线检测)、高数据吞吐量、高带宽和低功耗低发热(嵌入式视觉应用),以及高分辨率。
在通常的图像处理应用中,只需要对少数几个特性进行分类,因此选择小型或中型网络通常就足以应对,AlexNet、SqueezeNet 或MobileNet都是这类网络的典型代表。这几种网络类型在机器视觉领域,预测精度、网络大小和计算速度以及带宽这几方面有着良好的平衡。这里可以很明显地看到,通过选择合适的网络,可以在牺牲小部分检测精度的同时,获得数据吞吐量方面的极大提高,同时也为优化资源和提高分类质量提供了可能性。
完美满足工业生产的高速处理需求的解决方案:通常使用高性能图像采集卡或者嵌入式视觉设备,例如使用大型 FPGA 和高分辨率传感器的智能相机。利用多种多样的 FPGA 资源,可以处理更复杂的架构以及应用。有了更高的数据带宽,能够在FPGA 上对整幅图像进行处理,或进行额外的图像预处理以及后期处理,例如对 GigEVision 相机的最大数据输出带宽的深度学习运算也完全能够满足。
图:FPGA 的性能大约是 GPU 性能的7.3倍
2、利用深度学习推理检测相机外壳上的缺陷
通常,使用传统的机器视觉检测方法来确定缺陷并不是一件容易的事,例如发现工业相机外壳上可能存在的缺陷。然而,深度学习技术却为此类缺陷检测应用提供了一种有效的方法。
为了测试这一点,FLIR Systems公司的工程师们使用颇具成效益的组件建立了一套演示装置,用于测试该 系统的可行性和有效性。该演示包括检查相机的外壳是否有划痕、油漆是否均匀以及是否存在印刷缺陷。为了避免上述缺陷,工业相机制造商必须检查相机外壳,以确保产品外观完美。
为了测试如何应用深度学习技术来解决这个问题,FLIR 的工程师使用了一台 160 万像素的 Blackfly S USB3 工业相机以及一台 AAEON Up Squared 单板计算机,单板机配备 Celeron 处理器和 4GB 内存,采用 Ubuntu 16.04 操作系统 ;此外还配备了Intel Movidius 的神经计算棒(NCS)(见图 1)。据 Intel 报道,神经计算棒于 2017 年发布,是基于 USB 的“深 度学习推理工具和独立的人工智能加 速器,为广泛的边缘主机设备提供专用深度神经网络处理功能”。
神经计算棒采用英特尔 Movidius Myriad 2 视觉处理单元(VPU)。这是一个片上系统(SoC),配备两个传统的32 位RISC 处理器内核和 12 个独特的 SHAVE 矢量处理内核。这些矢量处理内核可用于加速深度神经网络使用的高分支逻辑。流行的深度学习框架(包括 Caffe、TensorFlow、 Torch 和Theano)可用于为神经计算 棒构建和训练神经网络。
图1:为了对系统进行测试,FLIR的工程师使用 了一台工业相机、一个AAEON单板计算机和Intel Movidius的神经计算棒。
3、借助深度学习实现光隔元件的外观缺陷检测
在芯片制造业中绝大部分生产线已实现自动化,但芯片中的光隔离元件因本身体积小、精密度高,对其外观检测一直是行业痛点,仍需大量人工检测。针对上述问题,慧眼自动化开发了基于深度学习的光隔离元件外观检测解决方案。
慧眼科技开发的检测系统,硬件部署上分为上料、检测和下料三个工位(见下图)。上料工位分为四个料仓,操作员用上游设备取出装载产品的载具,放入产品,每个载具可放入40颗产品。这个装载数量可以减少操作员上料的次数。在上料工位,有一个视觉定位系统,用于检测产品的尺寸,并获取产品坐标位置并发送给机械手。
图:慧眼科技的检测设备结构示意图
该高精度检测系统,能够实现对微观产品进行自动定位、吸取、上下料、外观检测,可以防止人工操作带来的二次损伤。使用偏振相机取像,获得四个角度的图像,能够检测产品表面不同角度的划痕情况,提高检测覆盖率。这也是针对芯片行业中表面镜面产品的外观检测的创新应用。
在机器视觉应用中,外观检测一直是行业痛点。外观缺陷中的划痕、脏污、形态不一、大小不同、深浅和各种姿态都不同,很难用传统的视觉检测算法稳定检测。但是随着深度学习技术的发展,采用深度学习模式的外观检测程式,成为了外观检测的新方法。在A公司的这个案例中,我们也遇到了传统视觉算法难以解决的外观检测问题,我们的解决方案是采用 深度学习搭配传统定位算法。
4、深度学习软件实现强大的 PCB 检测系统
自动光学检测(AOI)是一种自动化的视觉检测技术, 在印刷电路板(PCB)检测中,其涉及扫描 PCB 的表面以获取清晰图像。AOI系统可以检测多种类型的PCB缺陷,包括短路、铜过多或不足、开路、划痕、毛刺、铜渣、组件缺失和变形等。
由于存在许多表面缺陷,因此与常规的电子元件检测相比,PCB的检测可能更加困难,并且还经常需要第二次手动筛选,以在PCB返回产品线之前区分真实缺陷和误报的缺陷。
该AI缺陷检查系统由中国台湾碁仕科技股份有限公司(G4 Technology)设计,它利用机器视觉相机和深度学习软件,来准确地对PCB 缺陷进行检查、探测、标记和分类。与传统的机器视觉技术相比,该系统可以分析复 杂的图像,提高图像分析能力和自动视觉检测的准确性,并对缺陷进行自动分类。该视觉系统包括一台Allied Vision公司的相机、一个富士胶片公司的高分辨率镜头和 SUALAB公司的 SuaKIT 深度学习软件。系统中的相机型号是Manta G-032C,其基于30万像素的Sony ICX424 彩色CCD传感器,像素尺寸为7.4µm,全分辨率下的帧率可达80.7fps。
在深度学习软件中,基于范例的算法使用可接受和不可接受产品的图像进行训练,这与基于规则的算法要求手动设置缺陷标准不同。SuaKIT 通过分析产品上的各种缺陷(分割),对图像分类并按缺陷类型分类(分类),然后 按类别探测图像中的每个目标对象(探测),来检查缺陷区域。
为了实现缺陷检测,SuaKIT的算法被训练了大约 100张正常和有缺陷产品的图像,能在大约15分钟的时间内 建立神经网络。此后,由于相机的高帧率,每秒可以在生 产线上收集和处理80张图像,从而使该软件能够自动学习和分析缺陷标准,并区分正常产品和缺陷产品的图像。在深度学习算法的初始阶段,所需的图像数据会随图 像的复杂性而变化。通常需要 50~100张图像,才能使系统可以处理客户特定的缺陷标准。在这种情况下,使用深度学习软件能够替代人工视觉检查的需求,可以将人员转移或部署到工厂的其他制造流程或任务中,从而提高整体生产率。
图:Allied Vision公司的Manta相机和SUALAB公司的SuaKIT深度学习软件相结合,用于检查印刷电路板
5、深度学习和高光谱成像相结合识别马铃薯病害
改进的卷积神经网络使用高光谱线扫图像,用于马铃薯病害的检测。在深度学习中使用高光谱数据尚有诸多挑战,包括数据的大小和特定波段的噪声。
来自荷兰瓦格宁根大学的一个研究小组,试图利用深度学习技术和高光谱图像数据来检测植物疾病。图1 显示了NAK在荷兰一个种植实验场用无人机拍摄的图像。在试验过程中,涉及到正常的栽培实践和不同的天气条件,田间的所有作物都被一个有经验的NAK检查员目视监测了多次。
表1显示了田间不同陇之间所种植的作物品种和染病情况。第1-3 陇包含感染细 菌性疾病的作物,而第 4-7 陇包含感染马铃薯Y 病毒的四种不同品种的作物。第1-3 陇的作物图片(主要是细菌感染、一些自 然偶发的 Y 病毒感染和一些健康的作物)为训练卷积神经网络(CNN)提供了数据。第5陇作物(LadyClaire)100%为病株, 第4陇作物(Rosa Gold)95% 以上为病株。此外,第4陇中出现的马铃薯 X 病毒(PVX)症状妨碍了作物专家的人工判断,并且PVX 病毒的出现已被实验室检测(ELISA)证实。因此第4陇和第5陇作物被排除在高光谱分析之外。
表1:第1、2、3陇作物主要是细菌感染,也有一些自然偶发的Y病毒感染。这些作物以及前三陇的健康作 物,被用来训练卷积神经网络(CNN)。
图:无人机拍摄到的位于荷兰托勒贝克附近的实验场地 的RGB图像。1-3陇的长度为110m,4-7陇的长度为66m
虽然CNN通常对整个图像进行分类(标记每幅图像)或提供 2D 分段(标记 每个像素),但该团队的方法使用了“弱”1D 标记序列与一个改进 的完全卷积神经网络(FCN)相结合的架构,以减少通常需要的大 量训练数据。“弱”1D 标签序列的优点是增加训练 集中可用标签的有效 数量,以降低过拟合 风险。该方法还大大降低了标记数据集的 负担。研究人员不需要提供像素级的注释,而是使用患病个体的 GNSS 位 置,在线的层面上生成地面实况——这是一个更为简单的过程。
使用的网络是带有非标准解码器的FCN。虽然FCN 的输出通常是 2D分割,但是研究人员输出了 1D 分割, 目的是为每行图像分配一个标签。由于训练数据的不平衡(健康的案例比 患病的案例多得多),所以对数据进 行了重新抽样,以突出患病的案例。由于深度学习需要大量的训练数据,利用随机镜像、旋转、图像亮度随机变化等数据增强技术,使现有数据得以丰富。
资料来源于VSDC杂志