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可以为开发者提供全面的嵌入式视觉设计开发支持

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

    关注

    5062

    文章

    18990

    浏览量

    302428
  • 机器学习
    +关注

    关注

    66

    文章

    8366

    浏览量

    132342

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

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

收藏 人收藏

    评论

    相关推荐

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

    嵌入式开发常用软件有哪些? 对于初学嵌入式的朋友们,会想要了解嵌入式软件开发常用的软件有些,有什么用。那么看以下常用的软件介绍。 1.VisualStudio Code 简称VSCod
    发表于 09-09 15:22

    嵌入式linux开发的基本步骤有哪些?

    嵌入式Linux开发是一个复杂的过程,涉及到硬件选择、操作系统移植、驱动开发、应用程序开发等多个方面。以下是嵌入式Linux
    的头像 发表于 09-02 09:11 358次阅读

    嵌入式linux开发板芯片的工作原理

    了处理器、存储器、输入/输出接口等硬件资源的嵌入式系统开发平台。它通常采用Linux操作系统作为底层软件平台,提供了丰富的开发工具和库函数,方便开发者进行
    的头像 发表于 09-02 09:07 306次阅读

    恩智浦加速嵌入式AI创新应用开发

    在AI应用飞速发展的今天,如何能够将AI与嵌入式系统开发有机结合起来,营造新的开发生态,打造与众不同的创新用例,一直是嵌入式开发者追求的目标。
    的头像 发表于 08-27 09:46 779次阅读

    机器视觉嵌入式中的应用

    机器视觉嵌入式系统中的应用是一个广泛而深入的话题,涉及到许多不同的领域和技术。 机器视觉嵌入式系统中的应用 1. 引言 机器视觉是一种模
    的头像 发表于 07-16 10:30 428次阅读

    嵌入式开发前景怎么样?

    嵌入式开发前景非常广阔,这主要得益于物联网、人工智能、大数据等技术的快速发展,以及嵌入式系统在各个领域的广泛应用。以下是对嵌入式开发前景的详细分析
    的头像 发表于 07-10 09:00 2413次阅读
    <b class='flag-5'>嵌入式开发</b>前景怎么样?

    嵌入式开发者的未来

    嵌入式系统的就业方向非常广泛,涵盖了许多不同的行业和领域。以下是一些常见的嵌入式系统就业方向:消费电子产品:这包括智能手机、平板电脑、智能电视、智能家居设备等。嵌入式系统工程师可以参与设计、
    的头像 发表于 06-23 08:10 317次阅读
    <b class='flag-5'>嵌入式开发者</b>的未来

    如何提升嵌入式编程能力?

    。 11. 参加在线课程和研讨会:参加相关的在线课程和研讨会,这些课程通常由经验丰富的讲师授课,并且提供实践练习。 12. 加入社区:加入嵌入式编程社区,如论坛、邮件列表或社交媒体群组,与其他开发者交流经验
    发表于 06-21 10:01

    深度详解嵌入式系统专用轻量级框架设计

    MR 框架是专为嵌入式系统设计的轻量级框架。充分考虑了嵌入式系统在资源和性能方面的需求。通过提供标准化的设备管理接口,极大简化了嵌入式应用开发的难度,帮助
    发表于 04-27 02:32 920次阅读
    深度详解<b class='flag-5'>嵌入式</b>系统专用轻量级框架设计

    飞凌嵌入式亮相瑞芯微第八届开发者大会

    的无限可能。作为行业内的佼佼,飞凌嵌入式受邀出席此次盛会,并展示了其面向工业物联网、电力及新能源、智慧医疗、智慧交通和智慧商业等领域的多元化AIoT产品,展现了其在行业内的创新实力。
    的头像 发表于 03-13 11:19 712次阅读

    嵌入式软件开发和软件开发的区别

    嵌入式软件开发和软件开发是两个不同的概念,它们在一些关键方面有着明显的区别。嵌入式软件开发是指开发
    的头像 发表于 01-22 15:27 2139次阅读

    聊一聊嵌入式C语言

    作为一名嵌入式软件开发者,熟练掌握嵌入式C语言对我的日常工作至关重要。
    的头像 发表于 01-22 09:28 515次阅读

    嵌入式open函数的使用

    嵌入式系统是指嵌入到其他设备或系统中,用于控制和管理硬件资源的计算机系统。在嵌入式系统中,通常需要与外部设备进行数据交互,例如读取传感器数据、控制执行器等。open函数是C语言标准库中提供给
    的头像 发表于 01-04 15:51 601次阅读

    嵌入式开发的转变将如何影响未来计算

    当前,开发者正在利用安全且性能增强的技术实现小型低功耗嵌入式系统的开发,赋能过往无法想象的语音、视觉和振动等 AI 应用,而这些应用正在改变着世界。  
    发表于 01-03 14:24 369次阅读

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

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