新聞中心

EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的嵌入式視覺(jué)的應(yīng)用

基于FPGA的嵌入式視覺(jué)的應(yīng)用

作者: 時(shí)間:2018-09-13 來(lái)源:網(wǎng)絡(luò) 收藏

什么樣的積極創(chuàng)新可以幫助您設(shè)計(jì)出這樣一個(gè)系統(tǒng)——它能夠提醒用戶(hù)有兒童在游泳池中溺水,或是有入侵者試圖闖入住宅或者辦公場(chǎng)所?這種技術(shù)還能夠提醒駕駛員道路上即將發(fā)生的危險(xiǎn),甚至可以制止他們并線、加速及其它可能會(huì)給自身或他人帶來(lái)危險(xiǎn)的操作。它能夠給軍用無(wú)人機(jī)或其他機(jī)器人配上電子“眼”,使這些設(shè)備部分實(shí)現(xiàn)甚至完全實(shí)現(xiàn)自動(dòng)化操作。它能夠協(xié)助內(nèi)科醫(yī)生診斷患者的病情。它能夠準(zhǔn)確地進(jìn)行面部識(shí)別,隨后啟動(dòng)一系列操作(例如自動(dòng)登錄用戶(hù)賬號(hào),或者獲取相關(guān)新聞及其它信息),解讀姿態(tài), 甚至覺(jué)察人的情緒狀態(tài)。與GPS、指南針、加速計(jì)、陀螺儀和其他功能配合,它還能夠提供數(shù)據(jù)強(qiáng)化(data augmented) 的場(chǎng)景再現(xiàn)。

本文引用地址:http://butianyuan.cn/article/201809/389108.htm

上面談到的應(yīng)用實(shí)例都采用了一項(xiàng)共同的技術(shù),即視覺(jué)。該技術(shù)正準(zhǔn)備書(shū)寫(xiě)新一代電子系統(tǒng)的成功篇章。視覺(jué)最初應(yīng)用于組裝生產(chǎn)線檢測(cè)、光學(xué)字符識(shí)別、機(jī)器人、監(jiān)視和軍用系統(tǒng)等傳統(tǒng)的計(jì)算機(jī)視覺(jué)應(yīng)用。不過(guò)近年來(lái),隨著關(guān)鍵技術(shù)構(gòu)建塊成本的不斷下降以及功能的不斷豐富,視覺(jué)技術(shù)不斷向主要的大批量市場(chǎng)加速滲透。

例如,在日益豐富和不斷提高的應(yīng)用需求的推動(dòng)下,圖像傳感器的分辨率、低亮度性能、幀速率、尺寸、功耗和成本等關(guān)鍵特性都有著明顯的改善。同樣,嵌入式視覺(jué)應(yīng)用也要求處理器具備高性能、低成本、低功耗以及靈活的可編程功能。這些理想的特性在不計(jì)其數(shù)的產(chǎn)品設(shè)計(jì)中正日漸變?yōu)楝F(xiàn)實(shí)。最新一代光學(xué)系統(tǒng)、照明模塊、易失性和非易失性存儲(chǔ)器以及I/O 標(biāo)準(zhǔn)也正在實(shí)現(xiàn)類(lèi)似的特性?xún)?yōu)化。因此,算法到了迎接挑戰(zhàn)的關(guān)口,需要充分利用這些硬件性能的改進(jìn)來(lái)提供更穩(wěn)健可靠的分析結(jié)果。

嵌入式視覺(jué)指的是能夠通過(guò)視覺(jué)方式理解其所處環(huán)境的機(jī)器。“嵌入式”的意思指內(nèi)置圖像傳感器的非通用型計(jì)算機(jī)系統(tǒng)。比如,嵌入式可以是手機(jī)、平板電腦、監(jiān)視系統(tǒng)、地面或者具備飛行能力的機(jī)器人、安裝有一套 360°攝像頭的車(chē)輛或者是醫(yī)療診斷設(shè)備。它也可以是有線或者無(wú)線用戶(hù)界面外設(shè)。這方面微軟針對(duì) Xbo x360 游戲機(jī)提供的 Kinect 可能是最好的例證,上市頭 2 個(gè)月就銷(xiāo)售出 800萬(wàn)件。

