生產(chǎn)線已步入了快節(jié)奏時(shí)代,但要提高交付速度和客戶滿意度,勢(shì)必需要在裝運(yùn)前檢測(cè)制造或包裝缺陷。然而,自動(dòng)化檢測(cè)設(shè)備需要在不降低生產(chǎn)線速度的情況下進(jìn)行處理和做出決策。所以,我們需要借助于Xilinx Kria K26系統(tǒng)模塊(SoM)等器件的幫助。Kria K26 SoM(見圖1)允許開發(fā)人員利用可編程邏輯與高性能Arm處理器內(nèi)核相結(jié)合的并行特性。Kria SoM的優(yōu)勢(shì)在于Xilinx首次為SoC(XCK26)提供了異構(gòu)SoC和必要的支持基礎(chǔ)設(shè)施,如4GB DDR4內(nèi)存、16GB eMMC、512Mb QSPI、TPM安全模塊以及必要的電源基礎(chǔ)設(shè)施。
為便于與應(yīng)用接口,此器件提供了可拆分成245個(gè)IO的兩個(gè)240針連接器。
Xilinx還提供了Kria KV260視覺AI入門套件,讓開發(fā)人員能夠快速開始設(shè)計(jì)。該套件為開發(fā)人員提供了擁有以下接口的SoM載卡:
3個(gè)MIPI接口
顯示端口
1GB以太網(wǎng)
Pmod
此入門套件還隨附了一系列應(yīng)用示例,幫助用戶了解開發(fā)基于視覺的人工智能應(yīng)用是一件非常輕松的工作。Kria視覺AI入門套件非常適合需要快速圖像處理的應(yīng)用,例如檢測(cè)標(biāo)簽是否已正確應(yīng)用于生產(chǎn)線上的裝運(yùn)箱。
01
制造業(yè)應(yīng)用案例
接下來讓我們將詳細(xì)地介紹Kria KV260視覺入門套件如何用于制造行業(yè)。創(chuàng)建此類應(yīng)用并不一定需要可編程邏輯設(shè)計(jì)。然而,卻需要進(jìn)行軟件開發(fā),并具有使用Xilinx Vitis AI培訓(xùn)和編譯新機(jī)器學(xué)習(xí)模型的能力。首先,我們需要安裝和配置Vitis AI。
物料清單
Kria KV260視覺AI入門套件
02
創(chuàng)建虛擬機(jī)
我們需要本地Linux機(jī)器或運(yùn)行受支持的Linux發(fā)行版的虛擬機(jī)來運(yùn)行Vitis AI。在安裝完成后,下載Ubuntu Linux磁盤映像,以便在虛擬機(jī)上安裝Linux系統(tǒng)。此項(xiàng)目所使用的Ubuntu版本是Ubuntu-18.04.4 Desktop-amd64.iso,點(diǎn)擊此處即可下載。現(xiàn)在可以開始構(gòu)建虛擬機(jī)了。第一步,在VirtualBox Manager中單擊New。這時(shí)將顯示一個(gè)對(duì)話框,用于創(chuàng)建新的虛擬機(jī)(見圖2)。輸入虛擬機(jī)名稱,并將類型和版本分別設(shè)置為L(zhǎng)inux和64位Linux版本。此外,還可以設(shè)置與虛擬機(jī)共享的系統(tǒng)內(nèi)存大小(見圖3)。
單擊Create按鈕,將顯示虛擬硬盤的設(shè)置。選擇512GB,以允許動(dòng)態(tài)分配物理存儲(chǔ)空間。隨著磁盤使用量的增加,虛擬硬盤大小將擴(kuò)展到512GB。該項(xiàng)目將外部固態(tài)USB C驅(qū)動(dòng)器用作虛擬硬盤,以確保有足夠的可用空間。
配置好虛擬機(jī)后,接下來就要安裝操作系統(tǒng)了。選中新創(chuàng)建的虛擬機(jī),然后單擊start按鈕啟動(dòng)VM 9()。
在啟動(dòng)虛擬機(jī)時(shí),會(huì)要求安裝之前下載的Ubuntu ISO。
在虛擬硬盤上安裝Ubuntu操作系統(tǒng)。選擇安裝Ubuntu。
在選擇好Ubuntu的位置和配置選項(xiàng)后,進(jìn)行鍵盤配置。
選擇最小安裝,因?yàn)槲覀儾恍枰褂棉k公軟件、媒體播放器或玩游戲。
在安裝期間擦除磁盤并安裝Ubuntu。
單擊continue繼續(xù)操作。
選擇您所在的地理位置與時(shí)區(qū)。
最后,輸入U(xiǎn)buntu計(jì)算機(jī)名、用戶名及密碼。
安裝完成后,重啟虛擬機(jī)。
重啟后,登錄并開始安裝Vitis AI。
03
安裝Vitis和Vitis AI
對(duì)于運(yùn)行Linux的虛擬機(jī),接下來需要安裝Vitis和Vitis AI。安裝Vitis時(shí),需要用到在下載時(shí)創(chuàng)建的Xilinx帳戶。Vitis安裝時(shí)間較長(zhǎng),所以我們會(huì)先安裝它。打開Xilinx下載頁(yè)面,選擇Linux Self Extracting Web Installer。
下載web安裝程序后,找到下載位置,選擇應(yīng)用程序,右鍵單擊以更改權(quán)限,使其能夠作為應(yīng)用程序執(zhí)行。
現(xiàn)在可以使用終端窗口來安裝Vitis,所需時(shí)間取決于虛擬機(jī)和internet連接性能。通過以下sudo命令來安裝此工具。
sudo 。/Xilinx_Unified_2020.2_1118_1232_Lin64.bin
圖17:運(yùn)行安裝程序此時(shí)將啟動(dòng)Vitis Installer(見圖18)。
登錄您的帳戶。
選擇Vitis作為目標(biāo)應(yīng)用程序,同時(shí)還會(huì)安裝Vivado。
為了節(jié)省安裝空間,應(yīng)取消選擇除SoC以外的所有設(shè)備。
接受安裝條件和條款。
選擇安裝目錄,建議使用默認(rèn)位置。
在Installation Summary中,選擇Install并等待安裝完畢。
安裝完成后,需要運(yùn)行以下腳本以安裝所有相關(guān)項(xiàng):
sudo 《install_dir》/Vitis/《release》/scripts/installLibs.sh
接下來,安裝Vitis AI。在本例中,我們將安裝Vitis AI以從CPU而不是GPU運(yùn)行,因而會(huì)影響訓(xùn)練性能。首先要安裝docker,請(qǐng)按照此處的說明進(jìn)行操作。注意,可能需要在安裝完成后重啟虛擬機(jī)。
接下來,請(qǐng)使用以下命令安裝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存儲(chǔ)庫(kù),請(qǐng)將其改為存儲(chǔ)目錄,并提取docker映像。cd Vitis-AI docker pull xilinx/vitis-ai:latest從docker下載最新的Vitis-AI映像將需要幾分鐘的時(shí)間。在提取docker映像之后,我們需要構(gòu)建交叉編譯系統(tǒng)。可以通過運(yùn)行Vitis-AI/setup/mpsoc/VART中的腳本來完成此操作(見圖25)。cd Vitis-AI/setup/mpsoc/VART 。/host_cross_compiler_setup_2020.2.sh
運(yùn)行腳本后,請(qǐng)確保運(yùn)行指定的命令以啟用交叉編譯環(huán)境。我們可以通過編譯一個(gè)演示程序來測(cè)試是否正確安裝了Vitis AI。在本例中,我們采用的是demo/VART/Resnet50目錄下提供的resnet50應(yīng)用程序。請(qǐng)使用以下命令編譯應(yīng)用程序:
Bash -x build.sh
如果您在終端窗口中沒有看到錯(cuò)誤,并且可執(zhí)行文件出現(xiàn)在目錄中,則說明Vitis AI安裝成功(見圖26):
現(xiàn)在,我們需要開發(fā)數(shù)據(jù)集,以顯示正確和錯(cuò)誤黏貼的標(biāo)簽。
04
創(chuàng)建數(shù)據(jù)集
為了訓(xùn)練神經(jīng)網(wǎng)絡(luò),我們首先需要一組正確和錯(cuò)誤圖像的數(shù)據(jù)集。我們以幾個(gè)正確和錯(cuò)誤地黏貼了貿(mào)澤標(biāo)簽的箱子為例。為了獲得多樣化的圖像,我們從多個(gè)角度拍攝了正確和錯(cuò)誤黏貼標(biāo)簽的箱子(見圖27和28)。
這些圖像被整理成兩個(gè)目錄——一個(gè)是正確的標(biāo)簽,另一個(gè)是錯(cuò)誤的標(biāo)簽。對(duì)于捕獲到的圖像,我們需要訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)。在本例中,我們將使用Edge Impulse。請(qǐng)注意,您需要為Edge Impulse創(chuàng)建一個(gè)免費(fèi)的帳戶。在Edge Impulse端,首先要?jiǎng)?chuàng)建一個(gè)新項(xiàng)目(見圖29)。
新項(xiàng)目創(chuàng)建后,可以上傳標(biāo)記為正確和錯(cuò)誤的圖像文件夾。首先選擇正確目錄中的所有文件并進(jìn)行上傳,標(biāo)記為L(zhǎng)abel_Correct。隨后,上傳錯(cuò)誤的圖像并將其標(biāo)記為L(zhǎng)abel_Incorrect。
所有圖像都上傳完成后,接下來就要定義Impulse。選擇寬度和高度均為224像素的輸入圖像。選擇圖像,輸入Transfer Learning,然后保存Impulse。
然后,我們可以通過生成特征和訓(xùn)練Impulse來訓(xùn)練模型。
選擇模型MobileNetV2 160x160 1.0,等效模型位于Xilinx Model Zoo下(見圖33)。
可能需要幾分鐘的時(shí)間來訓(xùn)練模型。訓(xùn)練完成后,返回概覽頁(yè)面,選擇下載遷移學(xué)習(xí)模型。這將包括保存的模型和.zip文件中的變量(檢查點(diǎn))。
05
量化并編譯模型
接下來使用Vitis AI對(duì)模型進(jìn)行量化和編譯。在虛擬機(jī)中,我們可以通過發(fā)出以下命令來運(yùn)行Vitis AI。
。/docker_runs.sh Xilinx/vitis-ai-cpu:latest
加載Vitis AI后,使用以下命令激活TensorFlow。
conda activate vitis-ai-tensorflow圖36:激活Vitis AI TensorFlow
接下來,凍結(jié)將檢查點(diǎn)的信息合并到凍結(jié)模型文件的模型。
一旦模型作為凍結(jié)模型輸出,我們就可以使用編譯器編譯輸出模型,以部署到系統(tǒng)中。
我們可以從Xilinx Model Zoo中包含的YAML文件中了解輸出節(jié)點(diǎn)的信息。
要檢查凍結(jié)的網(wǎng)表,則需要安裝Netron。此外,理解量化過程的輸入和輸出節(jié)點(diǎn)名稱也很重要。
有了量化網(wǎng)表,我們可以將量化網(wǎng)表編譯為部署在Kria SoM上的模型(見圖40)。
借助于SCP/FTP,我們可以將編譯后的模型上載到以下目錄中的Kria文件系統(tǒng):
/usr/share/vitis_ai_library/models/
上傳好模型后,可以生成一個(gè)軟件應(yīng)用程序,用于測(cè)試神經(jīng)網(wǎng)絡(luò)。這時(shí),我們可以將幾個(gè)正確和錯(cuò)誤的圖像上載到Kria SoM,來測(cè)試應(yīng)用程序(見圖41和42)。
結(jié)語
該項(xiàng)目展示了對(duì)于工業(yè)AI/ML應(yīng)用,在Kria SoM中訓(xùn)練和部署神經(jīng)網(wǎng)絡(luò)是一件非常簡(jiǎn)單的事情,其應(yīng)用潛力也是無限的。未來可能需要更新軟件以利用gstreamer框架,并像在生產(chǎn)線上一樣對(duì)實(shí)時(shí)圖像進(jìn)行分類。
責(zé)任編輯:haq
-
連接器
+關(guān)注
關(guān)注
98文章
14669瀏覽量
137247 -
人工智能
+關(guān)注
關(guān)注
1796文章
47683瀏覽量
240313
原文標(biāo)題:借助于Kria SoM部署邊緣人工智能
文章出處:【微信號(hào):貿(mào)澤電子,微信公眾號(hào):貿(mào)澤電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
制造業(yè)數(shù)字化轉(zhuǎn)型的難點(diǎn)
![<b class='flag-5'>制造業(yè)</b>數(shù)字化轉(zhuǎn)型的難點(diǎn)](https://file1.elecfans.com/web2/M00/B6/F7/wKgaomWCnqCAVALtAAAoP02go7w921.png)
智慧工廠:制造業(yè)數(shù)字化轉(zhuǎn)型的新引擎
![智慧工廠:<b class='flag-5'>制造業(yè)</b>數(shù)字化轉(zhuǎn)型的新引擎](https://file1.elecfans.com/web2/M00/B6/F7/wKgaomWCnqCAVALtAAAoP02go7w921.png)
生成式AI在制造業(yè)的應(yīng)用現(xiàn)狀和前景展望
計(jì)算機(jī)通信設(shè)備制造業(yè)、儀器儀表制造業(yè)等先進(jìn)制造業(yè)發(fā)展向好
PLM系統(tǒng)助力工程和制造業(yè)轉(zhuǎn)型升級(jí)
![PLM<b class='flag-5'>系統(tǒng)</b>助力工程和<b class='flag-5'>制造業(yè)</b>轉(zhuǎn)型升級(jí)](https://file1.elecfans.com/web2/M00/00/BA/wKgZomaxjCKARFGvAAkcGaDznzc868.png)
工業(yè)物聯(lián)網(wǎng)在制造業(yè)中的八大主要用途!
歐時(shí)制造業(yè)產(chǎn)品及解決方案助力中國(guó)制造業(yè)企業(yè)工業(yè)數(shù)字化轉(zhuǎn)型
快速開箱即用體驗(yàn) AMD / Xilinx Kria? KD240驅(qū)動(dòng)器入門套件
![快速開箱即用體驗(yàn) AMD / <b class='flag-5'>Xilinx</b> <b class='flag-5'>Kria</b>? KD240驅(qū)動(dòng)器入門套件](https://file1.elecfans.com/web2/M00/F2/7F/wKgaomZ1b4WAEjFKAAEdh_rXQEk800.jpg)
貿(mào)澤開售適用于工業(yè)、醫(yī)療和機(jī)器人應(yīng)用的AMD/Xilinx Kria K24 SOM
![貿(mào)澤開售適用于工業(yè)、醫(yī)療和機(jī)器人應(yīng)用的AMD/<b class='flag-5'>Xilinx</b> <b class='flag-5'>Kria</b> <b class='flag-5'>K</b>24 SOM](https://file1.elecfans.com/web2/M00/F2/62/wKgaomZ1KtGAeWMVAAIHggPubwk597.jpg)
數(shù)據(jù)中臺(tái)在制造業(yè)中的應(yīng)用及其轉(zhuǎn)型價(jià)值
深圳恒興隆|制造業(yè)的新星:高光超精電主軸的崛起...
柔性制造單元:制造業(yè)的靈活利器
![柔性<b class='flag-5'>制造</b>單元:<b class='flag-5'>制造業(yè)</b>的靈活利器](https://file1.elecfans.com/web2/M00/DA/87/wKgaomYqJ1WAIv3DABHTW1dmU1Y033.png)
評(píng)論