AI開發(fā)神器來了!支持CPU加速優(yōu)化!!
點擊下方卡片,關注“CVer”公眾號
AI/CV重磅干貨,第一時間送達
AI開發(fā)現(xiàn)狀
從過去AlphaGo在職業(yè)圍棋中擊敗世界冠軍,到現(xiàn)在大火的自動駕駛,人工智能(AI)在過去幾年中取得了許多成就。其中人工智能的成功離不開三要素:數(shù)據(jù)、算法和算力。其中對于算力,除了訓練(train),AI實際需要運行在硬件上,也需要推理(inference),這些都需要強大算力的支撐。
AI訓練硬件平臺:GPU、CPU、TPU
常見的模型訓練硬件平臺主要有:GPU、CPU和TPU。

CPU(Central Processing Unit) 具有最佳的可編程性,因此,它們?yōu)镃NN實現(xiàn)了最高的FLOPs利用率,并且由于內存容量大而支持最大的模型 GPU( Graphical Processing Unit ) 對于不規(guī)則計算(例如小批量和nonMatMul計算)顯示出更好的靈活性和可編程性;
TPU(Tensor Processing Unit) 已針對大型批次和CNN進行了高度優(yōu)化,并且具有最高的訓練能力。
截止目前為止,GPU是AI模型訓練的硬件主力軍,特別是以NVIDIA家的GPU為主。
AI推理引擎/部署工具:OpenVINO、TensorRT、Mediapipe
當模型訓練結束后,需要對算法模型進行上線部署。這個過程可能會遇到各種問題,比如,模型性能(大小、精度、速度)是否滿足上線要求,這些問題都決定著投入產出比。

OpenVINO介紹
OpenVINO是英特爾針對自家硬件平臺開發(fā)的一套深度學習工具庫,包含推理庫,模型優(yōu)化等等一系列與深度學習模型部署相關的功能。
OpenVINO是一個Pipeline工具集,同時可以兼容各種開源框架訓練好的模型,擁有算法模型上線部署的各種能力,只要掌握了該工具,你可以輕松的將預訓練模型在Intel的CPU、VPU等設備上快速部署起來。

TensorRT介紹
TensorRT是一個高性能的深度學習推理優(yōu)化器,可以為深度學習應用提供低延遲,高吞吐率的部署推理。TensorRT可用于對超大規(guī)模數(shù)據(jù)中心,嵌入式平臺或自動駕駛平臺進行推理加速。

MediaPipe介紹
MediaPipe是個基于圖形的跨平臺框架,用于構建多模態(tài)應用的機器學習pipeline。MediaPipe可在移動設備,工作站和服務器上跨平臺運行,并支持移動GPU加速。使用MediaPipe,可以將應用的機器學習pipeline構建為模塊化組件的圖形。

上述中,只有OpenVINO具有專屬為CPU優(yōu)化的特質, 提供的Demo和Samples都很充足,上手比較容易,可以用來快速部署開發(fā),在英特爾的硬件平臺上性能超過了大部分開源庫,因此本文將重點對OpenVINO進行介紹。
OpenVINO
官網(wǎng):https://docs.openvinotoolkit.org

OpenVINO 概述
OpenVINO(Open Visual Inference & Neural Network Optimization,開放視覺推理及神經(jīng)網(wǎng)絡優(yōu)化)是英特爾基于自身現(xiàn)有的硬件平臺開發(fā)的一種可以加快高性能計算機視覺和深度學習視覺應用開發(fā)速度工具套件,支持各種英特爾平臺的硬件加速器上進行深度學習,并且允許直接異構執(zhí)行。支持在Windows、Linux、macOS系統(tǒng)上運行,也支持Python / C / C++語言。
OpenVINO? 工具套件:
在邊緣設備上啟用基于卷積神經(jīng)網(wǎng)絡的深度學習推理;
支持跨英特爾? CPU、英特爾? 集成顯卡、英特爾? 神經(jīng)計算棒 2 和搭載英特爾? Movidius? 視覺處理器的英特爾? Vision Accelerator Design 的異構執(zhí)行;
通過一套易用的計算機視覺功能庫和預優(yōu)化內核庫來加速上線時間;
包括了針對計算機視覺標準進行優(yōu)化的調用,包括 OpenCV 和 OpenCL。
以下圖表顯示了典型的 OpenVINO? 工作流程:

