海思NNIE开发系列文章--转载

https://blog.csdn.net/zh8706/article/details/94554337

海思NNIE开发系列文章:

海思NNIE开发(一):海思Hi3559AV100/Hi3519AV100 NNIE深度学习模块开发与调试记录

海思NNIE开发(二):FasterRCNN在海思NNIE平台上的执行流程(一)

海思NNIE开发(三):FasterRCNN在海思NNIE平台上的执行流程(二)

海思NNIE开发(四):NNIE模块读入JPEG图片或视频

海思NNIE开发(五):基于Hi3559AV100的FasterRCNN、RFCN、SSD、Yolov2、Yolov3性能综合测评

-----------------------------------------------------------------------------------------------------------------

附Caffe学习文章系列:

Caffe学习(一):安装Windows版Caffe与Faster RCNN过程中的报错及解决方法

Caffe学习(二):Windows训练与测试Caffe mnist

Caffe学习(三):Caffe solver文件参数详细解析

Caffe学习(四):Windows使用Cifar10训练及测试Caffe版DenseNet

Caffe学习(五):Caffe py-Faster-RCNN 源码解析(一)

Caffe学习(六):Caffe 添加自定义层

Caffe学习(七):Caffe添加自定义层(2):Python层

Caffe学习(八):Windows下编译及调试Debug版Caffe

Caffe学习(九):Caffe源码函数调用关系图

Caffe学习(十):Caffe中Solver、Net、Layer、Blob的构建流程

------------------------------------------------------------------------------------------------------------------------------

 

 

1. 开发流程
链接:https://pan.baidu.com/s/1SJ9OOfCjJvqLAuMoPpb1yA
提取码:pjvu 
 

 

2. 例程解析
海思的NNIE例程包含以下几个模型:

~ # ./sample_nnie_main
Usage : ./sample_nnie_main <index> 
index:
         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).

RFCN例程中,VI模块绑定了VPSS模块,VI从摄像头输入一路1080P视频,经VPSS分解为两路,一路stBaseFrmInfo保持原来的1080P分辨率,一路stExtFrmInfo转为CIF(352x288)分辨率,stExtFrmInfo输入到NNIE模块SAMPLE_SVP_NNIE_Rfcn_Proc得到分类与框位置信息,再将框位置信息通过SAMPLE_COMM_SVP_NNIE_FillRect给到VGS模块画框,最后通过HI_MPI_VO_SendFrame发送到VO,在HDMI显示器上显示。测试表明处理一帧数据的时间约为89毫秒,即帧率为11帧左右。

其他1)~8)例程直接读取图片文件给到NNIE处理,处理完后打印分类及框信息。

模型    分类数量    处理时间(毫秒)    帧率
RFCN    21    89    11
FasterRcnnAlexnet    2    145    7
FasterRcnnDoubleRoiPooling    4    240    4
MINIST    10    未测试    未测试
SSD    21    120    8
YOLO v1    21    37    27
YOLO v2    6    81    12
sample_nnie_main.c例程函数调用关系:

 

 
3. 模型的颜色空间
需要注意的是RFCN的wk模型文件与后面1)~8)几个模型的wk模型文件的颜色格式是不同的,RFCN调用的wk文件是YVU420颜色空间,而1)~8)模型的是BGR颜色空间。原因是后面1)~8)的模型是通过读图片文件的方式,图片需为颜色空间为BGR的裸数据,后缀名为*.bgr格式。如果要使用1)~8)的模型对视频流数据(来源于VI或VDEC模块,即从摄像头输入或本地视频文件解码)进行处理,需要使用YVU420颜色空间的wk模型文件,否则模型处理会失败。

4. VDEC--VPSS--NNIE-- VGS--VO流程开发
该流程通过VDEC读入本地的视频文件并解码,经过VPSS给到NNIE做神经网络处理,再通过VGS大框,再从VO-HDMI输出。

流程如下:

(1)初始化相关参数

(2)初始化VB(SAMPLE_COMM_SYS_Init),必须先于VDEC,VPSS等模块之前初始化VB

(3)load模型文件(SAMPLE_COMM_SVP_NNIE_LoadModel)

(4)初始化模型参数(SAMPLE_SVP_NNIE_XXXXX_ParamInit)

