做者|Sachin Khode
編譯|Flin
來源|mediumgit
在過去的幾年裏,深度學習已經成爲人工智能領域發展最快的領域之一。它已經取得了顯著的成果,特別是在計算機視覺領域。github
例如,自動駕駛汽車,使計算機用接近人類的能力來識別物體。OpenCV的評價很是高,由於它包含了最早進的計算機視覺和機器學習算法。算法
當深度學習技術部署到機器和物聯網設備中時,你將運行預先訓練的深度學習模型。世界級的計算機視覺軟件和運行深度學習模型的能力,都是在廉價的硬件上實現的。macos
OpenCV是一個開源的計算機視覺和機器學習軟件庫。它多是目前最流行的計算機視覺軟件。該庫有超過2500個優化算法,其中包括經典和最早進的計算機視覺和機器學習算法。這些算法能夠用來檢測和識別人臉,識別物體,對視頻中的人類行爲進行分類,跟蹤攝像機運動和移動物體等。網絡
OpenCV是用C++編寫的。你還能夠爲OpenCV使用Python包裝器。OpenCV還具備與Java和MATLAB的接口,而且受Windows、Linux、Android和macos的支持。架構
OpenCV的深度學習模塊被稱爲DNN。重要的是要理解DNN模型並非一個成熟的深度學習框架。併發
咱們沒法訓練任何深度學習網絡。沒有反向傳播,因此沒有學習發生。因此咱們能夠獲取一個輸入數據,經過以前訓練過的深度神經網絡模型,輸出結果。框架
這就是所謂的推理。在深度學習術語中,這意味着只有前向傳播。機器學習
如今若是你只有一個前向傳播,這會使得代碼更簡單,深度學習網絡的安裝和組裝速度更快,在CPU上也足夠快。DNN模塊的OpenCV支持Caffe、TensorFlow、Torch、Darknet和ONNX格式的模型。因爲OpenCV的深度神經網絡實現不依賴於一個框架,所以沒有該框架的限制。函數
另外一個優勢是,因爲這是模型的內部表示,所以OpenCV開發人員能夠有辦法來優化和加速代碼。隨着OpenCV實現了本身的深度學習實現,這將外部依賴性下降到最低。一個簡單的推理機將簡單地經過網絡傳遞輸入數據並輸出結果。
然而,有許多優化能夠執行,使推理速度更快。例如,一個高效的推理機能夠作一些事情,好比刪除神經網絡中未激活的部分,或者將多個層合併到一個單獨的計算步驟中。若是硬件支持16位浮點運算,其速度一般是32位版本的兩倍,則推理機能夠利用這一點來加快處理速度,而不會形成或幾乎不損失精度。
如今在物聯網和邊緣設備的世界裏,世界上大多數推理都是在CPU上完成的。你不會在你的監控攝像頭裏放一個幾百美圓的GPU。這就是OpensCV的深度學習模塊很是適合的緣由。你只需運行一個自主選擇的深度學習模型做爲推理機。
英特爾爲此投入了大量資金,併發布了OpenVINO工具包。OpenVINO或openvisualinferencing and Neural network Optimization,簡稱OpenVINO,旨在加速神經網絡在圖像分類和目標檢測等任務中的速度。
那麼背後發生了什麼呢?
加載模型後,它們將轉換爲OpenCV中的內部表示形式,這與Caffe很是類似。
若是咱們轉到OpenCV網站,咱們能夠看到它支持幾個基本的神經網絡層。因此能夠看到卷積和反褶積。你有了池化層,有了激活函數,好比Tanh、ReLU、Sigmoid和Softmax,還有Reshape, Flatten, Slice, 和Split等函數。
在opencv的Deep Learning wiki(https://github.com/opencv/opencv/wiki/Deep-Learning-in-OpenCV) 中,你能夠看到對著名的神經網絡架構的支持,好比AlexNet、GoogleNet、VGG和ResNet等。DNN模塊具備可用的圖像分類、目標檢測和語義分割等模型。
如今,若是每一個模型都被翻譯成一個內部表示,咱們如何確保在翻譯過程當中沒有丟失一些東西呢?OpenCV已經發布了一些測試結果,代表在準確性上,使用DNN模塊和ResNet 50和實際結果ResNet 50之間沒有任何區別。這意味着不管使用OpenCV的DNN模塊仍是原始的體系結構,都將獲得相同的結果。
https://en.wikipedia.org/wiki/OpenCV
https://github.com/opencv/opencv/wiki/Deep-Learning-in-OpenCV
原文連接:https://medium.com/dataseries/how-cool-is-opencv-85b6465361bc
歡迎關注磐創AI博客站:
http://panchuang.net/
sklearn機器學習中文官方文檔:
http://sklearn123.com/
歡迎關注磐創博客資源彙總站:
http://docs.panchuang.net/