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

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

3天内不再提示

在友晶LabCloud平台上使用PipeCNN实现ImageNet图像分类

友晶FPGA 来源:友晶FPGA 2025-04-23 09:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

利用深度卷积神经网络(CNN)进行图像分类是通过使用多个卷积层来从输入数据中提取特征,最后通过分类层做决策来识别出目标物体。

312a957a-1e5c-11f0-9310-92fbcf53809c.png

典型的大规模CNN网络通常包含数百万个神经单元和数百万个连接,需要超过十亿次的操作才能处理一个输入,因此整个过程比较耗时。

PipeCNN是一个开源的基于OpenCL的深度卷积神经网络加速器,采用板载ARMFPGA异构计算的方式来加速CNN运算中计算密集型运算。卷积、全连接等复杂运算利用FPGA的丰富片上并行计算资源进行加速,保证了实时性。ARM上运行数据流读取和显示工作,保证了程序的灵活和可扩展性。

本文将演示如何在友晶LabCloudFPGA硬件在线实验云平台(下文简称LabCloud平台)上用PipeCNN进行ImageNet图像分类加速。

01在Lab Cloud上运行PipeCNN步骤搭建环境

Lab Cloud平台已经安装有OpenCL环境 。(可在终端下发如下三条命令进行验证)

3153f0fa-1e5c-11f0-9310-92fbcf53809c.png

资源下载

1. 可以直接在云节点打开终端,输入如下命令进行源码下载:

gitclonehttps://github.com/doonny/PipeCNN.git

若有些院校Lab Cloud只连了局域网,则可以通过链接https://github.com/doonny/PipeCNN下载到自己的电脑上:

315de646-1e5c-11f0-9310-92fbcf53809c.png

然后通过Lab Cloud平台的文件上传功能传至云节点。

316cfbf4-1e5c-11f0-9310-92fbcf53809c.png

2. 通过链接https://pan.baidu.com/s/1jIl6qkm?_at_=1744271894249#list/path=%2FPipeCNN下载data_alex文件夹(包含image.dat,fc8.dat,weights.dat三个文件),并将该文件夹放到PipeCNN-master/project_intel/data路径下。

3180e844-1e5c-11f0-9310-92fbcf53809c.png

3. 测试图像使用的是ImageNet(ILSVRC2012_img_test.zip,300张照片)

下载链接:https://pan.baidu.com/s/1Agx0qZs55aZWM58c-Wng8A提取码: tera

编译kernel

1. 进入PipeCNN-master/project_intel/device/RTL路径下,打开终端,输入 make:

319551f8-1e5c-11f0-9310-92fbcf53809c.png

2. 按照下图修改project_intel/Makefile:

USE_OPENCV=1

PLATFORM=arm32

FLOW=hw

切换路径到

/root/intelFPGA/18.1/hld/board/de_cloud

31a80424-1e5c-11f0-9310-92fbcf53809c.png

3. 按照下图修改PipeCNN-master/project_intel/device/hw_param.cl文件:

VEC_SIZE 8

LANE_NUM 8

choose net 改为 ALEXNET

31bf4c60-1e5c-11f0-9310-92fbcf53809c.png

4. 按照下图修改PipeCNN-master/project_intel/device/conv_pipe.cl文件:

31d1135a-1e5c-11f0-9310-92fbcf53809c.png

5. 进入 PipeCNN-master/project_intel 路径下执行 make fpga,最终在PipeCNN-master/project_intel 路径下会产生一个conv.aocx文件:

31dec86a-1e5c-11f0-9310-92fbcf53809c.png

编译host

编译host时还需要继续修改project_intel/Makefile文件去指定当前opencv路径。

1. 对于当前Lab Cloud 上对应的DE_Cloud板卡环境需要修改如下:

OCV_LIBS后面添加 -lopencv_imgcodecs

修改路径 /usr/local/lib

修改路径 /usr/local/include

31f4efc8-1e5c-11f0-9310-92fbcf53809c.png

2. 将PipeCNN-master/project_intel/host/layer_config.h文件当中的char型定义全部改成signed char型(一共4处修改)。

320214d2-1e5c-11f0-9310-92fbcf53809c.png

3.data_alex文件夹若不是放在PipeCNN-master/project_intel/data路径下(已经在该路径下的忽略此步骤),则需要进入main.cpp修改文件路径到当前正确路径。

4. 删掉PipeCNN-master/project_xilinx文件夹和PipeCNN-master/project_intel/conv文件(删掉多余文件以便将剩下文件传输到云平台开发板)。

5.然后点击SoC传输将PipeCNN-master文件夹和ILSVRC2012_img_test.zip文件传到DE_Cloud开发板的LXDE桌面:

320e3726-1e5c-11f0-9310-92fbcf53809c.png

32180774-1e5c-11f0-9310-92fbcf53809c.png

32290312-1e5c-11f0-9310-92fbcf53809c.png

32290312-1e5c-11f0-9310-92fbcf53809c.png

6. 将ILSVRC2012_img_test.zip解压到/home/root路径(

若图片解压到其他路径下,则需要进入main.cpp修改文件路径到当前正确路径。):

3248a172-1e5c-11f0-9310-92fbcf53809c.png

7. 点击SoC桌面进入DE_Cloud开发板的 LXDE桌面:

325a3c84-1e5c-11f0-9310-92fbcf53809c.png

8. 按照下图打开Linux的终端:

32655128-1e5c-11f0-9310-92fbcf53809c.png

9. 用命令cd OpenCL 切换到OpenCL文件夹,用命令source ./init_opencl.sh进行OpenCL runtime初始化:

3292af1a-1e5c-11f0-9310-92fbcf53809c.png

