目前,开发人员一般使用针对 ML 的可用 FPGA 平台来构建嵌入式视觉系统,以期满足更高的性能要求。与此同时,他们可以保持所需的灵活性,以跟上机器学习发展的步伐。
本文将介绍 ML 处理的要求,以及为何 FPGA 能解决许多性能问题。然后,将介绍一个合适的基于 FPGA 的 ML 平台及其使用方法。
机器学习算法和推理引擎
在 ML 算法中,卷积神经网络 (CNN) 已成为图像分类的首选解决方案。其图像识别的准确率非常高,因而得以广泛应用于多种应用,跨越不同的平台,例如智能手机、安防系统和汽车驾驶员辅助系统。作为一种深度神经网络 (DNN),CNN 使用的神经网络架构由专用层构成。在对标注图像进行训练期间,它会从图像中提取特征,并使用这些特征给图像分类(参见“利用现成的软硬件启动机器学习”)。
CNN 开发人员通常在高性能系统或云平台上进行训练,使用图形处理单元 (GPU) 加速在标注图像数据集(通常数以百万计)上训练模型所需的巨量矩阵计算。训练完成之后,训练好的模型用在推理应用中,对视频流中的新图像或帧进行分类。推理部署完成后,训练好的模型仍然需要执行同样的矩阵计算,但由于输入量要少很多,开发人员可以将 CNN 用于在通用硬件上运行的普通机器学习应用(参见“利用 Raspberry Pi 构建机器学习应用”)。