OpenCV 4.0正式釋出,你關注哪些特性?

人工智慧頻道發表於2018-11-23

在OpenCV開創性 3.0 版本釋出 3 年半之後,終於,等來了OpenCV 4.0 第一個穩定版本!

OpenCV通過GITHUB正式釋出:https://github.com/opencv/opencv/wiki/ChangeLog#version400

OpenCV 是一個基於 BSD 許可(開源)發行的跨平臺計算機視覺庫,可以執行在 Linux、Windows、Android 和 Mac OS 作業系統上。它輕量級而且高效——由一系列 C 函式和少量 C++ 類構成,同時提供了 Python、Ruby、MATLAB 等語言的介面,實現了影像處理和計算機視覺方面的很多通用演算法。

我們一塊兒去看看它的新特性吧!

OpenCV 4.0正式釋出,你關注哪些特性?


1.OpenCV 最開始開發時的語言是 C,許多模組無法利用 C++ 11 的良好特性,所以自OpenCV1.x以來許多C風格的API就被幹掉啦。歷史好像就是這樣,前浪總歸是要···所以,學習OpenCV,最佳就是從最新的版本開始會比較好。

2.在 core 模組中的持久化(在 XML,YAML 或 JSON 中儲存和載入結構化資料)已完全用 C ++ 重新實現,也就是說C風格API拜拜了您那。目前,base64 支援尚未完成(僅支援載入 base64 編碼的 XML 和 YAML,還未支援編碼),用過OpenCV中ML模組嗎?以後,載入與儲存會快許多!

3.編譯新版 OpenCV 現在需要支援 C++ 11 的編譯器。

4.C++11的標準庫擴充套件,以後沒有cv::String與cv::Ptr了。現在,儲存在 FileNode 中的序列的隨機訪問是 O(N) 操作; 使用 cv :: FileNodeIterator 能夠更快地進行順序訪問。

OpenCV 4.0正式釋出,你關注哪些特性?


最為重要的就是 OpenCV  更新的 DNN (深度神經網路)模組啦!

1. 增加支援 Mask-RCNN 模型的預測。

使用指南:https://github.com/opencv/opencv/wiki/TensorFlow-Object-Detection-APIPython例子:https://github.com/opencv/opencv/blob/master/samples/dnn/mask_rcnn.py

2.整合  ONNX  解析器。 支援多個流行的分類網路。 部分支援 YOLO 物件檢測網路(YOLO 的 ONNX 版本缺少一些提供矩形列表的最終圖層)。

3.通過引入 Intel DLDT 改進 DNN 模組速度。不過,這個對一般的開發者沒有太大的影響。

Intel DLDT 近期已經開源,詳見:

https://software.intel.com/openvino-toolkit

4.這一條就和開發者相關性比較大了,DNN模組輸入tensor資料的API更改。預設情況下,blobFromImage 方法不會交換 R 和 B 通道,也不會對輸入影像進行裁剪。 而且,此 API 更改也已新增到 OpenCV 3.4 分支。

5.如果OpenCL不支援,可以通過Vulkan backend。(開發中···)

6.為 OpenCV 支援的最流行的深度學習網路新增了快捷方式。 可以通過指定模型的別名,跳過預處理引數甚至模型的路徑。

以前:python object_detection.py --model opencv_face_detector.caffemodel --config opencv_face_detector.prototxt --mean 104 177 123 --width 300 --height 300you can type just現在:python object_detection.py opencv_fd

7. 修復了  AMD   NVIDIA GPU  上的  OpenCL  加速。就是一個提醒,不需要配置太多,不過,不用 Intel GPU 是不是不太好。

OpenCV 4.0正式釋出,你關注哪些特性?


這兒得提一句,新模組 G-API 模組!

opencv_gapi 是全新新增的模組,它是非常有效的影像處理引擎。開發者可以在程式中定義多個影像處理步驟組成的圖,執行的時候進行優化,使得 fast and portable。

OpenCV 4.0正式釋出,你關注哪些特性?


效能全部提升,各種優化,跟開發者關係比較大的是這條,自己編譯OpenCV原始碼時候,新增CPU_BASELINE=AVX2可以獲得比原來15~30%的速度提升,請收藏此技能。

假裝此處有二維碼······

同時,objdetect 模組中新增 二維碼的檢測和解碼,這年代的移動App這個技能只能說是標配吧。

參照:https://github.com/opencv/opencv/blob/master/samples/cpp/qrcode.cpp

OpenCV 4.0正式釋出,你關注哪些特性?


3D物件掃描與模型建立流行演算法Kinect Fusion algorithm已經被實現,被整合到了rgbd模組中。

OpenCV 4.0正式釋出,你關注哪些特性?


非常高效且高質量的 DIS 密集光流演算法已經從 opencv_contrib 轉移到 opencv/video 模組。 

示例:https://github.com/opencv/opencv/blob/master/samples/cpp/dis_opticalflow.cpp

總結

新版 OpenCV 更加聚焦影像處理基礎功能和深度學習模組!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31545819/viewspace-2221449/,如需轉載,請註明出處,否則將追究法律責任。

相關文章