【導(dǎo)讀】按理說(shuō)‘高大上’的FPGA,多出現(xiàn)在航天航空(如火星探測(cè)器)、通信(如基站、數(shù)據(jù)中心)、測(cè)試測(cè)量等高端應(yīng)用場(chǎng)景。但麥迪卻也發(fā)現(xiàn),近期,在很多創(chuàng)客的作品內(nèi)部都有FPGA的影子。這或許也從側(cè)面看出,打從總理先生的“雙創(chuàng)”態(tài)度以來(lái),開發(fā)者們踴躍的態(tài)度,創(chuàng)客們的智能硬件作品已經(jīng)不再是小打小鬧,更多的向尖端技術(shù)靠攏,也更貼近產(chǎn)業(yè)化應(yīng)用。
但畢竟,F(xiàn)PGA在開發(fā)者心目中有著‘開發(fā)入門難’、‘貴’等等初印象,對(duì)于FPGA在創(chuàng)客作品中的開發(fā)與應(yīng)用,麥迪想從兩個(gè)角度和大家探討:“何時(shí)考慮在自己的設(shè)計(jì)中應(yīng)用FPGA?”、“如何能用好FPGA?”
別看這兩個(gè)問題簡(jiǎn)單,要想在天馬行空的創(chuàng)客作品中形成具體的答案卻也是極為不易的。所以麥迪也特別邀請(qǐng)到了賽靈思(賽靈思公司是FPGA的發(fā)明者,)全球高級(jí)副總裁湯立人先生陪著我們一起尋找答案。這位華裔高級(jí)副總裁是技術(shù)出身,在賽靈思工作了20余年,身懷好幾個(gè)相關(guān)領(lǐng)域?qū)@?,所以他的見解絕對(duì)有權(quán)威性。當(dāng)然這位高級(jí)副總裁也沒空手來(lái),還帶來(lái)了十幾款在創(chuàng)客活動(dòng)上被圍觀的FPGA基因的作品,希望借由實(shí)例多給大家些許啟發(fā)。
關(guān)注1:何時(shí)考慮在自己的設(shè)計(jì)中應(yīng)用FPGA?
對(duì)于第一個(gè)問題,湯立人先生認(rèn)為:首先FPGA在算法處理、計(jì)算性能和功耗方面有軟件和其它硬件不具備的能力。目前看來(lái)FPGA或者說(shuō)賽靈思當(dāng)前所側(cè)重的全可編程(All Programmable)器件,在最前沿技術(shù)領(lǐng)域的應(yīng)用集中在以下幾類:數(shù)據(jù)融合和圖像處理;控制和分析一體化人機(jī)界面;加密/安全/實(shí)時(shí)控制;從傳感器/機(jī)器到互聯(lián)網(wǎng)的無(wú)縫連接等方面。通俗來(lái)說(shuō)可以應(yīng)用在可視化、智能分析、感知和反應(yīng)等過(guò)程中。
應(yīng)用場(chǎng)景則主要集中在:視頻/視覺(8K顯示;無(wú)人機(jī);沉浸式顯示);ADAS(環(huán)視系統(tǒng);自主泊車;半自動(dòng)化駕駛);5G無(wú)線(海量MIMO;云RAN);工業(yè)物聯(lián)網(wǎng)(智能電網(wǎng);電機(jī)控制;M2M)等方面。
“就ADAS為例,”湯立人先生解釋道:“目前全球范圍內(nèi)參與ADAS或無(wú)人駕駛的項(xiàng)目中,大多都采用了全可編程FPGA進(jìn)行攝像頭前端的視頻實(shí)時(shí)數(shù)據(jù)處理和控制。目前看來(lái),ADAS攝像頭對(duì)高速環(huán)境、高像素、行人偵測(cè)追蹤、等方面有較高要求,如果有傳輸延遲可能造成重大交通事故。所以將FPGA放在攝像頭端可以快速實(shí)時(shí)進(jìn)行視頻處理直接對(duì)車輛或者駕駛員發(fā)布控制信號(hào),無(wú)需對(duì)獲取的信息進(jìn)行二次分析和處理,所以大大減少了傳輸延遲問題,同時(shí)減輕了后端處理資源消耗。”
對(duì)于創(chuàng)客們參與的開發(fā),也有類似的應(yīng)用場(chǎng)景。目前看來(lái)主要集中在機(jī)器視覺、智能機(jī)器人、虛擬現(xiàn)實(shí)、機(jī)器控制、運(yùn)動(dòng)控制等方面。其中尤以視頻和視覺(Video/Vision)處理居多。
圖:賽靈思全球高級(jí)副總裁湯立人先生在創(chuàng)客活動(dòng)現(xiàn)場(chǎng)。
6款FPGA典型創(chuàng)客實(shí)例
話不多說(shuō),先看兩款機(jī)器視覺的應(yīng)用案例:
1.智能交互機(jī)器人
小巧可愛、能與人互動(dòng)的“Nao”機(jī)器人具備有一定水平的人工智能,能夠與人親切的互動(dòng)。其使用基于Zynq Z7010的NI myRIO,實(shí)時(shí)控制Nao的走動(dòng),同時(shí)借助基于Spartan-6 FPGA的處理能力,幫助機(jī)器人實(shí)現(xiàn)智能立體視覺。使用NAO SDK for NI LabVIEW即可快速地編寫機(jī)器人應(yīng)用程序,將它打造成一個(gè)物聯(lián)網(wǎng)的人機(jī)交互入口。
2.智能人臉識(shí)別攝像頭
人臉檢測(cè)、識(shí)別以及跟蹤可以說(shuō)是應(yīng)用最廣泛的一種視頻分析應(yīng)用。傳統(tǒng)的解決方案通常是將視頻回傳到后臺(tái)或上傳到云端,利用后臺(tái)服務(wù)器的強(qiáng)大性能對(duì)視頻進(jìn)行分析和處理。而基于Zynq的智能攝像頭方案,可以提供最小體積功耗的人臉識(shí)別解決方案,直接嵌入攝像頭內(nèi)部完成相應(yīng)處理,大大節(jié)約了處理時(shí)間,節(jié)省了服務(wù)器的處理資源。這是一個(gè)來(lái)自瑞為技術(shù)的智能攝像頭解決方案。ZynqSoC在這個(gè)應(yīng)用中完成了視頻圖像的預(yù)處理以及基于DNN(深度神經(jīng)網(wǎng)絡(luò))算法的智能人臉檢測(cè)識(shí)別,ZynqSoC的架構(gòu)輔以高度優(yōu)化的人工智能算法使得這個(gè)解決方案的性價(jià)比很高。這樣一個(gè)高度集成的智能攝像頭可以實(shí)時(shí)處理720p高清,30幀/秒的視頻,同時(shí)可以最多識(shí)別32張人臉。
麥迪觀察:很多時(shí)候機(jī)器視覺是和機(jī)器控制配合使用,開發(fā)者可以選擇獨(dú)立的FPGA芯片,但創(chuàng)客們更適合采用帶有FPGA的第三方開發(fā)板,或是直接使用帶有FPGA內(nèi)核的單芯片(SoC)進(jìn)行開發(fā)。采用諸如ZynqSoC(ARM+FPGA異構(gòu)單芯片)進(jìn)行開發(fā),能有較好的體積和功耗優(yōu)勢(shì)。
下面是兩款視頻方面的典型案例:
3. 3D頭戴顯示設(shè)備(來(lái)自某知名品牌)
這是一款為3D而生的頭戴式觀影設(shè)備。內(nèi)置5.5寸2K屏幕,虛擬屏幕可以達(dá)到15米遠(yuǎn),1000英寸大小的效果。支持800度近視調(diào)節(jié),單眼清晰度高達(dá)280x1440。在這一案例中,賽靈思的ZYNQ器件主要用來(lái)實(shí)現(xiàn)高清圖像的視頻旋轉(zhuǎn)、縮放、畸變矯正、色差補(bǔ)償?shù)裙δ堋?/div>
[page]
4. CarmVision-智能電子顯微鏡
該智能電子顯微鏡通過(guò)圖像采集,處理,可完成高分辨率的圖像顯示,測(cè)量和細(xì)節(jié)檢查。其中,ZynqSoC由于其內(nèi)部擁有雙核的Cortex A9處理器,在完成復(fù)雜的圖像處理之余,還能完成操作界面(UI),菜單等操作系統(tǒng)的工作。
麥迪觀察:由于FPGA應(yīng)用于視頻領(lǐng)域已比較成熟,很多視頻應(yīng)用案例都是來(lái)自于已商用的展示。不同于原型開發(fā),這類商用產(chǎn)品中多選擇像ZynqSoC(ARM+FPGA的SoC),受訪人表示,這對(duì)于提高產(chǎn)品集成度,實(shí)現(xiàn)快速上市會(huì)有很大助益。
再來(lái)看兩款年輕創(chuàng)客的FPGA作品,主要用在運(yùn)動(dòng)控制
5. 爬墻機(jī)器人
東南大學(xué)學(xué)生此次展示的爬墻機(jī)器人是在開源硬件大賽中產(chǎn)生的優(yōu)秀獲獎(jiǎng)作品,這一項(xiàng)目為降低高空作業(yè)的潛在危險(xiǎn)提供了方案。此次展示的爬墻機(jī)器人能夠在墻壁上吸附和移動(dòng),并且能夠改變方向,實(shí)現(xiàn)墻面二維運(yùn)動(dòng)。該設(shè)計(jì)采用Artix-35T FPGA具備豐富的I/O接口及硬件邏輯資源,可以完成十個(gè)以上的步進(jìn)電機(jī)控制,實(shí)現(xiàn)了本設(shè)計(jì)的完整解決方案。
6. Ancient Wall – E
機(jī)器人瓦力現(xiàn)身,這個(gè)機(jī)器人演示是東南大學(xué)學(xué)生利用Basys3開發(fā)板的作品。機(jī)械手通過(guò)讀取人手佩戴的傳感器信息,實(shí)時(shí)操控機(jī)械手臂,完成模仿人手的某些動(dòng)作。它實(shí)現(xiàn)了遠(yuǎn)程對(duì)機(jī)器人機(jī)械臂的體感控制,也可用于按固定程序抓取、搬運(yùn)物件或操作工具。在工業(yè)生產(chǎn)中可用于在危險(xiǎn)環(huán)境下工作,提高人的安全性。其基于賽靈思Artix-7 FPGA完成,Artix-7在IO數(shù)量、外設(shè)接口方面的優(yōu)勢(shì)使得單芯片可以同時(shí)支持16路電機(jī)的控制,快速精準(zhǔn)地完成對(duì)機(jī)械手臂的控制。
麥迪觀察:據(jù)上述兩個(gè)方案的設(shè)計(jì)者表述,采用FPGA進(jìn)行機(jī)器控制的主要優(yōu)勢(shì)在于其擁有豐富I/O口,可以實(shí)現(xiàn)多路并行控制,一般串口難以實(shí)現(xiàn)。這也極大豐富了他們?cè)O(shè)計(jì)的可拓展性。例如在爬墻機(jī)器人設(shè)計(jì)中,機(jī)器人可以控制‘腳’位移,同時(shí)控制機(jī)械臂執(zhí)行諸如擦玻璃的操作。雖然這些學(xué)生作品看上去還有些簡(jiǎn)單甚至是簡(jiǎn)陋,但也欣喜的看到FPGA的開發(fā)應(yīng)用已經(jīng)真實(shí)走進(jìn)了校園,未來(lái)的創(chuàng)客們已經(jīng)借助于FPGA的平臺(tái)將他們的想法展現(xiàn)在了眾人面前。
關(guān)注2:如何能用好FPGA?
這個(gè)問題和FPGA開發(fā)難度相關(guān)。
一般我們會(huì)認(rèn)為創(chuàng)客可能缺乏軟硬件基礎(chǔ),做相關(guān)開發(fā)會(huì)有難度。但沒想到,對(duì)這個(gè)顧慮,湯立人先生反倒給出出人意料的答案,“我個(gè)人更看好創(chuàng)客的技術(shù)實(shí)力。很多創(chuàng)客來(lái)自初創(chuàng)型公司或完全是一個(gè)人,在這些公司中,個(gè)人的開發(fā)能力和項(xiàng)目控制能力往往更強(qiáng),一般軟件或硬件都會(huì)懂一些,會(huì)很適合FPGA的編程。當(dāng)然更重要的是,對(duì)于賽靈思而言,目前全面推出的全可編程(All Programmable)器件,就更進(jìn)一步降低了硬件編程的難度。因?yàn)槠渌芯幊汰h(huán)境(例如全新的SDSoC開發(fā)環(huán)境)都是基于C語(yǔ)言的環(huán)境,能完成‘軟件定義硬件’‘軟件定義系統(tǒng)’的開發(fā)。這樣做的好處是打破了原先只有少數(shù)硬件工程師才能使用FPGA的門檻。很多創(chuàng)客工程師是軟件工程師,懂C語(yǔ)言,就能進(jìn)行編程開發(fā)。這點(diǎn)從好多大學(xué)生利用我們的器件進(jìn)行開發(fā)就可以看到,他們很多并沒有FPGA的相關(guān)開發(fā)經(jīng)驗(yàn)。”
湯立人進(jìn)一步表示,“從大環(huán)境來(lái)看,軟件定義會(huì)是趨勢(shì),幾乎現(xiàn)在每個(gè)系統(tǒng)都在呼喚可編程,從可編程的數(shù)據(jù)中心,到可編程的智能汽車開發(fā)。所以為了方便來(lái)自各領(lǐng)域的開發(fā)者使用,賽靈思在工具和開發(fā)環(huán)境方面花了很大的精力完善,把編程開發(fā)門檻降到最低。當(dāng)然硬件方面,為了方便開發(fā)者使用,我們也和許多具體的參考板設(shè)計(jì)公司合作,開發(fā)適合各領(lǐng)域應(yīng)用的具體板子給到大家,我們有一面開發(fā)板墻(下圖),上面有很多合作方的開發(fā)板,入門的開發(fā)者可以通過(guò)這些板子或合作方得到技術(shù)支持。”
圖:來(lái)自Xilinx和其合作伙伴的開發(fā)板墻。
最后,湯總也開玩笑地對(duì)麥迪說(shuō):“你在大學(xué)里學(xué)過(guò)C語(yǔ)言,也能來(lái)試試。”(對(duì)此,麥迪表示壓力仍大。)
附:所有其他9個(gè)基于FPGA的創(chuàng)客實(shí)例展示
由于當(dāng)天帶的實(shí)例太多,麥迪就不多一一解釋了,毫無(wú)保留的列在下面,想看實(shí)例的小伙伴們請(qǐng)隨意吧。
7.極米(Gimi)微型投影儀
看電視不需要屏幕了!這款極米微型投影儀作為便攜式投影系統(tǒng),不但具備傳統(tǒng)投影儀的投影功能,其本身還是一部輕便的家庭影院系統(tǒng),有上萬(wàn)種片源可供選擇觀看。
賽靈思Spartan-6系列FPGA在整個(gè)系統(tǒng)中主要完成接口擴(kuò)展,系統(tǒng)外設(shè)整合及視頻校正的功能。借助可編程邏輯的特性,完美地支持了產(chǎn)品的高集成度及快速上市周期。
8.智能象棋對(duì)弈機(jī)器人
本演示利用Basler相機(jī)進(jìn)行圖像采集,并基于Compact RIO、NI SoftMotion、NI Vision等平臺(tái)進(jìn)行圖像分析處理,可以完成象棋識(shí)別、抓取和移動(dòng),并結(jié)合智能象棋算法實(shí)現(xiàn)自動(dòng)布局、人機(jī)對(duì)戰(zhàn)等功能。
基于Xilinx Kintex-7 FPGA 的NI Compact RIO平臺(tái)實(shí)現(xiàn)機(jī)器視覺和運(yùn)動(dòng)控制,完成對(duì)棋子的抓取和移動(dòng)功能。
應(yīng)用領(lǐng)域:機(jī)器視覺和運(yùn)動(dòng)控制可以應(yīng)用于工程領(lǐng)域的各行各業(yè),比如機(jī)械制造、醫(yī)藥醫(yī)療、電子電氣、自動(dòng)測(cè)量等等。
9.高清無(wú)線圖形傳輸模塊
實(shí)現(xiàn)高清圖像的遠(yuǎn)距離(1~50公里)雙向傳輸,同時(shí)可以提供數(shù)據(jù)傳輸通道,可廣泛應(yīng)用于無(wú)人機(jī)圖傳、寬帶無(wú)線電臺(tái)、廣電視頻中繼等領(lǐng)域。
Zynq芯片中邏輯部分完成無(wú)線通信的物理層調(diào)制解調(diào)信號(hào)處理功能,處理器部分實(shí)行MAC層協(xié)議和網(wǎng)絡(luò)層協(xié)議。單芯片完成整個(gè)通信系統(tǒng)功能。
利用Zynq單芯片代替?zhèn)鹘y(tǒng)通信ASIC,實(shí)現(xiàn)動(dòng)態(tài)調(diào)整通信體制、頻段、帶寬的具備認(rèn)知功能的智能無(wú)線通信系統(tǒng)。
10.智能PAD 示波器
將電路信號(hào)的波形呈現(xiàn)在手機(jī)或者平板電腦上,用于智能硬件產(chǎn)品的調(diào)試,也可以應(yīng)用于K12青少年課外科技活動(dòng)的輔助工具。
Zynq芯片完成對(duì)高速數(shù)模轉(zhuǎn)換器(ADC)的數(shù)據(jù)采集,分析和處理,然后利用其中的ARM處理器支持無(wú)線WiFi網(wǎng)絡(luò),與手機(jī)或平板電腦通信。
利用Zynq單芯片代替?zhèn)鹘y(tǒng)的FPGA+ARM或DSP+ARM模式,產(chǎn)品體積減小為原來(lái)的50%,性能提升20%
11.魔方機(jī)器人
東南大學(xué)學(xué)生的優(yōu)秀作品。系統(tǒng)通過(guò)完全閉環(huán)的運(yùn)動(dòng)控制,識(shí)別魔方各個(gè)面的顏色實(shí)現(xiàn)魔方還原步驟的解算,并控制舵機(jī)精確還原魔方。
Artix-35T器件實(shí)現(xiàn)了圖像采集、顏色識(shí)別及計(jì)算處理功能,同時(shí)提供多路PWM信號(hào)完成對(duì)舵機(jī)的驅(qū)動(dòng)控制
12.智能工業(yè)相機(jī)
高度集成化的微小型機(jī)器視覺系統(tǒng),將圖像的采集、處理與通信功能集成于單一相機(jī)內(nèi),從而提供了具有多功能、模塊化、高可靠性、易于實(shí)現(xiàn)的機(jī)器視覺解決方案。
基于Zynq單芯片的工業(yè)相機(jī)方案,不僅可以完成復(fù)雜的圖像處理功能,還能同步實(shí)現(xiàn)運(yùn)動(dòng)控制、軌跡跟蹤、總線通信等功能,實(shí)現(xiàn)一體化機(jī)器視覺解決方案
應(yīng)用領(lǐng)域:工業(yè)機(jī)器視覺產(chǎn)品廣泛應(yīng)用于運(yùn)動(dòng)控制、機(jī)器人控制、印刷設(shè)備、包裝機(jī)械、自動(dòng)分檢、自動(dòng)識(shí)別等多個(gè)領(lǐng)域。該公司產(chǎn)品不僅包括工業(yè)相機(jī),還提供視頻分析以及相關(guān)的運(yùn)動(dòng)控制等一體化解決方案。
13.SDN軟件定義網(wǎng)絡(luò)陣列
借助Zynq芯片單板的堆疊陣列實(shí)現(xiàn)四個(gè)千兆端口的軟件定義網(wǎng)絡(luò)設(shè)備,可用于軟件定義網(wǎng)絡(luò)系統(tǒng)開發(fā),以及定制化小型網(wǎng)絡(luò)產(chǎn)品開發(fā),可組合成專用可編程計(jì)算加速陣列。
Zynq芯片中邏輯部分實(shí)現(xiàn)軟件定義網(wǎng)絡(luò)系統(tǒng)的OpenFlow數(shù)據(jù)面,ARM處理器部分實(shí)現(xiàn)軟件定義網(wǎng)絡(luò)系統(tǒng)的控制面。單芯片實(shí)現(xiàn)一個(gè)完整的軟件定義網(wǎng)絡(luò)設(shè)備。利用Zynq將計(jì)算和網(wǎng)絡(luò)融合在一起,用戶可以用軟件編程的方式快速實(shí)現(xiàn)特定的網(wǎng)絡(luò)設(shè)備,比如路由器和防 火 墻等
14.智能老鼠迷宮
這是華中科技大學(xué)的作品。智能電腦鼠可自行尋找最佳路徑,快速完成路徑規(guī)劃。操控者也可選擇為電腦鼠采用紅外傳感器或視覺傳感器。該設(shè)計(jì)基于Zynq芯片上的可編程邏輯部分可快速完成100幀/秒以上的高速圖像處理、低延時(shí)的紅外傳感器數(shù)據(jù)獲取、以及快速的電機(jī)控制確保電腦鼠的運(yùn)動(dòng)速度。同時(shí)Zynq的Cortex-A9雙核可完成判斷等算法和對(duì)外通訊,以及后續(xù)智能應(yīng)用。
15.智能書法器
機(jī)器人也能寫書法?沒錯(cuò),東南大學(xué)學(xué)生利用FPGA驅(qū)動(dòng)控制毛筆寫字,將書法這一中國(guó)特色傳統(tǒng)文化同現(xiàn)代科技巧妙結(jié)合在了一起。
Artix-35T器件內(nèi)存儲(chǔ)了相應(yīng)的字庫(kù)信息,在書寫時(shí)讀取字庫(kù),并計(jì)算出毛筆的位移、輕重等信息,產(chǎn)生PWM信號(hào)控制步進(jìn)電機(jī),進(jìn)而控制毛筆移動(dòng)完成智能書寫器。