跟着处理效能、内存密度和体系整合度的进步,嵌入式视觉从传统逐步扩增到新式运用范畴,市场规模在十年内必有显着添加。而伴跟着运用范畴越来越多元,印象传感器体系在开发时,所需考虑的面向也变得愈加杂乱。
视觉体系在各个工业及运用范畴中日益遍及,乃至每天带着的智能型手机即嵌入式视觉体系的一个比如。这些设备不只可以从事印象捕捉和印象录制,还能履行扩增虚拟现实的运用。由此可知嵌入式视觉技能有适当高的承受度。
跟着处理效能、内存密度和体系整合度的进步,嵌入式视觉从传统逐步扩增到新式运用范畴(图1)。这使得嵌入式视觉在顾客、工业和政府间被广泛地承受,十年内必有显着添加。
图1 常见的嵌入式视觉运用。
表1列出了一些嵌入式视觉兴起中的范畴,其间有一些清楚明了,有些则不是很显着。
嵌入式视觉之根本概念
所谓嵌入式视觉体系包括从所选的印象传感器接纳光子到体系输出的整个信号链。从接纳端的印象中撷取处理或未处理的印象或信息,并供给予下流体系,而嵌入式体系架构师则担任依据体系要求保证接纳到输出进程的效能。
因而,嵌入式视觉体系架构师需求了解与传感器和后处理体系相关的各种概念和技能。本文专为入门之专业人士规划,旨在让读者对此技能和概念有一个根本了解。
首要,咱们有必要了解电磁波谱及期望体系运转的光谱域,因为肉眼可辨识的规模仅390nm(蓝光)至700nm(红光)波长间的光谱,亦为可见光谱;而依据选用印象设备的不同,咱们却能捕获到更广泛的波长印象包括X光、紫外线、红外线,以及可见光谱。
针对近红外光及以下的光谱规模,咱们可以选用电荷耦合组件(CCD)或互补金属氧化物半导体(CMOS1)印象传感器(CIS);到了红外光谱规模,则须运用专用的红外光检测器。红外光谱之所以需求专用的传感器,部分原因在于芯片印象传感器如CCD或CIS需求激起能。这些组件一般需求1eV的光子能量来激起一个电子,但是在红外光谱规模,光子能量介于1.7eV至1.24meV之间,因而红外印象传感器应依据HgCdTe或InSb。这些低激起能的传感器,常常与CMOS的读取IC(RO%&&&&&%)合作运用,以利传感器的操控与读取。
最常见的两种传感器技能分别是CCD 和CIS:
.电荷耦合组件(CCD)被视为最好的仿真组件,因而若需与数字体系整合,就需求在必定的模仿电压下外加ADC及频率生成功用。每个像素贮存由光子发生的电荷,且大都的运用是由2D数组摆放成行,每行由多个像素组成。读取CCD时,需透过行与行之间的传输,将每行平行传递到读取缓存器, 再透过读取缓存器将每行串行读取。这个缓存器的读取进程中,会将电荷转化为电压。
.CMOS印象传感器能让ADC、偏压和驱动电路在同一个芯片上做更严密的整合,可大幅下降体系对整合的需求,并一起进步CIS规划的杂乱度。自动像素传感器 (APS)是CIS的中心,其间与CCD的不同在于CIS的每个像素中一起包括一组光电二极管及读取放大器,并能独自读取数组中的任一个像素。
虽然大都的嵌入式视觉皆选用CIS组件,但CCD仍是高端科学研究运用范畴中首要选用的传感器。本文所提及的内容适用于CIS或CCD印象技能。
分辨率为传感器挑选首要考虑
用户有必要对体系有深入的了解方能选出正确的印象传感器,以下几点是须归入考虑的要素:
首要,用户有必要决议所需的分辨率为何,也便是决议每行中须包括的像素量,以及检测器需多少行。比如说,在地理科学运用的情况下,很或许需用到高分辨率的2D组件,但在工业品管的印象运用上或许只须履行线性扫描。
线性扫描组件由X轴上的单行像素所组成,往往适用于移动中的相机或方针物运用,藉以生成Y轴的印象。一般这类传感器用于查验运用或光学字符识别(OCR)居多。有些范畴须选用时域整合(TDI)线性扫描传感器,而这类传感器在X轴由多行所组成,并跟着方针移动;而像素也从一个向下一个移动,并跟着电荷在时刻上整合,以完结更活络的检测。
不过,TDI需内行与行间的传输与方针移动间进行同步,以防发生含糊及印象缺点。因为只要几行需求读取,因而帧率可以适当高。
2D数组中包括多行的像素,而数组巨细将决议传感器的最大帧率。一般为了完结更高的帧率,并将2D组件平行读取多个像素。除此之外,2D组件亦可履行窗口操作(又称为感兴趣区域,ROI),并读取特定感兴趣的区域,以取得更高的帧率。这类组件可用于许多范畴,而且信息包括在2D印象中,例如先进辅佐驾驭体系(ADAS)、监控或科学研究范畴。
在决议了印象感测的格局及所需分辨率后,再来有必要考虑的是「像素距离」。因为它决议了像素的巨细,而这联系到入射光子所发生的电荷有多少可以被搜集。因而,较小的像素距离意味着在一个整合周期内(传感器露出于印象中的时刻)可以搜集较少的电荷。若像素距离较小,则意味着捕捉印象需求更长的整合时刻,这会影响到传感器捕捉快速移动中印象的才能,而且使得低光源摄影效能下降。
慎选传感器以保证量子功率
确认传感器格局后,即须考虑究竟是运用CCD、CMOS或其他更专业的技能。对此的重要参阅方针是量子功率(QE);意指组件经过光子发生电子的功率。一般,一般期望在可见光谱内QE值越高越好,这关于低光源运用也具重要意义。影响组件QE值的要素有三个:吸收、反射和透射。其间组件结构是导致QE值下降的主因,如金属导线或多晶硅闸(Poly silicon gate)等的电路吸收光子或将光子反射,导致像素在组件中被频蔽,然后使QE值下降,因而要慎选传感器。
.前照式:
关于这类组件,光子从前介绍的传统办法打在组件的前端,像素或许被遮盖,QE然后下降。
.背照式:
这类型的组件的背板经过由后期处理削薄,以便在后端接纳光照,然后不受其他规划组件的阻挠。薄型背照式组件能完结优化的QE值。
用户还有必要从以下三点去考虑印象传感器中所答应的噪声:
.组件噪声:
此噪声为暂时性的,包括散粒噪声及输出放大器和复位电路发生的噪声。
.固定图画噪声(FPN):
呈空间散布,并在相同的光照强度下,像素呈不同反响所引起的噪声。FPN一般由每个像素的不同偏移和增益呼应引起;偏移部分一般称为DSNU(Dark Signal Non-Uniformity),增益部分称为PRNU(Photo Response Non-Uniformity)。有多种办法可以补偿FPN,而最常见的办法则是对输出信号作相关二次取样。
.暗电流:
由印象传感器中的热噪声引起,乃至在无光照的情况下也会呈现。暗信号对终究印象质量的影响取决于帧率;较高的帧率下影响不大,但是,跟着帧率下降(如科学运用)影响会较显着。因为暗电流与温度休戚相关,故在需求低暗电流的情况下,一般是运用像PelTIer等的冷却器来下降印象组件的工作温度。
了解印象传感器的噪声形式后,便能决议要完结多大的信号噪声比(SNR)。
动态规模代表传感器印象捕捉才能
确认组件的噪声效能后,就可以界定印象传感器所需的动态规模。动态规模代表传感器在必定光照强度规模内捕捉印象的才能,单位以dB或以份额核算。这代表一个印象中一起包括高照度与暗区。
传感器的实践动态规模由像素的满电位井容量决议,也便是像素饱满前所能承载的电子数量。将容量除以读取噪声,便能将份额转化为以dB为单位的值。
(电位井容量e-)/(读取噪声e-)
一般运用PTC(Photon Transfer Curve)测试法来确认动态规模,画出噪声与电位井容量的联系曲线。
假如组件具有数字输出,可经过以下公式运用输出端的位数核算该值。
动态规模(dB)=20 Log10(2^总线宽度)
但是,这并不代表组件的动态规模,仅仅阐明流排宽度所能代表的潜在规模,而没有考虑传感器效能要素。
I/O规范也十分重要,不只用来输出像素数据,亦用来输出指令和操控接口。这与帧率有关,例如LVCMOS界面不适用于高帧率运用,但却可用于简略的监控开麦拉。跟着帧率、分辨率和每像素位数的添加,印象传感器正朝向选用LVDS系列或SERDES技能的专用高速串行链的趋势开展。
依据运用考虑挑选单色/五颜六色传感器
现在现已探讨了印象传感器的多个重要观念,另一个没有考虑的则是五颜六色或单色传感器。不管挑选五颜六色或单色,皆取决于运用场合。
.五颜六色传感器:
需在每个像素上运用贝尔图形,在一条在线替换改换红和绿色,并在下一条在线替换蓝和绿色(绿色用得较多是因为人眼对绿色波长较为灵敏)。这意味着要对接纳到的光子进行滤波处理,使每个像素只接纳所需波长的光子。用户可以针对印象进行后续处理,以决议像素颜色,并用不同颜色环绕像从来重建每个像素上的颜色,且不会下降印象分辨率。
五颜六色传感器使重建和输出印象所需的图画处理链变得杂乱。此外,贝尔图形的确会导致分辨率下降,但没有幻想中差,一般降幅为20%。
.单色传感器:
因为印象数组上没有贝尔图形,因而每个像素能接纳一切光子。如此可进步印象的活络度,使印象的读取更简易,因为不会发生颜色重建所需的去马赛克效应。
经挑选咱们决议运用CIS组件,归于杂乱的体系单芯片。因而,还有必要考虑以下与读取形式和整合时刻相关的问题。
.整合时刻:
意指读取前像素的曝光时刻。在较简略的CCD体系上,需求挨近电子设备在组件外履行该时序。但是关于CIS组件而言,整合时刻可透过指令接口由缓存器来装备,然后CIS组件可针对常用的两种读取形式精确地履行整合时刻。
.大局快门形式:
此种形式下,一切像素一起承受光照,然后读取。因为一切像素一起读取,因而会添加读取噪声。此形式是用于若针对快速移动物体进行拍照快照。
.翻滚快门形式:
此种形式下,进行逐行曝光和读取。此形式的读取噪声较小,但是在捕获快速移动物体较不如大局快门形式。
挑选适宜的传感器之后,在进行体系开发的进程中还须考虑和处理许多应战。除了技能应战之外,开发体系还会面对时刻压力,保证产品在既守时程上市。
尺度/分量/功耗 体系开发应战多
运用者有必要依据时刻约束,了解开发进程中哪部分活动能带来附加价值,接着做出正确的挑选,并厘清哪部分应该自行开发(以能发明附加价值的增值作业),哪部分可以购买商用现成产品(COTS)或委外代工。聚集于附加作业及运用硬件、软件和FPGA 层级的IP模块,是满意上市时程的重要促进要素之一。
除了上市时程的约束,嵌入式视觉体系开发进程中还有必要考虑尺度、分量、功耗和本钱(SWAP-C)要求。什么主导并分配体系内的SWAP-C,取决于详细运用范畴,例如手持设备在功耗方面的必备条件,相较于自动驾驭辅佐体系更为严厉。但是,就自动驾驭辅佐体系而言,因为有必要出产几百万台,因而处理计划的本钱便成为首要考虑要素。
假使想在尺度、分量、功耗和本钱方面取得杰出的成效,有必要设法让传感器和处理体系更严密的结合,成为运用数量更少但功用更强的整合型组件。
每种运用范畴都具有不同附加价值及不同的尺度、分量、功耗和本钱考虑,因而简直一切嵌入式视觉体系都需求履行图画处理序列。此序列可与所选的传感器树立接口衔接,并履行所需的操作,以便发生合适进一步加工或直接透过网络传输的印象。根本的图画处理序列包括:
.照相机界面:接纳来自传感器的原始印象
.颜色滤波数组:重建像素颜色
.颜色空间转化:转化成针对编解碼的正确颜色空间
.输出格局化:与输出前言进行接口衔接
序列在图画处理管线中针对接纳的印象履行和运用算法。算法会依据运用的不同而改变,不过,有一些常用的图画处理算法可用来进步对比度、检测印象中的特性、方针或运动,或校对含糊印象。
现成架构有助算法加快开发
这些算法应该在一个架构内被开发,以在最短时刻内将产品推向市场,并鼓舞重复运用,以下降非重复性和重复性之工程本钱。以下为几种应考虑的现成架构:
.OpenVX:
用于开发图画处理运用的敞开原始码运用程序。
.OpenCV2:
核算机视觉敞开原始码,为一款以C/C++为根底的实时核算机视觉函式库。
.OpenCL:
以C++为根底的核算机语言敞开原始码,用于开发GPU、FPGA等常见平行处理运用。
.SDSoC:
赛灵思的一款规划环境,开发人员凭借该环境可在Zynq或 UltraScale+ MPSoC组件的ARM处理体系中履行编写的C/C++算法,剖析基准程序代码特性以找出效能瓶颈,接着运用赛灵思高阶组成技能,将瓶颈转化至硬件支撑的IP,并在组件的可编程逻辑(PL)部分中运转。
若选用FPGA或All Programmable SoC计划时,将这些架构与HLS结合运用,可以高效开宣布嵌入式视觉运用,并藉由硬件回路快速演示。
印象经过处理管线序列之后,数据从体系输出的办法也很重要,以下有三种挑选:
1.运用视讯图形数组(VGA)、高画质多媒体接口(HDMI)、串行数字接口(SDI)或DisplayPort等规范将印象输出到显现器。许多电动车选用触控式显现屏幕,以便对体系进行操控和装备。
2.将印象或从印象中撷取的信息传送到另一个体系,好像云端处理运用般运用印象或撷取出的信息。
3.将印象贮存在非挥发性前言中,供未来运用。
关于绝大大都选项而言,在完结图画处理链后,皆须确认印象格局化办法。此刻,运用者需求决议是否运用如MPEG-4 Part 10高阶视讯编码(H.264)或高功率视讯编码(H.265)等工业规范印象/视频压缩算法,以便对印象进行编码,而这些履行计划一般被称为编译码器。编译码器能进步通讯和网络带宽的运用功率,或下降完结印象高保真度所需的贮存空间,因为编码一般会导致印象失真。若因运用编译码器促进印象失真且无法被承受,还可按原始格局传送和贮存印象,或以无损格局进行编码。
嵌入式视觉常用之颜色格局
大大都编译码器所运用的颜色空间都与印象传感器输出的颜色空间(条件是体系运用五颜六色组件)不同。嵌入式视觉中首要运用的颜色空间为:
.红、绿、蓝:
包括RGB信息作为印象传感器的输出,一般用于VGA等简略接口的输出。
.YUV:
包括亮度(Y)和色度(U和V),该颜色空间用于大大都编译码器和一些显现规范。
常用的YUV格局为YUV4:4:4和YUV4:2:2。两种格局的差异在于4:4:4 格局下,每像素由8位表明,可得到24位像素;而在4:2:2格局下,U值和V值在像素之间同享,可得到16位像素,一起可节约贮存空间。
图画处理链于何处履即将影响体系效能
另一个对图画处理链和SWAP-C具有巨大影响的决议计划是,大部分图画处理链应在哪里履行。
首要是在边际端履行,亦即在嵌入式视觉体系内履行。在边际端的履行可进步体系的功耗和处理/贮存要求,但可以完结更快的呼应速度。在边际端的处理将成为大部分嵌入式运用中的主导运用,例如自动驾驭辅佐体系、机器视觉等。
其次是在云端履行则需求嵌入式视觉体系捕捉印象,而且运用网络技能将印象传送到云端。可在云端处理的典型运用,包括医疗印象或科学运用。这类运用的信息处理十分密布,且毋需实时成果。
为完结图画处理链,嵌入式视觉体系的中心需求一个处理中心,不只须操控所选的印象传感器,还要能接纳和履行图画处理管线,并经过指定网络根底设施传送印象,或发送到选定的显现器。许多苛刻的要求导致常常有必要挑选FPGA,或许运用如Zynq组件的All Programmable SoC。
Zynq组件将两个高效能ARM A9处理器与FPGA架构结合,让处理体系(PS)可以用来透过GigE、PCIe或CAN等接口与主机体系衔接,一起履行体系的一般办理和日常业务。组件的另一半,即可编程逻辑(PL),可用来接纳和处理印象,并充分运用FPGA架构的平行处理特性。若印象被要求经过网络根底设施传送,便能运用Zynq中的直接内存拜访(DMA)操控器有效地将印象数据从PL移动到PS DDR内存。当印象移到PS DDR内存内,便可进一步被所选传输前言的DMA操控器运用。
当然,一旦印象坐落PS DDR内,高效能A9处理器亦可供给进一步的处理操作。Zynq架构的特色在于将处理后的印象从PS DDR移回PL中的印象管线。
传感器交融为嵌入式视觉开展终究方针
许多嵌入式视觉体系还要求能整合更多传感器数据,以便更佳地感测环境。包括运用许多同类型传感器扩展视界,例如自动驾驭辅佐体系的全景功用,或许整合多个不同类型的传感器,供给可见光谱下无法看到的视觉内容,如在一般印象传感器数据上掩盖红外线信息。
在许多运用情境下,需求将嵌入式视觉运用的输出与其他传感器数据进行交融,让发生的印象包括多个不同传感器信息。最简略的传感器交融运用是将不同频谱的印象结合,例如将可见光与红外线交融以完结更好的夜视作用。
传感器交融另一项愈加杂乱的运用是,将印象体系、全球定位卫星体系(GNSS)、数字地图信息,以及不同波长下运转的其他传感器(例如雷达)进行交融,以确认另一辆轿车的相对方位,防止轿车相互磕碰。
因为要将不同体系交融在一起并撷取信息,因而传感器交融对处理器的条件要求十分高。All Programmable SoC处理计划可以与多个传感器树立接口衔接,以及平行处理信息,进步数据传输量,因而在许多方面具有显着优势。
在传感器和体系层面,有必要考虑许多要素,并有许多技能、架构和组件可用来完结嵌入式视觉体系。