时间:2024-07-09 来源:网络搜集 关于我们 0
不想错过我的推送,记得右上角-查看公众号-设为星标,摘下星星送给我
写书真的赚钱吗?
”想知道答案,就来看Momo与FPGA大佬CrazyBingo的深度对话吧——
CrazyBingo:曾在中兴微电子负责多年的多媒体SOC前端开发工作,以及FPGA加速验证等事宜,在视频图像前后处理算法加速领域,有丰富的经验与实战积累。《基于MATLAB与FPGA的图像处理教程》是CrazyBingo最新著作,是市面上唯一从算法理论,到Matlab实现,到硬件架构,再到FPGA实现的书籍。
就下面这些问题,CrazyBingo从自身的经验以及对行业的了解,给出了自己的见解,希望对FPGA、图像处理感兴趣的朋友有所启发。
首先FPGA人员确实相比前两年多了很多,过去两年太疯狂了,雪崩那一天也确实到来了。
那么多人员过剩怎么办?现在有两拨人:
第一拨人是FPGA刚好入门,整个流程玩过,可以直接快速切到FPGA开发中,包括前两年有公司招聘愿意零基础培养的这一拨人。
第二拨人就是说零基础或者其他行业转过去的,这拨人确实尴尬,进退两难。如果进,可能几个月找不到合适的机会;他如果退 退去的行业,可能原来留存的FPGA行业的人各方面技术能力都远比他们,同时他要接受降薪,那很难。
这是个问题,如果要改这个问题,短期我觉得没那么好的方法,长期我仍然觉得如果说你要有价值,那你还是得做不可替代的事情。那如果你只是芯片行业或者FPGA行业一个螺丝钉,其实你无论何时都不是安全的。
假设你对系统、FPGA,做算法、加速、应用都有系统的了解,往上可以去做ASIC,做加速引擎,往下可以用FPGA去做终端产品。
那么肯定不仅仅是公司的一个螺丝钉,而是有一定的主导作用的。很多ASIC短期内暂时不做了,但是产品得做,作为半定制化的FPGA机会又来了,所以这拨人推过去做产品也是一个好的方向。
如果同样都是图像行业,进可以做图像ASIC,退回来做图像的产品方案也可以。
所以我仍然觉得不管是在FPGA还是IC行业,你都得掌握杀手锏,能够做大部分人做不了的事情,来决定自己的不可替代性。
FPGA工程师和芯片设计工程师是否能自由替换?
严格来讲 FPGA属于半定制芯片,FPGA已经做好了电路成型,只不过按照我们的设计,再去适配里面的电路。
如果说整个流程,FPGA从前面的方案到编码设计、验证、综合、PR整个流程就是芯片设计的整个流程,可以配套过去。那么FPGA的人才想去做ASIC的开发,其实是顺理成章的,无非就是原来用 Vivado 或者 Quartus II 等工具链,到ASIC领域可能用Synopsys的相关工具链。工具链虽然变了,但流程还是一样的。
其实,现在市面上有很多芯片开发工程师,甚至从软件转过去,或者两个月培训就过去了。但这部分人其实有很大问题,因为芯片设计的底层还是电路,如果对电路原理不是很熟悉。虽然最后由于工艺以及综合工具,你能做到一定程度,但你的代价很大,一方面是时间代价,第二方面是面积的代价,第三方面那可能还是功耗的代价,所以我认为虽然芯片行业看起来更高,但是如果说有FPGA的底层设计基础,再去做ASIC的前端设计,事半功倍。
学生想进入FPGA的领域,选择什么方向比较好?
校招其实很难说。有些人看薪资,有些人看机会。
看机会的可能去大公司,希望体验一把大公司的流程体系,薪资排第二。
如果更多看薪资,也许那个方向不是太适合,有些做控制类的,包括五六年前做AR、VR的比较高,那现在可能就不一样了。
我认为仍然应该把基础学科技术,就是说本身的能力得巩固住,而不是说直接去选择一个高薪资。薪资高意味着风险高,这也是一样的。
如果说行业问题,这个时候再去讲不一定来得及,但是你仍然可以选择未来相对可以走得远一点的行业。我仍然认为图像处理、数据加速计算这块行业,无论是做终端产品,还是做服务器相关的产品,都相对比较宽。
如果只是做简单的电机控制,或者说做其他那一些设备的控制类的东西,包括ADC、DAC之类的,路可能相对比较窄。
所以我认为在有限的时间,如果还有可能赶紧恶补一下,包括算法图像之类的技能,怎么样去把自己的价值最大化。
《基于MATLAB与FPGA的图像处理》的特色是什么?
首先,目前行业没有一本从算法理论,到Matlab实现,到硬件架构,再到FPGA实现,最终我们在FPGA板上去做出实际的功能。
第二点,我们的内容合入了基础所有算法的功能,可以说已经是有图像处理ISP的50%的内容了,那都牵扯到算法,包括前面的滤波可能其他简单书只会教你中值段的滤波,但我们直接从中值、均值,讲到了双边滤波,甚至引导滤波。但引导滤波最终没有实现,因为实现的深度还是有点高,所以没在书上。像双边滤波单纯的一个课题,都可以作为一个本科的一个毕设了。后面我们有更多的案例。我们对于局部阈值化,然后边缘检测,甚至帧间差运动,这些我们都进行展开。
第三点,我们又结合了有锐化、缩放,缩放包括双线性插值等等之类的,甚至最后我们还有专门的一个章节讲深度学习。其实过去有些深度学习书确实卖得很火,但是如何在FPGA上面实现深度学习还没见过,我们就选了相对结构简单一点的LeNet5的一个手写识别的算法,在FPGA上面完整的实现了整体的流程。搭载前面的数字相机,然后在显示器上显示
最后有一个画龙点睛的一章,怎么实现ISP以及AISP加速引擎,可以去做的一个整体集成的一个算法。
所以这一本书基本上可以认为把图像行业原来空缺的认知填补起来,同时告诉算法工程师或者说没有做算法的FPGA工程师,如何去做FPGA图像加速。这是最大的优点。
这本书比较适合什么样的人学习?
对于我们原来本来就做FPGA开发的人,可能做一些基础的,包括比如串口、I2C、UART、SPI等等的控制,属于逻辑控制类的。逻辑控制只是一个细分领域,如果要往上走,要到算法层次。一旦到了算法加速有一定的门槛。门槛在于第一我需要懂一定的算法,第二我需要知道算法如何去硬化,就是说我需要把它定点化,或者说我需要在它硬件架构上做出我的设计,第三我怎么最终实现。
第二类人是这样的,如果说本来是做图像算法的,包括就算是用OPENCV或者说做AI的,仅能在英伟达上做一些原型验证,想落地产品怎么办。仍然需要做这一步,比如说部署Xilinx FPGA或者其他FPGA的时候,要知道怎么去做硬件设计,从浮点到定点的转化,以及需要多少资源,投入多少面积去做这一块内容。所以对算法工程师同样也适合。
第三个是如果没有这些基础,从头开始其实也是问题不大,本身结合着一定算法基础以及一定数字电力基础,也可以去进行前期的一个准备。当然这么说,前面一步还是必须得看,就是说FPGA技能的掌握,所以严格地讲并不是针对FPGA入门,而是针对FPGA图像算法的入门。
总之,有一定的门槛的。
如何读这本书?
其实现在人想要安静下来读一本书是很难的。
我在B站上录了五六期视频内容,最开始介绍了整体的架构,我们该怎么去做,什么是硬件加速引擎,本书适用的读者等等。
后面几个部分就讲具体的算法怎么实现,还是从结合的书,当然更生动的我们结合实际的代码例子、方案、原理,最后在FPGA上面实现,就是相当于有一个配套学习的视频。并且最后的实现不是说拍个图,而是我们直接做了整套视频流采集设备。
这本书不仅仅结合书,还有具体的配套开发板也都有,所以可以从理论到落地。
这本书的后续,已经在准备中了,直接讲如何设计图像处理ISP,期待早日与大家见面。
Momo:希望这本书大卖,但是卖肯定不是CrazyBingo的目的,希望把他这些年积累的一些FPGA相关的,包括图像处理相关的一些知识传递给更多的人,也让更多想入行或者想要有提升的这些FPGA的从业者能够真正的给他们一些帮助,这才是他写书的初心。
END