中文EN
新闻资讯

《基于Matlab与FPGA的图像处理教程》即将面世

时间:2022-11-25


为什么要写此书

  笔者曾在11年前上大学的时候,由于各种原因,奋笔疾书发表过一本网络书籍《从零开始走进FPGA世界》。当时为什么要写,一方面可以积累很多博客;另一方面也希望给自己的大学生活做一个总结,就这样通过努力完成了几十万字的FPGA书籍。

  虽然FPGA受众面比较小,但在11年前的网络上广为盛传,也确实掀起了不小的波澜,随之而来的是各出版社联系笔者,希望能出版一本纸质的FPGA入门书籍,真正将FPGA发扬光大。笔者深知写书会耗费大量的时间(那年笔者22岁),因此不了了之。

  但那时笔者写博客的习惯从未停止,甚至有了几百兆笔记的积累,因此整理一本书的干货还是足够的,只是万事开头难。终于在2013笔者突然想明白一件事情,那就是希望能在鱼龙混杂的FPGA书籍市场中造就一部经典,希望可以写一本能够进入高校的书,同时也希望借此提高自己在业内的知名度。

  于是笔者开始了漫长的旅行,开始风餐露宿记录点滴,甚至无数次想放弃,终于在1年后看到了成果,笔者完成了数百万字的创作,接着又花了数月配合出版社完成修改,最终在20149月份,此书FPGA设计技巧与案例开发详解》得以面世。

  写一本书难,维护好一本书更难。《FPGA设计技巧与案例开发详解》自出版以来,也已经走过了8个年头,期间由于软件、工艺更新,以及Altera被收购,修订4发布了3个版本,累积印刷数万本,目前在国内高校图书馆等均收藏,也很荣幸地被几所学校采纳为授课教材。

image.png 

  由于篇幅的限制,关于FPGA图像处理部分内容未能出版,最后只能发布了简洁版pdf便草草了事。但这一直是笔者的一个遗憾,以至于2016年时,签约了这本书——《基于MATLABFPGA的数字图像处理教程》的合同。一晃而过,6年了一直没能交稿,一方面是由于工作与生活的忙碌;另一方面也是考虑到FPGA从业群体较小,采用FPGA进行图像处理的群体会更小,因此一直在思考是否要投入精力写作的问题

  直到有一天,IC行业被推到了[敏感词],一方面是从业人员变多了(读者多了);另一方面是预感到IC行业的“雪崩”迟早会到来,因此笔者必须给大家一个交代—写完此书。

随着中美贸易战及世界大变局,世界各国在IC行业的竞争,空前激烈。庆幸我们可以目睹IC行业的大变革,这项变革是一场没有硝烟的战争,谁能掌握先进工艺、高端芯片的设计、生产的生态链,谁就能拥有市场的话语权。

  尽管近三年世界受到了疫情的冲击,很多行业举步维艰,甚至颓然出局,但IC行业依然还在风口浪尖。从2021年的前端设计,到RTL验证、后端人力;再到2022年软件开发(IC研发前端→后端→软件的流程需求)等。IC行业对人才的争抢,几乎已经白热化,因此很多非本行业人士,纷纷通过短期的培训,试图加入这个队伍,甚至有机构打出口号:“30岁程序员谋转型,学FPGA未来工资没有瓶颈”。

  别人贪婪我恐惧,这一切让我感到前所未有的恐慌与焦虑,因为从事IC行业7年有余,笔者知道这份职业需要经验与积累,也知道全流程开发需要沉淀与成本,IC设计并非可以一蹴而就,最后的成功是需要付出沉重的代价的。如果只是想资本运作套利,这对行业发展是不利的;如果真想干出一番事业,当前的内卷程度也已经远超负荷了。

当前IC行业需要高昂的人力、物力成本,同时从业人员的基本素养也未曾达到该有的水平,IC行业还能走多远,非常值得我们深思。笔者不否认大国崛起,世界竞争中需要长期、大力地投入人力、物力以促进IC行业的发展,但也不得不提醒,IC行业的“雪崩”总有一天会到来,事实上现在很多公司的裁员,以及暂停招聘,足以验证他们已经认识到了这一点。

  “雪崩时,没有一片雪花是无辜的”。但如果可以预见“雪崩”,并且能够牢牢地抓住物体,就有可能在“雪崩”中活下来。譬如在《星球大战2》电影中,猩猩们预见了雪崩,并且临危攀爬并抱住了大树,最终得以在雪崩后生存下来,而还沉醉在战争中的人类,没有上树的本领,因此最后死在了雪崩中。

  想要在IC行业的“雪崩”中活下来,除了能够预见灾难,还需要勤练内功,得有足够的能力抓住救命稻草即具备足够的知识储备,使公司及个人有足够的竞争力,才能在IC行业的内卷和斗争中,活到最后。如今大部分IC公司,买的是现成的工具链和IP,用的是同样的数字芯片设计流程,其工作不具备独特性和不可替代性,要想立于不败之地,还必须有自己的特色和创新,所以基础学科仍然很重要,底层逻辑不可或缺,数理化不可抛诸脑后。

  以图像处理为例,市面上成熟的ISPDisplay Unit模块比比皆是,典型的品牌以ARM、芯原、Silicon Image为代表,如果都是集成验证,那就千篇一律,没有了市场的创新,最后只能拼供应链成本,这就是手机厂商为什么都自主研发ISP的原因。所以笔者仍然认为学习图像算法原理,以及如何进行FPGA硬件加速是非常重要的,尤其是学生或者刚入行的FPGA/IC从业者。

  虽然本书涉及的图像算法相对简单,但这些足以带你掌握采用FPGA实现并行图像算法的硬件加速处理,也能在图像算法的IC实现时更加游刃有余。为了能在“雪崩”时存活下来,我们必须努力开发自己的潜能,借用《FPGA设计技巧与案例开发详解》中的一句话:“掌握了FPGA,你便掌握了整个世界”。

  由衷地感谢各位读者对笔者的关注与支持,对本书的任何问题,欢迎通过邮件(crazyfpga@qq.com)、公众号(CrazyFPGA)、知识星球等途径与笔者沟通,本书配套资料也会持续更新。

    image.png

 

2022530



前言

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

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

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

 

  图像算法的实现属于方法论,[敏感词]的图像算法事半功倍;同样如何可以用更低的PPAPower Performance Area)在FPGA/IC上实现图像算法的硬件加速,也是一门学问,需要充分理解图像算法的实现过程,掌握FPGA的设计思维,并且熟练运用FPGA常用的加速思维。笔者曾在《FPGA设计技巧与案例开发详解》一书中讲述了很多的FPGA设计技巧,本书将重点针对图像处理,将具体的算法实现落地。

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

本书内容体系

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

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

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

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

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

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

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

本书读者对象

  • FPGA技术爱好者;

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

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

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

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

  • 相关培训学校的学员。

 

 

CrazyBingo

2022530