0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

借助于Kria SoM部署邊緣人工智能

胡秋陽 ? 來源:kevinvind ? 作者:Adam Taylor ? 2022-08-02 08:03 ? 次閱讀

簡介

生產線已步入了快節(jié)奏時代, 但要提高交付速度和客戶滿意度,勢必需要在裝運前檢測制造或包裝缺陷。然而,自動化檢測設備需要在不降低生產線速度的情況下進行處理和做出決策。所以,我們需要借助于Xilinx Kria K26系統(tǒng)模塊 (SoM)等器件的幫助。

Kria K26 SoM允許開發(fā)人員利用可編程邏輯與高性能Arm處理器內核相結合的并行特性。Kria SoM的優(yōu)勢在于Xilinx首次為SoC (XCK26) 提供了異構SoC和必要的支持基礎設施,如4GB DDR4內存、16GB eMMC、512Mb QSPI、TPM安全模塊以及必要的電源基礎設施。

為便于與應用接口,此器件提供了可拆分成245個IO的兩個240針連接器。

Xilinx還提供了Kria KV260視覺AI入門套件,讓開發(fā)人員能夠快速開始設計。該套件為開發(fā)人員提供了擁有以下接口的SoM載卡:

3個MIPI接口

USB

HDMI

顯示端口

1GB以太網(wǎng)

Pmod

此入門套件還隨附了一系列應用示例,幫助用戶了解開發(fā)基于視覺的人工智能應用是一件非常輕松的工作。Kria視覺AI入門套件非常適合需要快速圖像處理的應用,例如檢測標簽是否已正確應用于生產線上的裝運箱。

制造業(yè)應用案例

接下來讓我們將詳細地介紹Kria KV260視覺入門套件如何用于制造行業(yè)。創(chuàng)建此類應用并不一定需要可編程邏輯設計。然而,卻需要進行軟件開發(fā),并具有使用Xilinx Vitis AI培訓和編譯新機器學習模型的能力。首先,我們需要安裝和配置Vitis AI。

物料清單

Kria KV260視覺AI入門套件

創(chuàng)建虛擬機

我們需要本地Linux機器或運行受支持的Linux發(fā)行版的虛擬機來運行Vitis AI。

在安裝完成后,下載Ubuntu Linux磁盤映像,以便在虛擬機上安裝Linux系統(tǒng)。此項目所使用的Ubuntu版本是Ubuntu-18.04.4 Desktop-amd64.iso,點擊此處即可下載。

現(xiàn)在可以開始構建虛擬機了。第一步,在VirtualBox Manager中單擊New。

這時將顯示一個對話框,用于創(chuàng)建新的虛擬機(見圖2)。輸入虛擬機名稱,并將類型和版本分別設置為Linux和64位Linux版本。此外,還可以設置與虛擬機共享的系統(tǒng)內存大?。ㄒ妶D3)。

圖2:創(chuàng)建虛擬機

單擊Create按鈕,將顯示虛擬硬盤的設置。選擇512GB,以允許動態(tài)分配物理存儲空間。隨著磁盤使用量的增加,虛擬硬盤大小將擴展到512GB。該項目將外部固態(tài)USB C驅動器用作虛擬硬盤,以確保有足夠的可用空間。

圖3:設置存儲空間

配置好虛擬機后,接下來就要安裝操作系統(tǒng)了。選中新創(chuàng)建的虛擬機,然后單擊start按鈕啟動VM 9(見圖4)。

圖4:啟動虛擬機

在啟動虛擬機時,會要求安裝之前下載的Ubuntu ISO(見圖5)。

圖5:選擇安裝盤

在虛擬硬盤上安裝Ubuntu操作系統(tǒng)。選擇安裝Ubuntu(見圖6)。

圖6:安裝Ubuntu

在選擇好Ubuntu的位置和配置選項后, 進行鍵盤配置(見圖7)。

圖7:選擇本地化設置

選擇最小安裝(見圖8),因為我們不需要使用辦公軟件、媒體播放器或玩游戲。

圖8:選擇最小安裝

在安裝期間擦除磁盤并安裝Ubuntu(見圖9)。

圖9:擦除磁盤

單擊continue繼續(xù)操作(見圖10)。

圖10:啟用磁盤改寫

選擇您所在的地理位置與時區(qū)(見圖11)。

圖11:設置時區(qū)

最后,輸入Ubuntu計算機名、用戶名及密碼(見圖12)。

圖12:設置帳戶名和密碼

安裝完成后,重啟虛擬機(見圖13)。

圖13:重啟虛擬機

