模型加速之openvino

      開發人員通過使用OpenVINO工具包開發多平臺計算機視覺解決方案,可以在雲中構建和訓練AI模型 - 在TensorFlow,MXNet和Caffe等流行框架上 - 並將它們部署到廣泛的產品中。該工具包基於卷積神經網絡(CNN),包括一個函數庫和預優化內核,可在邊緣實現基於CNN的深度學習推理,並優化對OpenCV和OpenVX的調用。它還支持跨計算機視覺加速器(CPU,GPU,Intel Movidius Neural Compute Stick和FPGA)的異構執行 - 使用通用API來完成。

1.什麼是OpenVINO工具包

      OpenVINO™工具包可快速部​​署模擬人類視覺的應用程序和解決方案。該工具包基於卷積神經網絡(CNN),可擴展英特爾®硬件的計算機視覺(CV)工作負載,從而最大限度地提高性能。OpenVINO™工具包包括深度學習部署工具包(DLDT)。

OpenVINO工具包:

  • 在邊緣啓用基於CNN的深度學習推理
  • 支持跨英特爾®CPU,英特爾®集成顯卡,英特爾®FPGA,英特爾®Movidius™神經計算棒,英特爾®神經計算棒2和採用英特爾®Movidius™VPU的英特爾®視覺加速器設計的異構執行
  • 通過易於使用的計算機視覺功能庫和預優化的內核,加快產品上市速度
  • 包括針對計算機視覺標準的優化調用,包括OpenCV *,OpenCL™和OpenVX *

2.OpenVINO包括組件:

  • 深度學習部署工具包(DLDT)
    • 深度學習模型優化器 - 一種跨平臺的命令行工具,用於導入模型並使用推理引擎爲最佳執行做好準備。模型優化器導入,轉換和優化模型,這些模型在流行的框架中訓練,例如Caffe *,TensorFlow *,MXNet *,Kaldi *和ONNX *。
    • 深度學習推理引擎 - 一種統一的API,允許對許多硬件類型進行高性能推斷,包括英特爾®CPU,英特爾®集成顯卡,英特爾®Movidius™神經計算棒,英特爾®神經計算棒2和採用英特爾®的英特爾®視覺加速器設計Movidius™VPU
    • 演示和示例 - 一組簡單的控制檯應用程序,演示如何在應用程序中使用推理引擎
    • 工具 - 一組簡單的控制檯工具,用於校準和測量模型的精度
    • 預先訓練的模型 - 一套用於學習和演示目的的預訓練模型或開發深度學習軟件
  • OpenCV - 爲英特爾®硬件編譯的OpenCV *社區版本包括用於計算機視覺的PVL庫。
  • OpenCL™2.1版的驅動程序和運行時
  • Intel®MediaSDK
  • OpenVX * - 英特爾針對在英特爾®硬件(CPU,GPU,IPU)上運行而優化的OpenVX *實施。

3.支持平臺與硬件:

      不同的系統與硬件要求如下:

windows

  • 第6代 - 第8代Intel®Core™
  • 英特爾®至強®v5系列
  • 英特爾®至強®v6系列
  • 英特爾®Movidius™神經計算棒
  • 英特爾®神經計算棒2
  • 採用Intel®Movidius™VPU的英特爾®視覺加速器設計

macOS * 10.14

  • 第6代 - 第8代Intel®Core™
  • 英特爾®至強®v5系列
  • 英特爾®至強®v6系列

