设计目的与应用
随着人工智能的发展,神经网络正被逐步应用于智能安防、自动驾驶、医疗等各行各业。目标识别作为人工智能的一项重要应用也拥有着巨大的前景,随着深度学习的普及和框架的成熟,卷积神经网络模型的识别精度越来越高。有名的lenet-5手写数字识别网络,精度达到99%,alexnet模型和vgg-16模型的提出突破了传统图像识别算法,goolenet和resnet推动了卷积神经网络的应用。
但是神经网络的发展也给我们带来了更多挑战,权重参数越来越多,计算量越来越大导致了复杂的模型很难移植到移动端或嵌入式设备中,且嵌入式环境对功耗、实时性、存储都有着严格的约束。因此如何将卷积神经网络部署到嵌入式设备中是一件非常有意义的事情。目前神经网络在传统嵌入式设备上绝大部分是基于arm平台,神经网络在arm上部署时存在的巨大问题是算力的不足。gpu主要应用于神经网络训练阶段,对环境和库的依赖性较大,国内技术积累较弱,难以实现技术自主可控。asic 是为特定需求而专门定制优化开发的架构,灵活性较差,缺乏统一的软硬件开发环境,开发周期长且造价极高。所以,基于fpga的硬件加速平台是时候发挥它的优势了。fpga由于独特的架构,被广泛的应用与实时信号处理、图像处理领域,其并行性也为卷积神经网络提供了巨大算力。
传统的rtl开发fpga流程相比缓慢,不如软件的开发效率高,所以hls运营而生,使用高层次语言来进行转换为底层的硬件代码,极大的加快开发进程。因此项目选用hls工具来实现算法中的加速ip核,将ssd目标检测网络移植到fpga硬件平台上, 对于硬件加速过程中的算法并行性,在本设计中主要采用两个方式:对层内的运算并行化,将多个通道的数据进行分块,每一块内的通道同时进行运算,最后将结果累加在一起。对于模块的运算采用hls并行优化,对数组核循环添加优化指令进行优化。整个系统采用pynq的软件框架来实现,为ssd目标检测算法提供了硬件加速方案,充分发挥了fpga的并行性。
ssd目标检测算法原理
ssd于2016年提出,是经典的单阶段目标检测模型之一。它的精度可以媲美fasterrcnn双阶段目标检测方法,速度却达到了59fps(512x512,titanv),单阶段目标检测方法的目标检测和分类是同时完成的,其主要思路是利用cnn提取特征后,均匀地在图片的不同位置进行密集抽样,抽样时可以采用不同尺度和长宽比,物体分类与预测框的回归同时进行,整个过程只需要一步,所以其优势是速度快。
ssd采用的主干网络是vgg网络,vgg是由simonyan 和zisserman在文献《very deep convolutional networks for large scale image recognition》中提出卷积神经网络模型,其名称来源于作者所在的牛津大学视觉几何组(visual geometry group)的缩写。该模型参加2014年的 imagenet图像分类与定位挑战赛,取得了优异成绩:在分类任务上排名第二,在定位任务上排名第一。
图1.vgg16网络结构
这里的vgg网络相比普通的vgg网络有一定的修改,主要修改的地方就是:
1、将vgg16的fc6和fc7层转化为卷积层。
2、去掉所有的dropout层和fc8层;
3、新增了conv6、conv7、conv8、conv9。
图2.ssd主干网络结构
上图展示了ssd的主干网络结构,整个网络为全卷积网络结构,ssd将vgg16的两个全连接层转换成了普通的卷积层,池化层pool5由原来的stride=2,kernel大小2x2变成stride=1,kernel大小3x3,为了不改变特征图大小同时获得更大的感受野,conv6改为空洞卷积,diliation=6,输入的图片经过了改进的vgg网络(conv1->fc7)和几个另加的卷积层(conv6->conv9)进行特征提取。
从图2我们可以看出,ssd将conv4_3、conv7、conv6_2、conv7_2、conv8_2、conv9_2都连接到了最后的检测分类层做回归,6个特征图分别预测不同大小和长宽比的边界框,具体细节如图3。
图3.ssd特征提取网络
ssd为每个检测层都预定义了不同大小的先验框(prior boxes),conv4_3、conv8_2和conv9_2分别有4个先验框,而conv7、conv7_2和conv8_2分别有6种先验框,即对应于特征图上的每个像素,都会生成4或6个prior box.
在浅层的神经网络里,只能看到图片的细节和纹理信息,就如管中窥豹。随着网络层数的加深,相当于把图片往后移动一段距离。这样才能够感知到图片的整体信息。低层卷积可以捕捉到更多的细节信息,高层卷积可以捕捉到更多的抽象信息。低层特性更关心“在哪里”,但分类准确度不高,而高层特性更关心“是什么”,但丢失了物体的位置信息。ssd正是利用不同尺度检测图片中不同大小和类别的目标物体,获得了很好的效果。
作品展示
荣耀V9怎么样?荣耀V9评测:华为荣耀V9和华为P9对比评测,外观、配置、性能、价格买谁合适?
美光出货全球最先进1β工艺内存:密度暴增35%
研究人员用模拟技术预测设施的使用寿命
Waymo:400名志愿者体验无人驾驶车,收获颇丰
单目摄像头和FPGA的ADAS产品原型系统
基于PYNQ的软件框架实现SSD目标检测算法硬件加速方案
什么是趋肤效应?直流电流是怎样分布的
连拓精密商用车胎压检测器防水测试仪原理和测试方法
高压衰减棒高压测试棒的使用说明和操作方法
如何选择最好电源变压器的中线接地方式
环境感知中常见传感器之车载摄像头技术解析
OPPO首款双模5G手机将于12月份正式发布 搭载高通首个5G集成式移动平台
DEKRA德凯正式成为CQC充电设施签约合作实验室
恩智浦CTO盘点:2022年,有哪些值得关注的NXP创新方案?
关于16年十大发动机性能分析
厦门利用北斗导航和RFID等技术推进海洋数字经济
全国首个数字化云启产业基地正式在南京开园
5G工业互联网的“下半场”该拼什么?
台面型InGaAs/InP基PIN短波红外偏振探测器原型器件
获取大语言模型(LLM)核心开发技能,报名 NVIDIA DLI 实战培训