[HI3516DV300开发笔记]HiSi NNIE输入图像数据设置


本文上接:

[HI3516DV300开发笔记]HiSi NNIE + opencv解算openpose人体关键点输出

https://blog.csdn.net/abc517789065/article/details/103592190


在上文中,已经初步实现了移植openpose模型到HISI3516开发板并且检测出人体2D关键点位置

整个检测的逻辑结构如下图所示(也许为了这张图该写系列博客,这张图放在最前面,可惜我懒):

目前这里有一个问题:VPSS输出的 368*368 YVU420SP图像数据,我并不是直接输入到NNIE的,而是先保存成.yuv文件再读取输入到NNIE。这么做的原因是为了尽快打通整个流程,实际上并没有必要多此一举,就是将上图优化为:

还是之前说的思路,遇到问题解决问题。


随着本文的写作,我将尝试做两件事情:

<1>如何将HiSi3516DV300 SDK已有的yolov3 demo从检测单张bgr图片改造成YVU420SP数据

<2>如何将VPSS输出的YVU420SP数据直接送入我移植的openpose模型进行预测

借此熟悉HISI SVP NNIE SDK的各种花里胡哨的数据结构的含义


0:在RuyiStudio上修改模型输入并重新生成wk

首先把目光从开发板转移到RuyiStudio,打开yolov3_func.cfg或者yolov3_inst.cfg,找到:

没错,就是把image_type从U8改为YVU420SP,重新生成wk文件即可

大部分检测图像的神经网络算法是检测bgr格式的,但是HiSi系列芯片VPSS输出一般都是YVU格式,如果要向NNIE输入bgr还需要转一道。笔者亲测修改此处的image_type重新生成wk文件再将开发板VPSS的YVU420SP格式直接输入网络也是可以用的。至于怎么做的没有细究,可能和IVE有关。

修改image_type为YVU420SP后重新生成的wk文件并不会影响在PC上对png等格式图片进行的仿真(所以改了image_type重新生成wk后还能用之前的图片仿真,什么都不用改),可以看下RuyiStudio里的代码,几个关键函数:

SvpSampleReadAllSrcImg

SvpSampleImgReadFromImglist

s_SvpSampleImgRead

SvpSampleImgReadRaw / svpsample_utils_cv::SVPUtils_ReadImage

SVPUtils_MatToBlob_U8 / SVPUtils_MatToBlob_YVU420SP / SVPUtils_MatToBlob_YVU422SP

仿真时输入到NNIE的数据格式会先被转化

 

重新生成的以YVU420SP格式为输入的wk文件自然要拷贝到开发板并且重新载入,加载方法参考SAMPLE_SVP_NNIE_Yolov3即可;载入时被自动填写的参数:SAMPLE_SVP_NNIE_PARAM_S/SAMPLE_SVP_NNIE_SEG_DATA_S/SVP_SRC_BLOB_S的enType可以看到以自动变为了SVP_BLOB_TYPE_YVU420SP


既然提到了SVP_SRC_BLOB_S,就先弄清HiSi NNIE的一些关键数据结构:

1:数据结构  

 

 

 

 

 

 

 

 

 

 

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值