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