目前最热门的技术之一,肯定要算上人工智能深度学习。可能有童鞋会纳闷,一个主要做硬件设计的老学究也会与“人工智能深度学习”等高大上沾边吗?其实我们倒不是研究“人工智能深度学习”算法,而是把成熟的“人工智能深度学习”应用到FPGA上进行加速,这是有实用价值的。基于FPGA的平台和生态系统,旨在为各种应用提供人工智能,包括移动,智能家居,智能城市,智能工厂和智能车等,比如即将开始的光电竞赛。目前几大FPGA厂家都有自己的FPGA AI解决方案,比如lattice的sensAI就是一个“完整的技术堆栈”,它结合了模块化硬件套件,神经网络IP核,软件工具,参考设计和定制设计服务 - 所有这些都旨在加速物联网边缘设备机器学习推理的开发。
以下给lattice打打广告,就是不知道lattice给广告费吗?
机器人可以帮助传统制造业提升产品质量、提高生产力和效率,且正快速应用于仓储和供应自动化、采矿、农业和智慧城市等领域。莱迪思FPGA专为机器人应用的独特需求而优化:
低功耗、确切的感知和控制
实时的工业网络
机器视觉、深度感测
传感器融合
马达和马达控制
人工智能
基于硬件的安全可信根
莱迪思FPGA专为机器人应用优化,提供以下优势:
比同类FPGA降低多达75%功耗
小尺寸——4 mm x 4 mm起
比其他采用SRAM的FPGA的抗软错误性能好100多倍
优化的传感器接口
性能可拓展
莱迪思解决方案集合:Lattice mVision、Lattice sensAI
莱迪思解决方案集合提供即时可用、灵活的IP模块、参考设计和平台,进一步加速产品开发。
该参考设计使用一颗图像传感器在莱迪思低功耗ECP5 FPGA上实现了基于卷积神经网络(CNN)的人脸识别应用。训练过程是在GPU上完成的,可以让CNN准确地检测人脸上的点,从而检测和分辨出人脸差异。该设计可用于检测其他目标,只需修改训练数据库即可。
该设计通过硬件实现,包括SPI、DDR存储器接口模块、图像信号处理引擎、8个CNN加速引擎和计数与标记叠加引擎来显示注册和识别的结果。该设计专为ECP5 85K LUT FPGA进行了优化。
该设计在FPGA上部署后,用户可以在注册阶段通过提取和存储256个16位值(代表不同的面部特征)来注册其面部信息。在识别阶段,注册人员站在设备面前时,将提取其256个16位值并将之与存储的数值列表进行比较验证。
类似VGG8的网络——8个(卷积、批标准化)层+4个池化层+1个全连接层
采用了约100万张图像对神经网络进行训练,包括针对各种环境下的识别增强
使用90 x 90 RGB输入,以每秒2帧的速度运行
ECP5总功耗仅为850 mW
。。。。。。。。。在lattice网站上有很多有趣的应用设计实例。
也提供了对应的FPGA设计软件和专门的Machine Learning Software 3.2软件(其用于构建CNN卷积神经网络):
我们可以用FPGA来加速运行一个tensorflow构建的CNN网络,所以我们的工作就分为了两部分:一部分是在PC机上构建一个cnn网络,然后用tensorflow来训练此网络,另一部分就是设计一个FPGA硬件系统,来在FPGA上应用实现这个tensorflow训练成熟的CNN网络,比如用此FPGA实现的实现人脸识别、图像分类....
下面给童鞋们演示如何在你的win10电脑上,利用win10的linux子系统安装tensorflow,演示具体步骤与安装的坑: