基于MATLAB与FPGA的图像处理教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

业内有很多介绍MATLAB图像处理的书,如《数字图像处理(MATLAB版)》(作者冈萨雷斯),也有不少介绍FPGA图像处理的书,如《FPGA数字图像采集与处理》(作者吴厚航),但尚未出现一本结合MATLAB仿真与FPGA实现的图像处理教程。单纯地学习MATLAB图像处理的读者,很难在FPGA上对其算法用硬件实现;单纯地学习FPGA图像处理的读者,又很难从底层了解算法的原理与实现。因此,本书的出现将填补业内这一空缺,会给对该领域感兴趣的读者,带来不一样的福音。

本书将从图像格式转换、降噪、增强、二值化、锐化、缩放等传统基础图像算法入手,从原理到MATLAB设计、FPGA硬件加速实现进行由浅入深、循序渐进的介绍。以深度学习算法LeNet5为例,介绍如何用FPGA实现较简单的硬件加速卷积神经网络。最后,作为画龙点睛之笔,介绍传统ISP和新兴AISP的理论概念及区别,并阐述未来图像硬件加速的发展走向。

为了让读者能够更好地了解本书的架构,笔者整理了章节规划的图谱,如下所示。读者可以按顺序阅读,也可以根据自己的兴趣挑重点查阅,章节规划没有严格的先后顺序。

图像算法的实现属于方法论,优秀的图像算法可以让我们事半功倍;同样,如何用更低的PPA(Power Performance Area,即功耗、性能、面积,是芯片最主要的三个评价指标)在FPGA/IC上实现图像算法的硬件加速,也是一门学问,需要充分理解图像算法的实现过程,还需要掌握FPGA的设计思维,并且熟练运用FPGA常用的加速思维。笔者曾在《FPGA设计技巧与案例开发详解(第3版)》一书中讲述了很多的FPGA设计技巧,本书将重点针对图像处理,为读者讲解具体的算法实现。

截至本书出版前,笔者在IC公司已经工作7年有余,深刻地感受到研发人员的能力对自主研发代码质量(设计功能不考虑时序、门控时钟满天飞等)的影响,目前虽然功能验证及后端收敛可以正常流片,但考虑到PPA对成本及竞争力的影响,目前PPA还有很大的提升空间。因此,本书旨在带给读者图像处理的硬件加速思维,希望读者能够学会图像处理的FPGA加速方法,同时能够掌握在IC中设计优秀电路的技术。希望本书的出版,能够帮助提高IC行业人才的质量与产品的竞争力。

本书内容体系

本书共9章,分为3部分,各部分对应的章节和具体内容如下。

第1部分为第1章,由韩彬编写,主要通过对CPU结构体系加速,以及苹果M1芯片架构、海思Hi3516A芯片架构的介绍,讲解什么是硬件加速引擎。同时这一章也介绍了FPGA软件仿真环境,以及可配套的FPGA图像处理开发板。

第2部分包括第2~8章,主要介绍常用的图像处理算法的理论、MATLAB设计,以及FPGA硬件加速实现,相关章节内容介绍如下。

(1)第2~5章由韩彬编写,主要介绍RGB转YCbCr算法、常用图像增强算法、常用图像降噪算法,以及常用图像二值化算法。

(2)第6、7章由林海全编写,主要介绍常用图像锐化算法、常用图像缩放算法,其中第7章中的“浅谈基于深度学习的缩放算法”,由从事多媒体算法开发的孔德辉博士编写。

(3)第8章由姜宇奇博士编写,以典型的基于LeNet5的深度学习算法为例,介绍如何在MATLAB与FPGA上实现实时的手写数字识别。

第3部分为第9章,作为本书的画龙点睛之笔,主要介绍传统ISP和新兴AISP的理论概念及区别,让读者对图像算法的硬件加速应用有一个更深刻的认知。

本书中部分图片为MATLAB软件生成的图,为方便读者学习,故没有进行标准化处理。

本书读者对象

• FPGA技术爱好者;

• 有图像算法基础,想了解FPGA图像处理的读者;

• 有FPGA基础,想了解图像算法开发流程的读者;

• 期望从事多媒体芯片前端开发的读者;

• 大、中专院校的学生和老师;

• 相关培训学校的学员。

2022年5月30日