作者|Sachin Khode
編譯|Flin
來源|medium

在過去的幾年里,深度學習已經成為人工智能領域發展最快的領域之一,它已經取得了顯著的成果,特別是在計算機視覺領域,
例如,自動駕駛汽車,使計算機用接近人類的能力來識別物體,OpenCV的評價非常高,因為它包含了最先進的計算機視覺和機器學習演算法,
當深度學習技術部署到機器和物聯網設備中時,你將運行預先訓練的深度學習模型,世界級的計算機視覺軟體和運行深度學習模型的能力,都是在廉價的硬體上實作的,

OpenCV是一個開源的計算機視覺和機器學習軟體庫,它可能是目前最流行的計算機視覺軟體,該庫有超過2500個優化演算法,其中包括經典和最先進的計算機視覺和機器學習演算法,這些演算法可以用來檢測和識別人臉,識別物體,對視頻中的人類行為進行分類,跟蹤攝像機運動和移動物體等,
OpenCV是用C++撰寫的,你還可以為OpenCV使用Python包裝器,OpenCV還具有與Java和MATLAB的介面,并且受Windows、Linux、Android和macos的支持,

OpenCV神奇的深度學習
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/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/714.html
標籤:其他
下一篇:OpenCV入門
