0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何为嵌入式视觉开发者减负?

安富利 来源:未知 作者:胡薇 2018-07-27 10:19 次阅读

试想一下,在一个通常性能受限的嵌入式架构中去跑复杂的视觉处理算法,还要平衡功耗、尺寸、成本、开发周期等因素,确实不容易。如果你面对的是工业或汽车这种对实时性和可靠性要求较高的场合,视觉处理要又快又准,容不得半点闪失。而且现在都人工智能AI)时代了来了,机器学习是不是也应该支持一下?所以,嵌入式视觉开发者头上总会有个大大的“鸭梨”。

不过,这个世界上总是会有人在琢磨“如何将复杂的事情变得简单”。在嵌入式视觉开发这件事上,如何为开发者“减负”,已经有了许多好方案摆在我们面前了。

我们先从硬件上来看。单一处理器架构当然更容易上手,但是开发者总免不了要在性能和灵活性、可扩展性上做折中。直到赛灵思推出了Zynq这种全新架构的FPGA SoC器件,大家才眼前一亮。Zynq是一种异构处理器,内部既包含嵌入式处理器(PS),也有可编程逻辑电路(PL)。

嵌入式视觉开发者可以根据需要将计算任务在两个系统间进行分配,十分灵活。通常可以将高性能的视觉处理功能放在PL上做加速,这自然比用通用CPU处理更高效。由于PL是硬件可编程的,所以开发者可以复用成熟的IP,也可以根据算法编写自己的定制化IP,实现与众不同视觉处理效果。

为了更好地支持高性能视觉处理的应用开发,赛灵思特别推出了Zynq Ultrascale+ MPSoC,与上一代Zynq相比,该器件提升了性能,同时为了应对实时性视觉处理做了专门的优化。我们看看Zynq Ultrascale+ MPSoC的核心资源配置,就明白了:

四个ARM Cortex-A53 CPU,算力不俗,可以支持功能复杂的OS,如Linux

两个ARM Cortex R5F实时处理器(RPU),可工作在锁步和独立运行模式,锁步模式可用于安全性要求严苛的场合。

一个Mali-400图形处理器,用于2D/3D图形显示,可提供高质量的视频显示输出。

不夸张地说,Zynq Ultrascale+ MPSoC就是一颗“为嵌入式视觉”而生的器件,丰富的硬件资源能够让开发者达到事半功倍的目的。

图1,Zynq Ultrascale+ MPSoC将嵌入式视觉作为其主攻应用市场(图片来源:赛灵思)

硬件架构能够满足要求了,但这并不意味着就能玩转嵌入式视频开发。以往在开发者心中,想和FPGA打交道,要学会要用专门的硬件描述语言写HDL代码,这并不容易,更何况现在面对的Zynq Ultrascale+ MPSoC是一个更复杂的FPGA+CPU的“异构”系统。

这个顾虑,赛灵思早已经料到了,所以他们在推出Zynq之后,也开发出了一个“软件定义”的工具套件,让FPGA SoC的开发变得更容易,这就是SDSoC。

对于SDSoC比较通俗的理解就是,它将FPGA SoC所需的开发工具和资源库整合在一个统一的开发环境中,让以往需要由系统架构、硬件设计、软件开发等不同团队协调合作、反复迭代才能完成的复杂设计开发流程,以更为自动化的方式得以实现,简化了工作,提高了效率。

SDSoC的核心愿景就是:让更多只有很少或根本没有FPGA设计经验的研发人员,无需写一行RTL代码,就可以直接使用高级编程语言编程,体验到可编程硬件的的强大能力,并且可以与通用处理器系统一起协同工作。就嵌入式视觉开发而言,开发者使用SDSoC后,可以将更多的时间和精力从繁复的底层开发工作中解放出来,去考虑算法的优化这类可以给产品带来更多差异化和附加值的高层次、系统级的问题。

图2,SDSoC典型开发流程(图片来源:赛灵思)

