0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于PYNQ的软件框架实现SSD目标检测算法硬件加速方案

454398 来源:PYNQ开源社区 作者:PYNQ开源社区 2020-09-26 11:33 次阅读

设计目的与应用

随着人工智能的发展,神经网络正被逐步应用于智能安防、自动驾驶、医疗等各行各业。目标识别作为人工智能的一项重要应用也拥有着巨大的前景,随着深度学习的普及和框架的成熟,卷积神经网络模型的识别精度越来越高。有名的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图像分类与定位挑战赛,取得了优异成绩:在分类任务上排名第二,在定位任务上排名第一。

基于PYNQ的软件框架实现SSD目标检测算法硬件加速方案

图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正是利用不同尺度检测图片中不同大小和类别的目标物体,获得了很好的效果。

作品展示





声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1625

    文章

    21653

    浏览量

    601516
  • SSD
    SSD
    +关注

    关注

    20

    文章

    2849

    浏览量

    117171
  • 人工智能
    +关注

    关注

    1791

    文章

    46761

    浏览量

    237345
  • 卷积神经网络

    关注

    4

    文章

    366

    浏览量

    11841
收藏 人收藏

    评论

    相关推荐

    基于 DSP5509 进行数字图像处理中 Sobel 算子边缘检测硬件连接电路图

    以下是基于 DSP5509 进行数字图像处理中 Sobel 算子边缘检测硬件设计方案: 一、总体架构 图像采集:使用合适的图像传感器,如 CMOS 传感器,通过相应的接口(如 SPI、I2C 等
    发表于 09-25 15:25

    TDA4VM上的硬件加速运动恢复结构算法

    电子发烧友网站提供《TDA4VM上的硬件加速运动恢复结构算法.pdf》资料免费下载
    发表于 09-24 11:39 0次下载
    TDA4VM上的<b class='flag-5'>硬件加速</b>运动恢复结构<b class='flag-5'>算法</b>

    适用于数据中心应用中的硬件加速器的直流/直流转换器解决方案

    电子发烧友网站提供《适用于数据中心应用中的硬件加速器的直流/直流转换器解决方案.pdf》资料免费下载
    发表于 08-26 09:38 0次下载
    适用于数据中心应用中的<b class='flag-5'>硬件加速</b>器的直流/直流转换器解决<b class='flag-5'>方案</b>

    使用PYNQ训练和实现BNN

    使用 PYNQ 可以轻松在 FPGA 上实现加速 AI/ML,而无需编写一行 HDL!让我们看看如何做到这一点。
    的头像 发表于 08-05 17:15 418次阅读
    使用<b class='flag-5'>PYNQ</b>训练和<b class='flag-5'>实现</b>BNN

    旗晟机器人环境检测算法有哪些?

    硬件支撑,更离不开强大的算法库作为软件核心,二者相辅相成,缺一不可。今天就来了解旗晟机器人环境检测算法。 1、设施异常监测 通过集成高精度传感器与智能图像识别技术。它不仅能
    的头像 发表于 07-19 17:54 498次阅读
    旗晟机器人环境<b class='flag-5'>检测算法</b>有哪些?

    口罩佩戴检测算法

    ,口罩佩戴检测算法利用YOLOv5模型框架,修改其相关配置文件和检测参数,并采用数据增强和Dropout技术防止过拟合。实验结果验证了YOLOv5模型人群口罩佩戴图
    的头像 发表于 07-01 20:20 281次阅读
    口罩佩戴<b class='flag-5'>检测算法</b>

    人员跌倒识别检测算法

    人员跌倒识别检测算法是基于视频的检测方法,通过对目标人体监测,当目标人体出现突然倒地行为时,自动监测并触发报警。人员跌倒识别检测算法基于计算
    的头像 发表于 06-30 11:47 417次阅读
    人员跌倒识别<b class='flag-5'>检测算法</b>

    安全帽佩戴检测算法

    安全帽佩戴监控是铁路工程施工人员安全管理中的重点和难点,它对检测算法的准确 率与检测速度都有较高的要求。本文提出一种基于神经网络架构搜索的安全帽佩戴检测算法 NAS-YOLO。该神经网络架构由上
    的头像 发表于 06-26 22:22 358次阅读
    安全帽佩戴<b class='flag-5'>检测算法</b>

    PSoC 6 MCUBoot和mbedTLS是否支持加密硬件加速

    。 使用 MCUBoot 验证两个应用程序时,运行时间大约需要五秒钟。 在 README.md 的 \"安全 \"一栏中写道 与软件实现相比,硬件加速加密技术将启动时间缩短了四倍多
    发表于 05-29 08:17

    基于FPGA的实时边缘检测系统设计,Sobel图像边缘检测,FPGA图像处理

    的 Sobel 边缘检测算法,从公式上进行化简近似得到本系统所用的Sobel实现方式;通过对比MATLAB和FPGA的计算用时,可以看出FPGA的并行运算将速度提升了40倍以上,实现算法
    发表于 05-24 07:45

    新思科技硬件加速解决方案技术日在成都和西安站成功举办

    近日,【新思科技技术日】硬件加速验证解决方案专场成都站和西安站顺利举行,来自国内领先的系统级公司、芯片设计公司以及高校的250多名开发者们积极参与。
    的头像 发表于 04-19 17:35 420次阅读

    Elektrobit利用其首创的硬件加速软件优化汽车通信网络的性能

    Elektrobit今日宣布推出 EB zoneo GatewayCore——首款支持、配置和集成现代微控制器新一代硬件加速器的软件产品,可应用于先进的汽车电子/电气架构(基于被广泛采用
    的头像 发表于 04-17 09:51 327次阅读

    用DE1-SOC进行硬件加速的2D N-Body重力模拟器设计

    该项目的目标是创建一个用DE1-SOC进行硬件加速的2D N-Body重力模拟器。
    的头像 发表于 04-09 11:08 493次阅读
    用DE1-SOC进行<b class='flag-5'>硬件加速</b>的2D N-Body重力模拟器设计

    【国产FPGA+OMAPL138开发板体验】(原创)7.硬件加速Sora文生视频源代码

    信号 text_ready <= 0; end // 文本处理与视频生成(占位符,调用硬件加速器或实现相应算法) if (text_processing &&
    发表于 02-22 09:49

    音视频解码器硬件加速实现更流畅的播放效果

    随着多媒体内容的日益丰富和高清化,传统的软件解码已经难以满足人们对流畅播放体验的需求。因此,音视频解码器硬件加速技术的出现,为提升播放效果带来了革命性的改变。 硬件加速的原理 硬件加速
    的头像 发表于 02-21 14:40 895次阅读
    音视频解码器<b class='flag-5'>硬件加速</b>:<b class='flag-5'>实现</b>更流畅的播放效果