<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 智能計(jì)算 > 進(jìn)階指南 > 不用寫程序也能輕松上手─DL Workbench圖形化接口工具(下)

          不用寫程序也能輕松上手─DL Workbench圖形化接口工具(下)

          作者: 時(shí)間:2021-06-01 來(lái)源:英特爾 收藏

          *實(shí)際案例操作:SSD對(duì)象檢測(cè)

          本文引用地址:http://www.ex-cimer.com/article/202106/426072.htm

          接下來(lái)就用一個(gè)實(shí)際的例子來(lái)說(shuō)明如何操作。

          1.數(shù)據(jù)集預(yù)處理

              如果手上沒有現(xiàn)成的數(shù)據(jù)集可供測(cè)試,可以參考官網(wǎng)[6]的說(shuō)明下載需要的公開數(shù)據(jù)集及標(biāo)注檔(Annotations)。這里以COCO 2014數(shù)據(jù)集舉例說(shuō)明。點(diǎn)選網(wǎng)頁(yè)[6]上Download COCO Dataset下的[2014 Val images](約6.2G Byte)和[2014 Train/Val annotations](約241M Byte)下載圖像集(val2014.zip)和標(biāo)注文檔(annotations_trainval2014.zip)。

              接著建立一個(gè)文件夾(/home/&lt;用戶名稱&gt;/Work)來(lái)存放這兩個(gè)文件。

              選擇網(wǎng)頁(yè)[6]Cut COCO Dataset下的[the script to cut datasets](cut_dataset.py)另存新文件到剛才建立的文件夾中。最后執(zhí)行數(shù)據(jù)集減量(cut)操作,只保留少部份文件,方便導(dǎo)入(import)測(cè)試,完成后會(huì)自動(dòng)產(chǎn)生新的壓縮文件并存放在/home/&lt;使用名稱&gt;/Work/subsets/coco_subset_10_29.tar.gz。完整執(zhí)行命令如下所示。

          #先將數(shù)據(jù)集和標(biāo)注文件及剪切程序復(fù)制到/home/用戶名稱/Work路徑下

          #再執(zhí)行cut_dataset.py,根據(jù)指定路徑(*_dir)獲得源文件,設(shè)置指定數(shù)量(output_size)的圖像,最后輸出到output_archive_dir路徑下。

          #這里的python是指3.x不是2.x,若計(jì)算機(jī)中同時(shí)有兩種版本請(qǐng)改用python3

          python/home/&lt;User Name&gt;/Work/cut_dataset.py

          --source_images_archive_dir=/home/&lt;User Name&gt;/Work/val2014.zip

          --source_annotations_archive_dir=/home/&lt;User

          Name&gt;/Work/annotations_trainval2014.zip

          --output_size=20

          --output_archive_dir=/home/&lt;User Name&gt;/Work/subsets

          --dataset_type=coco

          --first_image=10

              如果想自行準(zhǔn)備數(shù)據(jù)集,可參考官網(wǎng)[7],其中Common Objects in Context(COCO)就有說(shuō)明COCO文件安排格式,如Fig.5所示。

          1622526548402139.jpg

          Fig.5 自備COCO數(shù)據(jù)集格式,

          (a)一般分類/對(duì)象檢測(cè)

          (b)圖像語(yǔ)義分割

          (c)超分辨率

          2.導(dǎo)入模型及轉(zhuǎn)換參數(shù)精度

              為了方便后續(xù)同時(shí)測(cè)試CPU及Neural Compute Stick 2(MYRIAD),可使用下列命令啟動(dòng)DLWorkbench。

          ./start_workbench.sh-IMAGE_NAME openvino/workbench-TAG latest-ENABLE_MYRIAD

              不過(guò)這里經(jīng)測(cè)試后發(fā)現(xiàn),如果你的計(jì)算機(jī)上沒安裝標(biāo)準(zhǔn)版的Distribution of toolkit for Linux[8],而只有安裝Linux Docker環(huán)境時(shí),將無(wú)法使用iGPU和NCS2(MYRIAD)。如果使用Windows Docker環(huán)境(Windows 10+Widnows Subsystem for Linux 2[WSL2]+Ubuntu 18.04)時(shí)則只能使用CPU,因?yàn)槟壳拔④浽赪SL2上GPU和USB驅(qū)動(dòng)程序支持性仍不完整。

              接著就可以進(jìn)入DL Workbench網(wǎng)頁(yè)操作界面,開始設(shè)置主動(dòng)配置(Active Configurations)。這里需要設(shè)置四個(gè)項(xiàng)目,包括模型(Models)、目標(biāo)(Target)、環(huán)境(Environment)及數(shù)據(jù)集(Dataset)。使用前要確保網(wǎng)絡(luò)暢通,因?yàn)榻酉聛?lái)的工作需要從網(wǎng)絡(luò)上下載許多數(shù)據(jù)。

              首先按下“Create”鍵創(chuàng)建一組新的配置,導(dǎo)入(Import)現(xiàn)成的公開模型及預(yù)訓(xùn)練好的模型,由于在線預(yù)訓(xùn)練好的模型項(xiàng)目太多,可以直接輸入模型名稱快速檢索想要的模型。由于這個(gè)范例要測(cè)試對(duì)象檢測(cè)功能,所以選用「ssd_mobilenet_v2_coco」,再來(lái)選擇模型的參數(shù)精度(FP16/FP32)進(jìn)行轉(zhuǎn)換(Convert),完成后就會(huì)在模型區(qū)出現(xiàn)模型名稱、產(chǎn)生日期、參數(shù)精度、模型大小,狀態(tài)區(qū)會(huì)顯示是否還在傳輸中,完成后會(huì)產(chǎn)生一個(gè)綠色的對(duì)勾。完整流程如

          Fig.6所示。

          1622526638585778.jpg

          Fig.6設(shè)置DL Workbench推理模型流程。(OmniXRI Feb.2021整理制作)

              如果不想使用現(xiàn)成的模型,也可切換到原始模型(Original Model)頁(yè)面,根據(jù)系統(tǒng)要求自行提供對(duì)應(yīng)格式的模型(網(wǎng)絡(luò))及參數(shù)(權(quán)重值),再按“Import Model”即可導(dǎo)入自定義模型。

          目前可支持 IR,Caffe,MXNet,ONNX,TensorFlow等格式。

          1622526680360040.jpg

          Fig.7 DL Workbench導(dǎo)入自定義模型。(OmniXRI Mar.2021整理制作)

          3.導(dǎo)入數(shù)據(jù)集

              點(diǎn)選Validation Dataset旁的“Import”鍵,進(jìn)入導(dǎo)入驗(yàn)證數(shù)據(jù)集頁(yè)面,按“Choose File”鍵,選擇歩驟1產(chǎn)生的coco_subset_10_29.tar.gz,按下“Import”,即可完成導(dǎo)入數(shù)據(jù)集。如Fig.8所示。

          1622526725774985.jpg

          Fig.8 DL Workbench導(dǎo)入數(shù)據(jù)集。(OmniXRI Mar.2021整理制作)

          4.設(shè)置目標(biāo)/環(huán)境

              這里可看到目前有CPU和MYRIAD(NCS2)兩種裝置可供選擇,可先選擇其中一種(CPU),點(diǎn)擊模型和數(shù)據(jù)集后即可按下頁(yè)面最下方的“Create”建立第一種配置。如Fig.9所示。這里要注意的是,模型及數(shù)據(jù)集沒有準(zhǔn)備好之前(尚在傳輸或轉(zhuǎn)換中)是無(wú)法設(shè)置目標(biāo)及環(huán)境。

          1622526765700229.jpg

          Fig.9 DL Workbench設(shè)置目標(biāo)環(huán)境并建立配置。(OmniXRI Mar.2021整理制作)

          5.建立基準(zhǔn)點(diǎn)

              按下“Create”建立第一組配置后,就會(huì)進(jìn)入配置頁(yè)面,并進(jìn)行第一次推理,自動(dòng)產(chǎn)生第一個(gè)基準(zhǔn)點(diǎn)。推理時(shí)根據(jù)執(zhí)行硬件的不同,可能需要等待一小段時(shí)間,完成后會(huì)得到最佳的輸出速度(Best Throughout,FPS)、延遲時(shí)間(Respective Latency,ms)及推理精確度(Accuracy),并在效率綜合圖表上繪出一個(gè)參考點(diǎn)。

              通常預(yù)設(shè)為單獨(dú)推理(Single Inference),用戶可自由定義要測(cè)試的并行推理(Parallel Infers)及批次大小(Batch Size),再按下“Execute”鍵來(lái)測(cè)試不同條件的推理效果。如果覺得一直手動(dòng)調(diào)整太麻煩,也可使用組推理(Group Inference),直接點(diǎn)擊要測(cè)試的組合,按下“Execute”鍵,然后泡杯咖啡慢慢等結(jié)果出來(lái)。從產(chǎn)出的圖表就可一眼看出哪種組合的效果最好,做為后續(xù)打包輸出的依據(jù),如Fig.10所示。

          1622526806345935.jpg

          1622526828733282.jpg

          Fig.10 DL Workbench建立基準(zhǔn)點(diǎn)及結(jié)果圖。(OmniXRI Mar.2021整理制作)

          6.基準(zhǔn)點(diǎn)效能比較

              測(cè)試效果除了可以使用單獨(dú)或組測(cè)試外,也可進(jìn)行多種硬件的推理效果比較。首先點(diǎn)擊頁(yè)面上方的“Create”重新回到步驟4,此時(shí)只需改選裝置為[Intel Movidius Myriad X VPU](NCS2),其它模型和數(shù)據(jù)集不變,移到頁(yè)面最下方按下“Create”鍵就能新增一組配置,再次回到步驟5。此時(shí)可參考步驟5,將所有操作重復(fù)一遍,得出相同參數(shù)結(jié)果方便進(jìn)行比較。

              接著按下“Compare”就能進(jìn)入比較頁(yè)面進(jìn)行兩組配置的測(cè)試結(jié)果比較,若有兩組以上配置,則一次只能勾選兩組進(jìn)行比較。這里除了基本效果圖表外,還有平均延遲時(shí)間、各層運(yùn)行時(shí)間及更多圖表信息,可根據(jù)需求自行參考,如Fig.11所示。

          1622526866471800.jpg

          1622526866247549.jpg

          Fig.11 DL Workbench多配置基準(zhǔn)點(diǎn)效能比較。(OmniXRI Mar.2021整理制作)

          7.上傳圖像測(cè)試

              經(jīng)過(guò)上面一連串設(shè)置及找到最優(yōu)配套后就可以來(lái)測(cè)試一下模型推理能力,這里支持直接上傳單張測(cè)試圖像來(lái)實(shí)驗(yàn)。首先切換到“Test”頁(yè)面,按下“Select Images”上傳待測(cè)試的圖像,或者直接把圖像拉到這個(gè)框里面。接著按下“Test”進(jìn)行測(cè)試,預(yù)測(cè)(Predicitions)結(jié)果就會(huì)出現(xiàn)在右方。顯示結(jié)果內(nèi)容包括一組可調(diào)的臨界值(Threshold)和高于臨界的對(duì)象,同時(shí)會(huì)顯示對(duì)象的分類編號(hào)(Class ID#)和置信度(Confidence)。點(diǎn)擊對(duì)象編號(hào)時(shí),左側(cè)還會(huì)繪制出對(duì)應(yīng)的內(nèi)容。若覺得檢測(cè)出的對(duì)象太少,可將臨界值調(diào)低,再確認(rèn)一下。

              另外目前COCO檢測(cè)結(jié)果只有用數(shù)字編號(hào)(Class#00)表示,并沒有直接卷標(biāo)(Label)文字標(biāo)示,不容易直接確認(rèn)結(jié)果。如果想更確認(rèn)編號(hào)對(duì)應(yīng)內(nèi)容,可參考[9]說(shuō)明。一般COCO有91分類和80分類(從91類刪除部份),而現(xiàn)在對(duì)應(yīng)的是91分類的標(biāo)簽。

              接著就用幾張圖來(lái)實(shí)驗(yàn)一下結(jié)果,第一組貓和狗,一張對(duì)象重迭(Ex.1-1)、一張物件分開(Ex.1-2)。第二組蘋果和香蕉,一張對(duì)象重迭(Ex.2-1)、一張物件分開(Ex.2-2)。初步實(shí)驗(yàn)結(jié)果可看出SSD_MobileNet_v2_COCO這組預(yù)練訓(xùn)模型對(duì)于重迭的對(duì)象似乎分辨能力較弱,而較大的對(duì)象則辨識(shí)能力尚可接受。不過(guò)這樣的實(shí)驗(yàn)數(shù)據(jù)太少,所以結(jié)論可能不完全正確,僅供參考。測(cè)試內(nèi)容如Fig.12所示,而測(cè)試結(jié)果如Fig.13~16所示。

          1622526929673397.jpg

          Fig.12 DL Workbench進(jìn)行對(duì)象檢測(cè)流程及測(cè)試樣本圖像。(OmniXRI Mar.2021整理制作)

          1622526950249434.jpg

          Fig.13 Ex.1-1對(duì)象檢測(cè)實(shí)驗(yàn)結(jié)果。(OmniXRI Mar.2021整理制作)

          1622526969794431.jpg

          Fig.14 Ex.1-2對(duì)象檢測(cè)實(shí)驗(yàn)結(jié)果。(OmniXRI Mar.2021整理制作)

          1622526985584930.jpg

          Fig.15 Ex.2-1對(duì)象檢測(cè)實(shí)驗(yàn)結(jié)果。(OmniXRI Mar.2021整理制作)

          1622527007637845.jpg

          Fig.16 Ex.2-2對(duì)象檢測(cè)實(shí)驗(yàn)結(jié)果。(OmniXRI Mar.2021整理制作)

          8.打包輸出

              為了后續(xù)更方便地部署到對(duì)應(yīng)目標(biāo)工作環(huán)境,并且讓編程人員能直接編寫及呼叫對(duì)應(yīng)函數(shù),這里還提供打包輸出,不過(guò)目前只支持Linux。打包內(nèi)容包含所選擇執(zhí)行目標(biāo)(硬件)相關(guān)函數(shù)、模塊、Python API及安裝腳本。首先切換到“Pack”頁(yè)面,勾選所需項(xiàng)目,再按下“Pack”就會(huì)開始打包成一個(gè)壓縮文件(*.tar.gz)并詢問(wèn)要存放的路徑,如此即完成所有程序。如Fig.17所示。

          1622527048484938.jpg

          Fig.17 DL Workbench打包選項(xiàng)及程序。(OmniXRI Mar.2021整理制作)

          *小結(jié)

              通過(guò)以上的說(shuō)明及實(shí)例操作,相信大家應(yīng)該對(duì)Intel Toolkit中的DL Workbench有了一些初步的認(rèn)識(shí),圖形化的接口更是讓用戶可以輕松上手,一目了然。對(duì)于那些不會(huì)或不想編程就想要快速實(shí)驗(yàn)想法的人,及需要耗費(fèi)大量心力調(diào)參的工程師來(lái)說(shuō),該工具確實(shí)縮短了開發(fā)及測(cè)試時(shí)間。后續(xù)還有更多優(yōu)化及提升推理效果的工作,敬請(qǐng)期待。

          *參考文獻(xiàn)

          [1]許哲豪,”【Intel OpenVINO教學(xué)】如何利用Docker快速創(chuàng)建OpenVINO開發(fā)環(huán)境”

          http://omnixri.blogspot.com/2021/01/intel-openvinodockeropenvino.html

          [2]Intel OpenVINO Toolkit,"Install the DL Workbench"

          https://docs.openvinotoolkit.org/latest/workbench_docs_Workbench_DG_Install_Workbench.html

          [3]Intel OpenVINO Toolkit,"Download and Cut Datasets"

          https://docs.openvinotoolkit.org/latest/workbench_docs_Workbench_DG_Download_and_Cut_Datasets.html

          [4]Intel,“DL(Deep Learning)Workbench|OpenVINO?toolkit|Ep.42|Intel Software”

          https://youtu.be/20ROqz5j1y8

          [5]Intel,“DL(Deep Learning)Workbench-The Full Flow|OpenVINO?toolkit|Ep.43|

          Intel Software”https://youtu.be/DaR49bs8qwk

          [6]Intel OpenVINO Toolkit,"Download and Cut Datasets"

          https://docs.openvinotoolkit.org/latest/workbench_docs_Workbench_DG_Download_and_Cut_Datasets.html

          [7]Intel OpenVINO Toolkit,"Dataset Types"

          https://docs.openvinotoolkit.org/2021.2/workbench_docs_Workbench_DG_Dataset_Types.html

          [8]Intel OpenVINO Toolkit,"Install Intel?Distribution of OpenVINO?toolkit for Linux*"

          https://docs.openvinotoolkit.org/2021.2/openvino_docs_install_guides_installing_openvino_linux.html

          [9]Amikelive Technology Blog,"What Object Categories/Labels Are In COCO Dataset?"

          https://tech.amikelive.com/node-718/what-object-categories-labels-are-in-coco-dataset/

          *延伸閱讀

          [A]許哲豪,”【Intel OpenVINO?教學(xué)】GStreamer串流視頻智能分析不再慢吞吞─了解Intel OpenVINO DL Stream如何加速視頻推理”http://omnixri.blogspot.com/2021/02/intelopenvinogstreamerintel-openvino.htm



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();