10. 切换路径到PipeCNN-master/project_intel/下执行make host就会在当前路径下生成run.exe文件(在这个过程中会有warning提示,可以忽略):

32b5a8a8-1e5c-11f0-9310-92fbcf53809c.png

执行PipeCNN

1. 配置FPGA使用命令aocl program /dev/acl0 conv.aocx。

2. 运行host使用命令make run。

32cd918e-1e5c-11f0-9310-92fbcf53809c.png

运行结束,便可以得到分类结果。

02Lab Cloud平台简介

LabCloud FPGA 硬件在线实验云平台

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

    关注

    1655

    文章

    22283

    浏览量

    630290
  • 图像分类
    +关注

    关注

    0

    文章

    96

    浏览量

    12415
  • cnn
    cnn
    +关注

    关注

    3

    文章

    355

    浏览量

    23248
  • 卷积神经网络

    关注

    4

    文章

    371

    浏览量

    12716

原文标题:在FPGA硬件在线实验云平台LabCloud上用PipeCNN进行ImageNet图像分类加速

文章出处:【微信号:友晶FPGA,微信公众号:友晶FPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用Container Canary多个平台上测试容器图像

    自带容器模型在当今的现代计算平台上得到广泛支持。换句话说,您可以自定义软件环境中提供自己的容器映像。
    的头像 发表于 05-13 17:05 6664次阅读
    使用Container Canary<b class='flag-5'>在</b>多个<b class='flag-5'>平台上</b>测试容器<b class='flag-5'>图像</b>

    STM32平台上实现Cortex-M3的位带特性

    STM32平台上实现Cortex-M3的位带特性
    发表于 03-14 17:47

    想要学习DSP的平台上进行图像处理,求推荐入门教材。

    各位大神,本人想要学习DSP的平台上进行图像处理,但基础比较差。图像处理的算法是有基础的,但是总觉得这两者结合很困难,希望大神告诉我下有什么好方法入门,或者看哪些教材
    发表于 05-20 10:29

    嵌入式平台上怎么实现μC/GUI的移植?

    。为了使便携式心电监护仪实现友好的人机交互和更加方便的显示,这里提出一种GUI界面系统设计,就是基于NiosⅡ处理器的嵌入式平台上实现μC/GUI的移植,使之
    发表于 11-05 07:00

    MTK平台上实现2ME需要哪些功能?

    J2ME是什么?MTK平台上实现J2ME运行环境,需要哪些功能?怎样去设计并实现J2ME运行平台
    发表于 04-27 06:22

    Intel PXA27X平台上如何去实现MPEG-4视频编码的功能?

    Intel PXA27X平台上如何去实现MPEG-4视频编码的功能?
    发表于 06-03 06:15

    如何在嵌入式Linux系统平台上设计建立图像视频?

    本文使用的系统硬件平台采用Samsung公司的处理器S3C2410,并以此为基础,基于嵌入式Linux系统平台上设计了建立图像视频的一种方法。
    发表于 06-08 06:10

    如何实现UbuntuRK平台上的移植以及AP配网?

    如何实现UbuntuRK平台上的移植以及AP配网?
    发表于 03-09 07:04

    用CPLD实现嵌入式平台上的实时图像增强

    摘要:提出了嵌入式平台上用CPLD实现实时图像增强算法的解决方案,并加以实现。重点讨论了经过改进的
    发表于 03-11 12:44 963次阅读
    用CPLD<b class='flag-5'>实现</b>嵌入式<b class='flag-5'>平台上</b>的实时<b class='flag-5'>图像</b>增强

    如何使用神经网络模型加速图像数据集的分类

    通过图像分类示例,了解Xilinx FPGA如何加速机器学习,这是关键的数据中心工作负载。 该演示使用Alexnet神经网络模型加速了ImageNet图像数据集的
    的头像 发表于 11-21 06:08 2812次阅读

    Xilinx FPGA如何通过深度学习图像分类加速机器学习

    了解Xilinx FPGA如何通过深度学习图像分类示例来加速重要数据中心工作负载机器学习。该演示可通过Alexnet神经网络模型加速图像(从ImageNet获得)
    的头像 发表于 11-28 06:54 4324次阅读

    基于Arm的平台上使用HALCON免费下载

    基于Arm的平台上使用HALCON免费下载
    发表于 12-08 17:28 0次下载
    <b class='flag-5'>在</b>基于Arm的<b class='flag-5'>平台上</b>使用HALCON免费下载

    高通AI Hub:轻松实现Android图像分类

    高通AI Hub为开发者提供了一个强大的平台,以优化、验证和部署Android设备上的机器学习模型。这篇文章将介绍如何使用高通AI Hub进行图像分类的程式码开发,并提供一个实际的例
    的头像 发表于 11-26 01:03 1308次阅读
    高通AI Hub:轻松<b class='flag-5'>实现</b>Android<b class='flag-5'>图像</b><b class='flag-5'>分类</b>

    DE1-SOC开发板实现Chirikov标准映射求解器

    该项目是DE1-SOC开发板实现Chirikov标准映射的求解器,并将其应用于图像加密和解密的概念验证。
    的头像 发表于 07-07 15:22 1631次阅读
    <b class='flag-5'>在</b><b class='flag-5'>友</b><b class='flag-5'>晶</b>DE1-SOC开发板<b class='flag-5'>实现</b>Chirikov标准映射求解器

    科技FPGA硬件在线云平台LabCloud落地华北电力大学

    赶在开学季,科技一站式教育平台——FPGA硬件在线云平台LabCloud,在华北电力大学成功部署!精准
    的头像 发表于 08-30 14:41 1092次阅读