重啟后,登錄并開始安裝Vitis AI。

安裝Vitis和Vitis AI

對于運行Linux的虛擬機,接下來需要安裝Vitis和Vitis AI。安裝Vitis時,需要用到在下載時創(chuàng)建的Xilinx帳戶。Vitis安裝時間較長,所以我們會先安裝它。

打開Xilinx下載頁面,選擇Linux Self Extracting Web Installer(見圖15)。

圖15:Xilinx Linux Installer

下載web安裝程序后,找到下載位置,選擇應用程序,右鍵單擊以更改權限,使其能夠作為應用程序執(zhí)行(見圖16)。

圖16:設置適當權限

現(xiàn)在可以使用終端窗口來安裝Vitis,所需時間取決于虛擬機和internet連接性能。

通過以下sudo命令來安裝此工具(見圖17)。

sudo 。/Xilinx_Unified_2020.2_1118_1232_Lin64.bin

圖17:運行安裝程序

此時將啟動Vitis Installer(見圖18)。

圖18:啟動安裝程序

登錄您的帳戶(見圖19)。

圖19:登錄您的Xilinx帳戶

選擇Vitis作為目標應用程序, 同時還會安裝Vivado(見圖20)。

圖20:安裝Vitis與Vivado

為了節(jié)省安裝空間,應取消選擇除SoC以外的所有設備(見圖21)。

圖21:最大程度節(jié)省安裝空間

接受安裝條件和條款(見圖22)。

圖22:接受安裝條件和條款

選擇安裝目錄, 建議使用默認位置(見圖23)。

圖23:選擇安裝位置

在Installation Summary中,選擇Install并等待安裝完畢(見圖24)。

圖24:完成安裝

安裝完成后,需要運行以下腳本以安裝所有相關項:

sudo /Vitis//scripts/installLibs.sh

接下來,安裝Vitis AI。在本例中,我們將安裝Vitis AI以從CPU而不是GPU運行,因而會影響訓練性能。

首先要安裝docker, 請按照此處的說明進行操作。注意,可能需要在安裝完成后重啟虛擬機。

接下來,請使用以下命令安裝Git:

sudo apt update sudo apt install git

選擇/創(chuàng)建Vitis-AI的安裝目錄。使用以下命令克隆Vitis-AI:

git clone https://github.com/Xilinx/Vitis-AI.git

一旦克隆好Vitis-AI存儲庫,請將其改為存儲目錄,并提取docker映像。

cd Vitis-AI docker pull xilinx/vitis-ai:latest

從docker下載最新的Vitis-AI映像將需要幾分鐘的時間。

在提取docker映像之后,我們需要構建交叉編譯系統(tǒng)??梢酝ㄟ^運行Vitis-AI/setup/mpsoc/VART中的腳本來完成此操作(見圖25)。

cd Vitis-AI/setup/mpsoc/VART 。/host_cross_compiler_setup_2020.2.sh

圖25:安裝SDK路徑

運行腳本后,請確保運行指定的命令以啟用交叉編譯環(huán)境。

我們可以通過編譯一個演示程序來測試是否正確安裝了Vitis AI。在本例中,我們采用的是demo/VART/Resnet50目錄下提供的resnet50應用程序。請使用以下命令編譯應用程序:

Bash -x build.sh

如果您在終端窗口中沒有看到錯誤,并且可執(zhí)行文件出現(xiàn)在目錄中,則說明Vitis AI安裝成功(見圖26):

圖26:編譯引擎

現(xiàn)在,我們需要開發(fā)數(shù)據(jù)集,以顯示正確和錯誤黏貼的標簽。

創(chuàng)建數(shù)據(jù)集

為了訓練神經(jīng)網(wǎng)絡,我們首先需要一組正確和錯誤圖像的數(shù)據(jù)集。我們以幾個正確和錯誤地黏貼了貿澤標簽的箱子為例。為了獲得多樣化的圖像,我們從多個角度拍攝了正確和錯誤黏貼標簽的箱子。

這些圖像被整理成兩個目錄——一個是正確的標簽,另一個是錯誤的標簽。

對于捕獲到的圖像,我們需要訓練一個神經(jīng)網(wǎng)絡。在本例中,我們將使用Edge Impulse。請注意,您需要為Edge Impulse創(chuàng)建一個免費的帳戶。

在Edge Impulse端,首先要創(chuàng)建一個新項目(見圖29)。

圖29:創(chuàng)建Edge Impulse項目

新項目創(chuàng)建后,可以上傳標記為正確和錯誤的圖像文件夾。首先選擇正確目錄中的所有文件并進行上傳,標記為Label_Correct。隨后,上傳錯誤的圖像并將其標記為Label_Incorrect(見圖30)。

