查看: 962|回复: 15

[hi3559/hi3559a] 用3559A进行目标检测,已经在开发板上实现了检测,但是只显示检测的坐标,怎么把...

[复制链接]
发表于 2019-1-13 17:43:10 | 显示全部楼层 |阅读模式

用3559A进行目标检测,已经在开发板上实现了检测,但是只显示检测的坐标,怎么把整幅图都显示出来?求助大佬们
发表于 2019-1-14 10:58:08 | 显示全部楼层
楼主 板上怎么移植深度学习算法 (NNIE),能否加个qq请教。  期待您的回复
发表于 2019-1-21 17:15:58 | 显示全部楼层

你可以参考sample_nnie_main.c程序做修改
/mpp/sample/svp/multi-core/nnie/sample_nnie_main.c

0) RFCN(VI->VPSS->NNIE->VGS->VO).
1) Segnet(Read File).
2) FasterRcnnAlexnet(Read File).
3) FasterRcnnDoubleRoiPooling(Read File).
4) Cnn(Read File).
5) SSD(Read File).
6) Yolov1(Read File).
7) Yolov2(Read File).
8) LSTM(Read File).
9) Pvanet(Read File).
  1.     /*GetResult*/
  2.     /*if user has changed net struct, please make sure SAMPLE_SVP_NNIE_Rfcn_GetResult
  3.      function's input datas are correct*/
  4.     s32Ret = SAMPLE_SVP_NNIE_Rfcn_GetResult(pstParam,pstSwParam);
  5.     SAMPLE_SVP_CHECK_EXPR_RET(HI_SUCCESS != s32Ret,s32Ret,SAMPLE_SVP_ERR_LEVEL_ERROR,
  6.         "Error,SAMPLE_SVP_NNIE_Rfcn_GetResult failed!\n");

  7.     /*draw result, this sample has 21 classes:
  8.      class 0:background     class 1:plane           class 2:bicycle
  9.      class 3:bird           class 4:boat            class 5:bottle
  10.      class 6:bus            class 7:car             class 8:cat
  11.      class 9:chair          class10:cow             class11:diningtable
  12.      class 12:dog           class13:horse           class14:motorbike
  13.      class 15:person        class16:pottedplant     class17:sheep
  14.      class 18:sofa          class19:train           class20:tvmonitor*/
  15.     s32Ret = SAMPLE_SVP_NNIE_RoiToRect(&(pstSwParam->stDstScore),
  16.     &(pstSwParam->stDstRoi), &(pstSwParam->stClassRoiNum), pstSwParam->af32ScoreThr,HI_TRUE,&(pstSwParam->stRect),
  17.     pstExtFrmInfo->stVFrame.u32Width, pstExtFrmInfo->stVFrame.u32Height,u32BaseWidth,u32BaseHeight);
  18.     SAMPLE_SVP_CHECK_EXPR_RET(HI_SUCCESS != s32Ret,s32Ret,SAMPLE_SVP_ERR_LEVEL_ERROR,
  19.         "Error(%#x),SAMPLE_SVP_NNIE_RoiToRect failed!\n",s32Ret);

  20.         //Draw rect
  21.         s32Ret = SAMPLE_COMM_SVP_NNIE_FillRect(&stBaseFrmInfo, &(pstSwParam->stRect), 0x0000FF00);
  22.         SAMPLE_CHECK_EXPR_GOTO(HI_SUCCESS!=s32Ret, BASE_RELEASE,
  23.             "SAMPLE_COMM_SVP_NNIE_FillRect failed, Error(%#x)!\n", s32Ret);
复制代码


发表于 2019-1-30 16:21:30 | 显示全部楼层
qn1534489079 发表于 2019-1-21 17:15
你可以参考sample_nnie_main.c程序做修改
/mpp/sample/svp/multi-core/nnie/sample_nnie_main.c

您好,请问您这个代码是在3559A具体哪个型号的SDK里呢?我找了Hi3559AV100ES_SDK_V2.0.2.0.tgz,里面没有这个sample。另外,能共享下您的SDK吗?谢谢
发表于 2019-1-31 09:52:10 | 显示全部楼层
qn1545666454 发表于 2019-1-30 16:21
您好,请问您这个代码是在3559A具体哪个型号的SDK里呢?我找了Hi3559AV100ES_SDK_V2.0.2.0.tgz,里面没有 ...

我的SDK是
Hi3559AV100_SDK_V2.0.1.0.tgz

解压缩.tgz后,你要先执行sdk.unpack,才会有mpp, osdrv, osal, drv, hisyslink,....
\Hi3559AV100_SDK_V2.0.1.0\sdk.unpack

具体路径:
\Hi3559AV100_SDK_V2.0.1.0\package\mpp\sample\svp\multi-core\nnie

详细说明要先看一下SDK安装使用PDF:
\Hi3559A V100R001C02SPC010\ReleaseDoc\zh\01.software\board
Hi3559A╱C V100 SDK 安装及升级使用说明.pdf
发表于 2019-2-10 20:53:17 | 显示全部楼层
qn1534489079 发表于 2019-1-31 09:52
我的SDK是
Hi3559AV100_SDK_V2.0.1.0.tgz