(5)初始化VDEC(SAMPLE_COMM_VDEC_InitVBPool)

(6)开启VDEC(SAMPLE_COMM_VDEC_Start)

(7) 开启VPSS(SAMPLE_COMM_VPSS_Start)

(8) 开启VO(SAMPLE_COMM_VO_StartVO)

(9)绑定VDEC与VPSS(SAMPLE_COMM_VDEC_Bind_VPSS)

(10)开启解码线程(SAMPLE_COMM_VDEC_StartSendStream)

(11)开启NNIE处理线程,从VPSS取帧数据,NNIE处理,再用VGS加框

(12)结束,反初始化等操作

 

VDEC模块读取的视频文件需为H.264的裸数据文件(.h264格式),该模块可参考sample_vdec例程编写,一个通道对应一个视频文件。

VPSS模块有组(Group)与通道,一个组(Group)对应一个VDEC通道,即有多少个VDEC通道就有多少个VPSS Group。每个VPSS的Group, 有两个VPSS通道,一个对应原视频分辨率,一个对应wk模型文件要求输入的图像分辨率。需要注意的是,astVpssChnAttr[i].u32Depth参数必须大于0,因为需要调用HI_MPI_VPSS_GetChnFrame获取帧数据。

VO支持显示多个窗口,每个窗口对应1路视频,例如设置

stVoConfig.enVoMode   = VO_MODE_4MUX;
则显示为4分屏,VGS处理完后数据通过HI_MPI_VO_S
https://blog.csdn.net/zh8706/article/details/94554337

热门文章

暂无图片
编程学习 ·

JAVA中的自定义异常

JAVA中的自定义异常SUN提供的内置的异常肯定是不够用的,在实际开发中我们需要自己自定义一些与业务相关的异常java中如何自定义异常: 第一步:编写一个类继承 Exception 或者 RuntimeException 设定为编译时异常就继承Exception 设定为运行时异常就继承RuntimeException 第二…
暂无图片
编程学习 ·

PCL点云焊点提取

滚回来更新一篇文章,和各位交流一下 待处理点云: 数量级:百万 类型:零部件 描述:弯曲表面上有一些凸起在上面,需要提取凸起和平面接触的一圈点云,作为焊接的加工点参考:https://zhuanlan.zhihu.com/p/32111069其实这篇文章也算是全面了,思路和他的差不多,只是算法不太一…
暂无图片
编程学习 ·

Python之list添加新元素

