OpenCV 4.0 正式版來啦!
重回英特爾的 OpenCV 終于迎來一次大版本更新,增加了諸多新特性,快來一起看看吧~
因為 OpenCV 最開始開發時的語言是 C,導致許多模塊無法利用 C++ 11 的良好特性,OpenCV 4.0 版本的一個重要使命就是去除 C 語言風格的接口,使其完全支持 C++ 11!
1.大量從 OpenCV 1.x 遺留的 C 語言風格的 API 接口被刪掉,主要影響的模塊是 objdetect, photo, video, videoio, imgcodecs, calib3d。
2.在 core 模塊中的持久化(在 XML,YAML 或 JSON 中存儲和加載結構化數據)已完全用 C ++ 重新實現,并去除了相應的 C 風格的接口。 目前,base64 支持尚未完成(僅支持加載 base64 編碼的 XML 和 YAML,還未支持編碼)。 現在,存儲在 FileNode 中的序列的隨機訪問是 O(N) 操作; 使用 cv :: FileNodeIterator 能夠更快地進行順序訪問。 速度上,FileStorage 的加載比以前的實現少了 3-6 倍的內存!
3.編譯新版 OpenCV 現在需要支持 C++ 11 的編譯器。
DNN(深度神經網絡)模塊是目前 OpenCV 更新最重要的模塊!
1.增加 Mask-RCNN 模型支持。
使用指南:
https://github.com/opencv/opencv/wiki/TensorFlow-Object-Detection-API
Python例子:
https://github.com/opencv/opencv/blob/master/samples/dnn/mask_rcnn.py
作者曾經報道過的例子:
OpenCV4.0 Mask RCNN 實例分割示例 C++/Python實現
2.集成 ONNX 解析器。支持多個流行的分類網絡。 部分支持 YOLO 對象檢測網絡(YOLO 的 ONNX 版本缺少一些提供矩形列表的最終圖層)。
3.通過引入 Intel DLDT 改進 DNN 模塊速度。
Intel DLDT 近期已經開源,詳見:
https://software.intel.com/openvino-toolkit
4.API 更改:默認情況下,blobFromImage 方法不會交換 R 和 B 通道,也不會對輸入圖像進行裁剪。 而且,此 API 更改也已添加到 OpenCV 3.4 分支。
5.為不支持 OpenCL 而支持 Vulkan 的硬件平臺添加了實驗性質的 Vulkan 后端(還在開發中!不建議大家使用)。
6.為 OpenCV 支持的最流行的深度學習網絡添加了快捷方式。可以通過指定模型的別名,跳過預處理參數甚至模型的路徑!
比如:
python object_detection.py --model opencv_face_detector.caffemodel --config opencv_face_detector.prototxt --mean 104 177 123 --width 300 --height 300
可以直接被替代為:
python object_detection.py opencv_fd
7.修復了 AMD 和 NVIDIA GPU 上的 OpenCL 加速。現在,可以為模型啟用 DNN_TARGET_OPENCL,開啟 OpenCL 支持。 請注意,DNN_TARGET_OPENCL_FP16 僅在英特爾 GPU 上進行測試,因此仍需要額外的flags。(這個善意的提醒也就意味著你最好不要用那兩家的顯卡玩OpenCV(^ ^))
G-API 為算法的硬件優化加速提供計算圖支持!
opencv_gapi 是全新添加的模塊, 它是非常有效的圖像處理引擎。開發者可以在程序中定義多個圖像處理步驟組成的圖,執行的時候進行優化,使得 fast and portable。
非常看好這一模塊的應用!
“加速”是 OpenCV 開發永恒不變的主題!
每次發布這塊的說明都差不多,總結起來就是一句話:
我們很努力地給你們在 CPU 的指令級上進行了加速,只要是支持該指令的 CPU 盡量讓你們用上,而且我們還支持 NEON 了哦~
objdetect 模塊新增 QR 碼的檢測和解碼!
因為這個功能在移動端幾乎成為 APP 的標配了。
參考例子:
https://github.com/opencv/opencv/blob/master/samples/cpp/qrcode.cpp
作者曾經對檢測功能進行了測試:
OpenCV4.0 快速QR二維碼檢測測試示例
實現了流行的 Kinect Fusion 算法!
并針對 CPU 和 GPU(OpenCL)進行了優化,集成到 opencv_contrib / rgbd 模塊中。 為了使實時采集處理更高效,在 opencv / videoio 模塊中更新了 Kinect 2 支持。 在 4.0 beta 版本中,iGPU 的代碼已經加速,在高分辨率的情況下(512x512x512 integration volume),性能提升了 3 倍。
非常高效且高質量的 DIS 密集光流算法已經從 opencv_contrib 轉移到 opencv/video 模塊。
示例:
https://github.com/opencv/opencv/blob/master/samples/cpp/dis_opticalflow.cpp
這還是比較贊的,之前 OpenCV 的光流模塊相比學術界的最新成果實在是太弱了。
總結
新版 OpenCV 更加聚焦圖像處理基礎功能和深度學習模塊!英特爾自家的加速庫和 G-API 是值得表揚的亮點!
-
C語言
+關注
關注
180文章
7630瀏覽量
140161 -
編譯器
+關注
關注
1文章
1654瀏覽量
49844
原文標題:千呼萬喚始出來!OpenCV 4.0正式發布!
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
為LSDK構建opencv時遇到的問題求解
使用OpenCV保存從攝像頭捕獲的視頻時更改顏色輸出視頻收到警告怎么解決?
安信可大功率LoRa模組來啦,傳輸距離可達6.7km

RK3568 + OpenCV 會碰撞出什么火花?案例詳解:2-1 基于OpenCV的畫線實驗
【龍芯2K0300蜂鳥板試用】5 搭建opencv開發環境
OpenCV圖像識別C++代碼
opencv圖像識別有什么算法
opencv-python和opencv一樣嗎
opencv的主要功能有哪些
基于OpenCV的人臉識別系統設計
I.MX6ULL-飛凌 ElfBoard ELF1板卡 - 如何在Ubuntu中編譯OpenCV庫(X86架構)
嵌入式學習-飛凌ElfBoard ELF 1板卡 - 如何在Ubuntu中編譯OpenCV庫
ELF 1技術貼|如何在Ubuntu中編譯OpenCV庫

評論