开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
图像技术
文字识别
人脸与人体识别
视频技术
AR与VR
自然语言处理
知识图谱
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
智能农业
信息服务
智能园区
智能硬件
EdgeBoard嵌入式AI解决方案

    3-软核介绍

    1. 软核版本说明
    2. 1.5.1版本软核介绍

      2.1 软核组成部分

      2.2 系统目录介绍

      2.3 软核升级工具使用

    3. 其他版本软核介绍

      3.1 软核组成部分

      3.2 系统目录介绍

      3.3 软核版本升级


    软核版本说明

    EdgeBoard软核版本会定期升级,由于升级后会增加和优化很多功能,所以用户在对软核升级时,需要全部替换升级文件,包括预测库、fpga驱动文件、系统镜像文件以及sample示例工程,以上文件均须在同一版本下才可正常使用。

    版本
    日期
    更新说明
    软核
    示例
    v1.5.1 2020-10-29 1、预测库从paddle-mobile切换为paddle-lite
    2、支持转置卷积
    3、支持多输入多输出模型
    4、支持ResNet101、SE-ResNeXt101、SE-ResNeXt50等模型
    5、增加软核更新工具
    6、修复一些bug
    下载FZ9A
    下载FZ9B
    下载FZ5A
    下载FZ5B
    下载FZ5C
    下载FZ3A(芯驿版本)
    下载FZ3B(芯驿版本)
    下载
    v1.4.0 2020-04-23 1、新增relu6 op 支持
    2、修改elementwise-add op bug
    3、支持Mobilenet-v2 网络
    4、解决VGG-SSD网络bug
    下载FZ9A
    下载FZ9B
    下载FZ5A
    下载FZ5B
    下载FZ5C
    下载FZ3A
    下载FZ3B
    下载
    v1.3.0 2019-12-29 1、支持空洞卷积vgg-ssd模型
    2、支持fpga normalize加速
    3、预处理使用FPGA scale计算
    下载FZ9A
    下载FZ5A
    下载FZ3A
    下载
    v1.2.0 2019-10-28 1.新支持SE-RENEXT模型
    2.修复部分mobilenet-ssd bug
    下载
    v1.1.0 2019-09-02 1.新支持YOLOV3模型
    2.提升卷积并行度,提升网络性能30%
    下载
    v1.0.3 2019-06-07 1.增加Framework中间层,解耦驱动和预测框架
    2.新支持mobilenet-ssd、densenet网络
    3.视频输入增加mipi摄像头支持
    4.bt1120和USB摄像头输入示例整合为bt1120和USB、mipi摄像头三合一sample_video
    5.支持dp实时显示bt1120和USB、mipi摄像头预测结果
    6.支持USB摄像头YUV数据通过FPGA硬件加速转RGB数据
    下载
    v1.0.1 2019-03-22 1.新验证resnet、inception等模型
    2.新增sample_image_resnet、sample_image_inception、sample_image_vgg_ssd推理示例
    下载
    v1.0.0 2019-02-28 1.已验证vgg、ssd等模型
    2.支持USB摄像头、IPC摄像头BT1120协议视频输入作为推理数据
    3.sample_image、sample_easydl、sample_usb、sample_bt11200推理示例
    4.usb/bt1120/dp验证工具tools
    下载

    1.5.1版本软核介绍

    软核组成部分

    ​ EdgeBoard 1.5.1版本迎来重大升级,预测库由原来的paddle-mobile升级为paddlelite,内部搭载Linux系统,开发者可以基于Linux系统进行应用程序开发。应用程序获取视频输入,调用paddlelite预测库加载模型,调度模型和驱动加速模块进行计算,加速模型运行,获得运行结果。考虑到便捷二次开发,EdgeBoard软核存放于系统SD卡中,方便用户开发自己的应用程序,在批量生产场景可装载到eMMC中。

    SD卡宏观上分为两个分区:一个分区装载linux文件系统,另外一个分区装载系统启动文件。

    文件 分区格式 分区大小 说明
    rootfs EXT4 13G左右 EdgeBoard文件系统,基于petalinux制作的linux操作环境
    image.ub&BOOT.BIN FAT 2G左右 EdgeBoard软核系统启动镜像

    系统目录介绍

    进入系统,用户目录为:/home/root/workspace,在workspace下主要包含下列三个文件:

    文件名称 目录 备注
    FZxx_install_x.x.x /home/root/workspace/FZxx_install_1.5.1 软核升级安装工具
    driver /home/root/workspace/driver 驱动文件
    PaddleLiteSample /home/root/workspace/PaddleLiteSample 示例代码

    软核升级安装工具

    软核升级工具是1.5.1版本后新增的便于软核升级的一套自动化升级工具,用户只需将每次升级的工具包拷贝到workspace文件夹下,执行对应版本的安装脚本即可完成软核升级。

    升级包中包含下列文件:

    文件名称 备注
    FZxx 包含对应型号待升级的系统镜像(BOOT.BIN、image.ub)和驱动(fpgadrv.ko)
    include paddlelite头文件
    libpaddle_full_api_shared.so.xxx 待升级的paddlelite动态库
    PaddleLiteConfig.cmake paddlelite动态库查找配置文件
    install_FZxx.sh 自动化软核安装脚本

    注意:升级包中BOOT.BIN、image.ub以及fpgadrv.ko虽然在每个包中的名称相同,但为不同型号的文件,请勿混淆

    升级包可实现的功能如下:

    1、安装、更新、备份系统镜像 :具体实现是拷贝BOOT.BIN、image.ub 到/run/media/mmcblk1p1/分区

    2、安装、更新、备份驱动:具体实现是拷贝fpgadrv.ko到~/workspace/driver/目录下,自启动脚本会加载该驱动

    3、安装、更新、备份预测库:具体实现是拷贝paddle_full_api_shared.so.1.5.1到/usr/local/lib/paddle_lite/目录下,并建立paddle_full_api_shared.sopaddle_full_api_shared.so1.5.1的软链,拷贝include目录下文件到/usr/local/include/paddle_lite/目录下)

    4、安装预测库查找PaddleLiteConfig.cmake文件,用于在应用程序的CMakeLists.txt中查找安装到/usr/local/目录下的PaddeleLite库,下面给出了在CMakeLists.txt使用的例子:

    find_package(PaddleLite QUIET)
    
    if (PADDLELITE_FOUND)
    	message("PADDLELITE_FOUND")
    	include_directories(${PADDLELITE_INCLUDE_DIR})
    	LINK_DIRECTORIES(${PADDLELITE_LIBRARY})
    
    	set(IMAGE_CLASSIFY "image_classify" )
    	add_executable(${IMAGE_CLASSIFY} ${COMMON_SOURCES} src/image_classify.cpp)
    	target_link_libraries(${IMAGE_CLASSIFY} ${PADDLELITE_LIBRARY})
    	target_link_libraries(${IMAGE_CLASSIFY} ${OpenCV_LIBS} ) 
    
    	set(VIDEO_CLASSIFY "video_classify" )
    	add_executable(${VIDEO_CLASSIFY} ${COMMON_SOURCES} src/video_classify.cpp)
    	target_link_libraries(${VIDEO_CLASSIFY} ${PADDLELITE_LIBRARY})
    	target_link_libraries(${VIDEO_CLASSIFY} ${OpenCV_LIBS} ) 
    else ()
    	message(FATAL_ERROR "PADDLELITE NOT FOUND")
    endif ()

    软核升级工具使用步骤见软核升级工具使用

    driver fpga驱动

    文件名称 备注
    fpgadrv.ko 编译好的驱动。EdgeBoard的加速功能,预测库会把计算量大的op通过驱动调用fpga进行运算,运行模型前需要加载驱动,开机加载一次即可

    加载fpga驱动命令

    insmod /home/root/workspace/driver/fpagdrv.ko

    卸载fpga驱动命令PaddleLiteSample

    rmmod fpgadrv

    注意:为方便用户快速进入模型预测环节,在EdgeBoard出厂时已将驱动设置为开机自动加载模式,自动加载的驱动的文件为/home/root/workspace/driver/fpagdrv.ko。

    PaddleLiteSample示例工程

    在1.5.1版本后,Edgeboard升级预测库为paddlelite,相应的示例工程为PaddleLiteSample,同样的包含图像分类模型和物体检测模型示例,针对已升级到1.5.1及更高版本软核的用户可直接参考PaddleLiteSample使用方法即可,更多详情请参考PaddleLite示例介绍

    软核升级工具使用

    EdgeBoard软核版本会定期升级,由于升级后会增加和优化很多功能,所以用户在对软核升级时,需要全部替换升级文件,包括预测库、驱动文件、系统镜像文件,以上文件均须在同一版本下才可正常使用。在1.5.1版本后新增了软核升级安装工具,包含在每个型号的升级目录中,可一键升级软核,方便快捷。

    升级工具具体使用方法如下:

    1、从官网中下载待升级的软核包FZxx_install_x.x.x,拷贝到edgeboard的workspace中。拷贝文件请参考EdgeBoard传输文件方式

    ‘2、使用ssh链接网口或者通过串口进入edgeboard的workspace文件中,解压zip文件。设备连接方式详情请参考EdgeBoard常用连接方式

    unzip FZxx_install_x.x.x.zip
    //例如
    unzip FZ3A_install_1.5.1.zip

    3、进入到FZxx_install_x.x.x目录,执行硬件对应的脚本。如:以FZ3A升级1.5.1为例

    //进入软核安装目录
    cd /home/root/workspace/FZ3A_install_1.5.1
    //执行自动化升级脚本
    sh ./install_FZ3A.sh

    如果有已经安装的版本,会先进行备份(备份到安装包目录backup),然后进行安装,最后提示安装成功即可,如果下图。

    4、软核安装完成后,执行reboot,重启设备。

    5、运行示例工程,升级软核示例程序不需要改动,直接运行即可,如果出错,可能是引用的/usr/local/include/paddle_lite/下的PaddleLite头文件有调整,重新编译即可。

    其他版本软核介绍

    软核组成部分


    EdgeBoard 软核内部搭载Linux系统,开发者可以基于Linux系统进行应用程序开发。应用程序获取视频输入,调用paddlemobile预测库加载模型,调度模型和驱动加速模块进行计算,加速模型运行,获得运行结果。考虑到便捷二次开发,EdgeBoard软核存放于系统SD卡中,方便用户开发自己的应用程序,在批量生产场景可装载到eMMC中。

    SD卡宏观上分为两个分区:一个分区装载linux文件系统,另外一个分区装载系统启动文件。

    文件 分区格式 分区大小 说明
    rootfs EXT4 13G左右 EdgeBoard文件系统,基于petalinux制作的linux操作环境
    image.ub&BOOT.BIN FAT 2G左右 EdgeBoard软核系统启动镜像

    系统目录介绍

    进入系统,用户目录为:/home/root/workspace,在workspace下主要包含下列四个文件:

    文件名称 目录 备注
    paddle-mobile /home/root/workspace/paddle-mobile paddle-mobile预测库
    driver /home/root/workspace/driver 驱动文件
    sample /home/root/workspace/sample 示例代码
    tools /home/root/workspace/tools 调试工具

    paddle-mobile预测库

    paddle-mobile用于存放paddlemobilen预测库文件及其创建软链接的脚本文件。正常使用存放于每个示例的lib文件夹下,在示例中进行调用,例如在/home/root/workspace/sample/classification/lib目录下,文件包含:

    文件名称 备注
    libpaddle-mobile.so.1.5.0 paddle-mobile预测库文件,跟随不同版本不断升级
    ln.sh 预测库执行脚本,用于创建预测库软链接

    在使用预测库时,需要执行sh ln.sh创建预测库的软链接,预测库即可正常调用。


    driver_fpga驱动

    文件名称 备注
    fpgadrv.ko 编译好的驱动。EdgeBoard的加速功能,预测库会把计算量大的op通过驱动调用fpga进行运算,运行模型前需要加载驱动,开机加载一次即可

    加载fpga驱动命令

    insmod /home/root/workspace/driver/fpagdrv.ko

    卸载fpga驱动命令

    rmmod fpgadrv

    sample示例工程

    EdgeBoard软核提供丰富的图像分类模型和物体检测模型以及配套的示例工程,用户可以体验自带模型的预测效果,还可以将自己训练的模型集成到示例中,实现模型的快速部署,更多详情请参考PaddleMobile示例介绍


    tools工具

    文件名称 备注
    dp DP显示系统桌面的执行脚本
    video v4l2视频工具,可用于检测摄像头是否正常工作

    DP桌面显示

    桌面显示命令仅在设备正确连接显示器后才可正确执行,不同接口显示器需要dp转换器实现正确连接,详情请参考EdgeBoard视频输出

    DP桌面打开命令:

    //进入EdgeBoard系统,输入DP桌面显示命令
    startx

    DP桌面关闭命令:

    stopx

    video视频工具

    EdgeBoard 支持多种接口的摄像头输入,详情请参考EdgeBoard视频输入

    使用usb摄像头采集图片:

    1)插入摄像头后,通过ls /dev/video* 查看设备接入情况。通过后显示如下:

     /dev/video0  /dev/video1 /dev/video2

    /dev/video2为usb摄像头v4l2输出yuv数据

    2)运行video工具

    //读取usb摄像头,采集10张图片保存到本地 
       cd /home/root/workspace/tools/video
       ./v4l2demo -i /dev/video2 -j -n 10

    图片目录存放在/home/root/workspace/tools/video

    使用bt1120摄像头采集图片:

    1)BT1120接口为FPC连接器,需插入摄像头后,再给EdgeBoard上电,同时摄像头不需要单独供电,BT1120为板载的视频输入接口,视频节点默认/dev/video1

      ls /dev/video*
      /dev/video0  /dev/video1

    2)配置摄像头参数

      media-ctl -v --set-format '"a0010000.v_tpg":0 [RBG24 1920x1080 field:none]'

    3)运行video工具

    //读取BT1120摄像头,采集10张图片保存到本地 
       cd /home/root/workspace/tools/video
       ./v4l2demo -i dev/video1 -j -n 10

    图片目录存放在/home/root/workspace/tools/video

    使用MIPI摄像头采集图片

    mipi购买链接和使用注意请参考EdgeBoard视频输入

    1)板载视频通道/dev/video1默认为BT1120视频输入,如果需要调用MIPI视频输入,需要转换视频通道,使用script视频配置脚本

    //进入script脚本目录
    cd /home/root/workspace/sample/script
    
    //修改video_config.sh为可执行权限
    chmod +x video_config.sh
    
    //执行脚本文件,切换到mipi视频模式
    ./video_config.sh 2

    2)切换完成后,配置摄像头参数

      media-ctl -v --set-format '"a0010000.v_tpg":0 [RBG24 1920x1080 field:none]'

    3)运行video工具

    //读取mipi摄像头,采集10张图片保存到本地 
       cd /home/root/workspace/tools/video
       ./v4l2demo -i dev/video1 -j -n 10

    图片目录存放在/home/root/workspace/tools/video

    更多使用请查看帮助

    ./v4l2demo -h

    软核版本升级

    sample更新

    1.通过网线连接设备,使其和电脑在同一局域网,EdgeBoard默认ip:192.168.1.254,用户名:root,密码:root,并使用网络协议ftp或samba拷贝文件 2.拷贝sample到/home/root/workspace/,替换原有的sample文件 3.进入每个sample目录,如果lib目录中有对应版本的paddlemobile预测库和脚本文件,请执行lib目录下的脚本创建预测库软链 sh ./ln.sh

    例如:进入classification目录,并执行对应lib下的软链接

    cd /home/root/workspace/sample/classification/lib
    sh ./ln.sh

    执行后会创建libpaddle-mobile.so&libpaddle-mobile.so.1两个软链。如下图所示:

    infoflow_2020-7-8_14-51-21


    预测库更新

    预测库一般放在sample每个实例的lib文件夹下,在进行sample更新时,会同步更新预测库。我们也可以放到/home/root/workspace/paddlemobile目录下进行文件备份。


    driver更新

    1、通过网线连接设备,使其和电脑在同一局域网,EdgeBoard默认ip:192.168.1.254,用户名:root,密码:root,并使用网络协议ftp或samba拷贝文件

    2、拷贝driver文件fpgadrv.ko到/home/root/workspace/driver,替换原有的fpgadrv.ko文件。驱动文件名称相同,为确保已经更新为最新版本,可以卸载当前驱动,然后重新加载驱动,若打印信息显示版本号为最新版本,证明驱动文件已经更新,如下图所示:

    infoflow_2020-7-8_15-32-49


    系统镜像文件更新

    系统镜像文件包括(BOOT.BIN和image.ub),存放于sd卡的fat分区中,使用读卡器插入非linux系统电脑,能读到的分区就是fat分区,更新系统镜像文件有两种方法:

    1、使用读卡器,将sd卡插到电脑上,拷贝最新的BOOT.BIN和image.ub替换原有的BOOT.BIN和image.ub文件。

    2、使用ftp或samba网络协议,首先将BOOT.BIN和image.ub拷贝到/home/root/workspace/文件夹下,分步执行下面的命令: mount /dev/mmcblk1p1 /mnt/sdcard/ cp /home/root/workspace/BOOT.BIN /mnt/sdcard/ cp /home/root/workspace/image.ub /mnt/sdcard/ reboot

    如下图所示:

    infoflow_2020-7-8_16-22-55