計算機視覺/影象處理研究中經常要用到Matlab,雖然其自帶了影象處理和計算機視覺的許多功能,但是術業有專攻,在進行深入的視覺演算法研究的時候Matlab的自帶功能難免會不夠用。本文收集了一些比較優秀的Matlab計算機視覺工具箱,希望能對國內的研究者有所幫助。

VLFeat:著名而常用

許可證:BSD

著名的計算機視覺/影象處理開源專案,知名度應該不必OpenCV低太多,曾獲ACM Open Source Software Competition 2010一等獎。使用C語言編寫,提供C語言和Matlab兩種介面。實現了大量計算機視覺演算法,包括:

  • 常用影象處理功能,包括顏色空間變換、幾何變換(作為Matlab的補充),常用機器學習演算法,包括GMM、SVM、KMeans等,常用的影象處理的plot工具。
  • 特徵提取,包括 Covariant detectorsHOGSIFT,MSER等。VLFeat提供了一個vl_covdet() 函式作為框架,可以方便的統一所謂“co-variant feature detectors”,包括了DoG, Harris-Affine, Harris-Laplace並且可以提取SIFT或raw patches描述子。
  • 超畫素(Superpixel)分割,包括常用的Quick shiftSLIC演算法等
  • 高階聚類演算法,比如整數KMeans:Integer k-means (IKM)、hierarchical version of integer k-means (HIKM),基於互資訊自動判定聚類類數的演算法Agglomerative Information Bottleneck (AIB) algorithm等
  • 高維特曾匹配演算法,隨機KD樹Randomized kd-trees

可以在這裡檢視VLFeat完整的功能列表。

MexOpenCV:讓Matlab支援呼叫的OpenCV

作者Kota Yamaguchi桑是石溪大學(Stony Brook University)的PhD,早些時候自己搞了一套東西把OpenCV的程式碼編譯成Matlab可用的mex介面,然後這個東西迅速火了。今年夏天這個專案被OpenCV吸收為一個模組,貌似是搞了一個Google Summer of Code(GSoC)的專案,最近(大概是9、10月)已經merge到了OpenCV主包,有興趣的可以到Github的OpenCV庫下的module/matlab去玩一下,應該會在10月份的OpenCV 3 alpha里正式釋出。現在OpenCV就同時有了Python和Maltab的binding(好強大)。具體的功能就不細說了,既然是OpenCV的binding,當然是可以使用OpenCV的絕大多數演算法了。比如這樣:

facedetect

這位Peter大哥目前在The University of Western Australia工作,他自己寫了一套Matlab計算機視覺演算法,所謂工具箱其實就是許多m檔案的集合,全部Matlab實現,無需編譯安裝,支援Octave(如果沒有Matlab的話,有了這個工具箱也可以在Octave下進行影象處理了)。別看這位大哥單槍匹馬,人家的工具箱可是相當有名,研究時候需要哪個Matlab的計算機視覺小功能,直接到他家主頁上下幾個m檔案放在自己資料夾就好了。這個工具箱主要以影象處理演算法為主,附帶一些三維視覺的基本演算法,列一些包括的功能:

可以在網站上看到全部功能的介紹和下載,非常推薦試一下,也可以學到不少演算法。

Machine Vision Toolbox:側重機器視覺、三維視覺

許可證:LGPL

以前沒有用過這個工具箱,最近發現竟然非常強大,而且和我自己的工作還很相關。這個工具箱側重機器視覺,作者是另一個Peter,Peter Corke在機器人界很有名,他在2011年寫了一本書《Robotics, Vision & Control》介紹了機器視覺相關的顏色、相機模型、三維視覺、控制等研究,並配套這個工具箱。演算法包括了大量常用的視覺和影象處理小函式,,這些就不提了,提幾個別的工具箱一般沒有的功能

  • Bag of words的Matlab實現
  • 各種相機模型的實現,包括普通相機、魚眼相機、Catadioptric相機模型等等。如果你做機器人視覺、掛在各種廣角相機的話,這些模型實現會很有用
  • 自帶簡單的相機標定功能
  • 對極幾何(Epipolar Geomtry)的相關演算法函式
  • Plucker座標的實現,做廣義相機模型(Generalized camera model)很有用

DIPUM Toolbox:經典教材配套

岡薩雷斯著名的影象處理教材《數字影象處理》的配套工具包,主要是書中影象處理演算法的實現,名氣自然是不必說了,網上可以免費下到加密後的p檔案放在Matlab下面用,作為影象處理入門的上手玩具。

MATLAB Functions for Multiple View Geometry:又一個經典教材配套

許可證:MIT

又是一本大名鼎鼎的教材《計算機視覺中的多圖幾何》(Multiple View Geometry in Computer Vision),值得所有做三維視覺的研究者好好研究的書,國內很早就翻譯了中文版。作者Zisserman提供了部分書中演算法的Matlab實現,是深入理解書中理論的非常好的輔助材料。

其他的工具箱

  • DIPImage & DIPLib,提供Matlab和C介面的影象處理功能,比較早,現在估計很少有人用或者知道了吧?
  • ,計算機視覺和模式識別相關的Matlab功能,好像沒什麼人用。
  • 相關領域的工具箱,比如做機器學習的、做Markov隨機場的等等,以後有機會寫一下。
  • 特定功能的工具箱,比如相機標定工具箱,這個可推薦的還陣挺多,以後有機會寫一下。
  • 這個連結裡可以找到一些Matlab的開源工具箱。