小白视角看ros_openvino_toolkit

2023-05-16

计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决
Any problem in computer science can be solved by anther layer of indirection.


1. 背景

在AI落地应用的重要关口,机器人在成本控制、批量生产、AI功能应用等方面面临着诸多挑战。如何在降低机器人成本的同时,满足其工业生产和生活中的性能需求?如何平衡机器人现有成本和性能,是每个机器人AI从业者都需要仔细思考的问题。

Intel针对AI实际应用场景,推出了Intel® OpenVINO Toolkit开源工具包。Intel® OpenVINO Toolkit是基于卷积神经网络(CNN)提供的一整套深度学习推断和神经网络优化的工具链和方法集,并提供了接口统一的跨Intel硬件及其加速器的异构计算框架,将DL算力水平发挥到最大,获得了业界认可。
在这里插入图片描述
ROS(机器人操作系统)是最流行的开源机器人软件框架,为机器人(特别是移动机器人)提供了一整套接口统一、分布式、功能齐全的全栈软硬件解决方案,拥有健全的生态系统和高度活跃的贡献者社区。

因此,搭载intel硬件的机器人使用ROS+OpenVINO是一个很好的选择。

然而,在实际开发过程中,开发人员需要面对以下问题:

  1. 在ROS机器人上部署OpenVINO并实现对应的AI功能,首先需要有接口上的支持:代码如何调用OpenVINO的底层接口?如何将AI视觉相关功能封装成ROS所能实现的接口?

  2. 智能机器人需要处理的数据是多种多样的。以AI视觉为例,机器人可能要处理视频、图片、多种图像传感器(RGB摄像头、深度相机)数据。由于机器人数据采集的多样性,如何将所有的相关数据统一整合成机器人需要的结构化输入数据,并将整合后的数据导入给 OpenVINO Toolkit 来进行底层处理?

  3. 针对不同的业务场景,进行AI推理的硬件也有可能不同。能否只在软件层面上进行极少量的修改,即可快速切换机器人AI推理的硬件,使开发和验证更具有效率?

  4. OpenVINO可以选定使用同步/异步推理。针对于不同的机器人业务场景,能否选用不同的策略模式,拓展 OpenVINO 使用过程中标准化、流水(批量)化处理的实现?

  5. 对于用户而言,总是希望能够自主开发和扩展,针对自身产品进行功能定制。那么如何给用户提供标准的软件实现接口和归纳,让机器人开发人员能对产品功能快速迭代和更新?

  6. 之前工程中编写好的代码和新版本OpenVINO的接口API不兼容,进行代码更新和维护需要花费很多精力和时间。如何针对新版本的OpenVINO进行快速二次开发?

正如《程序员的自我修养——链接、装载和库》一书中所提到,计算机系统软件体系结构采用一种层的结构,计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决(Any problem in computer science can be solved by anther layer of indirection.) 对于大批量的开发而言,OpenVINO的接口依赖会非常多,工程需要不断的理解、修改、扩展和维护,需要花费大量的时间和精力。因此机器人开发人员期望将ROS和OpenVINO以及普通的深度学习框架进行隔离,在软件层次上进行提炼,使其更专注于机器人感知和控制决策开发。

因此,ros_openvino_toolkit应运而生,为上述问题提供解决方案。
在这里插入图片描述

2. ros_openvino_toolkit应用流程:

在这里插入图片描述

ros_openvino_toolkit会遵循OpenVINO的基本操作模式:通过第三方的方法,训练出一个模型(train a model),然后基于 OpenVINO 的模型优化器,可将模型转化成 OpenVINO 可识别的IR格式。随后基于OpenVINO推理引擎(Inference Engine)来做出目标识别,这个流程是标准的OpenVINO流程。

从流程图中橙色部分可以看出, ros_openvino_toolkit作为OpenVINO到其他ROS应用的一个中间环节,需要起到了很好的抽象和隔离作用。

