1. 程式人生 > >OpenCV3.0 3.1版本號的改進

OpenCV3.0 3.1版本號的改進

應用 接口 make 基礎 isa pan tell 模式 text

??

摘要

OpenCV如今更新到了3.1版本號,相對OpenCV2有了非常大改進,當中對於硬件加速,移動開發(IOS,android)的支持成為亮點。 新版的OpenCV採用了內核+插件的架構模式,總體上更加易於擴展。 當中最與時俱進的特點就是 支持最新的 Windows 和 OS X 操作系統和最新的開發工具 (VS2015 和 Xcode 7),支持 Andorid 5。軟件的更新換代推動硬件更新,並進一步推動摩爾定律,相信OpenCV的新版會帶動很多其它人更新Win10,vs2015等等革命性的產品,同一時候購買能夠並行加速的N卡。在軟硬件層面獲取性能的提升從而產出科研成果或者優秀的應用。


(一)google編程之夏

OpenCV基礎庫的更新:得益於google summer of code更新了一大批有意思的項目
google編程之夏的介紹:https://linuxtoy.org/archives/mentor-in-google-summer-of-code-1.html
    • Omnidirectional Cameras Calibration and Stereo 3D Reconstruction – opencv_contrib/ccalib module (Baisheng Lai, Bo Li)
    • Structure From Motion – opencv_contrib/sfm module (Edgar Riba, Vincent Rabaud)
    • Improved Deformable Part-based Models – opencv_contrib/dpm module (Jiaolong Xu, Bence Magyar)
    • Real-time Multi-object Tracking using Kernelized Correlation Filter – opencv_contrib/tracking module (Laksono Kurnianggoro, Fernando J. Iglesias Garcia)
    • Improved and expanded Scene Text Detection – opencv_contrib/text module (Lluis Gomez, Vadim Pisarevsky)
    • Stereo correspondence improvements – opencv_contrib/stereo module (Mircea Paul Muresan, Sergei Nosov)
    • Structured-Light System Calibration – opencv_contrib/structured_light (Roberta Ravanelli, Delia Passalacqua, Stefano Fabri, Claudia Rapuano)
    • Chessboard+ArUco for camera calibration – opencv_contrib/aruco (Sergio Garrido, Prasanna, Gary Bradski)
    • Implementation of universal interface for deep neural network frameworks – opencv_contrib/dnn module (Vitaliy Lyudvichenko, Anatoly Baksheev)
    • Recent advances in edge-aware filtering, improved SGBM stereo algorithm – opencv/calib3d and opencv_contrib/ximgproc (Alexander Bokov, Maksim Shabunin)
    • Improved ICF detector, waldboost implementation – opencv_contrib/xobjdetect (Vlad Shakhuro, Alexander Bovyrin)
    • Multi-target TLD tracking – opencv_contrib/tracking module (Vladimir Tyan, Antonella Cascitelli)
    • 3D pose estimation using CNNs – opencv_contrib/cnn_3dobj (Yida Wang, Manuele Tamburrano, Stefano Fabri)

(二)社區的貢獻


社區的貢獻我說幾個我覺的比較有意思的:
1.RGD-D格式圖像的支持。眾所周知這是如今三維重建領域的一大熱門。帶有深度信息的圖像極慷慨便了三維重建步驟。相當於直接可以重建點雲。
2.cvpr歷來是比較註重project領域的應用,本次增加了cvpr2015的一篇新論文。可謂與時俱進。我們用上OpenCV就用上了最前沿的科研成果。

(這篇是機器學習的相關內容)


3.更新了python3的相關內容,使用python3重寫了python的一些接口

(三)其它一些改進

1.IOS的更新。從2.4.3版本號開始支持ios 主要調用的是oc接口 http://docs.opencv.org/3.1.0/d3/dc9/tutorial_table_of_content_ios.html#gsc.tab=0
2.OpenCL(感覺這個比cuda靠譜)
3.Intel芯片在性能上的提升
4.硬件加速層:HAL (Hardware Acceleration Layer)。封裝了一些經常使用矩陣加減法的硬件加速實現。後序3.2版本號在這塊會有比較大的改進,畢竟要用加速就得又一次編譯比較復雜。

5.貢獻了一個直接使用OpenCV處理圖像的gui接口(應該說是程序更準確),假設你僅僅是想處理一下圖片不想寫代碼這個正好滿足你的需求

http://www.tsdconseil.fr/log/opencv/demo/index-en.html

(四)3.0版本號的主要更新

1.直接集成了cuda模塊 cuda模塊的介紹: http://docs.opencv.org/3.0-last-rst/modules/cuda/doc/introduction.html 看了一下文檔。這玩意還得用cmake又一次編譯才幹用。拉倒吧。老夫編譯一次幾個小時。各種附加依賴庫錯誤層出不窮。有那gpu加速的那點時間,要麽直接用cuda重寫了,要麽串行也算出來了。

為啥就不能僅僅能點,檢測到是N卡加幾個dll或者配置一下直接跑呢。還請過來人指點迷津。



2.配置上更加方便

技術分享
3.架構的改進 體會一下插件加擴展的架構

技術分享

參考文獻

OpenCV git上面的更新日誌: https://github.com/Itseez/opencv/wiki/ChangeLog 《OpenCV3編程入門》----感覺好像沒介紹多少有關3的新特性,確實是入門書 http://zhuanlan.zhihu.com/hacker-and-painter/19988205

OpenCV3.0 3.1版本號的改進