為什么深度學(xué)習(xí)不能取代傳統(tǒng)的計(jì)算機(jī)視覺技術(shù)?
點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)

當(dāng)你輾轉(zhuǎn)于各種論壇時(shí),相信會(huì)經(jīng)??吹竭@樣的問題:深度學(xué)習(xí)是否會(huì)取代傳統(tǒng)的計(jì)算機(jī)視覺?或者說,當(dāng)深度學(xué)習(xí)看起來如此有效時(shí),是否還有必要研究傳統(tǒng)的計(jì)算機(jī)視覺技術(shù)?
這是一個(gè)非常好的問題。
深度學(xué)習(xí)已經(jīng)徹底改變了計(jì)算機(jī)視覺和人工智能這一領(lǐng)域,許多曾經(jīng)看起來不可能解決的問題,深度學(xué)習(xí)都能夠解決——尤其是在圖像識(shí)別和分類問題上,機(jī)器已經(jīng)超越人類(短鏈:http://t.cn/Rnzv2JX)。事實(shí)上,深度學(xué)習(xí)也強(qiáng)化了計(jì)算機(jī)視覺在行業(yè)中的重要地位。
但是,深度學(xué)習(xí)對(duì)計(jì)算機(jī)視覺來說僅僅是一種工具,它不可能成為解決所有問題的萬能藥。所以,在這篇文章中,我想闡述一下為什么傳統(tǒng)計(jì)算機(jī)視覺技術(shù)仍然很重要,并且值得我們?nèi)ド钊雽W(xué)習(xí)和研究。
本文將分為以下三個(gè)部分:
深度學(xué)習(xí)需要大數(shù)據(jù)
深度學(xué)習(xí)有時(shí)過于深度(殺雞焉用牛刀)
傳統(tǒng)的計(jì)算機(jī)視覺有助于更好的使用深度學(xué)習(xí)
首先我需要解釋下什么是傳統(tǒng)的計(jì)算機(jī)視覺技術(shù),什么是深度學(xué)習(xí),以及深度學(xué)習(xí)為什么如此具有革命性。
在深度學(xué)習(xí)出現(xiàn)之前,如果你想對(duì)圖像進(jìn)行分類,首先需要執(zhí)行一個(gè)特征提?。╳iki:http://t.cn/RnzvIJ8)的步驟。特征是圖像中比較小的“有趣的”、具有描述性的或包含信息的塊。在這篇文章中你將會(huì)了解到傳統(tǒng)的計(jì)算機(jī)視覺技術(shù),包括邊緣檢測(cè)(wiki:http://t.cn/RnzvqtE),角點(diǎn)檢測(cè)(wiki:http://t.cn/RnzvSVQ),對(duì)象檢測(cè)(wiki:http://t.cn/RnzvpqH)等等。
就特征提取和圖像分類而言,使用這些技術(shù)的思路是:從統(tǒng)一類別對(duì)象的圖像中(椅子、馬等)提取盡可能多的特征,并將這些特征視為對(duì)象的一個(gè)“定義”(眾所周知的詞袋模型),然后在其他圖像中搜索這些“定義”,如果詞袋模型中有相當(dāng)一部分的特征都可以在這幅圖像中找到,那么這幅圖像被分類為包含該特定對(duì)象的類別(椅子,馬等)。
這種特征提取方法的難點(diǎn)在于,在給定圖像中,必須選擇需要查找哪些特征。當(dāng)圖像中類別過多時(shí)(如10或20個(gè)類別),就會(huì)變得復(fù)雜而難以分類。角點(diǎn)?邊緣?還是紋理特征?只有使用不同的特征才可以更好地描述不同類別的對(duì)象。如果你在分類時(shí)使用很多特征,就必須對(duì)大量的參數(shù)進(jìn)行微調(diào)。
深度學(xué)習(xí)為我們展示了端到端學(xué)習(xí)( end-to-endlearning)這一概念,簡(jiǎn)而言之,針對(duì)每個(gè)特定類別的對(duì)象,機(jī)器會(huì)自動(dòng)學(xué)習(xí)需要查找什么特征。它為每個(gè)對(duì)象提供了最具描述性和顯著性的特征。換句話說,神經(jīng)網(wǎng)絡(luò)可以探索圖像類別中的底層模式。
因此,通過端到端的學(xué)習(xí),你不再需要自己動(dòng)手來決定使用哪種傳統(tǒng)計(jì)算機(jī)視覺技術(shù)來描述這些特征,機(jī)器將會(huì)替你做這些工作?!哆B線》雜志這樣描述:
“舉個(gè)例子來說,如果你想訓(xùn)練一個(gè)[深度]神經(jīng)網(wǎng)絡(luò)來識(shí)別一只貓,你不需要告訴它要尋找圖像上的胡須、耳朵、毛發(fā)和眼睛。你需要做的就是向它展示成千上萬張貓的照片,這就能解決問題。如果它將狐貍誤認(rèn)為貓,你也不需要重寫代碼,只需要繼續(xù)訓(xùn)練即可?!?/span>
下圖展示了特征提?。ㄊ褂脗鹘y(tǒng)的計(jì)算機(jī)視覺技術(shù))和端到端學(xué)習(xí)二者之間的差異:

