siemens x
嵌入式系統(tǒng)

All Programmable SoC 進(jìn)軍制造行業(yè)

2025China.cn   2017年05月12日

  制造領(lǐng)域?yàn)樵S多人提供了喜聞樂(lè)見(jiàn)的業(yè)余愛(ài)好,也激勵(lì)著年輕人從事科學(xué)、技術(shù)、工程和數(shù)學(xué)方向的職業(yè)。這個(gè)領(lǐng)域的許多項(xiàng)目都使用嵌入式處理器(通常如 Arduino 或 Raspberry PI 系列),以提供系統(tǒng)所需的智能化。

  Arduino 和 Raspberry PI 這兩大系列嵌入式處理器均得到開(kāi)發(fā)環(huán)境的支持,為其提供多種軟件庫(kù)、模塊和實(shí)例。這些軟件庫(kù)、模塊和實(shí)例可幫助開(kāi)發(fā)人員迅速方便地接口到各類型外設(shè),如攝像頭、加速計(jì)和電機(jī)等。正是這種易用性讓這些處理器在制造領(lǐng)域倍受青睞。

  直到最近制造商都把 All Programmable SoC 排除在制造領(lǐng)域之外,認(rèn)為它適用于更專業(yè)的工程師。但隨著 ZynqBerry、Pynq 和 Snickerdoodle 等基于 Zynq? 的開(kāi)發(fā)板的推出以及基于軟件的開(kāi)發(fā)方法的問(wèn)世,這種情況已經(jīng)發(fā)生根本性變化。

  這些開(kāi)發(fā)板配有賽靈思 All Programmable Zynq?-7000 SoC 系列器件。這些器件將雙核 ARM? Cortex?-A9 處理器與 All Programmable Artix?-7 FPGA 系列的可編程邏輯完美結(jié)合在一起。這可加快可編程邏輯架構(gòu)內(nèi)的功能,從而顯著提升系統(tǒng)性能。但是傳統(tǒng)的開(kāi)發(fā)工作將可編程邏輯的設(shè)計(jì)與軟件開(kāi)發(fā)工作分割開(kāi)來(lái),可編程邏輯設(shè)計(jì)的實(shí)現(xiàn)需要專門的開(kāi)發(fā)經(jīng)驗(yàn)?,F(xiàn)在已不存在這種情況。

  當(dāng)這些開(kāi)發(fā)板與能在純軟件中開(kāi)發(fā)應(yīng)用的最新開(kāi)發(fā)環(huán)境相結(jié)合,它們對(duì)制造業(yè)就變得極為有用。尤其是因?yàn)槭褂眠@些開(kāi)發(fā)環(huán)境,用戶不必具備FPGA專家級(jí)水平就能夠開(kāi)發(fā)出可編程邏輯,從而充分發(fā)揮了軟硬件的優(yōu)勢(shì)。

從左到右制造商開(kāi)發(fā)板分別是 Arduino、ZynqBerry、Pynq、Raspberry 和 Snickerdoodle

 

  開(kāi)發(fā)環(huán)境

  有兩種開(kāi)發(fā)環(huán)境可用于為這些 Zynq 開(kāi)發(fā)板創(chuàng)建應(yīng)用。第一種是基于 Eclipse 的 SDSoC? 開(kāi)發(fā)環(huán)境。這種環(huán)境能夠使用 C 或 C++ 開(kāi)發(fā)應(yīng)用并無(wú)縫地將運(yùn)行在 ARM Cortex-A9 處理器上的功能移到可編程邏輯中加速。SDSoC 環(huán)境使用高層次綜合(HLS)將選定的 C 語(yǔ)言功能移到可編程邏輯中。在 HLS 完成連接后,就使用框架將 HLS 模塊與軟件應(yīng)用集成。現(xiàn)在除了可編程邏輯中的功能加速帶來(lái)的性能提升,該流程還對(duì)用戶透明。功能在處理器和可編程邏輯間切換極為簡(jiǎn)便并可在 SDSoC 內(nèi)通過(guò)使用項(xiàng)目簡(jiǎn)介進(jìn)行控制。