圖30:上傳數(shù)據(jù)

所有圖像都上傳完成后,接下來就要定義Impulse。選擇寬度和高度均為224像素的輸入圖像。選擇圖像,輸入Transfer Learning,然后保存Impulse(見圖31)。

圖31:設置Impulse

然后,我們可以通過生成特征和訓練Impulse來訓練模型(見圖32)。

圖32:生成特征

選擇模型MobileNetV2 160x160 1.0,等效模型位于Xilinx Model Zoo下(見圖33)。

圖33:選擇正確的模型

可能需要幾分鐘的時間來訓練模型。訓練完成后,返回概覽頁面,選擇下載遷移學習模型(見圖34)。

這將包括保存的模型和.zip文件中的變量(檢查點)。

圖34:下載保存的模型

量化并編譯模型

接下來使用Vitis AI對模型進行量化和編譯。在虛擬機中,我們可以通過發(fā)出以下命令來運行Vitis AI(見圖35)。

。/docker_runs.sh Xilinx/vitis-ai-cpu:latest

圖35:啟動Vitis AI

加載Vitis AI后,使用以下命令激活TensorFlow(見圖36)。

conda activate vitis-ai-tensorflow

圖36:激活Vitis AI TensorFlow

接下來,凍結將檢查點的信息合并到凍結模型文件的模型(見圖37)。

圖37:編譯凍結模型

一旦模型作為凍結模型輸出,我們就可以使用編譯器編譯輸出模型,以部署到系統(tǒng)中。

我們可以從Xilinx Model Zoo中包含的YAML文件中了解輸出節(jié)點的信息(見圖38)。

圖38:探索模型

要檢查凍結的網(wǎng)表,則需要安裝Netron。此外,理解量化過程的輸入和輸出節(jié)點名稱也很重要(見圖39)。

圖39:安裝Netron

有了量化網(wǎng)表,我們可以將量化網(wǎng)表編譯為部署在Kria SoM上的模型(見圖40)。

圖40:編譯模型/

借助于SCP/FTP,我們可以將編譯后的模型上載到以下目錄中的Kria文件系統(tǒng):

/usr/share/vitis_ai_library/models/

上傳好模型后,可以生成一個軟件應用程序,用于測試神經(jīng)網(wǎng)絡。這時,我們可以將幾個正確和錯誤的圖像上載到Kria SoM,來測試應用程序。

結語

該項目展示了對于工業(yè)AI/ML應用,在Kria SoM中訓練和部署神經(jīng)網(wǎng)絡是一件非常簡單的事情, 其應用潛力也是無限的。未來可能需要更新軟件以利用gstreamer框架,并像在生產線上一樣對實時圖像進行分類。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19313

    瀏覽量

    230057
  • 連接器
    +關注

    關注

    98

    文章

    14550

    瀏覽量

    136670
  • 人工智能
    +關注

    關注

    1791

    文章

    47352

    瀏覽量

    238777