linux(Ubuntu 16.04.x長期支持(LTS),64位:支持的最低內核爲4.14;CentOS 7.6,64位; Yocto Project Poky Jethro v2.0.3,64位(僅限目標並需要修改)

  • 第6代 - 第8代Intel®Core™
  • 英特爾®至強®v5系列
  • 英特爾®至強®v6系列
  • 採用英特爾®高清顯卡的英特爾®奔騰®處理器N4200 / 5,N3350 / 5,N3450 / 5
  • 英特爾®Movidius™神經計算棒
  • 英特爾®神經計算棒2
  • 採用Intel®Movidius™VPU的英特爾®視覺加速器設計

4、安裝openvino

      這裏根據自己適配的系統,結合官網的教程進行配置。以自己在Windows10 64位下的安裝步驟爲例,進行如下的闡述,

(1)安裝vs

      這裏版本隨你選,可以是15,17,19的,根據需求選擇(社區版或專業版都可以),安裝位置可以選擇默認C盤,也可以放在其他盤。下載鏈接:https://docs.microsoft.com/zh-cn/visualstudio/releasenotes/vs2019-relnotes.需要注意的是安裝需要帶上MSbuild包,這個後面有很大用。。。

(2)安裝cmake

     安裝cmake,主要是爲了編譯源碼文件,這裏安裝的版本需要在3.4以上,若vs選擇是19那麼cmake最好爲3.14版本,下載鏈接https://cmake.org/download/,,下載後可以將其加入到環境變量中,

然後在命令行下輸入cmake --version,輸出對應版本即表示安裝成功。

(3)安裝python

     想要用cpu來對深度學習模型進行加速的,大家python環境肯定都已經弄好了,這裏不再贅述,如果第一次安裝的話,可以試試anaconda,一步步來就能幫你配置好python環境了。

(4)安裝openvino

     按照官網的說法推薦安裝最新版的,點擊下載,簡單註冊一下就可以免費下載了。這裏我下載的是20.1版,下載完成是一個exe文件,然後點擊運行,這裏選擇默認的安裝位置,然後出現如下界面

openvino-install-windows-01.png

接着next一步步進行,最後如果出現下面界面,表示前面的依賴項沒有安裝成功,自己可以回退去檢查下環境變量等。

openvino-install-windows-02.png

當一切都安裝好後,你會在c盤路徑發現

這樣安裝就告一段落了。

5、測試示例

      當前面安裝步驟都完成後,如何來測試下openvino呢?官網文檔提供了測試demo,可以按以下步驟來進行實驗

(1)設置環境變量

      運行openvino之前,需要對環境進行提前配置,win+r進入dos下,然後運行下面指令

cd C:\Program Files (x86)\IntelSWTools\openvino\bin\  ##若不是默認安裝路徑,酌情修改

setupvars.bat

顯示success即表示設置成功。

(2)安裝目標網絡框架需要的包

     openvino提供了Caffe*, TensorFlow*, MXNet*, and ONNX*等幾種形式的接口(torch需要先轉化爲onnx格式),可以根據自己的需求進行安裝,在下面路徑下可以看到不同框架需求安裝包的批處理文件,

C:\Program Files (x86)\IntelSWTools\openvino_2020.1.033\deployment_tools\model_optimizer\install_prerequisites

這裏以安裝所有框架的install_prerequisites.bat爲例,在dos下進行該路徑,然後輸入install_prerequisites.bat即可,這裏需要注意的是由於下載源在國外,這樣下載速度太慢了,我們可以通過手動添加下載源鏡像來加速安裝,如

pip install tensorflow==1.14.0 -i https://pypi.douban.com/simple

具體詳情可參考https://blog.csdn.net/xiaomu_347/article/details/85067874

(3)運行實例

     openvino實現對神經網絡的加速一般通過xml文件和bin文件來實現,前者主要描述網絡構架,後者是其訓練好的權重。

官方給了幾個示例可以用來檢驗一下,以汽車檢測爲例,dos下運行一下指令

cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\demo\ ##根據自己的路徑切換

demo_security_barrier_camera.bat

等一段漫長的加載與下載庫的過程,如果出現了以下界面即表示成功。


補:運行demo過程中出現的問題

 

這個問題當初自己也困惑了好久,後來明白就是msbuild出的問題,只要在demo_security_barrier_camera.bat文件中加入以下指令保存即可(這裏根據自己安裝vs版本進行msbuild_version指定),然後在運行就可以了。

      在linux和win7上也嘗試過,按照步驟一步步來即可安裝成功,對於openvino,我的理解就是在模型在推理時能夠合併掉一些不必要的層,利用inter內部構造的一些並行運算等加速模型運行,和tensorrt的功能類似,當然網絡中間如果出現了一些openvino不支持的操作,只能通過間接實現或者放棄了。接下來就好好享受openvino帶來的飛速體驗吧!(但是可能有時候效果並沒你想的那麼好)。詳情可關注我的公衆號,大家一起學習

 

參考鏈接:

https://blog.csdn.net/kan2016/article/details/89323372(OpenVINO基本介紹)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章