官方的sample跑的效果图先放一张

视频链接:

QMCY 南京 无人机结合AI 智能检测 物体识别 特诊检测效果图

码率太低了效果不太好 前两天 把开发环境搭建起来了,

主要就是 只有一个MLU270板卡 需要多人共用,而环境有不一样

所以我就自己设置了Cambricon的目录(/home/QMCY/mlu270/sdk/neuware)

取代了系统的默认安装目录 (/usr/local/neuware)这样两个人的工作互不影响 可以点击下面查看

寒武纪Cambricon MLU270 环境搭建 CNStream EasyDK编译

环境搭建好之后就是看文档,跑官方的例子 ,文档在CNStream/docs目录下

然后官方的例子 多数都能跑得起来 ,但是有几个报了CNRT的错误 不知道啥原因如下图

正常编译完成之后 会在sample/bin目录下生成三个可执行文件,然后各个模块下不同的例子 打开目录下的run.sh  会发现 最终 都会调用这三个文件 前面的都是设置参数什么的 以及配置json文件如下面黑背景的图片:

比较有意思(或许说困惑比较好?)的是,根据官方文档的说法,CNStream 使用pipeline流水线的模式,你要干什么事的话,新建一个流水线,可以向这个流水线里面添加不同的模(module),主要模块就是source(数据源)decode encode display  OSD inference rtsp 等,(当然你也可以自定义一个模块) .然后你需要根据自己的应用场景 来对这些模块进行排列组合,需要哪个模块,把这个模块添加进去就可以。而添加的方法就是通过一个config.json文件来进行配置。刚开始比较费解(因为虽然例子跑起来了,完全不知道怎么跑的 程序入口在哪)经过昨天的研究,差不多理出了头绪,json格式的配置文件大概长下面这个样子:

具体每个模块的参数 需要去看文档里面都有介绍。

配置文件配置好之后 ,给程序传一些参数。就可以去看cns_launcher.cpp源码就可以了

对了 这种通过配置文件设置模块的方式是官方推荐的做法,如果你不喜欢可以去看simple_run_pipeline.cpp 那个是传统的方法。我们还是按官方方法来进行。找到主函数

第一眼看,懵逼了 没几个认识的,

ParseCommandLineFlags 这玩意 我对着它闷了半天 ,后来 百度了下 才发现原来是个google的解析命令行的一个工具,

然后InitCNStreamLogging 这个没啥看的,看名字就知道是干啥的了

接下来video_urls 用来保存视频文件路径 可以有多个视频文件

下面来到了pipeline 这个就是官方推荐的流水线模式了,构建了一个pipeline,

之后得往这里面添加模块,需要哪些模块呢,通过这个 BuildPipelineByJSONFile函数来读取

可以看到有个参数,就是config.json的路径了 怎么走的看下图

可以看到 用rapidjson库来解析json文件了 然后把解析出来的数据,保存下来

然后设置了一个observer 不知道干啥的以后慢慢研究

之后设置了一个数据源,然后就start了

这里也可以看到因为有模块通常不止一个 所以 有一个for循环 ,依次 启动每一个模块

然后回到main函数

一大段说是性能统计 追踪的函数,还没时间细看,暂时先不关注 然后下面比较重要了

系统起来之后,添加数据源了,例子是根据传进来的参数进行配置的,我们公司最终的系统肯定是要做成动态的了 应该是通过HTTP 进行数据交互

可以看到设置了视频的分辨率 ,因为video_urls是个列表 有多个视频源,所以需要遍历一下

根据不同的类型 rtsp流,MP4文件 图片文件 264 Raw格式等等 调用的添加接口不一样。

接下来是个显示模块,我们的mlu270 装在了ubuntu服务器上 只有命令行格式,没法看 所以跳过

接下来 是关闭pipeline 看上去是等待程序执行完 或者手动退出的处理 暂且认为是

通常的while(1)