的商機(jī):案例研究

可供選用的穩(wěn)健可靠的嵌入式視覺(jué)處理產(chǎn)品豐富多樣,如微處理器與嵌入式控制器、專(zhuān)用 SoC、DSP、圖形處理器、ASIC 和 。 是一款用于實(shí)現(xiàn)嵌入式視覺(jué)技術(shù)的極富吸引力的芯片平臺(tái),因?yàn)樗鼘?ASIC的高性能和低功耗硬件以及可運(yùn)行在CPU、GPU 或 DSP 上的軟件算法的靈活性和快速上市優(yōu)勢(shì)集于一身。在嵌入式視覺(jué)市場(chǎng)處于襁褓時(shí)期的當(dāng)前階段,靈活性具有特別重要的意義。因?yàn)闉榱酥С侄鄻踊乃惴ㄟx擇,迅速完成缺陷修正和特性集改進(jìn)是一種常態(tài),而非偶然。FPGA 的硬件可配置能力也便于讓設(shè)計(jì)經(jīng)簡(jiǎn)單直觀修改就能適用于支持各種串行和并行(以及模擬和數(shù)字)接口的圖像傳感器。

嵌入式視覺(jué)聯(lián)盟是由世界各地的開(kāi)發(fā)商和提供商組成的統(tǒng)一的全球性聯(lián)盟,其宗旨是以豐富、迅速和高效的方式將嵌入式視覺(jué)的潛力變?yōu)楝F(xiàn)實(shí)(見(jiàn)側(cè)邊欄)。該聯(lián)盟的兩個(gè)創(chuàng)始成員 (BD) 伯克利設(shè)計(jì)技術(shù)公司和賽靈思已聯(lián)合開(kāi)發(fā)出一個(gè)參考設(shè)計(jì),用于證實(shí)嵌入式視覺(jué)技術(shù)不可估量的市場(chǎng)前景以及 FPGA 在實(shí)現(xiàn)該前景中可能發(fā)揮的作用。這個(gè)項(xiàng)目的目的是探索系統(tǒng)設(shè)計(jì)人員在開(kāi)發(fā)高度復(fù)雜的智能視覺(jué)平臺(tái)時(shí)可進(jìn)行的典型架構(gòu)決策,該平臺(tái)所包含的元件需要高強(qiáng)度硬件處理和復(fù)雜的軟件及算法控制。

BD 和賽靈思對(duì)設(shè)計(jì)進(jìn)行了分區(qū),其中 FPGA 架構(gòu)負(fù)責(zé)處理數(shù)字信號(hào)處理密集型運(yùn)算,而 CPU 則負(fù)責(zé)處理復(fù)雜的控制和預(yù)測(cè)算法。在這個(gè)探索性實(shí)現(xiàn)方案中,CPU 電路板通過(guò)以太網(wǎng)接口連接到 FPGA 開(kāi)發(fā)板。FPGA 執(zhí)行高帶寬處理,僅有元數(shù)據(jù)通過(guò)網(wǎng)絡(luò) (network tether) 進(jìn)行交換。該項(xiàng)目還探索了軟硬件同步開(kāi)發(fā),故要求在最終的 FPGA 硬件實(shí)現(xiàn)之前使用精準(zhǔn)的仿真模型。

第一階段:道路標(biāo)志檢測(cè)

項(xiàng)目的第一階段和第二階段均采用了兩個(gè)基于 PC 的專(zhuān)門(mén)功能:正在開(kāi)發(fā)中的賽靈思視頻 IP 模塊的仿真模型和一個(gè)由 BD 開(kāi)發(fā)的處理應(yīng)用(見(jiàn)圖 1)。輸入數(shù)據(jù)為 720p 高清分辨率、60 fps 的 YUV 編碼視頻流,代表車(chē)輛正前方攝像頭可能采集到的圖像。其目的是識(shí)別(雖然沒(méi)有采用光學(xué)字符職別技術(shù)“讀取”,但這項(xiàng)功能可以自然延伸出來(lái))視頻幀中的四種類(lèi)型的對(duì)象,以輔助駕駛員駕駛:

? 綠色方向標(biāo)志

