入门培训1:雨人V3板卡入门



  • 鲲云雨人V3板卡使用指南

    目录

    主机端/服务器端


    主机安装程序

    开发环境基于Linux(Ubuntu)和鲲云提供的docker镜像。鲲云提供两种训练模式的容器,分别有基于GPU的版本和基于CPU的版本。为了在GPU环境中支持AI培训,我们假设主机具有本地NVIDIA GPU并安装了正确的驱动程序。要运行鲲云docker镜像,必须在同一台主机上安装docker-cenvidia-docker软件包。如果是在CPU环境中进行训练,只需要docker-ce软件包。

    安装GPU使用GPU版本:

    • 需要安装Nvidia显卡驱动。
    • 安装docker-cenvidia-docker2
    • 获取鲲云基于Nvidia GPU开发环境的镜像文件。

    无GPU安装使用CPU版本:

    • 安装docker-ce
    • 获取 鲲云基于CPU的docker_cpu_1.2镜像文件。

    Docker-ce安装链接:Docker-ce官方安装指南

    Nvidia-docker2安装链接:Nvidia-docker官方安装指南

    1. 安装Docker-ce

    首先,用户在Linux(Ubuntu)终端中输入下命令安装docker-ce

    sudo apt-get remove docker docker-engine docker.io
    sudo apt-get update
    sudo apt-get install apt-transport-https \
                         ca-certificates     \
                         curl                \
                         software-properties-common
    
    curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    
    sudo add-apt-repository \
      	"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
        $(lsb_release -cs) \
       	stable"
    
    sudo apt-get update
    sudo apt-get install docker-ce
    

    2. 安装容器文件

    安装GPU使用GPU版本(推荐使用GPU版本):

    sudo docker run --runtime=nvidia --name plumber -dti brucvv/plumber
    

    无GPU安装使用CPU版本:

    sudo docker run --name plumber -dti brucvv/plumber:cpu_1.2
    

    容器下载完成之后,然后用户可以进入容器:

    sudo docker exec -ti plumber bash
    

    3. 进入容器进行算法训练和编译器优化

    输入容器后,默认目录为/ app。用户可以执行以下命令。 请注意,第二步可能需要大约一个小时才能完成,具体取决于GPU的性能。如果使用CPU进行训练,可能需要大约3-4个小时完成。

    a. 算法模型训练

    使用说明请参考(入门培训2:算法训练说明)
    /app/detection目录下输入以下命令进行算法训练

    cd detection/
    script/1_run_convert.sh  ----------------------------------------------------数据转换
    script/2_run_training.sh ----------------------------------------------------模型训练
    script/3_run_test.sh --------------------------------------------------------模型测试
    script/4_gen_PostParam.sh ---------------------------------------------------生成后处理参数
    script/5_run_truncate_model.sh ----------------------------------------------导出推演模型
    
    b. 编译器优化

    使用说明请参考( 入门培训3:Plumber使用指南)
    /app目录下输入以下命令使用Plumber编译器对Tensorflow模型进行固化,解析并进行基于硬件的优化。

    ./1_plumber_freeze.sh -------------------------------------------------------模型固化
    ...
    Please enter the indices of output nodes, separated by ','. If you want to select all, please enter 'all': all
    # 请输入`all`选择Plumber编译器支持的所有节点。
    ...
    ./2_plumber_genSG.sh --------------------------------------------------------生成Streaming Graph
    ./3_plumber_SG_opt.sh -------------------------------------------------------执行SG优化
    ./4_plumber_HDL_opt.sh ------------------------------------------------------执行硬件优化
    ./5_plumber_export_data.sh --------------------------------------------------导出数据
    ./6_cp_board_files.sh -------------------------------------------------------整合需要下载到板卡的所有内容
    

    注意:docker中提供一个更加简化的编译步骤:1_plumber_freeze.sh --> 0_run_complete_flow.sh --> 5_plumber_export_data.sh --> 6_cp_board_files.sh
    注意:编译完成的结果,默认写入/app/board_files/文件夹,其中包含:网络参数(float_little),FPGA配置文件(rainman9.6.rbf),SG描述文件(*.pbtxt)和后处理参数(post_params)

    到此,服务器和主机端的训练和编译器工作完成,之后需要将配置文件导入硬件雨人V3板卡。


    雨人V3板卡端


    1. 硬件设置

    1. 将雨人v3加速器板放在平坦且不导电的表面上。
    2. 将雨人加速器板上的以太网端口直接连接到主机PC的以太网端口。
    3. 通过USB Type-C接口为加速器板供电。我们建议使用5V 2A手机充电器为电路板供电。 PC或笔记本电脑的USB端口可能无法提供所需的足够和稳定的电量。
    4. 然后加速器板正常供电,板上(SD卡附近)的绿色LED亮起。如果使用带风扇进行散热的版本,正上电之后,风扇开启。

    2. 网络设置与板卡登陆

    在主机系统中,必须手动配置以太网到加速器板的网络接口IPv4地址,否则无法链接雨人V3板卡,配置参数如下:

    设置
    本地主机IPv4 192.168.123.10
    网络掩码 255.255.255.0
    雨人V3板卡默认网关 192.168.123.8

    Linux系统设置方法如图:
    Linux_IP.png

    Mac系统设置方法如图:
    mac_conf.PNG

    Windows10系统设置方法如图:

    windows_conf.PNG

    雨人V3板卡的IP默认地址为192.168.123.8。用户可以通过该IP地址从主机“ssh”进入雨人V3板卡。

    • Linux系统执行登陆:
    用户名:root
    密码:letmein
    

    SSH命令如下:

    ssh root@192.168.123.8
    

    输入密码:

    letmein
    
    • Windows系统下执行登陆:
      如果需要在Windows系统下登陆雨人V3板卡,建议下载MobaXterm,该软件可以支持远程脚本编辑,图片查看等,下载链接:
      https://mobaxterm.mobatek.net/

    MobaXterm_low_pixel.png

    ssh root@192.168.123.8
    

    注意: 使用MobaXterm可以在左侧查看雨人V3板卡的文件内容,可以很方便的进行文档编辑和图片查看。

    通过SSH登录加速板后,用户可以执行以下命令查看许可证。这是使用雨人平台的软件源和硬件资源所必需的。每次板卡重新启动,都需要执行该命令。

    ./checklicense/check.sh
    

    如果许可证已成功签出,许可证检查程序将显示“license valid”消息。如下:

    searching license from default path:  /var/corerain/licensehw.dat
    license valid.
    

    3. 板卡执行

    a. 从主机向雨人V3板卡导入执行所需数据:Linux主机执行

    将docker中生成的board_files拷贝到板卡SD中(默认目录/ app)。
    linux系统可使用

    scp -r board_files root@192.168.123.8:/root/
    
    注意:如果是windows用户,可使用SSH客户端,如MobaXterm。
    
    b. 运行SSD示例:雨人V3板卡执行
    ./build/ssd_5b_runner --pbtxt SG描述文件路径 --coeff_path 网络参数路径 --param_path 后处理参数路径 --input_path 输入图像路径(检测前图片) --output_path 输出图像路径(检测后图片))) -cls 预测网络类别数(与训练保持一致)
    

    具体可以参考test/tools文件下run_5b_cls3.sh

    cd test/tools
    ./run_5b_cls3.sh
    

    如果出现路径报错,请检查run_5b_cls3.sh文件内配置是否正确,正确文件配置如下(该配置只检测一张图片,图片名为1530697831_1,保存在imgetxt文件夹下)

    ./build/ssd_5b_runner --pbtxt /root/board_files/model_hdl_sg.pbtxt --coeff_path /root/board_files/float_little/ --param_path /root/board_files/post_params/ --input_path /root/imagetxt/1530697831_1.jpg --output_path ./out.jpg -cls 2
    

    该示例输入一张图像,进行网络推演,在输出图像中标出检测出的目标框,并在框的左上角标出对应类别的index。
    注意:类别数=识别类别总数+1,e.g., 训练样本中包含行人和车辆两种物体,则类别数=3

    检测后会得到标记好的图片,文件为:

    ~/test/tools/out.jpg
    
    c. 浏览图片
    1. 使用scp命令行将图片从雨人V3板卡拷贝到主机(预设IP地址为192.168.123.10)根目录下进行浏览:
    scp test/tools/out.jpg 用户名@192.168.123.10:~/
    
    1. 使用python建立建议Http服务站,使用浏览器直接在雨人V3板卡上直接浏览,无需拷贝图片文件:
    python -m SimpleHTTPServer
    

    在浏览器中输入雨人V3板卡IP地址与端口,即可浏览板卡上的文件。

    python_check_graph.png

    1. 通过Windows MobaXterm浏览,
      请参看Windows系统下执行登陆章节,可以使用MobaXterm直接浏览雨人V3板卡文件。

    注意
    在Linux系统中,如果无法使用以上scp命令将图片从雨人V3板卡拷贝的本机,请检查本机IP地址是否正确,同时确认是否安装和启动SSH Service

    SSH Service安装方法:

    sudo apt-get install openssh-server
    sudo service ssh start
    

    使用雨人V3板卡实现SSD神经网络进行单张图片检测到这就完成了。

    可变参数处理

    SSD demo中的主函数为/root/test/tools/single_img/ssd_5b_runner.cc

    1. line 34-39 为后处理参数配置
      NUM_EXT_LAYER ---------------------------------------- SSD分支数量
      prior_scaling ---------------------------------------- 默认参数,一般不变
      num_anchors ------------------------------------------ 对应每个分支的anchor数量
      feat_sizes ------------------------------------------- 对应每个分支的feature map的 {高}x{宽}x{anchor数}
    2. line 80 定义输入网络的数据大小, 默认为256x256x3
    3. line 174-184 调用opencv的绘制函数,并存储结果,非必要步骤
    4. line 171 为网络输出结果,类型定义vector<BBox>, 具体数据格式请参考 /usr/local/include/raintime_thirdparty/third_party/libssd/bbox.hh


  • @Corerain
    哎 我也不知道啥原因,换了一台电脑,一样的设置一下,就ping通了 好难受☹



  • @bfXia 如果您是在MobaXterm上连接的板卡,那您首先需要确定网线、板卡的连接没有问题,主机的IP已经配好,其次您可以尝试关闭防火墙,之后您可以试着在cmd里ping 192.168.123.8



  • @Corerain 我想用mobaXterm链接板子,所以我在win上ping的板子,然后返回目标主机不可达,我主机地址是192.168.123.10.
    试着用了你的方法,在虚拟机上ping了板子,之前是ping不到的,现在返回的意思是目标主机不可达
    0_1553582889053_2810d077-3371-45d5-b422-11064af1c530-image.png



  • @bfXia 请问您是在虚拟机里面ping的板卡吗,还是在Linux系统里面?如果是在VitrualBox的虚拟机里,您首先需要设置一个和板卡处于同个网段的IP地址,之后还需要在设置中选择正确的连接方式,如下图所示,然后点击确定,再在虚拟机里ping一下。

    image



  • 我无法登录到V3板子,使用ssh登录的时候显示 connect to host 192.168.123.8 port 22:no rote to host,ping板子的时候也显示主机不可达,困扰我好久了



  • @Research 谢谢



  • @吕俊杰 我们在ali上传了一个版本:

    brucvv/plumber:cpu_1.2
    换成:
    registry.cn-shenzhen.aliyuncs.com/corerain/plumber:cpu_1.2
    可以试试。

    Thanks.



  • @吕俊杰 是否和本地网络相关。我们的下载速度还是可以的...



  • sudo docker run --name plumber -dti brucvv/plumber:cpu_1.2下载速度特别慢?换了下载源还是慢



  • @Research 已成功解决问题!谢谢!



  • @何俊贤

    将输入图片路径改为: /root/test/Tutorial-4/1.jpg 后,能成功运行,但是会出现''pre_prepare: 1.0106(或其他数字)'',且没有输出图像
    

    执行前,是否check license,显示valid后,再运行一次。



  • 问题:
    将docker中生成的board_files拷贝到板卡SD后,发现没有imagetxt文件,且更改run_5b_cls3.sh内容为正确文件配置后,执行cd test/tools ./run_5b_cls3.sh会报错,报错信息如下:
    OpenCV Error: Assertion failed (ssize.area() > 0) in resize, file /home/opencv-2.4.9/modules/imgproc/src/imgwarp.cpp, line 1834
    terminate called after throwing an instance of 'cv::Exception'
    what(): /home/opencv-2.4.9/modules/imgproc/src/imgwarp.cpp:1834: error: (-215) ssize.area() > 0 in function resize

    ./run_5b_cls3.sh: line 1: 1494 Aborted ./build/ssd_5b_runner --pbtxt /root/board_files/model_hdl_sg.pbtxt --coeff_path /root/board_files/float_little/ --param_path /root/board_files/post_params/ --input_path /root/imagetxt/1530697831_1.jpg --output_path ./out.jpg -cls 2

    将输入图片路径改为: /root/test/Tutorial-4/1.jpg 后,能成功运行,但是会出现''pre_prepare: 1.0106(或其他数字)'',且没有输出图像



  • @pyy 已解决
    Thanks.



  • @fangzhou10 谢谢



  • @pyy 正常情况下是Valid的,我们线下帮你看一看。



  • 执行./checklicense/check.sh失败怎么处理

    报错信息如下:

    root@corerain:~# ./checklicense/check.sh
    version: V13 bit=16 pf=-1234171733 pv=1 user defined: 48879.
    searching license from env: CORERAIN_HW_LICENSE_FILE
    (null) Not a valid path name.
    searching license from default path: /var/corerain/licensehw.dat
    harware id not match.
    license invalid
    check license failed, exit.

    是否需要购买?



  • @fangzhou10 已发



  • @jidongg 可在论坛私信
    姓名
    邮箱
    公司/学校
    电话
    我们后续可以与您沟通。



  • @fangzhou10 怎样得到雨人V3?