嵌入式視覺(jué)系統基本概念以及傳感器的選擇
隨著(zhù)處理效能、內存密度和系統整合度的提升,嵌入式視覺(jué)從傳統逐漸擴增到新興應用領(lǐng)域,市場(chǎng)規模在十年內必有顯著(zhù)增長(cháng)。而伴隨著(zhù)應用領(lǐng)域越來(lái)越多元,影像傳感器系統在開(kāi)發(fā)時(shí),所需考慮的面向也變得更加復雜。
本文引用地址:http://dyxdggzs.com/article/201710/365871.htm視覺(jué)系統在各個(gè)產(chǎn)業(yè)及應用領(lǐng)域中日益普及,甚至每天攜帶的智能型手機即嵌入式視覺(jué)系統的一個(gè)例子。這些裝置不僅能夠從事影像捕捉和影像錄制,還能執行擴增虛擬現實(shí)的應用。由此可知嵌入式視覺(jué)技術(shù)有相當高的接受度。
隨著(zhù)處理效能、內存密度和系統整合度的提升,嵌入式視覺(jué)從傳統逐漸擴增到新興應用領(lǐng)域(圖1)。這使得嵌入式視覺(jué)在消費者、產(chǎn)業(yè)和政府間被廣泛地接受,十年內必有顯著(zhù)增長(cháng)。
圖1 常見(jiàn)的嵌入式視覺(jué)應用。
表1列出了一些嵌入式視覺(jué)崛起中的領(lǐng)域,其中有一些顯而易見(jiàn),有些則不是很明顯。
嵌入式視覺(jué)之基本概念
所謂嵌入式視覺(jué)系統包含從所選的影像傳感器接收光子到系統輸出的整個(gè)訊號鏈。從接收端的影像中擷取處理或未處理的影像或信息,并提供予下游系統,而嵌入式系統架構師則負責根據系統要求確保接收到輸出過(guò)程的效能。
因此,嵌入式視覺(jué)系統架構師須要熟悉與傳感器和后處理系統相關(guān)的各種概念和技術(shù)。本文專(zhuān)為入門(mén)之專(zhuān)業(yè)人士設計,旨在讓讀者對此技術(shù)和概念有一個(gè)基本了解。
首先,我們必須熟悉電磁波譜及期望系統運行的光譜域,因為肉眼可辨識的范圍僅390nm(藍光)至700nm(紅光)波長(cháng)間的光譜,亦為可見(jiàn)光譜;而根據選用影像設備的不同,我們卻能捕獲到更廣泛的波長(cháng)影像包括X光、紫外線(xiàn)、紅外線(xiàn),以及可見(jiàn)光譜。
針對近紅外光及以下的光譜范圍,我們可以選用電荷耦合組件(CCD)或互補金屬氧化物半導體(CMOS1)影像傳感器(CIS);到了紅外光譜范圍,則須使用專(zhuān)用的紅外光檢測器。紅外光譜之所以需要專(zhuān)用的傳感器,部分原因在于芯片影像傳感器如CCD或CIS需要激發(fā)能。這些組件通常需要1eV的光子能量來(lái)激發(fā)一個(gè)電子,然而在紅外光譜范圍,光子能量介于1.7eV至1.24meV之間,因此紅外影像傳感器應基于HgCdTe或InSb。這些低激發(fā)能的傳感器,經(jīng)常與CMOS的讀取IC(ROIC)配合使用,以利傳感器的控制與讀取。
最常見(jiàn)的兩種傳感器技術(shù)分別是CCD 和CIS:
.電荷耦合組件(CCD)被視為最好的仿真組件,因此若需與數字系統整合,就需要在一定的模擬電壓下外加ADC及頻率生成功能。每個(gè)像素儲存由光子產(chǎn)生的電荷,且多數的應用是由2D數組排列成行,每行由多個(gè)像素組成。讀取CCD時(shí),需透過(guò)行與行之間的傳輸,將每行平行傳遞到讀取緩存器, 再透過(guò)讀取緩存器將每行串行讀取。這個(gè)緩存器的讀取過(guò)程中,會(huì )將電荷轉換為電壓。
.CMOS影像傳感器能讓ADC、偏壓和驅動(dòng)電路在同一個(gè)芯片上做更緊密的整合,可大幅降低系統對整合的需求,并同時(shí)提高CIS設計的復雜度。主動(dòng)像素傳感器 (APS)是CIS的核心,其中與CCD的不同在于CIS的每個(gè)像素中同時(shí)包含一組光電二極管及讀取放大器,并能單獨讀取數組中的任一個(gè)像素。
盡管多數的嵌入式視覺(jué)皆采用CIS組件,但CCD仍是高端科學(xué)研究應用領(lǐng)域中主要采用的傳感器。本文所提及的內容適用于CIS或CCD影像技術(shù)。
分辨率為傳感器選擇首要考慮
用戶(hù)必須對系統有深刻的了解方能選出正確的影像傳感器,以下幾點(diǎn)是須納入考慮的要素:
首先,用戶(hù)必須決定所需的分辨率為何,也就是決定每行中須包含的像素量,以及檢測器需多少行。好比說(shuō),在天文科學(xué)應用的情況下,很可能需用到高分辨率的2D組件,但在工業(yè)品管的影像應用上可能只須執行線(xiàn)性?huà)呙琛?/p>
線(xiàn)性?huà)呙杞M件由X軸上的單行像素所組成,往往適用于移動(dòng)中的相機或目標物應用,藉以生成Y軸的影像。通常這類(lèi)傳感器用于檢驗應用或光學(xué)字符識別(OCR)居多。有些領(lǐng)域須采用時(shí)域整合(TDI)線(xiàn)性?huà)呙鑲鞲衅?,而這類(lèi)傳感器在X軸由多行所組成,并隨著(zhù)目標移動(dòng);而像素也從一個(gè)向下一個(gè)移動(dòng),并隨著(zhù)電荷在時(shí)間上整合,以實(shí)現更靈敏的檢測。
不過(guò),TDI需在行與行間的傳輸與目標移動(dòng)間進(jìn)行同步,以防發(fā)生模糊及影像缺陷。由于只有幾行須要讀取,因此幀率可以相當高。
2D數組中包含多行的像素,而數組大小將決定傳感器的最大幀率。通常為了實(shí)現更高的幀率,并將2D組件平行讀取多個(gè)像素。除此之外,2D組件亦可執行窗口操作(又稱(chēng)為感興趣區域,ROI),并讀取特定感興趣的區域,以獲得更高的幀率。這類(lèi)組件可用于眾多領(lǐng)域,而且信息包含在2D影像中,例如先進(jìn)輔助駕駛系統(ADAS)、監控或科學(xué)研究領(lǐng)域。
在決定了影像感測的格式及所需分辨率后,再來(lái)必須考慮的是「像素間距」。因為它決定了像素的大小,而這關(guān)系到入射光子所產(chǎn)生的電荷有多少能夠被收集。因此,較小的像素間距意味著(zhù)在一個(gè)整合周期內(傳感器暴露于影像中的時(shí)間)能夠收集較少的電荷。若像素間距較小,則意味著(zhù)捕捉影像需要更長(cháng)的整合時(shí)間,這會(huì )影響到傳感器捕捉快速移動(dòng)中影像的能力,并且使得低光源拍照效能下降。
慎選傳感器以確保量子效率
確定傳感器格式后,即須考慮究竟是使用CCD、CMOS或其他更專(zhuān)業(yè)的技術(shù)。對此的重要參考指標是量子效率(QE);意指組件通過(guò)光子產(chǎn)生電子的效率。通常,一般希望在可見(jiàn)光譜內QE值越高越好,這對于低光源應用也具重要意義。影響組件QE值的因素有三個(gè):吸收、反射和透射。其中組件結構是導致QE值降低的主因,如金屬導線(xiàn)或多晶硅閘(Poly silicon gate)等的電路吸收光子或將光子反射,導致像素在組件中被頻蔽,從而使QE值降低,因此要慎選傳感器。
.前照式:
對于這類(lèi)組件,光子先前介紹的傳統方式打在組件的前端,像素可能被遮蔽,QE進(jìn)而降低。
.背照式:
這類(lèi)型的組件的背板經(jīng)過(guò)由后期處理削薄,以便在后端接收光照,從而不受其他設計組件的阻擋。薄型背照式組件能實(shí)現優(yōu)化的QE值。
用戶(hù)還必須從以下三點(diǎn)去考慮影像傳感器中所允許的噪聲:
.組件噪聲:
此噪聲為暫時(shí)性的,包含散粒噪聲及輸出放大器和復位電路產(chǎn)生的噪聲。
.固定圖像噪聲(FPN):
呈空間分布,并在相同的光照強度下,像素呈不同反應所引起的噪聲。FPN通常由每個(gè)像素的不同偏移和增益響應引起;偏移部分通常稱(chēng)為DSNU(Dark Signal Non-Uniformity),增益部分稱(chēng)為PRNU(Photo Response Non-Uniformity)。有多種方法可以彌補FPN,而最常見(jiàn)的方法則是對輸出訊號作相關(guān)二次取樣。
.暗電流:
由影像傳感器中的熱噪聲引起,甚至在無(wú)光照的情況下也會(huì )出現。暗訊號對最終影像質(zhì)量的影響取決于幀率;較高的幀率下影響不大,然而,隨著(zhù)幀率降低(如科學(xué)應用)影響會(huì )較明顯。由于暗電流與溫度息息相關(guān),故在需要低暗電流的情況下,通常是利用像PelTIer等的冷卻器來(lái)降低影像組件的工作溫度。
理解影像傳感器的噪聲模式后,便能決定要實(shí)現多大的訊號噪聲比(SNR)。
動(dòng)態(tài)范圍代表傳感器影像捕捉能力
確定組件的噪聲效能后,就可以界定影像傳感器所需的動(dòng)態(tài)范圍。動(dòng)態(tài)范圍代表傳感器在一定光照強度范圍內捕捉影像的能力,單位以dB或以比例計算。這代表一個(gè)影像中同時(shí)包含高照度與暗區。
傳感器的實(shí)際動(dòng)態(tài)范圍由像素的滿(mǎn)電位井容量決定,也就是像素飽和前所能承載的電子數量。將容量除以讀取噪聲,便能將比例轉換為以dB為單位的值。
(電位井容量e-)/(讀取噪聲e-)
通常利用PTC(Photon Transfer Curve)測試法來(lái)確定動(dòng)態(tài)范圍,畫(huà)出噪聲與電位井容量的關(guān)系曲線(xiàn)。
如果組件具有數字輸出,可通過(guò)以下公式利用輸出端的位數計算該值。
動(dòng)態(tài)范圍(dB)=20 Log10(2^總線(xiàn)寬度)
然而,這并不代表組件的動(dòng)態(tài)范圍,只是說(shuō)明流排寬度所能代表的潛在范圍,而沒(méi)有考慮傳感器效能因素。
I/O標準也非常重要,不僅用來(lái)輸出像素數據,亦用來(lái)輸出指令和控制接口。這與幀率有關(guān),例如LVCMOS界面不適用于高幀率應用,但卻可用于簡(jiǎn)單的監控攝影機。隨著(zhù)幀率、分辨率和每像素位數的增加,影像傳感器正朝向采用LVDS系列或SERDES技術(shù)的專(zhuān)用高速串行鏈的趨勢發(fā)展。
依據應用考慮選擇單色/彩色傳感器
現在已經(jīng)探討了影像傳感器的多個(gè)重要觀(guān)點(diǎn),另一個(gè)尚未考慮的則是彩色或單色傳感器。無(wú)論選擇彩色或單色,皆取決于應用場(chǎng)合。
.彩色傳感器:
需在每個(gè)像素上使用貝爾圖形,在一條在線(xiàn)交替變換紅和綠色,并在下一條在線(xiàn)交替藍和綠色(綠色用得較多是因為人眼對綠色波長(cháng)較為敏感)。這意味著(zhù)要對接收到的光子進(jìn)行濾波處理,使每個(gè)像素只接收所需波長(cháng)的光子。用戶(hù)可以針對影像進(jìn)行后續處理,以決定像素顏色,并用不同顏色圍繞像素來(lái)重建每個(gè)像素上的色彩,且不會(huì )降低影像分辨率。
彩色傳感器使重建和輸出影像所需的圖像處理鏈變得復雜。此外,貝爾圖形確實(shí)會(huì )導致分辨率降低,但沒(méi)有想象中差,通常降幅為20%。
.單色傳感器:
由于影像數組上沒(méi)有貝爾圖形,因此每個(gè)像素能接收所有光子。如此可提升影像的靈敏度,使影像的讀取更簡(jiǎn)易,因為不會(huì )產(chǎn)生顏色重建所需的去馬賽克效應。
經(jīng)選擇我們決定使用CIS組件,屬于復雜的系統單芯片。因此,還必須考慮以下與讀取模式和整合時(shí)間相關(guān)的問(wèn)題。
.整合時(shí)間:
意指讀取前像素的曝光時(shí)間。在較簡(jiǎn)單的CCD系統上,須要接近電子裝置在組件外執行該時(shí)序。然而對于CIS組件而言,整合時(shí)間可透過(guò)指令接口由緩存器來(lái)配置,然后CIS組件可針對常用的兩種讀取模式精確地執行整合時(shí)間。
.全局快門(mén)模式:
此種模式下,所有像素同時(shí)接受光照,然后讀取。由于所有像素同時(shí)讀取,因此會(huì )增加讀取噪聲。此模式是用于若針對快速移動(dòng)物體進(jìn)行拍攝快照。
.滾動(dòng)快門(mén)模式:
此種模式下,進(jìn)行逐行曝光和讀取。此模式的讀取噪聲較小,然而在捕獲快速移動(dòng)物體較不如全局快門(mén)模式。
選擇合適的傳感器之后,在進(jìn)行系統開(kāi)發(fā)的過(guò)程中還須考慮和解決諸多挑戰。除了技術(shù)挑戰之外,開(kāi)發(fā)系統還會(huì )面臨時(shí)間壓力,確保產(chǎn)品在既定時(shí)程上市。
尺寸/重量/功耗 系統開(kāi)發(fā)挑戰多
使用者必須根據時(shí)間限制,了解開(kāi)發(fā)過(guò)程中哪部分活動(dòng)能帶來(lái)附加價(jià)值,接著(zhù)做出正確的選擇,并厘清哪部分應該自行開(kāi)發(fā)(以能創(chuàng )造附加價(jià)值的增值作業(yè)),哪部分可以購買(mǎi)商用現成產(chǎn)品(COTS)或委外代工。聚焦于附加作業(yè)及運用硬件、軟件和FPGA 層級的IP模塊,是滿(mǎn)足上市時(shí)程的重要促成因素之一。
除了上市時(shí)程的限制,嵌入式視覺(jué)系統開(kāi)發(fā)過(guò)程中還必須考慮尺寸、重量、功耗和成本(SWAP-C)要求。什么主導并支配系統內的SWAP-C,取決于具體應用領(lǐng)域,例如手持設備在功耗方面的必備條件,相較于自動(dòng)駕駛輔助系統更為嚴格。然而,就自動(dòng)駕駛輔助系統而言,由于必須生產(chǎn)幾百萬(wàn)臺,因此解決方案的成本便成為主要考慮因素。
倘若想在尺寸、重量、功耗和成本方面獲得良好的成效,必須設法讓傳感器和處理系統更緊密的結合,成為使用數量更少但功能更強的整合型組件。
每種應用領(lǐng)域都具有不同附加價(jià)值及不同的尺寸、重量、功耗和成本考慮,因此幾乎所有嵌入式視覺(jué)系統都須要執行圖像處理序列。此序列可與所選的傳感器建立接口連接,并執行所需的操作,以便產(chǎn)生適合進(jìn)一步加工或直接透過(guò)網(wǎng)絡(luò )傳輸的影像?;镜?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/圖像處理">圖像處理序列包含:
.照相機界面:接收來(lái)自傳感器的原始影像
.顏色濾波數組:重建像素顏色
.色彩空間轉換:轉換成針對編解碼的正確色彩空間
.輸出格式化:與輸出媒介進(jìn)行接口連接
序列在圖像處理管線(xiàn)中針對接收的影像執行和應用算法。算法會(huì )根據應用的不同而變化,不過(guò),有一些常用的圖像處理算法可用來(lái)提高對比度、檢測影像中的特性、目標或運動(dòng),或校正模糊影像。
現成架構有助算法加速開(kāi)發(fā)
這些算法應該在一個(gè)架構內被開(kāi)發(fā),以在最短時(shí)間內將產(chǎn)品推向市場(chǎng),并鼓勵重復使用,以降低非重復性和重復性之工程成本。以下為幾種應考慮的現成架構:
.OpenVX:
用于開(kāi)發(fā)圖像處理應用的開(kāi)放原始碼應用程序。
.OpenCV2:
計算機視覺(jué)開(kāi)放原始碼,為一款以C/C++為基礎的實(shí)時(shí)計算機視覺(jué)函式庫。
.OpenCL:
以C++為基礎的計算機語(yǔ)言開(kāi)放原始碼,用于開(kāi)發(fā)GPU、FPGA等常見(jiàn)平行處理應用。
.SDSoC:
賽靈思的一款設計環(huán)境,開(kāi)發(fā)人員借助該環(huán)境可在Zynq或 UltraScale+ MPSoC組件的ARM處理系統中執行編寫(xiě)的C/C++算法,分析基準程序代碼特性以找出效能瓶頸,接著(zhù)利用賽靈思高階合成技術(shù),將瓶頸轉換至硬件支持的IP,并在組件的可編程邏輯(PL)部分中運行。
若采用FPGA或All Programmable SoC方案時(shí),將這些架構與HLS結合使用,能夠高效開(kāi)發(fā)出嵌入式視覺(jué)應用,并藉由硬件回路快速演示。
影像經(jīng)過(guò)處理管線(xiàn)序列之后,數據從系統輸出的方式也很重要,以下有三種選擇:
1.利用視訊圖形數組(VGA)、高畫(huà)質(zhì)多媒體接口(HDMI)、串行數字接口(SDI)或DisplayPort等標準將影像輸出到顯示器。許多電動(dòng)車(chē)采用觸控式顯示屏幕,以便對系統進(jìn)行控制和配置。
2.將影像或從影像中擷取的信息傳送到另一個(gè)系統,如同云端處理應用般使用影像或擷取出的信息。
3.將影像儲存在非揮發(fā)性媒介中,供未來(lái)使用。
對于絕大多數選項而言,在完成圖像處理鏈后,皆須確定影像格式化方式。此時(shí),使用者須要決定是否使用如MPEG-4 Part 10高階視訊編碼(H.264)或高效率視訊編碼(H.265)等產(chǎn)業(yè)標準影像/視頻壓縮算法,以便對影像進(jìn)行編碼,而這些執行方案通常被稱(chēng)為編譯碼器。編譯碼器能提高通訊和網(wǎng)絡(luò )帶寬的使用效率,或降低實(shí)現影像高保真度所需的儲存空間,因為編碼通常會(huì )導致影像失真。若因使用編譯碼器促使影像失真且無(wú)法被接受,還可按原始格式傳送和儲存影像,或以無(wú)損格式進(jìn)行編碼。
嵌入式視覺(jué)常用之色彩格式
大多數編譯碼器所使用的色彩空間都與影像傳感器輸出的色彩空間(前提是系統使用彩色組件)不同。嵌入式視覺(jué)中主要使用的色彩空間為:
.紅、綠、藍:
包含RGB信息作為影像傳感器的輸出,通常用于VGA等簡(jiǎn)單接口的輸出。
.YUV:
包含亮度(Y)和色度(U和V),該色彩空間用于大多數編譯碼器和一些顯示標準。
常用的YUV格式為YUV4:4:4和YUV4:2:2。兩種格式的區別在于4:4:4 格式下,每像素由8位表示,可得到24位像素;而在4:2:2格式下,U值和V值在像素之間共享,可得到16位像素,同時(shí)可節省儲存空間。
圖像處理鏈于何處執行將影響系統效能
另一個(gè)對圖像處理鏈和SWAP-C具有巨大影響的決策是,大部分圖像處理鏈應在哪里執行。
首先是在邊緣端執行,亦即在嵌入式視覺(jué)系統內執行。在邊緣端的執行可提高系統的功耗和處理/儲存要求,但能夠實(shí)現更快的響應速度。在邊緣端的處理將成為大部分嵌入式應用中的主導應用,例如自動(dòng)駕駛輔助系統、機器視覺(jué)等。
其次是在云端執行則需要嵌入式視覺(jué)系統捕捉影像,并且利用網(wǎng)絡(luò )技術(shù)將影像傳送到云端??稍谠贫颂幚淼牡湫蛻?,包括醫療影像或科學(xué)應用。這類(lèi)應用的信息處理非常密集,且毋需實(shí)時(shí)結果。
為實(shí)現圖像處理鏈,嵌入式視覺(jué)系統的核心需要一個(gè)處理核心,不僅須控制所選的影像傳感器,還要能接收和執行圖像處理管線(xiàn),并通過(guò)指定網(wǎng)絡(luò )基礎設施傳送影像,或發(fā)送到選定的顯示器。諸多嚴苛的要求導致經(jīng)常必須選擇FPGA,或者使用如Zynq組件的All Programmable SoC。
Zynq組件將兩個(gè)高效能ARM A9處理器與FPGA架構結合,讓處理系統(PS)能夠用來(lái)透過(guò)GigE、PCIe或CAN等接口與主機系統連接,同時(shí)執行系統的一般管理和日常事務(wù)。組件的另一半,即可編程邏輯(PL),可用來(lái)接收和處理影像,并充分利用FPGA架構的平行處理特性。若影像被要求通過(guò)網(wǎng)絡(luò )基礎設施傳送,便能使用Zynq中的直接內存訪(fǎng)問(wèn)(DMA)控制器有效地將影像數據從PL移動(dòng)到PS DDR內存。當影像移到PS DDR內存內,便可進(jìn)一步被所選傳輸媒介的DMA控制器使用。
當然,一旦影像位于PS DDR內,高效能A9處理器亦可提供進(jìn)一步的處理操作。Zynq架構的特點(diǎn)在于將處理后的影像從PS DDR移回PL中的影像管線(xiàn)。
傳感器融合為嵌入式視覺(jué)發(fā)展最終目標
許多嵌入式視覺(jué)系統還要求能整合更多傳感器數據,以便更佳地感測環(huán)境。包括使用許多同類(lèi)型傳感器擴大視野,例如自動(dòng)駕駛輔助系統的全景功能,或者整合多個(gè)不同類(lèi)型的傳感器,提供可見(jiàn)光譜下無(wú)法看到的視覺(jué)內容,如在一般影像傳感器數據上覆蓋紅外線(xiàn)信息。
在很多應用情境下,需要將嵌入式視覺(jué)應用的輸出與其他傳感器數據進(jìn)行融合,讓產(chǎn)生的影像包含多個(gè)不同傳感器信息。最簡(jiǎn)單的傳感器融合應用是將不同頻譜的影像結合,例如將可見(jiàn)光與紅外線(xiàn)融合以實(shí)現更好的夜視效果。
傳感器融合另一項更加復雜的應用是,將影像系統、全球定位衛星系統(GNSS)、數字地圖信息,以及不同波長(cháng)下運行的其他傳感器(例如雷達)進(jìn)行融合,以確定另一輛汽車(chē)的相對位置,避免汽車(chē)互相碰撞。
由于要將不同系統融合在一起并擷取信息,因此傳感器融合對處理器的條件要求非常高。All Programmable SoC解決方案能夠與多個(gè)傳感器建立接口連接,以及平行處理信息,提升數據傳輸量,因而在許多方面具備顯著(zhù)優(yōu)勢。
在傳感器和系統層面,必須考慮諸多因素,并有許多技術(shù)、架構和組件可用來(lái)實(shí)現嵌入式視覺(jué)系統。
評論