嵌入式系統(tǒng)中的目標(biāo)識別技術(shù)
目標(biāo)檢測和識別是計算機(jī)視覺系統(tǒng)的一個必不可少的組成部分。在計算機(jī)視覺中,首先是將場景分解成計算機(jī)可以看到和分析的組件。
計算機(jī)視覺的第一步是特征提取,即檢測圖像中的關(guān)鍵點(diǎn)并獲取有關(guān)這些關(guān)鍵點(diǎn)的有意義信息。特征提取過程本身包含四個基本階段:圖像準(zhǔn)備、關(guān)鍵點(diǎn)檢測、描述符生成和分類。實(shí)際上,這個過程會檢查每個像素,以查看是否有特征存在于該像素中。
特征提取算法將圖像描述為指向圖像中的關(guān)鍵元素的一組特征向量。本文將回顧一系列的特征檢測算法,在這個過程中,看看一般目標(biāo)識別和具體特征識別在這些年經(jīng)歷了怎樣的發(fā)展。
早期特征檢測器
Scale Invariant Feature Transform (SIFT)以及 Good Features To Track (GFTT) 是特征提取技術(shù)的早期實(shí)現(xiàn)。但這些屬于計算密集型算法,涉及到大量的浮點(diǎn)運(yùn)算,所以它們不適合實(shí)時嵌入式平臺。
以SIFT為例,這種高精度的算法,在許多情況下都能產(chǎn)生不錯的結(jié)果。它會查找具有子像素精度的特征,但只保留類似于角落的特征。而且,盡管 SIFT 非常準(zhǔn)確,但要實(shí)時實(shí)現(xiàn)也很復(fù)雜,并且通常使用較低的輸入圖像分辨率。
SIFT是一種計算密集型算法
因此,SIFT 在目前并不常用,它主要是用作一個參考基準(zhǔn)來衡量新算法的質(zhì)量。因為需要降低計算復(fù)雜度,所以最終導(dǎo)致要開發(fā)一套更容易實(shí)現(xiàn)的新型特征提取算法。
二代算法
Speeded Up Robust Features (SURF) 是最早考慮實(shí)現(xiàn)效率的特征檢測器之一。它使用不同矩形尺寸中的一系列加法和減法取代了 SIFT 中浩繁的運(yùn)算。而且,這些運(yùn)算容易矢量化,需要的內(nèi)存較少。
接下來,Histograms of Oriented Gradients (HOG) 這種在汽車行業(yè)中常用的熱門行人檢測算法可以變動,采用不同的尺度來檢測不同大小的對象,并使用塊之間的重疊量來提高檢測質(zhì)量,而不增加計算量。它可以利用并行存儲器訪問,而不像傳統(tǒng)存儲系統(tǒng)那樣每次只處理一個查找表,因此根據(jù)內(nèi)存的并行程度加快了查找速度。
然后,Oriented FAST and Rotated BRIEF (ORB) 這種用來替代 SIFT 的高效算法將使用二進(jìn)制描述符來提取特征。ORB 將方向的增加與 FAST 角點(diǎn)檢測器相結(jié)合,并旋轉(zhuǎn)BRIEF描述符,使其與角方向?qū)R。二進(jìn)制描述符與FAST和Harris Corner 等輕量級函數(shù)相結(jié)合產(chǎn)生了一個計算效率非常高而且相當(dāng)準(zhǔn)確的描述圖。
SURF和ORB等計算效率超高的算法為 CNN 之類的功能更強(qiáng)大的框架提供了實(shí)現(xiàn)的可能
CNN:嵌入式平臺目標(biāo)識別的下一個前沿領(lǐng)域
配有攝像頭的智能手機(jī)、平板電腦、可穿戴設(shè)備、監(jiān)控系統(tǒng)和汽車系統(tǒng)采用智能視覺功能將這個行業(yè)帶到了一個十字路口,需要更先進(jìn)的算法來實(shí)現(xiàn)計算密集型應(yīng)用,從而提供更能根據(jù)周邊環(huán)境智能調(diào)整的用戶體驗。因此,需要再一次降低計算復(fù)雜度來適應(yīng)這些移動和嵌入式設(shè)備中使用的強(qiáng)大算法的嚴(yán)苛要求。
不可避免地,對更高精度和更靈活算法的需求會催生出矢量加速深度學(xué)習(xí)算法,如卷積神經(jīng)網(wǎng)絡(luò) (CNN),用于分類、定位和檢測圖像中的目標(biāo)。例如,在使用交通標(biāo)志識別的情況下,基于 CNN 的算法在識別準(zhǔn)確度上勝過目前所有的目標(biāo)檢測算法。除了質(zhì)量高之外,CNN 與傳統(tǒng)目標(biāo)檢測算法相比的主要優(yōu)點(diǎn)是,CNN 的自適應(yīng)能力非常強(qiáng)。它可以在不改變算法代碼的情況下快速地被重新"訓(xùn)練(tuning)"以適應(yīng)新的目標(biāo)。因此,CNN 和其他深度學(xué)習(xí)算法在不久的將來就會成為主流目標(biāo)檢測方法。
CNN 對移動和嵌入式設(shè)備有非??量痰挠嬎阋蟆>矸e是 CNN 計算的主要部分。CNN 的二維卷積層允許用戶利用重疊卷積,通過對同一輸入同時執(zhí)行一個或多個過濾器來提高處理效率。所以,對于嵌入式平臺,設(shè)計師應(yīng)該能夠非常高效地執(zhí)行卷積,以充分利用 CNN 流。
事實(shí)上,CNN 嚴(yán)格來說并不是一種算法,而是一種實(shí)現(xiàn)框架。它允許用戶優(yōu)化基本構(gòu)件塊,并建立一個高效的神經(jīng)網(wǎng)絡(luò)檢測應(yīng)用。因為 CNN 框架是對每個像素逐一計算,而且逐像素計算是一種要求非??量痰倪\(yùn)算,所以它需要更多的計算量。
不懈改進(jìn)視覺處理器
CEVA 已找到兩種其他方法來提高計算效率,同時仍繼續(xù)開發(fā)即將采用的算法,如 CNN。第一種是并行隨機(jī)內(nèi)存訪問機(jī)制,它支持多標(biāo)量功能,允許矢量處理器來管理并行負(fù)載能力。第二種是滑動窗口機(jī)制,它可以提高數(shù)據(jù)的利用率并防止相同的數(shù)據(jù)被多次重復(fù)加載。大多數(shù)成像過濾器和大型輸入幀卷積中都有大量的數(shù)據(jù)重疊。這種數(shù)據(jù)重疊會隨著處理器的矢量化程度增加而增加,可用于減少處理器和存儲器之間的數(shù)據(jù)流量,從而能降低功耗。這種機(jī)制利用大規(guī)模數(shù)據(jù)重疊,允許開發(fā)人員在深度學(xué)習(xí)算法中自由實(shí)現(xiàn)高效的卷積,一般會使 DSP MAC運(yùn)算達(dá)到極高的利用率。
目標(biāo)識別的深度學(xué)習(xí)算法又一次提高了計算復(fù)雜度的門檻,因此需要一種新型的智能視覺處理器,這種視覺處理器應(yīng)該能夠提高處理效率和準(zhǔn)確度以應(yīng)對面臨的挑戰(zhàn)。CEVA-XM4- CEVA 最新的視覺和成像平臺,結(jié)合了視覺算法專業(yè)知識與處理器架構(gòu)技術(shù),提供了一個經(jīng)過精心設(shè)計的視覺處理器來應(yīng)對嵌入式計算機(jī)視覺的挑戰(zhàn)。