模型準備,轉換和優(yōu)化
你可以使用你選擇的框架來準備和訓練深度學習模型,或者從 Open Model Zoo 下載預訓練模型。Open Model Zoo 包含針對各種視覺問題的深度學習解決方案,如物體識別、姿態(tài)估計、文本檢測和動作識別等。
OpenVINO? 工具套件的一個核心組件是模型優(yōu)化器(Model Optimizer),它是一個跨平臺命令行工具,可將經(jīng)過訓練的神經(jīng)網(wǎng)絡從源框架轉換為與 nGraph 兼容的開源中間表示 (IR),用于推理運算。
模型優(yōu)化器導入在 PyTorch、Caffe、TensorFlow、MXNet和 ONNX 等常用框架中經(jīng)過訓練的模型,并執(zhí)行幾項優(yōu)化,以盡可能刪除過多的層和群運算,從而更簡單、更快速地形成神經(jīng)網(wǎng)絡計算圖。

推理運行和調優(yōu)推理
OpenVINO? 的另一個核心組件是推理引擎(Inference Engine),它管理經(jīng)過優(yōu)化的神經(jīng)網(wǎng)絡模型的加載和編譯,在輸入數(shù)據(jù)上運行推理運算,并輸出結果。推理引擎可以同步或異步執(zhí)行,其插件架構管理用于在多個英特爾? 設備上執(zhí)行的適當編譯,包括主力 CPU 以及專用顯卡和視頻處理平臺。
你可以將 OpenVINO? 調優(yōu)實用程序與推理引擎一起使用,在模型上試用和測試推理。基準測試應用程序使用輸入模型運行迭代測試,以檢測吞吐量或延遲,交叉檢查應用程序對配置不同的推理的性能進行比較。訓練后優(yōu)化工具集成了一套基于量化和精度校準的工具,以進一步提升性能。

封裝和部署
英特爾? Distribution of OpenVINO? 工具套件為以下設備輸出經(jīng)過優(yōu)化的推理運行時:
英特爾? CPU
英特爾? Processor Graphics
英特爾? 神經(jīng)計算棒 2
采用英特爾? Movidius? 視覺處理器的英特爾? Vision Accelerator Design
Open Model Zoo
官網(wǎng):https://github.com/openvinotoolkit/open_model_zoo
Open Model Zoo包括豐富的優(yōu)化后的上百種深度學習模型和一系列演示,有助于加快高性能深度學習推理應用程序的開發(fā)。使用這些免費的預訓練模型,可以加快開發(fā)和生產部署過程。
官方提供的預訓練模型包含:目標檢測、物體識別、重識別、語義分割、實例分割、人體姿態(tài)估計、文本檢測、文本識別、行為識別、圖像檢索、機器翻譯等任務。其中目標檢測模型:Faster R-CNN、YOLOv2、YOLOv3、SSD等。


行人跟蹤Demo演示:


OpenVINO行業(yè)應用
OpenVINO一經(jīng)推出就得到行業(yè)內的普遍認可和支持,目前在工業(yè)、醫(yī)療、零售等領域廣泛應用。
工業(yè)(2D、3D視覺)


醫(yī)療(成像、分類、分割)

三星自動化超聲測量以改善臨床工作流程:通過OpenVINO?優(yōu)化的胎兒和產婦檢測。

新零售
解決零售困境:實時的購物者流量映射可以幫助零售商在瞬息萬變的市場中競爭。

如果你想了解更多關于Intel OpenVINO的生態(tài)和應用,可以點擊觀看下面視頻,主題是"破局AI開發(fā),釋放邊緣算力" AI開發(fā)者圓桌訪談,干貨滿滿!
未來展望
OpenVINO是一個比較成熟而且仍在快速發(fā)展的推理庫, 將計算機視覺等方向與AI模型推理更好地融合在一起,加快賦能產業(yè),助力AI開發(fā)者來設計具有實際應用價值的解決方案。
如果你還沒用過OpenVINO,趕快來嘗試吧!
整理不易,請給CVer點贊和在看![]()
