摘要: EdgeBoard是百度打造的基于FPGA的嵌入式AI解決方案系列硬件;EasyDL是百度推出的一站式AI定制化訓(xùn)練和服務(wù)平臺(tái)。本文詳細(xì)介紹如何使用EasyDL進(jìn)行模型訓(xùn)練,然后部署到EdgeBoard,縮短從模型訓(xùn)練到推理實(shí)現(xiàn)的路徑,提高開發(fā)效率。 EdgeBoard是百度自主研發(fā)的AI軟硬一體深度學(xué)習(xí)加速套件,能夠提供強(qiáng)大的算力,并支持定制化模型,適配不同場(chǎng)景的終端設(shè)備,大幅提高設(shè)備端的AI推理能力,具有高性能、高通用、易集成等優(yōu)勢(shì)。EdgeBoard還可以無(wú)縫銜接百度大腦的開放能力,可以輕松將在EasyDL和AI Studio平臺(tái)定制的AI模型完美適配到EdgeBoard上。本文會(huì)介紹如何將EasyDL訓(xùn)練的模型離線部署到EdgeBoard上,實(shí)現(xiàn)AI的終端應(yīng)用。 EasyDL定制化訓(xùn)練和服務(wù)平臺(tái)可以一站式定制AI模型,并且完全界面化操作,利用少量的數(shù)據(jù)就可以訓(xùn)練出一個(gè)高精度的AI模型。 圖1. EasyDL界面 接下來(lái)我們準(zhǔn)備以狗的分類作為實(shí)例來(lái)介紹從訓(xùn)練到推理部署,首先介紹使用EasyDL進(jìn)行模型訓(xùn)練。 一. 選擇訓(xùn)練平臺(tái) 要完成狗的分類,需要使用圖像分類模型進(jìn)行訓(xùn)練,在EasyDL首頁(yè)中點(diǎn)擊開始訓(xùn)練,選擇“經(jīng)典版”訓(xùn)練平臺(tái),模型類型選擇圖像分類,如圖2所示。 圖2. 模型類型 二. 準(zhǔn)備數(shù)據(jù)集 圖3. 8類狗的照片文件 下面是我們準(zhǔn)備好的數(shù)據(jù),共8分類,每個(gè)分類用50張左右的圖片用來(lái)訓(xùn)練,剩下20張左右用來(lái)做推理測(cè)試。 圖4. 狗的照片 三. 創(chuàng)建數(shù)據(jù)集 根據(jù)EasyDL訓(xùn)練模型的規(guī)則,首先我們創(chuàng)建數(shù)據(jù)集,將采集好的數(shù)據(jù)每個(gè)種類放到一個(gè)文件夾中,如圖2所示,再壓縮成一個(gè)zip文件,然后把數(shù)據(jù)集上傳到EasyDL平臺(tái),如圖5所示。 圖5. 上傳數(shù)據(jù)集到EasyDL平臺(tái) 四. 創(chuàng)建模型 數(shù)據(jù)集建立完成后,創(chuàng)建模型,根據(jù)需要填寫相應(yīng)的信息,如圖6所示。 圖6. 創(chuàng)建模型 五. 訓(xùn)練模型 在訓(xùn)練模型頁(yè)面中,應(yīng)用類型選擇“離線服務(wù)”,算法選擇“高精度”和“高性能”都可以,添加數(shù)據(jù)集,開始訓(xùn)練,如圖7所示。 圖7. 訓(xùn)練模型 六. 發(fā)布模型 訓(xùn)練模型需要一定的時(shí)間,等模型訓(xùn)練完成之后,我們點(diǎn)擊申請(qǐng)發(fā)布,跳轉(zhuǎn)到發(fā)布模型頁(yè)面,選擇“軟硬一體方案”的“EdgeBoard+專用SDK”,提交申請(qǐng),如圖8所示。 圖8. 發(fā)布模型 五.下載SDK 審核成功后,點(diǎn)擊“服務(wù)詳情”,“下載SDK”,如圖9所示。 圖9. 下載SDK 至此,在EasyDL上的模型訓(xùn)練結(jié)束,接下來(lái)將轉(zhuǎn)到EdgeBoard的推理實(shí)現(xiàn)上。 在圖9中,我們會(huì)看到有“管理序列號(hào)”的按鈕,如果購(gòu)買了EdgeBoard,跳轉(zhuǎn)頁(yè)面中會(huì)有一個(gè)EdgeBoard專用的序列號(hào),這是EasyDL模型在EdgeBoard上部署的通行證。 圖10. EdgeBoard專用序列號(hào) 下面我們就開始把模型部署到EdgeBoard上,下圖是EdgeBoard FZ9A系列硬件,EdgeBoard的技術(shù)文檔可在百度大腦AI開放平臺(tái)EdgeBoard FZ9A板塊找到。 根據(jù)該技術(shù)文檔,需要將EasyDL離線SDK通過FTP或者samba工具傳到EdgeBoard系統(tǒng)中,然后將EdgeBoard專用序列號(hào)填寫到離線SDK中。 圖11. EdgeBoard上的文件 EdgeBoard內(nèi)置Linux系統(tǒng),我們將使用命令行的方式進(jìn)行后面的部署操作。由于離線SDK在第一次使用時(shí)需要聯(lián)網(wǎng)激活,因此將EdgeBoard接入路由器,連通外網(wǎng)。 圖12. 測(cè)試網(wǎng)絡(luò)連接 同時(shí),將EdgeBoard的時(shí)間改成當(dāng)前時(shí)間,否則離線SDK可能會(huì)激活失敗,然后對(duì)離線SDK解壓,進(jìn)入到EasyDL文件夾,解壓cpp文件夾中的tar包。 圖13.修改本地時(shí)間 圖14. 解壓cpp文件中的tar包 根據(jù)官方文檔,編輯cpp-->demo文件夾中的demo.cpp文件,將EdgeBoard專用序列號(hào)填入指定的位置處,如圖15所示,改過之后,在demo文件夾中新建build文件夾,進(jìn)行編譯。 圖15. 添加序列號(hào) 圖16. 編譯過程 編譯完成后,開始進(jìn)行模型推理。我們放置一張圖片(如圖17)到RES文件夾中,調(diào)用RES資源文件夾中的模型,以及測(cè)試圖片的路徑,在build下運(yùn)行命令,如圖18所示。 圖17. 待測(cè)試照片 圖18. 執(zhí)行推理預(yù)測(cè) 從上面的打印信息中可以看到,EasyDL的模型在EdgeBoard上做出了完美的預(yù)測(cè),corgi,分值p=0.999023,說(shuō)明99%的概率是柯基,是不是很準(zhǔn)。如果說(shuō)這樣看起來(lái)不直觀,EasyDL的SDK還支持http服務(wù)的調(diào)用,下面來(lái)開啟一下http服務(wù),如圖19所示。 圖19. 開啟http服務(wù) 圖20. http服務(wù)顯示界面 開啟http服務(wù)后,在瀏覽器中寫入http://{EdgeBoard ip地址}:24401,比如EdgeBoard的ip是192.168.1.254,就寫http://192.168.1.254:24401就出來(lái)如圖18的顯示界面。 圖21. 上傳圖片進(jìn)行推理預(yù)測(cè) 點(diǎn)擊上傳圖片,選擇測(cè)試集中的狗的圖片,結(jié)果就立馬出來(lái)了,置信度為1說(shuō)明,百分之百就是可愛的比熊啦! 至此,我們就完成了一個(gè)狗分類的模型訓(xùn)練和離線部署。 福利 據(jù)可靠小道消息:EdgeBoard正在打折中,歷史最低價(jià),降價(jià)1000元,有興趣可以看看。 |