如何在Hi3559A上运行自己的YOLOv3模型(五)

将自己的网络放到HI3559A上运行

 

前言:在上一篇中我们已经可以根据仿真的结果看到自己转化后的模型的效果是什么样的,此次我们来将这个结果在海思处理器上复现出来

step1.

在ubuntu上进入SDK目录下的mpp/sample/svp/big-little,并将自己的wk文件与bgr图像放入nnie/data中

注意可以在板子上运行的wk文件只能是指令仿真的wk文件(inst),功能性仿真的文件(func)不能被板子载入

step2.

进入nnie/sample文件夹,打开并编辑sample_nnie.c 文件,找到下面这两部分,按照自己的需求进行更改

    pstSoftWareParam->u32OriImHeight = pstNnieParam->astSegData[0].astSrc[0].unShape.stWhc.u32Height;
    pstSoftWareParam->u32OriImWidth = pstNnieParam->astSegData[0].astSrc[0].unShape.stWhc.u32Width;
    pstSoftWareParam->u32BboxNumEachGrid = 3;
    pstSoftWareParam->u32ClassNum = 5;       //类的数目
    pstSoftWareParam->au32GridNumHeight[0] = 19;  //图片大小/32 (例:608/32)
    pstSoftWareParam->au32GridNumHeight[1] = 38;  //图片大小/16
    pstSoftWareParam->au32GridNumHeight[2] = 76;  //图片大小/8
    pstSoftWareParam->au32GridNumWidth[0] = 19;
    pstSoftWareParam->au32GridNumWidth[1] = 38;
    pstSoftWareParam->au32GridNumWidth[2] = 76;
    pstSoftWareParam->u32NmsThresh = (HI_U32)(0.3f*SAMPLE_SVP_NNIE_QUANT_BASE);
    pstSoftWareParam->u32ConfThresh = (HI_U32)(0.5f*SAMPLE_SVP_NNIE_QUANT_BASE);
    pstSoftWareParam->u32MaxRoiNum = 15;     //每个图片最多由多少个目标
    /*以下为模型的anchor,具体计算方法请自行查询,不更改也可*/
    pstSoftWareParam->af32Bias[0][0] = 116; 
    pstSoftWareParam->af32Bias[0][1] = 90;
    pstSoftWareParam->af32Bias[0][2] = 156;
    pstSoftWareParam->af32Bias[0][3] = 198;
    pstSoftWareParam->af32Bias[0][4] = 373;
    pstSoftWareParam->af32Bias[0][5] = 326;
    pstSoftWareParam->af32Bias[1][0] = 30;
    pstSoftWareParam->af32Bias[1][1] = 61;
    pstSoftWareParam->af32Bias[1][2] = 62;
    pstSoftWareParam->af32Bias[1][3] = 45;
    pstSoftWareParam->af32Bias[1][4] = 59;
    pstSoftWareParam->af32Bias[1][5] = 119;
    pstSoftWareParam->af32Bias[2][0] = 10;
    pstSoftWareParam->af32Bias[2][1] = 13;
    pstSoftWareParam->af32Bias[2][2] = 16;
    pstSoftWareParam->af32Bias[2][3] = 30;
    pstSoftWareParam->af32Bias[2][4] = 33;
    pstSoftWareParam->af32Bias[2][5] = 23;

step3.

重新返回到big-little 目录下,进行make,make完成后会在nnie中生成一个可执行的文件,就是我们有个nnie编译出来的结果。

将整个big-little文件拷贝到板子上,最好是使用nfs挂载上硬盘,也可以使用其他方式拷贝过去。

板子上电后需要先加载各部分的驱动文件,也就是load  ko文件,具体上电流程看此贴:

3559A上电后需要做什么:https://blog.csdn.net/qq_34533248/article/details/102502038

将文件拷贝过去之后,进去nnie文件,使用以下命令完成首次推理。

./sample_nnie_main 8

输出log如下

 

 

下一篇:如何将sample代码重构并封装成自己的代码(施工中...)

 

 

 

 

 

 

 

 

  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值