好的,谢谢
发表于 2019-2-21 20:21:10 | 显示全部楼层
楼主碰到 加载模型的时 报错嘛  ”HI_MPI_SVP_NNIE_LoadModel [Line]:443 [Info]:Error(0xa0338003): the enRunMode(1) of input model should be 0!"  参考sdk中的ssd
发表于 2019-3-4 17:18:53 | 显示全部楼层
本帖最后由 qn1534489079 于 2019-3-4 17:31 编辑
qn1547026664 发表于 2019-2-21 20:21
楼主碰到 加载模型的时 报错嘛  ”HI_MPI_SVP_NNIE_LoadModel [Line]:443 :Error(0xa0338003): the enRunMo ...


依照"HiSVP API 参考.pdf":
0xA0338003 HI_ERR_SVP_NNIE_ILLEGAL_PARAM 参数超出合法范围

我执行SSD看起来是正常
  1. /Hi3559AV100_SDK_V2.0.1.0/mpp/sample/svp/multi-core/nnie # ./sample_nnie_main 5
  2. [Level]:Debug,[Func]:SAMPLE_COMM_SVP_CheckSysInit [Line]:82 [Info]:Svp mpi init ok!
  3. [Level]:Info,[Func]:SAMPLE_SVP_NNIE_Ssd [Line]:2081 [Info]:Ssd Load model!
  4. [Level]:Info,[Func]:SAMPLE_SVP_NNIE_Ssd [Line]:2090 [Info]:Ssd parameter initialization!
  5. [Level]:Info,[Func]:SAMPLE_SVP_NNIE_Ssd [Line]:2097 [Info]:Ssd start!
  6. [Level]:Info,[Func]:SAMPLE_SVP_NNIE_Ssd [Line]:2126 [Info]:Ssd result:
  7. [Level]:Info,[Func]:SAMPLE_SVP_NNIE_Detection_PrintResult [Line]:777 [Info]:==== The 7th class box info====
  8. [Level]:Info,[Func]:SAMPLE_SVP_NNIE_Detection_PrintResult [Line]:790 [Info]:179 43 273 86 0.997070
  9. [Level]:Info,[Func]:SAMPLE_SVP_NNIE_Detection_PrintResult [Line]:777 [Info]:==== The 12th class box info====
  10. [Level]:Info,[Func]:SAMPLE_SVP_NNIE_Detection_PrintResult [Line]:790 [Info]:47 114 128 275 0.997314
  11. [Level]:Debug,[Func]:SAMPLE_COMM_SVP_CheckSysExit [Line]:95 [Info]:Svp mpi exit ok!
  12. /Hi3559AV100_SDK_V2.0.1.0/mpp/sample/svp/multi-core/nnie #
复制代码


你可以再开一个terminal,下cat /dev/logmpp看是否有报错误讯息
发表于 2019-3-5 10:40:45 | 显示全部楼层
楼主 视频流如何通过ive的 HI_MPI_IVE_Resize缩放到指定的大小;例如视频大小1216*900  如何缩放到300*300呢
现在用HI_MPI_IVE_Resize只能整数倍的缩放。  我的视频流裁剪时设置的1200*900 但裁剪后出来的是1216*900;很郁闷的HI_MPI_IVE_Resize不能由1216*900缩放到300*300
发表于 2019-3-5 19:28:11 | 显示全部楼层
如果你不介意转换速度,可以考虑先cross compile openCV to SDK,透过openCV API来实现

[分享] 海思移植opencv+人脸检测+速度优化
http://bbs.ebaina.com/forum.php? ... &extra=page%3D1
发表于 2019-3-19 09:47:46 | 显示全部楼层
请问使用Ruyi Studio对sample工程进行了仿真之后,能在windows环境下对这个工程进行交叉编译吗?
发表于 2019-3-19 10:11:38 | 显示全部楼层
qn1534489079 发表于 2019-3-4 17:18
依照"HiSVP API 参考.pdf":
0xA0338003 HI_ERR_SVP_NNIE_ILLEGAL_PARAM 参数超出合法范围

SSD forward/getresult的耗时分别是多少毫秒?
能不能贴下供参考。
发表于 2019-3-19 10:14:56 | 显示全部楼层
问个问题,怎么查询NNIE使用了多少?
类似TX1 tegrastats命令
       GTX nvidia-smi命令。
发表于 2019-3-19 10:16:13 | 显示全部楼层
qn1547026664 发表于 2019-3-5 10:40
楼主 视频流如何通过ive的 HI_MPI_IVE_Resize缩放到指定的大小;例如视频大小1216*900  如何缩放到300*300呢 ...

我是用libyuv从YUV420sp转成BGR 300x300,速度还可以,10ms一张。
发表于 2019-3-21 15:57:23 | 显示全部楼层
tianxieakk 发表于 2019-3-19 09:47
请问使用Ruyi Studio对sample工程进行了仿真之后,能在windows环境下对这个工程进行交叉编译吗?

windows上只能仿真,想编译成板子上的二进制可执行程序,得在linux上安装交叉编译环境
您需要登录后才可以回帖 登录 | 注册

本版积分规则

© 2008-2017 当前位置 易百纳技术社区论坛 返回 易百纳技术社区 ( 苏ICP备14036084 )   Powered by Discuz! X3.1
快速回复 返回顶部 返回列表