? 黃色和桔紅色危險(xiǎn)標(biāo)志

? 藍(lán)色信息標(biāo)志

? 桔紅色安全錐

賽靈思提供的 IP 模塊仿真模型負(fù)責(zé)輸出用于識(shí)別每幀中各顏色像素組的位置和大小的元數(shù)據(jù),這些也是最終硬件 IP 模塊生成的元數(shù)據(jù)。許多嵌入式視覺(jué)系統(tǒng)的精度受多種外部因素的影響,比如成像傳感器的噪聲、突然的照度變化以及難以預(yù)測(cè)的外部運(yùn)動(dòng)。對(duì)本項(xiàng)目的必要要求之一是要求FPGA 硬件在盡量節(jié)約硬件資源的情況下,借助能夠容忍大量外部干擾且不降低檢測(cè)精確度的預(yù)測(cè)性軟件,在有大量外部干擾的條件下完成圖像處理并生成元數(shù)據(jù)。

BDTI 針對(duì)這種特定應(yīng)用,對(duì)這些IP 模塊豐富的配置參數(shù)集進(jìn)行了優(yōu)化,而且 BDTI 的后處理算法還提供了進(jìn)一步的優(yōu)化和預(yù)測(cè)功能。例如,在某些情況下,該硬件只能部分識(shí)別一幀中的對(duì)象,但應(yīng)用層軟件使用跟蹤算法能夠繼續(xù)預(yù)測(cè)對(duì)象的位置。這種方法非常有效,因?yàn)樵谠S多情況下物理探測(cè)無(wú)法做到持續(xù)不斷,因此軟件智能層對(duì)提供持續(xù)的預(yù)測(cè)起著關(guān)鍵作用。

再舉一個(gè)例子。高速公路綠色指路標(biāo)志上的黑色或白色字符可能會(huì)擾亂 IP 模塊普通的圖像分析功能,會(huì)將路標(biāo)錯(cuò)誤地分解成多像素的子集合(見(jiàn)圖 2)。根據(jù)該應(yīng)用中使用的成像傳感器的質(zhì)量和設(shè)置,IP 模塊還會(huì)混淆紅色和桔紅色,從而將其他車(chē)輛的尾燈或剎車(chē)燈誤認(rèn)為交通錐或交通標(biāo)識(shí)。

因此,BDTI 開(kāi)發(fā)的針對(duì)特定應(yīng)用定制的算法可用于進(jìn)一步處理賽靈思提供的元數(shù)據(jù)。例如,BDTI 的算法知道什么樣的標(biāo)志看上去應(yīng)該是怎么樣的(大小、形狀、顏色、圖案、在幀中的位置等),故而能夠?qū)⑾嚓P(guān)的像素集群組合成更大的群組。類(lèi)似的,這些算法也能判斷什么時(shí)候應(yīng)該去除看似顏色相近但并非標(biāo)志的像素集群,比如前面提及的車(chē)輛剎車(chē)燈。

第二階段:行人檢測(cè)與跟蹤

在項(xiàng)目的第一階段中,攝像頭處于運(yùn)動(dòng)狀態(tài)而待識(shí)別的對(duì)象(即道路標(biāo)志)處于靜止?fàn)顟B(tài)。第二階段主要針對(duì)安全應(yīng)用,攝像頭處于靜止?fàn)顟B(tài)而對(duì)象(本例中為行人)則未必。對(duì)這種情況,視頻分析算法就不能依靠預(yù)設(shè)的顏色、圖案或其它對(duì)象特征,因?yàn)樾腥丝梢源┲鞣N衣物,可以高矮胖瘦各異,可以膚色、頭發(fā)顏色和發(fā)型不同(另外還可能戴著遮擋頭發(fā)的帽子、墨鏡等裝飾物)。軟件還需要解決另一個(gè)難題,不僅需要識(shí)別和跟蹤行人,還需要在行人穿越一道數(shù)字“絆網(wǎng)”,進(jìn)入視頻幀的特定區(qū)域時(shí)發(fā)出警報(bào)(見(jiàn)圖 3)。