下面我們將繼續(xù)討論,傳統(tǒng)的計(jì)算機(jī)視覺為什么仍然有必要且值得我們?nèi)W(xué)習(xí)。
首先,深度學(xué)習(xí)需要數(shù)據(jù),并且是大量的數(shù)據(jù)!上面提到的那些經(jīng)典的圖像分類模型都是在大型數(shù)據(jù)集上進(jìn)行訓(xùn)練的。常用于訓(xùn)練的三種數(shù)據(jù)集分別是:
ImageNet數(shù)據(jù)集——包含150萬張圖像,有1000個(gè)類別。
MicrosoftCommon Objects in Context(COCO)數(shù)據(jù)集——包含250萬張圖像,有91個(gè)類別。
PASCAL VOC數(shù)據(jù)集——包含500萬張圖像,有20個(gè)類別。
比圖像分類簡(jiǎn)單的任務(wù)或許并不需要如此多數(shù)據(jù),但也少不到哪里去。你必須在你所擁有的數(shù)據(jù)上進(jìn)行訓(xùn)練(有些技巧能夠增強(qiáng)訓(xùn)練數(shù)據(jù),但也都是人為處理的方法)。
在訓(xùn)練數(shù)據(jù)范圍之外的數(shù)據(jù)上,已訓(xùn)練模型的表現(xiàn)就會(huì)很差,這是因?yàn)闄C(jī)器并沒有理解這個(gè)問題,所以不能在沒有訓(xùn)練過的數(shù)據(jù)上進(jìn)行泛化。
我們很難看到訓(xùn)練過的模型的內(nèi)在機(jī)制,手動(dòng)調(diào)參也相當(dāng)困難,因?yàn)樯疃葘W(xué)習(xí)模型里面有數(shù)百萬個(gè)參數(shù)——每個(gè)參數(shù)在訓(xùn)練過程中都需要調(diào)整。從某種意義上來說,深度學(xué)習(xí)模型就是一個(gè)黑匣子。
傳統(tǒng)的計(jì)算機(jī)視覺具有充分的透明度,這能夠使你對(duì)解決方案能否在訓(xùn)練環(huán)境之外運(yùn)行做一個(gè)更好的評(píng)估和判斷。你可以更容易地了解算法中存在的問題,弄清楚什么地方需要調(diào)整。
這也許是我支持繼續(xù)研究傳統(tǒng)計(jì)算機(jī)視覺技術(shù)的最佳理由。
訓(xùn)練一個(gè)深度神經(jīng)網(wǎng)絡(luò)需要很長(zhǎng)時(shí)間。如果使用專用硬件(例如高性能GPU)訓(xùn)練最先進(jìn)的圖像分類模型,也得需要將近一天的時(shí)間;如果使用標(biāo)準(zhǔn)筆記本電腦進(jìn)行訓(xùn)練,甚至需要一周或者更長(zhǎng)的時(shí)間。
此外,如果你的訓(xùn)練模型表現(xiàn)不佳應(yīng)該怎么辦?你必須重來一遍,使用不同的訓(xùn)練參數(shù)重新進(jìn)行訓(xùn)練,而且這個(gè)過程有時(shí)候還得重復(fù)數(shù)百次。
并不是所有問題需要使用深度學(xué)習(xí)。在某些問題上,傳統(tǒng)的計(jì)算機(jī)視覺技術(shù)的表現(xiàn)比深度學(xué)習(xí)更好,而且需要的代碼更少。
例如,我曾經(jīng)參與過一個(gè)項(xiàng)目——檢測(cè)每個(gè)通過傳送帶的錫罐中是否有紅色的勺子。你可以訓(xùn)練一個(gè)深度神經(jīng)網(wǎng)絡(luò)來檢測(cè)勺子并完成上述過程,但這比較耗費(fèi)時(shí)間;或者你也可以編寫一個(gè)簡(jiǎn)單的關(guān)于紅色的顏色閾值算法(在紅色范圍內(nèi)的任何像素都標(biāo)記成白色,其他像素則都是黑色),然后計(jì)算有多少白色像素,這樣就可以快速檢測(cè)勺子。第二個(gè)方法很簡(jiǎn)單,并且能在一個(gè)小時(shí)以內(nèi)完成!
了解傳統(tǒng)的計(jì)算機(jī)視覺技術(shù)會(huì)為你節(jié)省大量時(shí)間以及減少不必要的麻煩。
理解傳統(tǒng)的計(jì)算機(jī)視覺實(shí)際上真的有助于你更好的使用深度學(xué)習(xí)。例如,計(jì)算機(jī)視覺中最常見的神經(jīng)網(wǎng)絡(luò)是卷積神經(jīng)網(wǎng)絡(luò)。但是什么是卷積?它實(shí)際上是一種廣泛使用的圖像處理技術(shù)(例如Sobel邊緣檢測(cè))。了解卷積有助于了解神經(jīng)網(wǎng)絡(luò)的內(nèi)在機(jī)制,在解決問題時(shí),它可以幫助你設(shè)計(jì)和調(diào)整模型。
其次是預(yù)處理,這通常是針對(duì)訓(xùn)練數(shù)據(jù)而言。預(yù)處理這一步驟用到的主要是傳統(tǒng)的計(jì)算機(jī)視覺技術(shù)。例如,如果你沒有足夠多的訓(xùn)練數(shù)據(jù),則可以采用數(shù)據(jù)增強(qiáng)的方法來處理:通過對(duì)原來的圖像進(jìn)行隨機(jī)旋轉(zhuǎn)、移位、剪切的方式來創(chuàng)建“新”的圖像。這些操作可以大大增加訓(xùn)練數(shù)據(jù)的數(shù)量。
在這篇文章中,我解釋了為什么深度學(xué)習(xí)仍然沒有取代傳統(tǒng)的計(jì)算機(jī)視覺技術(shù),以及傳統(tǒng)的計(jì)算機(jī)視覺技術(shù)為何值得我們?nèi)W(xué)習(xí)和研究。
首先,深度學(xué)習(xí)通常需要大量的數(shù)據(jù)才能達(dá)到較好的性能,但是有時(shí)候這是不可能實(shí)現(xiàn)的。在這些情況下,傳統(tǒng)的計(jì)算機(jī)視覺技術(shù)就可以成為替代方案。
其次,對(duì)于某些特定的任務(wù)來說,有時(shí)候深度學(xué)習(xí)過于深度。在這種情況下,標(biāo)準(zhǔn)的計(jì)算機(jī)視覺技術(shù)可以更有效地解決問題,并且使用較少的代碼。
第三,了解傳統(tǒng)的計(jì)算機(jī)視覺技術(shù)實(shí)際上可以讓你更好地使用深度學(xué)習(xí)。這是因?yàn)橥ㄟ^傳統(tǒng)的計(jì)算機(jī)視覺,你可以更好地了解深度學(xué)習(xí)的內(nèi)在機(jī)制,并且可以執(zhí)行某些預(yù)處理步驟來提升深度學(xué)習(xí)的性能。
簡(jiǎn)而言之,深度學(xué)習(xí)只是計(jì)算機(jī)視覺的一種工具,并不是萬能藥。不要因?yàn)樯疃葘W(xué)習(xí)現(xiàn)在較為流行就只使用深度學(xué)習(xí)。傳統(tǒng)的計(jì)算機(jī)視覺技術(shù)仍然非常重要,它可以為你節(jié)省很多時(shí)間,并減少許多不必要的麻煩。
對(duì)于這個(gè)觀點(diǎn),你怎么看呢?歡迎后臺(tái)給小白留言
交流群
歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請(qǐng)按照格式備注,否則不予通過。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~

