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