嵌入式视觉可划分为两个高档类别;感知环境和采纳举动。视觉导向的机器人和无人机归于后边的采纳举动类。
在民用范畴,现在无人机是商业、医疗、农业、播送和法律运用中最抢手的论题之一。对许多这样的运用,无人机可供给明显的优势。在播送和法律范畴,无人机可以以低得多的本钱供给之前需求直升机才干供给的才能。无人机还能履行预定服务,例如,行将推出的 Amazon Prime (亚马逊贵宾会员) 交货服务,或许如乌干达偏远地区的医疗产品交货服务。在农业运用中,无人机能运用高光谱成像来判别作物的健康状况。而这些运用, 只不过是现在现已在运用或正在考虑运用无人机技能的广泛运用的冰山一角。
农业无人机运用示例
§ 嵌入式视觉运用趋势
这些运用,归纳起来表现着咱们在嵌入式视觉整体环境中调查到的嵌入式视觉当时四大遍及趋势中的三大趋势:
1. 边际 (edge)端经过机器学习获得的智能化 – 智能化嵌入在无人机自身内部,需求从它的摄像头提取信息并依据该信息采纳举动,达到自己的方针。
2. 开放式高档言语和结构 – 在无人机中完结智能化需求高档结构和言语。这些中最常用的是开源多渠道结构,比方嵌入式环境里的 OpenCV、OpenVX, 以及在机器学习环境里的 Tensor Flow 和 Caffe。
3. 多层次的安全性 – 用于保证无人机不只可以运转,且不能影响安全性和信息获取。这种办法要求在器材、体系和网络层面完结多层次的安全性。
第四个趋势是嵌入式视觉的遍及化。尽管视觉导向的机器人和无人机还不像咱们的手机相同遍及——咱们常在游览顶用手机来翻译标牌等用处,跟着新用例被发掘出来,运用视觉导向的机器人和无人机的运用正处于快速开展中。
在架构层面无人机具有一些要害的子体系,包括实时精准的马达控制体系、供给与无人机双向通信的软件无线电和准确的嵌入式视觉体系。视觉导向的机器人和无人机首要针对大部分电池供电的运用,因而规划高能效处理计划的才能极为重要。
§ 全可编程 SoC 满意高精度嵌入式视觉体系需求
高精度嵌入式视觉体系供给高帧率,其处理图画和依据图画采纳举动的才能要远超过人眼。对许多运用来说,需求运用多个摄像头来构成立体多视觉,以完好把握无人机周边环境。这也称为传感器交融。尽管许多运用运用多摄像头办法来调查环境,部分运用还会把规划用于观测电磁场频谱不同组成部分的摄像头结合起来运用,例如在超光谱或红外运用中的状况。在运用多个相同类型传感器的时分这一般称为同构,在运用不同传感器技能的时分称为异构。
在算法层面,这种高精度嵌入式视觉体系运转的算法有同步定位与地图构建(SLAM)和稠密光流(Dense Optical Flow),可认为渠道供给增强型感知和避障体系。这些算法一同还与更传统的方式和方针辨认算法相互结合。
稠密光流规划
视觉导向的机器人和无人机因而不只需求强壮的处理才能,还需求有才能进行功耗优化,供给面向未来且具有可扩展性的处理计划。
All Programmable ( 全可编程) Zynq® SoC可针对您面对的问题供给一同的处理计划。Zynq供给的高功用逻辑与双核ARM® A9处理器集成可打造出严密集成的异构处理单元。该异构处理单元可以在处理器内或可编程逻辑内完结高效率的功用细分。
运用依据ARM的处理体系,可以在边际展开极为杂乱的实时视觉剖析。在与可编程逻辑架构结合后,它供给实时检测方针然后运用处理器体系分类方针的才能。分类完结后,视觉导向机器人体系或无人机就能针对检测出的方针类采纳恰当的举动。
为在边际完结实时视觉剖析,咱们运用了机器学习供给的智能化技能。要履行这些算法,咱们首要需求模型并供给大型练习数据集,使模型可以进行剖析。在极高功用作业站上进行练习,得到的分类器被用于完结计划中。展开这类机器学习有多种不同的办法可供挑选,例如,卷积神经网络、深度神经网络或递归神经网络。
当咱们在边际完结这些模型时,咱们不需求与练习相同水平的功用。可以运用整数或浮点数学,两者都能方便地完结在All Programmable SoC中。
§ 全可编程SoC 面向嵌入式视觉的一同优势
SoC内的可编程逻辑架构自身具有可重编程性,这意味着该器材能支撑恣意衔接。一同处理体系内的多路复用IO(MIO)供给经过多种常用协议(从 SPI、I2C 和串行到千兆以太网、CAN 和 USB)衔接的才能,具有极为灵敏的从该设备输入/输出数据的办法。
Zynq一同接口和处理多个摄像头输入的实例
对运用的图画传感器来说,可编程逻辑架构还可以支撑最适合于现在运用的特定传感器。与约束传感器接口和图画处理流水线的一些规范处理计划不同,这种高度的灵敏功用够打造出面向未来的规划计划。现在它可以先实例化一个接口,然后跟着新规范的出现,从头编程现已布置的体系以支撑新规范。可编程逻辑的灵敏性还表现在能从一个规范转化到另一个规范。
在同构和异构传感器交融方面,这个最大的 SoC 产品系列供给足够的可编程逻辑架构,能完结20个以上的视觉通道并让每一个通道并行运转。因为这些通道完结在可编程逻辑架构内,规划工程人员不受界说的图画处理途径约束,相反他们有才能为现在的运用完结所需的特定图画处理流水线。
就生成图画处理流水线而言,和一般的主意不同的是咱们不用运用 HDL 从头生成全部。在规范 Vivado® IP 库内供给了一些图画处理内核,运用 AXI Streaming 接口就可以衔接。运用 AXI Streaming 接口便于把灵敏、可扩展的图画处理流水线创立成规范接口,用在一切的 IP 模块上。这种规范化能缩短初始开发时刻,便于跟着产品规划图的延伸更容易地晋级和复用。
当然许多图画处理算法适当杂乱,需求先在 OpenCV 或 MATLAB 等运用中建模。OpenCV 能与 Vivado® 高层次归纳视频库结合,即 OpenCV 库的可归纳版别,极为简洁地为咱们的流水线完结图画处理算法。随后这些算法能拉回到 Vivado 内的图画处理流水线中,缩短开发和验证时刻。
别的,还可以完结依据 MathWorks MATLAB 流程的模型规划流程。它可以先在模型层面界说整个图画处理流水线,然后在界说底层的代码。不过大多数现代运用都有必要考虑安全性,以防备对体系、体系数据的无授权改动或拜访,或是防备歹意黑客进犯。开发安全规划有必要从体系层面自上而下考虑。不过运用 All Programmable SoC 能供给一系列器材级和体系级安全功用,让完结作业变得简洁易行。Zynq SoC 可以对导向与装备流程进行加密和认证。也可运用 Trust Zone 技能创立正交环境,约束软件凭借管理程序拜访底层硬件。一同,内置的 XADC 能用于监测器材电压和温度以及外部参数,供给防篡改办法。还有一些功用能完结在规划中,进一步增强安全性。
全可编程 SoC 能完结多个并行图画处理流水线以及同构/异构传感器交融,然后实时履行视觉剖析和决议计划,并且供给对电池供电体系十分要害的极高效的单位功耗功用。凭借内涵的灵敏性,All Programmable SoC 能供给真实的差异化要素,值得在规划中考虑运用,尤其是在需求考虑单位功耗像素数量的时分。
§ 单芯片全可编程SoC 完结的智能体系
跟着视觉导向机器人和无人机运用的快速开展,视觉导向的机器人和无人机自身也正在飞速开展。要开宣布具有抱负单位功耗功用的高精度视觉体系,最好是运用全可编程SoC。全可编程 SoC 能完结很多并行处理链,在边际完结传感器交融和实时剖析,一同供给高能效、高灵敏度和高安全性的体系。赛灵思全可编程 SoC可以在单个器材中完结处理体系与可编程逻辑的强壮组合,支撑硬件加快计算。
在这些运用中一般完结的算法有多种,最常见的三种是:
● 环视体系 – 这些体系用于生成车辆周边环境的三维可视化,完结对环境的进一步了解。典型的环视体系运用球面摄像头。环视往往用于需求同步定位与地图构建(SLAM)和光流的运用中。
● 全景摄像头 – 这些摄像头为周边环境供给360度视界,用于监控运用和车辆可视化。
● 异构传感器交融 – 交融来自电磁频谱不同组成部分的图画,例如红外成像,以增强低光/夜视功用。
完结这些算法会带来几个有必要处理的一同应战,例如:透镜校对、消除透镜失真、视角转化、运用并行外表进行视频纹路填充。
结合电磁频谱中可视部分和红外部分的传感器交融实例
另一个是怎么出现终究图画。这就带来了多通道处理和多通道同步的难题,但这是保证一切摄像头都显现相同帧所需求的。当然多通道处理和同步问题并不只局限于视觉导向的的机器人和无人机运用,这是许多嵌入式视觉运用的通病。视觉导向的机器人和无人机也是检测和分类方针,完结主动和半主动操作所需求的。
§ 全可编程 SoC 供给的 IP
在工程项目中完结这些杂乱的图画处理算法可谓一项豪举。它需求具有专家级技能水平的工程师正确地在 SoC 内完结算法。这些工程师可以针对方针架构开发和优化特定问题。获得这样的技能需求企业聘任一个长时刻工程师或分包工程师。除了需求获得专家级技能,因为需求全新开发这些功用,还会延伸产品上市时刻。
运用专业供给商开发的 IP,无需寻觅专家级工程师,一同还可以缩短开发时刻,然后加快产品上市进程。它还可以让开发企业集中精力完结产品增值,保证嵌入式视觉产品在市场上占有有力位置。
运用现有的、依据老练技能的 IP 模块还降低了项意图整体危险。在项目上运用商用 IP 核,还能与辅佐合同一同供给,让内核能无缝集成到您的运用中。有数个 IP 模块作为 Vivado Design Suite 标配供给,其它用于嵌入式处理计划的高档商用 IP 由多家第三方供货商供给。
其间一个这样的图画处理库组合便是 Xylon 在他们的 LogicBRICKS IP 库中供给的。该库专门为在 Vivado Design Suite 中运用进行了优化。一旦这些 IP 模块运用到 Vivado 规划中,它们就可以依据运用的要求加以定制。在 logicBRICKS IP 库内有数个对开发视觉导向的的机器人和无人机运用有重要意义的 IP 模块。
在嵌入式视觉运用中往往运用依据梯度方向直方图(HOG)分类器来检测和盯梢方针。HOG分类器运用归于机器学习一部分的支撑向量机(SVM)。在 logicBRICK 库内有一个以 LogiHOG 方式供给的 HOG 分类器,可以检测多达四个不同的 SVM 分类器,然后并行检测多个方针。这些 SVM 经练习和更新后能习惯气候和灯火等多种不同条件。
作业中的 LogiHOG 分类器
LogicBRICKS 库中有多种其他常用的 IP 核,可用于简化开发作业。别的还有几种图画信号处理流水线可供规划人员完结在自己的规划中。这些图画处理内核供给完好处理计划,支撑创立高达 4K2K P60 的流水线。这些流水线在 SoC 内与摄像头界面接口,因而可以支撑多种不同的摄像头技能。
开发流程遵从传统 SoC 开发,依据运转要求装备 SoC。LogicBRICKS 库中的 IP 核随后刺进到可编程逻辑架构中,以构成具有所需功用的图画处理流水线。然后用运转在 ARM® A9 内核上的运用软件供给的 API 调用按要求实时地精调算法。
许多运用运用的是高动态规模摄像头。动态规模代表的是传感器捕获具有宽范照度强度的图画的才能,一般运用 dB 或比率来表达。这意味着同一幅图画中可以一同有高照度区域和漆黑区域。经过增强图画的照度和图画部分区域的亮度,logiHDR 内核供给与这些摄像头接口并从图画中提取最大细节的才能。
§ 凭借 SDSoC 开发工具推进加快体系规划
在运用免费或商用 IP 完结大部分图画处理流水线后,要让运用功用完好,还有需求完结的其他功用。运用 SoC 就能在处理器中或是在可编程逻辑中完结这一步。运用 SDSoC™ 开发工具,咱们能无缝地在这两者间移植功用,加快首要用高档言语开发的运用的规划速度。
要发挥 SDSoC 的功用,咱们可以运用 IP 核界说一个包括底层图画处理流水线的新渠道。SDSoC 随后就可以运用可用的逻辑和互联资源加快规划。在 SDSoC 内有多个库可供规划人员开发能在可编程逻辑内加快的运用。详细到图画处理,首要有两个支撑 HLS 的库:
● HLS_video – 该库供给嵌入式视觉功用和数据结构。这些元素可归纳在一同。
● HLS_OpenCV – 该库供给预先编译的 OpenCV 功用,以及与 IP 模块接口所需的专门支撑功用。该库意图是供测试台运用,因而不行归纳。
许多算法将运用 OpenCV 等开源图画处理结构开发。因而,在运用 SDSoC 开发以加快为意图的体系时,规划人员期望运用了解的结构。这便是 HLS_OpenCV 库合作 SDSoC 开发工具发挥作用的当地。它供给与加快功用接口所需的功用。
OpenCV 组元中最根本的是 cv::mat 类,用于界说以 X 轴和 Y 轴表明的图画巨细以及像素信息。例如每个像素内的位数、有符号仍是无符号、多少个通道构成一个像素。这个类是咱们运用 OpenCV 时怎么存储和操作图画的根底。
在 HLS 库中有一个相似的结构,即 hls::mat。鉴于 HLS 流是创立图画处理流水线的规范接口,该库还供给一些让咱们能把 hls::mat 类转化为 HLS 流或把 HLS 流通化为 hls::mat 类的功用。cv::mat 类和 hls::mat 类之间的首要差异在于 hls::mat 类被界说为适用可编程逻辑架构的像素流,这与归于内存映射的 cv::mat 类不同。流完结和内存映射完结之间的这种不同意味着咱们运用 hls::mat 类时不用随即拜访像素。
这样就可以运用处理器内的双 ARM A9 内核完结运用的开始开发,保证算法的功用。在需求该功用时,可编程逻辑中的算法就能被加快。规划人员可运用追寻和 AXI 功用监测等 SDSoC 功用优化加快功用。
视觉导向的的机器人和无人机技能在开发嵌入式视觉算法的过程中面对一系列的难题,但这些算法可帮忙视觉导向的的机器人和无人机了解所在环境并依据得到的信息做出决议计划。为帮忙这些图画处理体系的开发作业,规划人员可运用 IP 核供给的功用,并运用 SDSoC 等体系级开发工具,生成所需的终究硬件加快功用。