SDSoC 項(xiàng)目簡(jiǎn)介

 

  SDSoC 支持制造業(yè)常用的 Linux 操作系統(tǒng),同時(shí)也支持實(shí)時(shí)操作系統(tǒng)(FreeRTOS)和裸機(jī)。

  第二種方法由 Pynq 提供,這種方法提供基于 Python 和 Juypter 筆記本的開(kāi)發(fā)框架。二者都在運(yùn)行于處理器上的 Linux 發(fā)行版上執(zhí)行,同時(shí)可編程邏輯有一個(gè)已定義的疊層,用于為 Pynq 上的外設(shè)提供連接。在用于支持外設(shè)和硬件疊層的 Linux 發(fā)行版內(nèi)有一個(gè)已定義的 Pynq 包,該包可讓我們使用 Python 直接接口外設(shè)。

  因?yàn)?Pynq 提供兩個(gè) PMOD 接口,該軟件包能為 ADC、DAC 等各種 PMOD 提供重大支持,簡(jiǎn)化與 Python 應(yīng)用的集成。

  在 Pynq 內(nèi),用許多疊層中的一個(gè)來(lái)加載可編程邏輯以實(shí)現(xiàn)硬件加速。除提供的基本疊層外,還存在多個(gè)開(kāi)源疊層。

  用戶可通過(guò)借助 Web 瀏覽器連接到 Juypter 筆記本服務(wù)器為 Pynq 編程。連接到該筆記本電腦后,他們就能開(kāi)發(fā)自己的 Python 應(yīng)用并為其建立文檔,以便在 Pynq 上運(yùn)行。

  這種使用 Python 并運(yùn)用 Python 直接接口 PMOD 的能力提供了一種極為強(qiáng)大的開(kāi)發(fā)平臺(tái)。

  嵌入式視覺(jué)

  兩種開(kāi)發(fā)方法都提供使用 OpenCV 等開(kāi)源嵌入式視覺(jué)框架來(lái)執(zhí)行嵌入式視覺(jué)應(yīng)用的能力。在 Linux 發(fā)行版支持 USB 視頻類或特定攝像頭(例如 ZynqBerry 支持的 Raspberry PI 攝像頭)時(shí),這些應(yīng)用能夠使用網(wǎng)絡(luò)攝像頭。

  OpenCV 方便開(kāi)發(fā)人員使用 C/C++ 或者 Python 開(kāi)發(fā),運(yùn)用這一框架他們能夠便捷地實(shí)現(xiàn)復(fù)雜圖像處理算法,發(fā)揮 Zynq 可編程邏輯的加速功能,顯著提升性能。

  這些應(yīng)用借助這一框架能處理圖像,檢測(cè)對(duì)象或面部等。

  在需要實(shí)現(xiàn)簡(jiǎn)單的對(duì)象檢測(cè)算法時(shí),它們能在基于 Zynq 的平臺(tái)上運(yùn)行 Linux、Python 和 OpenCV。下面我們了解如何使用 OpenCV 和網(wǎng)絡(luò)攝像頭實(shí)現(xiàn)簡(jiǎn)單的對(duì)象跟蹤系統(tǒng)。他們要實(shí)現(xiàn)的算法是:

  1. 從網(wǎng)絡(luò)攝像頭捕獲第一幀。第一幀用作基準(zhǔn)背景幀。他們將檢測(cè)從第一幀的場(chǎng)景中發(fā)生的任何變化。

  2. 將色域從 RGB 轉(zhuǎn)換為灰度。這是一種常見(jiàn)的圖像分割技術(shù),能用于創(chuàng)建二值圖像。圖像分割涉及數(shù)種將圖像劃分為多個(gè)片段(常稱為超像素)的方法。通過(guò)分割,更易于分析各片段的內(nèi)容。在他們的應(yīng)用中,他們使用閾值化來(lái)從前景中分割出背景。這樣可以生成二值圖像。

  3. 對(duì)圖像進(jìn)行高斯模糊。許多用于檢測(cè)對(duì)象或邊緣的圖像處理應(yīng)用的性能受抓取的幀內(nèi)存在的噪聲的不利影響。在進(jìn)一步處理前將圖像模糊化可降低幀內(nèi)的噪聲。這一方法常用于圖像處理,尤其是邊緣檢測(cè)算法(例如高斯邊緣檢測(cè)算法的拉普拉斯算子)。這一運(yùn)算的結(jié)果即為用于檢測(cè)變化的基準(zhǔn)圖像。

  4. 再次重復(fù)步驟1-3,從網(wǎng)絡(luò)攝像頭中捕獲另一圖像,從彩色域轉(zhuǎn)換到灰度并在圖像上執(zhí)行高斯模糊。

  5. 計(jì)算基準(zhǔn)幀和最近采集的圖像間的絕對(duì)差。

  6. 對(duì)絕對(duì)差進(jìn)行取閾,以創(chuàng)建二值圖像。

  7. 開(kāi)展形態(tài)學(xué)操作,擴(kuò)大圖像以放大任何差異。

  8. 找出二值圖像中剩余的等值線并忽略面積過(guò)小的任何等值線。

  9. 在每個(gè)被檢測(cè)出的等值線周圍畫(huà)一個(gè)方框,通過(guò) HDMI 輸出顯示原始采集的圖像。

  開(kāi)發(fā)人員能直接在 ZynqBerry 上或是在 Juypter 筆記本內(nèi)的 Pynq 上運(yùn)行結(jié)果 python 代碼。他們看到的圖像如下圖所示,該圖識(shí)別出了與基準(zhǔn)圖像的差異并用方框高亮顯示出這些差異。

圖像跟蹤應(yīng)用的結(jié)果

 

  這個(gè)實(shí)例體現(xiàn)了開(kāi)發(fā)人員運(yùn)用熟悉的開(kāi)源框架,借助 Zynq 平臺(tái)執(zhí)行他們的嵌入式視覺(jué)應(yīng)用所帶來(lái)的強(qiáng)大功能和簡(jiǎn)便性。

  結(jié)論

  本文呈現(xiàn)的開(kāi)發(fā)環(huán)境展現(xiàn)了開(kāi)發(fā)人員發(fā)揮多個(gè)Zynq開(kāi)發(fā)板的功能的簡(jiǎn)便性。這些開(kāi)發(fā)環(huán)境讓用戶開(kāi)發(fā)出既能在處理器內(nèi)的處理內(nèi)核上執(zhí)行,又能使用可編程邏輯加速的設(shè)計(jì)。

(轉(zhuǎn)載)

標(biāo)簽:賽靈思 All Programmable SoC 我要反饋 
2024世界人工智能大會(huì)專題
即刻點(diǎn)擊并下載ABB資料,好禮贏不停~
優(yōu)傲機(jī)器人下載中心
西克
2024全景工博會(huì)
專題報(bào)道