最后是 退出程序是的收尾工作。没啥看的  今天先分析到这里

寒武纪MLU270 平台 CNStream 学习记录相关推荐

  1. MOOSE多物理场耦合平台入门学习记录一(稳态热传导程序实例)

    MOOSE多物理场耦合平台入门学习记录 MOOSE的简介 MOOSE的安装 Linux和Mac Windows MOOSE程序的一般开发流程-以导热微分方程为例 简单问题的有限元处理 MOOSE程序的 ...

  2. 寒武纪加速平台(MLU200系列) 摸鱼指南(一)--- 基本概念及相关介绍

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明   无 前言   从2019年开始,我们公司的智能分析 ...

  3. 寒武纪加速平台(MLU200系列) 摸鱼指南(四)--- 边缘端实例程序分析

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明 MLU220 开发板 Ubuntu18.04 + ML ...

  4. Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)

    Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...

  5. 【Cmake】Cmake学习记录

    Cmake学习记录 1.1 常例 add_library(gen_reference_infogen_reference_info/gen_reference_info.hgen_reference_ ...

  6. Android开发技术周报176学习记录

    Android开发技术周报176学习记录 教程 当 OkHttp 遇上 Http 2.0 http://fucknmb.com/2018/04/16/%E5%BD%93OkHttp%E9%81%87% ...

  7. [Python学习]PycURL简单学习 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …...

    [Python学习]PycURL简单学习 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source - [Python学习] ...

  8. 架构与设计 之一 C 嵌入式设计模式(Design Patterns for Embedded Systems in C)的学习记录

    唉   时至今日,已经不知道在嵌入式的道路上到底挣扎了多少个岁月,总感觉要"病入膏肓"了.此间总是不时出现一些疑惑:人家搞 Java.搞 C# 的动不动就是什么架构 / 框架的,搞 ...

  9. MongoDB学习记录:入门(一)——五叶草

    预热看我之前的文章Node学习记录: mongodb 这个系列旨在系统的学习Mongodb 部分图片来自慕课网mongodb入门截图 学习目标 MongoDB官网:https://www.mongod ...

最新文章

  1. 【STM32】FSMC概述
  2. jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中,及其相关...
  3. Android投屏(屏幕共享)设计需要考虑的关键因素
  4. Android之使用VideoView组件播放一个简单的视频
  5. Flink – SlotSharingGroup
  6. python总结简短_Python简单的基础总结
  7. Java设计模式--策略模式
  8. html 定位z_index,绝对定位、固定定位和z-index
  9. 乔布斯首份手写求职信再次被拍卖
  10. windows黑客编程系列(一):运行单一实例
  11. C语言函数嵌套学习实例
  12. 密码学专题 对称加密算法
  13. 遭遇Excel的宏病毒
  14. 人工智能NLP在金融领域的发展趋势和实践经验
  15. createTrackbar滑条函数
  16. 哪个计算机无法做到双屏显示,如何实现笔记本电脑的双屏显示
  17. Android 绘制渐变色
  18. 海康威视旗下萤石网络上市:首日跌12% 公司市值142亿
  19. deepfakes怎么用_如何使用 Deepfakes 换脸(示例代码)
  20. connection closed gracefully问题

热门文章

  1. 树模型(六):XGBoost
  2. Visual Studio Code,一款功能强大且轻巧的免费代码集成编辑器介绍
  3. 未来的计算机 展望未来作文,展望未来作文(通用10篇)
  4. 前端在线预览PDF文件
  5. 人和摩托最快达到目的地
  6. twilio php 发送短信,如何使用 Twilio 实现语音和短信功能 (PHP) | Microsoft Docs
  7. 基于51单片机万年历
  8. 3. 使用balsam.exe / balsamui.exe转换3D模型为 Mesh 文件共View3D的Model使用
  9. VMware Fusion安装cloudera manager
  10. mysql 小_mysql小脚本