3. ros_openvino_toolkit功能简介与优势分析

  1. ros_openvino_toolkit实现了OpenVINO Toolkit与ROS之间的功能封装并实现接口。
    ros_openvino_toolkit对 OpenVINO 进行技术上的隔离、封装,完成对ROS环境的接口支持,提供对应接口。

  2. 支持多种数据输入方式,例如普通USB摄像头、Intel Realsense深度摄像头、ROS Image topic、图片或视频文件等等。

  3. 支持多种常见的视觉推断功能,例如人脸识别(表情、年龄、性别、头部朝向等等)、物体识别、基于交通场景的车辆、行人和道路识别以及物体分割等等功能。

  4. 推断结果的多种结构化输出,包括ROS Topic,OpenCV的image window,Rviz 机器人视觉呈现工具等等。

  5. 硬件加速与软件优化ros_openvino_toolkit继承自 OpenVINO ,实现了硬件加速功能和软件编程思路上的优化。
    在这里插入图片描述

  6. 灵活的推理流水线管理及用户扩展:可以在工程中选择流水线的同/异步运行机制,针对于不同的机器人业务场景,可以选择不同的应对策略。

  7. 模块化设计,即插即用 :ROS 本身即是一个基于模块化的设计。ros_openvino_toolkit把 OpenVINO 做成一个模块化的设计,提高功能模块的内聚度并降低耦合度,使开发更加简单和高效,更有利于其推广使用,也体现出其扩展方面的灵活性。

  8. 基于配置文件的流水线化模块管理,用户只需要修改yaml配置文件,即可对整个pipeline的运行机制进行重新定义,这样可以轻松响应多变的场景、部署需求。
    在这里插入图片描述

4. ROS + OpenVINO 的应用场景

在这里插入图片描述

对于常见深度学习应用场景而言来说,最标准和常见的输入数据来自于摄像头(RGB,3D点云等),从摄像头输入的数据经过ros_openvino_toolkit的pipeline机制,传递给深度学习推理硬件(比如CPU、GPU、FPGA、NCS2等)。得到的推理结果再经过 ros_openvino_toolkit的封装成ROS topic、ROS Service、Rviz、Image Window等输出,推理结果可以被广泛运用于机器人、机械臂、无人机、自动驾驶等应用场景…

参考资料

  1. 6月20日直播回放 | OpenVINO + ROS 加速机器人应用 - 英特尔物联网技术大咖在线分享: https://www.bilibili.com/video/BV1iv411B7Lg
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