收藏 人收藏

    評論

    相關推薦

    邊緣人工智能與視覺聯(lián)盟在年度最佳產品典禮上授予Blaize?, Inc.最佳邊緣人工智能處理工具獎

    加利福尼亞州圣克拉拉市—2022年5月18日—邊緣人工智能與視覺聯(lián)盟宣布Blaize榮獲2022年邊緣人工智能與視覺年度最佳產品獎中的最佳邊緣人工智能處理工具獎,獲獎產品為Blaize
    的頭像 發(fā)表于 05-19 10:13 ?3733次閱讀
    <b class='flag-5'>邊緣人工智能</b>與視覺聯(lián)盟在年度最佳產品典禮上授予Blaize?, Inc.最佳<b class='flag-5'>邊緣人工智能</b>處理工具獎

    實施邊緣人工智能如何評估正確的選擇

    隨著對人工智能的需求變得越來越普遍,技術需求變得越來越復雜,希望在產品中采用邊緣人工智能的公司通常會發(fā)現(xiàn)這是一個艱巨的挑戰(zhàn)。但是是什么讓它如此困難,有什么解決方案可以解決這個問題? 也許公司在實施
    發(fā)表于 07-14 12:54 ?1156次閱讀

    Xilinx SOM的功能和應用

    賽靈思通過進入模塊上系統(tǒng) (SOM) 市場,配備預構建的軟件堆棧和可立即部署的應用程序商店,在實現(xiàn)邊緣人工智能 (AI) 尤其是嵌入式視覺的更廣泛市場采用方面邁出了一大步預定義的應用程序。該公司
    發(fā)表于 12-23 07:26

    邊緣人工智能芯片是如何發(fā)光的

    邊緣人工智能芯片的普及很可能將推動消費者和企業(yè)發(fā)生顯著改變。
    發(fā)表于 03-26 10:22 ?1451次閱讀

    什么是邊緣人工智能_邊緣人工智能應用

    邊緣人工智能(Edge AI)是人工智能領域引人注目的新領域之一,其目的是讓用戶運行人工智能流程而不必擔心隱私或數(shù)據(jù)傳輸較慢帶來的影響。邊緣人工智能可以使
    的頭像 發(fā)表于 12-01 10:30 ?6056次閱讀

    真正理解邊緣人工智能,得先了解邊緣計算

    邊緣人工智能(EdgeAI),是人工智能領域引人注目的新領域之一。其目的是讓用戶運行人工智能流程而不必擔心隱私或數(shù)據(jù)傳輸較慢帶來的影響……而想要真正理解邊緣人工智能,首先就得先了解
    的頭像 發(fā)表于 12-22 16:55 ?3025次閱讀

    什么是邊緣人工智能?

    簡言之,邊緣人工智能是指以機器深度學習的形式通過運用邊緣計算設備,該算法直接在邊緣設備上運行。基于邊緣計算設備可以通過數(shù)據(jù)學習獨立提高其在給定任務中的性能,有時甚至超出了人類的能力。
    的頭像 發(fā)表于 07-07 16:04 ?2468次閱讀

    邊緣人工智能是什么 邊緣人工智能人工智能的區(qū)別

    邊緣人工智能利用邊緣計算與AI的結合進行工作,它利用邊緣計算平臺,僅在本地即可完成數(shù)據(jù)處理,真正做到實時處理數(shù)據(jù)。
    的頭像 發(fā)表于 12-06 15:10 ?4863次閱讀

    使用 Kria SoM 部署基于邊緣人工智能

    使用 Kria SoM 部署基于邊緣人工智能
    的頭像 發(fā)表于 12-28 09:51 ?944次閱讀
    使用 <b class='flag-5'>Kria</b> <b class='flag-5'>SoM</b> <b class='flag-5'>部署</b>基于<b class='flag-5'>邊緣</b>的<b class='flag-5'>人工智能</b>

    邊緣人工智能解決滅絕危機

    邊緣人工智能解決滅絕危機
    的頭像 發(fā)表于 12-29 10:02 ?1162次閱讀

    邊緣人工智能:微芯片和嵌入式機器學習

    邊緣人工智能:微芯片和嵌入式機器學習
    的頭像 發(fā)表于 12-30 09:40 ?1467次閱讀
    <b class='flag-5'>邊緣人工智能</b>:微芯片和嵌入式機器學習

    Imagination公司推出首個邊緣人工智能課程

    通過全面的材料和實踐練習介紹邊緣人工智能的原理和實操 作為Imagination大學計劃(IUP)的一部分,Imagination為本科生推出了一門關于邊緣人工智能的新課程。該課程名為《邊緣人工智能
    的頭像 發(fā)表于 03-10 23:40 ?1030次閱讀

    借助Kria SOM實現(xiàn)嵌入式設計簡化

    電子發(fā)燒友網(wǎng)站提供《借助Kria SOM實現(xiàn)嵌入式設計簡化.pdf》資料免費下載
    發(fā)表于 09-14 11:35 ?0次下載
    <b class='flag-5'>借助</b><b class='flag-5'>Kria</b> <b class='flag-5'>SOM</b>實現(xiàn)嵌入式設計簡化

    Kria K26 SOM邊緣視覺AI的理想平臺

    電子發(fā)燒友網(wǎng)站提供《Kria K26 SOM邊緣視覺AI的理想平臺.pdf》資料免費下載
    發(fā)表于 09-13 17:04 ?0次下載
    <b class='flag-5'>Kria</b> K26 <b class='flag-5'>SOM</b>:<b class='flag-5'>邊緣</b>視覺AI的理想平臺

    19位國際頂尖學者聯(lián)袂撰寫《重新審視邊緣人工智能:機遇與挑戰(zhàn)》

    19位國際頂尖學者聯(lián)袂撰寫《重新審視邊緣人工智能:機遇與挑戰(zhàn)》
    的頭像 發(fā)表于 11-27 01:04 ?468次閱讀
    19位國際頂尖學者聯(lián)袂撰寫《重新審視<b class='flag-5'>邊緣人工智能</b>:機遇與挑戰(zhàn)》