可见,SDSoC的出现让基于Zynq Ultrascale+ MPSoC这类嵌入式视觉硬件平台的开发效率大为提升。但是,你别以为这就大功告成了。市场的发展会不断给你提出新的需求,比如说如果今天你还没有考虑为嵌入式视觉系统加入机器学习功能,明天你的产品可能就OUT了。

想要在设计上“追新”不掉队,传统的视觉处理设计思路就要改变——开发者要从费时费力的自己做HDL编程优化,转向充分利用现有的成熟、经过验证的IP资源,通过软件定义的方式获得所需的视觉加速性能。赛灵思的reVISION堆栈就是一个将实现新思路所需的所有要素整合在一起的系统环境。

reVISION堆栈包括丰富的平台、算法和应用开发资源,支持最流行的神经网络,如AlexNet、GoogLeNet、SqueezeNet、SSD和FCN等。此外,该堆栈还提供库元素,包括预定义和优化的CNN网络层实现,这是构建定制神经网络(DNN(深度神经网络)/CNN(卷积神经网络))所必需的。

机器学习元素还配合一系列丰富的支持加速功能的OpenCV功能,满足计算机视觉处理要求。针对应用层开发,赛灵思支持工业级框架,包括面向机器学习的Caffe和面向计算机视觉的OpenVX。reVISION堆栈还包括了赛灵思和第三方提供的开发平台以及各类传感器

用reVISION的开发流程也很简单,在SDSoC开发环境中,软件工程师和系统工程师可以 reVISION硬件平台为目标,并调用大量的加速就绪型计算机视觉库进行开发,快速构建应用。

按照赛灵思的说法,采用传统的RTL流程进行视觉处理开发,赛灵思的FPGA可以帮助用户完成20%的工作,用户需要解决剩余的80%问题;而基于reVISION的开发则可以帮助用户完成80%的工作量,用户只需做剩下的20%即可,效率的提升十分显著。

图3,采用reVISION的软件定义设计流程(图片来源:赛灵思)

总之,一个为视频处理专门优化的硬件架构Zynq Ultrascale+ MPSoC、一个简单易用低门槛儿的SDSoC开发环境、一个资源丰富的reVISION堆栈,构成了嵌入式视觉开发“三件套”,它们可以帮助开发者大幅减少工作负荷、提升设计效率。一旦拥有,做个嵌入式视觉开发者,是不是件幸福的事儿?

图4,安富利推出的MicroZed嵌入式视觉开发套件,结合reVISION可以为开发者提供全面的嵌入式视觉设计开发支持

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4976

    文章

    18244

    浏览量

    287919
  • 机器学习
    +关注

    关注

    66

    文章

    8095

    浏览量

    130515

原文标题:必备且必会!嵌入式视觉开发减负“三件套”

