我希望能夠通過這個回答,說明幾個概念之間的關(guān)系:包括計算機視覺(CV)、傳統(tǒng)CV算法、機器學習、深度學習,以及其他可能涉及的概念。
先說最基礎的概念,計算機視覺。根據(jù)維基百科的定義:
計算機視覺(Computer vision)是一門研究如何使機器“看”的科學,更進一步的說,就是指用攝影機和計算機代替人眼對目標進行識別、跟蹤和測量等機器視覺,并進一步做圖像處理,用計算機處理成為更適合人眼觀察或傳送給儀器檢測的圖像。
其中最后一句話,我想稍微做些擴展:計算機視覺的范疇,不僅是進行“圖像處理”,還可以用于圖像中的“信息抽取”,甚至是圖像內(nèi)容的“創(chuàng)造和生成”。確實,最初的計算機視覺算法,一大部分都關(guān)注于圖像處理,比如將光學傳感器獲取的信號轉(zhuǎn)換為人類容易理解的圖像;時至今日,尋常場景中的圖像處理算法已經(jīng)非常成熟,所以計算機視覺界的研究興趣更多地集中在高級語義理解(如分類、檢測、分割等問題)甚至是更加困難的圖像生成問題上。
如果題主所說的“傳統(tǒng)CV算法”指的是這些已經(jīng)被well-studied,甚至固化為硬件的算法,那么機器學習甚至深度學習(深度學習是機器學習的一個子集)就沒有什么用武之地。但是題主舉了個SVM的例子,于是我判斷,題主也許并沒有搞清楚機器學習和傳統(tǒng)方法的分界在什么地方,以及為什么計算機視覺領域(甚至整個人工智能領域)需要引入機器學習方法來解決問題。
所有人工智能(包括計算機視覺)問題,大致都可以描述為這樣一個數(shù)學問題:給定輸入 和輸出 ,尋找一個合適的函數(shù) ,使得 能夠最好地被滿足。有些時候,這個函數(shù)很容易找出來。例如一張輸入輸入和輸出 是一些關(guān)鍵點在兩個不同觀測視角下的坐標,而已知這兩個視角之間滿足某種仿射變換,那么就可以通過將定義為通用仿射變換,隨后以這些采樣到的關(guān)鍵點作為條件,求解仿射變換中的參數(shù)。在這個簡單的理論基礎上,發(fā)展出了若干圖像配準算法,例如著名的張正友標定法[1],至今仍然被廣泛應用于實際場景。這就是傳統(tǒng)CV算法的典型案例。

那么為什么要引入機器學習呢?因為在許多情況下,這個的形式很難被手工定義出來。此時為了解決問題,人們只能進行各種假設,比如 可以通過某種函數(shù)形式 去逼近。舉一個例子:我們要把一張RGB圖像轉(zhuǎn)化為一張灰度圖像,但是沒有任何方法能夠建立在嚴格的數(shù)學證明上。此時,我們只能根據(jù)經(jīng)驗定義一個近似的線性函數(shù):,然后根據(jù)經(jīng)驗和少量數(shù)據(jù)來確定其中的系數(shù)值 ——如今常用的一組系數(shù)是。注意,沒有人證明這個線性函數(shù)一定是最優(yōu)的,但是它能夠在絕大部分情況下工作得很好,于是這個線性函數(shù)就一直沿用下來,成為CV通用的標準。
再說一個更復雜的例子:如果我們要從一張RGB圖像 中識別它的語義標簽 ,那么至少在當前的科技水平下,我們甚至連應該長什么樣都不知道。于是人們采用了統(tǒng)計方法,從圖像中抽取若干特征,然后使用來做近似,其中是可以學習的參數(shù)。由于特征的維度可能很高,因此最好能有大量的訓練樣本用于確定參數(shù)的值。為了降低這些依賴,人們設計了許多方法,其中題主提到的SVM就是一種基于松弛損失函數(shù)的方法,它能夠很好地利用有限樣本處理高維數(shù)據(jù),減少模型的結(jié)構(gòu)風險[2]以及過擬合等副作用。

最后是深度學習。上述機器學習方法,對于特征的設計提出了很高的要求。在計算機視覺領域,本世紀的前10年,見證了大量手工設計的圖像特征[3][4],而這些方法在2011年前后遇到了不小的瓶頸。深度學習的思想,是采用更加自由的方式來定義 ,使得它(在數(shù)據(jù)量充足的情況下)更容易適應不同的問題。倒退10-15年,我們很難想象,一套相同的模型(卷積神經(jīng)網(wǎng)絡或者transformer)能夠適應各類不同的視覺問題(如識別類、生成類、恢復類等)。這些都歸功于深度學習:它提供了更大的特征空間,并且配套了一系列方法來進行復雜的優(yōu)化。最后要強調(diào)的是,深度學習是機器學習的一個子集,最好不要把兩者作為互斥的概念來討論問題。
如果理解這些內(nèi)容,我們就能夠討論題面了。傳統(tǒng)CV算法和統(tǒng)計學習方法各有特點:前者應用范圍受限,但是對數(shù)據(jù)依賴度低、求解比較穩(wěn)定;而后者則恰好相反。在實際應用中需要采用什么方法,要看具體場景的特點。當然,不僅是問題本身,容錯率、硬件配置、數(shù)據(jù)的數(shù)量和質(zhì)量等,都會影響算法的選擇;而根據(jù)場景選擇方案,判斷什么能做什么不能做,也是AI算法開發(fā)人員最需要的技能:這項技能比調(diào)參更難,收益也更大得多。
最后我要說,CV是永恒的問題,傳統(tǒng)方法是固化下來的方法,而統(tǒng)計學習是暫時性的解決方案,是當前技術(shù)水平下的無奈之舉——我們很難相信,這些方法會是CV或者AI的最終解決方案。歸根結(jié)底,如果一個問題能夠用傳統(tǒng)方法來解決,說明人類對它的理解已經(jīng)足夠深入,因而這些傳統(tǒng)方法值得被長期沿用下去(除非某些假設被推翻或者出于計算量等考慮需要做近似)。也就是說,傳統(tǒng)方法大概率不會被替代,而現(xiàn)行的統(tǒng)計學習方法必須被替代,只是不知道下次革命會發(fā)生在什么時候。
參考
[1]Zhang Z. A flexible new technique for camera calibration[J]. IEEE Transactions on pattern analysis and machine intelligence, 2000, 22(11): 1330-1334.
[2]Vapnik V. The nature of statistical learning theory[M]. Springer science & business media, 1999.
[3]Lowe D G. Distinctive image features from scale-invariant keypoints[J]. International journal of computer vision, 2004, 60(2): 91-110.
[4]Dalal N, Triggs B. Histograms of oriented gradients for human detection[C]//2005 IEEE computer society conference on computer vision and pattern recognition (CVPR'05). Ieee, 2005, 1: 886-893.