項(xiàng)目第二階段與第一階段采用的硬件配置完全相同,只是軟件有所變化。視頻流饋送到視頻分析 IP 核的仿真模型中,所生成的元數(shù)據(jù)傳輸?shù)蕉?jí)算法器件供進(jìn)一步處理。此時(shí)面臨的難題包括:

? 解決不必要的噪聲和適當(dāng)?shù)膶?duì)象分割之間根本性的權(quán)衡取舍問(wèn)題

? 對(duì)象不斷變化的形態(tài)(外形和結(jié)構(gòu))

? 對(duì)象不斷變化的運(yùn)動(dòng)狀態(tài),包括行人間的運(yùn)動(dòng)狀態(tài)變化以及特定行人隨時(shí)間的運(yùn)動(dòng)狀態(tài)變化

? 元數(shù)據(jù)消失。比如當(dāng)行人停止行走,被中間的障礙物遮擋或者是與背景圖案混為一體

? 有其他對(duì)象出現(xiàn)在場(chǎng)景中,包括靜態(tài)和動(dòng)態(tài)的

? 行人與攝像頭之間的距離不斷發(fā)生變化

? 人群中個(gè)別行人與群體的運(yùn)動(dòng)矢量對(duì)比,主體運(yùn)動(dòng)矢量和反向運(yùn)動(dòng)矢量的對(duì)比

就“絆網(wǎng)”的實(shí)現(xiàn),四種不同的視頻流對(duì)視頻分析算法的調(diào)試和優(yōu)化尤其有效:

? 以相反方向行走的“近處”行人

? 以不同方向行走的“近處”行人

? 一個(gè)“遠(yuǎn)處”行人和一輛行駛的卡車(chē),從某種角度看,兩者大小相仿

?“遠(yuǎn)處”的多名行人與一輛駛近的卡車(chē),卡車(chē)看上去比人群大

第三階段:硬件轉(zhuǎn)換及未來(lái)發(fā)展

項(xiàng)目的最后階段采用賽靈思真正的視頻分析 IP 模塊(代替之前使用的仿真模塊),運(yùn)行在 Spartan ?-3A 3400 視頻入門(mén)套件上。MicroBlaze?軟核處理器嵌入在 Spartan-3A FPGA內(nèi),采用額外的專(zhuān)用功能模塊予以強(qiáng)化,并實(shí)現(xiàn)了網(wǎng)絡(luò)協(xié)議棧。該網(wǎng)絡(luò)協(xié)議棧主要負(fù)責(zé)處理高數(shù)位率和以太網(wǎng)分組的元數(shù)據(jù)并將其傳輸?shù)?BDTI 開(kāi)發(fā)的第二級(jí)處理算法,同時(shí)實(shí)現(xiàn)道路標(biāo)志檢測(cè)和行人檢測(cè)與跟蹤功能。雖然這些算法之前在基于 X86 的 PC 上運(yùn)行,BDTI 已成功地將它們移植到基于ARM? Cor tex TM-A8 的硬件平臺(tái)(BeagleBoard) 上(見(jiàn)圖 4)。

對(duì)已經(jīng)熟悉賽靈思產(chǎn)品計(jì)劃的用戶(hù)來(lái)說(shuō),可能立即就會(huì)想到將 FPGA 和Cortex-A8 CPU 集成在單個(gè)芯片上的ZynqTM 可擴(kuò)展處理平臺(tái)。能不能在單個(gè) Zynq 器件上運(yùn)行整個(gè)視頻分析參考設(shè)計(jì)呢? 答復(fù)顯然是肯定的, 因?yàn)閆ynq 產(chǎn)品系列的各器件包含有足夠的可編程邏輯資源,同時(shí) BDTI 算法對(duì)ARM CPU 核來(lái)說(shuō)負(fù)載適中。

嵌入式視覺(jué)正在為系統(tǒng)開(kāi)發(fā)商及其半導(dǎo)體和軟件供應(yīng)商書(shū)寫(xiě)新一篇重大的技術(shù)成功篇章。正如本文中介紹的案例研究所示,F(xiàn)PGA 以及 FPGA 與 CPU組合的 SoC 能夠成為實(shí)現(xiàn)嵌入式視覺(jué)算法極富吸引力的芯片平臺(tái)。



關(guān)鍵詞: 嵌入式 FPGA

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