背景
为了方便客户做AI的应用,海思的芯片提供HiSVP
、HiIVE
等引擎。HiSVP
(HiSilicon Smart Vision Platform)是海思媒体处理芯片智能视觉异构加速平台。该平台包含了CPU
、DSP
、NNIE
(Neural Network Inference Engine)等多个硬件处理单元和运行在这些硬件上SDK
开发环境,以及配套的工具链开发环境。HiIVE
(HiSilicon Intelligent Video Engine)是海思媒体处理芯片智能分析系统中的硬件加速模块。用户基于 HiIVE
开发智能分析方案可以加速智能分析,降低 CPU
占用。 当前 HiIVE
提供的算子可以支撑开发视频诊断、周界防范等智能分析方案。
HiSVP
的开发框架如下图所示:
LinkSVP简介
LinkSVP
(Smart Vision Platform)整合了海思HiSVP
、HiIVE
、NCNN
、OpenCV
等,未来还会支持tensorflow
。LinkSVP
基于LinkLib
,因此,借助LinkLib
的便捷性,开发者无需处理底层视频传输,可以更专注于算法的设计与优化。开发者基于LinkFrame
类创建的对象,只需要设置目标算法需要的分辨率、帧率,系统会自动处理底层视频接口,开发者只需要在视频帧到达时调用其算法即可。
借助NCNN的整合,即使是在不支持NNIE的芯片上,也能进行简单的深度学习运算。
LinkSVP
的开发框架如下图所示:
UseLinkIVE图像二值化示例
该示例程序演示了如何使用LinkIVE
进行图像二值化操作。该示例程序适用于灵派科技全系产品,可以帮助用户快速的熟悉如何使用LinkSVP库进行机器视觉相关的产品开发。由于LinkIVE
还在完善中,如果遇到LinkIVE
无法满足的需求,可以直接调用官方IVE
函数 ,参见LinkSVP例子之二:机器视觉基础演示,使用HiIVE实现图像二值化。
准备工作
- 参照用户手册搭建开发环境、编译3531D工程、配置网络启动参数。
- 将带有HDMI输出功能的设备(如摄像机、笔记本、机顶盒等)接入评估板的HDMI-A接口
- 将评估板的HDMI-OUT接显示器(支持1080P即可,程序默认输出1080P60)。
- 上电,进入
/root/demo
目录 - 运行
UseLinkIVE
程序
运行结果
完整工程
完整工程参见:https://gitee.com/LinkPi/LinkSVP/tree/master/UseLinkIVE
主要源代码
main.cpp
#include <QCoreApplication>
#include "Link.h"
#include "Sample.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Link::init();
LinkObject *vi=Link::create("InputVi");
QVariantMap dataVi;
dataVi["interface"]="HDMI-A";
vi->start(dataVi);
Sample *SP=new Sample();
SP->start();
LinkObject *vo=Link::create("OutputVo");
QVariantMap dataVo;
dataVo["type"]="hdmi";
vo->start(dataVo);
vi->linkV(SP)->linkV(vo);
return a.exec();
}
Sample.cpp
#include "Sample.h"
Sample::Sample(QObject *parent) : LinkFrame(parent)
{
data["framerate"]=10;
data["width"]=1280;
data["height"]=720;
}
void Sample::oneFrame()
{
thresh(mem["in"],mem["out"],128);
wait();
}