ARM+Movidius VPU 目标识别调试笔记(三)

本文介绍了基于海思Hi3516D SoC和Movidius VPU的目标识别项目,软件架构包括图像预处理(使用SDK进行VPSS和VENC处理)、算法处理(移植Tiny YOLO V2并优化耗时)和结果可视化(利用RGN功能实现OSD)。通过调试,目前达到6fps的处理速率,但存在坐标偏差和USB断连问题,后续将进行算法优化。

软件架构

前文(参考链接12)中针对我们在整个项目中需要用到的一些技术进行了描述,现在我们说回到产品应用部分的流程,并梳理以下整个软件架构。
整个软件功能分三部分:图像预处理、目标识别算法处理和识别结果可视化。
由于我们使用的主芯片是海思的Hi3516D,一款流媒体方案的SoC,所以本文会涉及一些关于海思的SDK的实现逻辑和流程,如果是没有接触过海思方案的读者可能会有些疑惑。

图像预处理

图像预处理功能其实很简单,分为三步操作:

  1. 获取相机前端视频输入,视频输入的分辨率为1920 x 1080。
  2. 由于我们使用的Tiny YOLO V2的网络,输入层张量维度为[416, 416, 3],所以我们需要将图像下采样至416 x 416的分辨率。
  3. 将下采样之后的图像编码成jpg格式。
    下采样和图像编码都不可能用软件在ARM上面运行完成,因为耗时比较大。所以我们通过SoC内部集成的ISS核和VSS核来进行处理。
    下采样部分,我们通过调用SDK来增加一条vpss channel,绑定到系统中的VI通道,该vpss channel的输出分辨率即为我们需要下采样的目标分辨率 416 x 416,这样使用硬件去处理的话可以根据相机的帧率达到实时效果。
    编码部分,我们新增一条VENC编码通道,编码格式为JPEG,直接将下采样使用的vpss channel 和这条VENC通道进行绑定。
    这样,软件层面我们就可以从VENC中循环获取预处理完成的JPG图片,然后将图片中的RGB数据送到算法模块,进行算法处理即可。
    后面为了降低用软件方式将JPG转RGB的耗时。在方案上通过使用海思SDK中的IVE C
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值