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

如何用OpenCV進(jìn)行手勢識別--基于米爾全志T527開發(fā)板

評論