文章出处:【微信号:AvnetAsia,微信公众号:安富利】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何成为一名嵌入式C语言高手?

    系统中,如何调试和优化程序,如何处理实时性要求等。同时,还可以学习如何使用调试工具和硬件仿真器来辅助调试和测试。 四、积极参与开源项目和技术社区加入一些嵌入式开源项目的社区,与其他开发者交流经验
    发表于 04-07 16:03

    如何成为一名嵌入式C语言高手?

    系统中,如何调试和优化程序,如何处理实时性要求等。同时,还可以学习如何使用调试工具和硬件仿真器来辅助调试和测试。 四、积极参与开源项目和技术社区加入一些嵌入式开源项目的社区,与其他开发者交流经验
    发表于 03-25 14:12

    嵌入式人工智能的就业方向有哪些?

    联网ARM开发 NB-IoT开发及实战 七:python工程师,人工智能工程师 python语法基础 python核心编程 基于OpenCV的机器视觉开发
    发表于 02-26 10:17

    【涂鸦T2-U开发板试用体验】嵌入式linux开发板涂鸦T2-U

    简洁精美的 主控采用低功耗嵌入式 Wi-Fi 模组,模组内置了 32 bit RISC-MCU, 运行速度最高可达 120 MHz 。它支持 开发者通过 TuyaOS 进行自定义二次开发 (点击了解涂鸦
    发表于 12-22 11:21

    嵌入式开发学习的十三法则分享

    嵌入式开发学习是一个不断积累和总结的过程,来自一个嵌入式开发高级工程师为我们总结的关于嵌入式开发学习的十三法则,大家不妨参考一下: 一、冗余度法则 在嵌入式系统具有足够的冗余度
    发表于 12-21 06:32

    欢迎加入飞腾派开发者社区,感谢每一位开发者

    和产业化推广。飞腾派是一款面向行业工程师、学生和爱好的开源硬件,采用飞腾嵌入式四核处理器,兼容ARM V8架构,板载64位 DDR4内存,分为2G和4G两个版本。主板板载WiFi蓝牙,陶瓷天线,可快速
    发表于 12-11 16:11

    嵌入式软件开发常用工具有哪些?

    的应用。该IDE支持多种Microchip的设备,包括PIC、AVR、PIC32和dsPIC数字信号控制器等。 以上是一些常见的嵌入式软件开发工具,它们各有特点,开发者可以根据自己的需求选择适合自己的工具。
    发表于 11-10 11:03

    Banana Pi为何选择rk3588开发与Jetson Nano引脚兼容的嵌入式产品

    。这篇文章将解释我们选择RK3588的原因以及如何实现与Jetson Nano引脚的兼容性。 Jetson Nano一直是嵌入式计算领域的领先产品,具有强大的性能和丰富的功能,广受开发者和制造商的欢迎
    发表于 11-02 12:30

    armsom:为何选择rk3588开发与Jetson Nano引脚兼容的嵌入式产品

    的原因以及如何实现与Jetson Nano引脚的兼容性。Jetson Nano一直是嵌入式计算领域的领先产品,具有强大的性能和丰富的功能,广受开发者和制造商的欢迎。然而,armsom认为,采用
    发表于 10-18 17:35

    什么是嵌入式Linux?

    什么是嵌入式Linux? 对于很多电气、电信、通信专业的同学来说,对口专业就业方向主要有软、硬件两个方向。无论是对于学生还是就业而言,软硬件的开发学习,嵌入式物联网在近年来无疑是一个摆在面前
    发表于 10-11 13:47

    嵌入式Linux开发教程

    嵌入式Linux开发教程(下册)
    发表于 09-27 07:11

    嵌入式Linux应用开发的完全手册

    障碍。很多人买了开发板想进一步练习,却发现不知从何入手。 鉴于上述种种困难及需求,作者结合自己的学习经历、工.作心得写成此书,期望能帮助读者加快嵌入式 Linux 的入门速度,并体会到深入学习嵌入式Linux的乐趣。
    发表于 09-25 07:12

    基于树莓派的嵌入式Linux开发教学

    + 虚拟机环境 + 交叉编译 + 驱动编程 + 应用层编程 ”开发链可以深入理解和控制嵌入式 Linux 系统,但因其复杂性而更适合需要定制 Linux 内核与驱动的精英开发、精英教育或研究
    发表于 09-21 07:09

    什么人适合学习嵌入式开发

    到底什么专业的人适合学嵌入式?或从事过自动化相关工作的人员,适合参加嵌入式学习吗?等等系列问题,接下来就问大家一一解答:究竟什么样的人才适合学习嵌入式开发嵌入式简单来讲,就是软硬
    发表于 06-07 15:55

    PX5的ARM TrustZone支持让嵌入式系统变得更加安全!

    产品安全性。PX5 RTOS对ARM TrustZone的支持让嵌入式开发者能够从物理层降低网络安全风险。 PX5的CEO William Lamie表示:“基于MCU的产品如今已是生活中不可缺少的一部分
    发表于 05-18 13:44