讲解 现在,班里有3名同学: >>> L = [Adam, Lisa, Bart]今天,班里转来一名新同学 Paul,如何把新同学添加到现有的 list 中呢? 第一个办法是用 list 的 append() 方法,把新同学追加到 list 的末尾: >>> L = [Adam, Lisa, Bart] >>> L.append(P…
暂无图片
编程学习 ·

[UML] 类图之间的关系 | 3.泛化关系

[UML] 类图之间的关系 | 3.泛化关系 3.泛化关系泛化(Generalization)关系也就是**继承关系**,用于描述父类与子类之间的关系,父类又称为基类或超类,子类又称为派生类 在UML中,泛化关系用带空心三角形的直线来表示 在代码实现时,使用面向对象的继承机制来实现泛化关系,在J…
暂无图片
编程学习 ·

无线传输技术有哪些?

什么是ZigBee? ZigBee,也称紫蜂,是一种低速短距离传输的无线网上协议,底层是采用IEEE802.15.4标准规范的媒体访问层与物理层。主要特色有低速、低耗电、低成本、支持大量网上节点、支持多种网上拓扑、低复杂度、快速、可靠、安全。 三大特征、八大优势 特征一 ZigBee能源消…
暂无图片
编程学习 ·

roarctf_2019_easy_pwn[off by one]

溢出一个字节,修改size域 exp from pwn import *context.log_level = debugdef debug_pause():log.info(proc.pidof(p))pause()def create_note(size, ):p.sendlineafter(choice:, str(1))p.sendlineafter(size:, str(size))def write_note(index, size, content):p.sendlineaf…
暂无图片
编程学习 ·

JDBC

JDBC(Java DataBase Connectivity) JDBC 简介 Java 数据库连接技术。即用 Java 程序操作数据库的一套接口。是独立与 特定数据库(MySQL、SQLServer) 的管理系统,也就是无论使用的是什么类型的数据库都可以用 JDBC 去连接。 让 JDBC 去翻译底层数据库的各种指令,我们只需要使…
暂无图片
编程学习 ·

Web服务器防护技术你了解多少?

技术的迅速发展,给人们提供便利的同时,也给人们带来了威胁。通常情况下,黑客、病毒会利用系统的漏洞来进行网络攻击,如篡改网页、蔓延病毒等,从而造成用户信息的窃取、重要数据的破坏。因此,要对web服务器的安全问题引起足够的重视,要加大安全防护力度、构建安全防护系统…
暂无图片
编程学习 ·

亚马逊ERP系统独立部署OEM定制无限开账号

马逊无货源模式,和传统无货源模式操作一样!需要咱们开店利用软件去采集商品,上传到咱们店铺,有订单了去上家拍下,发到深圳的中转仓,进行商品检测二次包装,发往国外!赚取汇率差! 要做亚马逊无货源模式,那么亚马逊ERP也是必须用的!市场erp已经出现很多,但是真正做技术…
暂无图片
编程学习 ·

Xavier初始化和He初始化

转自https://blog.csdn.net/xxy0118/article/details/84333635Xavier初始化: 条件:正向传播时,激活值的方差保持不变;反向传播时,关于状态值的梯度的方差保持不变。初始化方法:W∼U[−6√ni+ni+1√,6√ni+ni+1√] W∼U[−ni​+ni+1​​6​​,ni​+ni+1​​6​​]假设激活函…
暂无图片
编程学习 ·

Java从小白到老白学习笔计【一】

命令提示符(cmd) 启动 win + r 切换盘符 盘符名称: 进入文件夹 cd 文件夹名称 进入多级文件夹 cd 文件夹1\文件夹2\文件夹3 返回上一级 cd… 直接回根路径 cd 查看当前内容 dir 清屏 cls 退出 exit String 首字母大写,不是关键字 加号代表字符串的连接操作 任何…
暂无图片
编程学习 ·

mysql(二)复制与同步

mysql(二)复制与同步 文章目录mysql(二)复制与同步mysql的主从复制基于GTID的主从复制 + 半同步几种常用复制半同步mysql组复制(全同步复制)节点 身份node1(172.25.136.1) masternode2(172.25.136.2) slavenode3(172.25.136.3) slavemysql的主从复制 node1 2下载所…
暂无图片
编程学习 ·

[算法]最长公共前缀

题目编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。示例输入: [“flower”,“flow”,“flight”] 输出: “fl”输入: [“dog”,“racecar”,“car”] 输出: “” 解释: 输入不存在公共前缀。这是一道简单题,没什么说的 class Solut…
暂无图片
编程学习 ·

C#中常见的简答题(第三天)

8.简述ADO.NET中五个主要对象A.Connection:主要是开启程序和数据库之间的连接。没有利用连接对象将数据库打开,是无法从数据库中取得数据的。Close和Dispose的区别,Close以后还可以Open,Dispose以后则不能再用。B.Command:主要可以用来对数据库发出一些指令,例如可以对数据…
暂无图片
编程学习 ·

什么是量化对冲

什么是量化对冲?“量化对冲”是“量化”和“对冲”两个概念的结合。“量化”指借助统计方法、数学模型来指导投资,其本质是定性投资的数量化实践。“对冲”指通过管理并降低组合系统风险以应对金融市场变化,获取相对稳定的预期年化收益。实际中对冲基金往往采用量化投资方法…
暂无图片
编程学习 ·

你想要的Python面试题都在这里了!

第三部分 数据库和缓存(46题) 1. 列举常见的关系型数据库和非关系型都有那些? 关系型数据库: Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL 非关系型数据库: NoSql、Cloudant、MongoDb、Redis、HBase 2. MySQL常见数据库引擎及比较? 在实际工作中,选择一…
暂无图片
编程学习 ·

机器学习 | 优秀Tensorflow开源项目汇总(上)

1、Open_model_zoo预先训练的深度学习模型和样本(高质量且快速)https://github.com/opencv/open_model_zoo2、Deep Learning In Productionhttps://github.com/ahkarami/Deep-Learning-in-Production3、AndroidtensorflowmachinelearningexampleAndroid TensorFlow机器学习示…