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