小白视角看ros_openvino_toolkit 的相关文章

  • 如何创作出优质的短视频文案?

    在短视频平台上进行创作 xff0c 视频才是重心点 xff0c 文案只不过是绿叶的辅助作用 xff0c 但常刷视频的小伙伴不难发现 xff0c 其实很多时候一句优质文案就可以把一条短视频推上热门 下面就和大家讲讲如何写出优质的文案 xff1
  • 短视频文案怎么吸引人,这几个技巧助你成为文案高手

    一 xff0e 人物状态 43 情感宣泄 61 情感共鸣 想要自己的视频上热门 xff0c 一定要和粉丝产生情感共鸣 xff0c 这样才能促使粉丝点赞 评论 转发 下面这个视频中的文案标题 xff1a 今天给外婆寄生活费回去 xff0c 电
  • 自媒体账号如何注册申请

    如何利用自媒体挣取到人生第一桶金 xff0c 建议大家可以从以下几个方面入手 一 申请自媒体账号 申请自媒体账号需要的材料 xff1a 身份证 xff0c 手机号 xff0c 辅助材料 xff1a 微信公众号或者博客写过文章的都可以 如果实
  • 自媒体人必备,5个免费找短视频素材的网站,赶紧收藏

    大家都知道做自媒体贵在坚持 xff0c 刚开始的时候你会发现还挺容易的 xff0c 但是到后面你会发现不知道发什么内容 xff0c 这时候可以用一些外部的素材来进行创作 xff0c 今天呢 xff0c 小易就给大家分享5个找视频素材的网站
  • 自媒体怎么做?5个操作步骤,普通人也可以做

    根据调查显示 xff0c 目前大家最爱做的副业就是自媒体 每天花1 2小时的时间 xff0c 不用才艺和露脸 xff0c 每天收入200左右 xff0c 比上班的工资还高 xff0c 操作非常的简单 小易整理了5个自媒体新手入门的操作步骤
  • 超好用的4个短视频素材下载网站,快收藏下来

    做过短视频运营的都知道 xff0c 最难的就是找素材 xff0c 在保证素材不侵权的情况下 xff0c 还有找高质量的内容 xff0c 真的很不容易 xff0c 很多人在这一步就已经头秃了 因此 xff0c 今天给大家安利一些超级好用的短视
  • [转] CMake入门

    转载说明 文章转自网络 xff0c 版权归原作者所有 xff0c 原文链接 https www hahack com codes cmake 特别感谢发哥 写代码的篮球痴 分享 文章目录 什么是 CMake 入门案例 xff1a 单个源文件
  • 抖音自媒体平台上最容易上热门的7大领域,你知道吗?

    抖音覆盖的内容领域日益广泛 xff0c 因此 xff0c 运营者在入驻抖音平台的时候不能过于草率 xff0c 不能单纯地根据个人偏好来确定账号的运营方向 本文将主要介绍在抖音平台上最容易上热门的7大领域 xff0c 以此来帮助运营者更好地进
  • 自媒体如何打造爆款呢,应该怎样掌握热点信息

    为什么优质的自媒体博主每天都在打造爆款 xff0c 无论是写文章还是拍视频 xff0c 他们的浏览量总位居前列 主要原因是因为平台推荐 xff1f 粉丝用户庞大 xff1f 这只是一部分原因 xff0c 能让他们从小V转变成大V的主要原因
  • 自媒体账号如何快速涨粉打造爆款,快来get这份运营技巧

    一 账号内容 在注册账号之后 xff0c 我们就要开始构思我们要发什么样的视频 xff0c 要知道我们想要将一个账号做好 xff0c 肯定不是像朋友圈一样 xff0c 今天发个日常 xff0c 明天发个自拍 xff0c 这样发布的作品会比较
  • FSK和GFSK

    1 FSK频移键控 频移键控 xff0c 英文缩写FSK 正弦振荡的频率在一组离散值间改变的角度调制 xff0c 其中每一离散值表示时间离散调制信号的一种特征状态 频移键控是利用两个不同频率F1和F2的振荡源来代表信号1和0 用数字信号的1
  • 多图详解!10大高性能开发核心技术

    程序员经常要面临的一个问题就是 xff1a 如何提高程序性能 xff1f 这篇文章 xff0c 我们循序渐进 xff0c 从内存 磁盘I O 网络I O CPU 缓存 架构 算法等多层次递进 xff0c 串联起高性能开发十大必须掌握的核心技
  • Mac系统中 用Virtualbox搭建CentOS虚拟机 鼠标光标占用、乱飞问题

    问题1 xff1a 我本人用的是MacBook Air xff0c 控制VirtualBox搭建 CentOS 7 的虚拟机时 xff0c 首先遇到了占用鼠标的问题 xff0c 如下图 看起来只需要点击 HostKey xff1a Righ
  • yum 仓库 (本地)

    首先要进入到 34 etc yum repos d 34 目录中 xff08 因为该目录存放着yum仓库的配置文件 xff09 cd etc yum repos d 使用vim或者vi编辑器创建一个名为local repo的新配置文件 xf
  • 噪声是什么?

    1 噪声的概念 日常我们说的噪声是 除了我想听到的声音 以外的声音 xff0c 就是噪声 比如我想听A君讲话 xff0c 但是B君和C君在旁边喋喋不休 xff0c 他们俩说的话是 我不想听到的声音 xff0c 那么他们两个的声音就是噪声 而
  • java多线程

    Java多线程并发 什么是多线程 线程 xff1a 程序内部的一条执行路径 xff08 比如说我们之前学的main方法就是一条单独的执行路线 xff09 单线程 xff1a 程序中如果只有一条执行路径 xff0c 那么这个程序就是单线程的程
  • 生产者消费者

    需要三个对象 xff1a 生产者 xff0c 消费者 xff0c 以及容器 作用 xff1a 解耦 学习编程最主要注重的就是思想 43 动手能力 法一 xff1a 管程法 span class token keyword public sp
  • 《演讲的力量》TED主席和首席教练教你演讲的基本技巧

    导读 xff1a 克里斯 安德森 xff08 Chris Anderson xff09 xff0c TED主席 xff0c TED首席教练 毕业于牛津大学 xff0c 做过记者 xff0c 创办过100多份成功的杂志刊物和网站 在2001年
  • Android keymint(keymaster)一RKP

    what is RKP RKP is remote key provisioing why RKP 以前我们生产手机平板项目的时候 xff0c 是从Google申请attestation key google key xff0c 在产线使用
  • 全网最详细搭建Win10+WSL2+Ubuntu-22.04LTS+CUDA+Xfce4+noVNC个人工作站

    全网最详细搭建Win10 43 WSL2 43 Ubuntu 22 04LTS 43 CUDA 43 Xfce4 43 noVNC个人工作站 本文主要解决的问题点 xff1a win10下使用Ubuntu系统解决WSL默认不支持system

随机推荐