在2017年5月舉辦的嵌入式視覺峰會(huì)(EmbeddedVisionSummit)上,我有幸聽到了加州大學(xué)伯克利分校的JitendraMalik教授的一場(chǎng)精彩的主題演講。Malik在計(jì)算機(jī)視覺領(lǐng)域擁有30年的研究和教學(xué)積累,他解釋說(shuō),他一直對(duì)深度神經(jīng)網(wǎng)絡(luò)(DNN)對(duì)計(jì)算機(jī)視覺的價(jià)值持懷疑態(tài)度,但是在面對(duì)日益增長(zhǎng)的令人印象深刻的結(jié)果時(shí),他最終改變了主意。
毫無(wú)疑問(wèn),DNN已經(jīng)改變了計(jì)算機(jī)視覺領(lǐng)域。DNN在識(shí)別目標(biāo)、在圖像內(nèi)定位目標(biāo)以及確定哪個(gè)像素屬于哪個(gè)目標(biāo)等方面,都能提供更好的結(jié)果。即使是像光流和立體匹配這樣的已經(jīng)能用傳統(tǒng)技術(shù)很好地解決的問(wèn)題,現(xiàn)在也可以用深度學(xué)習(xí)技術(shù)獲得更好的解決方案。深度學(xué)習(xí)的成功,遠(yuǎn)遠(yuǎn)超出了計(jì)算機(jī)視覺領(lǐng)域,它還涉及到語(yǔ)音識(shí)別等眾多領(lǐng)域。
由于這些令人印象深刻的成功,深度學(xué)習(xí)在科研和產(chǎn)業(yè)領(lǐng)域吸引了大量的關(guān)注和投資。這些關(guān)注和投資,正在加速深度學(xué)習(xí)算法和有效實(shí)施這些算法方面的進(jìn)展,從而使深度學(xué)習(xí)技術(shù)能夠集成到越來(lái)越多的系統(tǒng)中,包括那些具有顯著的成本和功率限制的系統(tǒng)。
深度學(xué)習(xí)真的適合所有問(wèn)題嗎?
這自然就提出了一個(gè)問(wèn)題:如果你正在將計(jì)算機(jī)視覺功能集成到你的系統(tǒng)或應(yīng)用中,你是否應(yīng)該考慮除了深度學(xué)習(xí)以外的其他任何技術(shù)?在我的咨詢實(shí)踐中,越來(lái)越多的客戶希望通過(guò)深度學(xué)習(xí)來(lái)解決計(jì)算機(jī)視覺問(wèn)題。但是我們發(fā)現(xiàn),在某些情況下,其他類型的算法更合適解決問(wèn)題。
為什么?
首先,視覺世界是無(wú)限變化的,系統(tǒng)設(shè)計(jì)者有無(wú)數(shù)種方法使用視覺數(shù)據(jù)。其中有一些應(yīng)用案例,如目標(biāo)識(shí)別和定位,都可以通過(guò)深度學(xué)習(xí)技術(shù)得到很好的解決。因此,如果你的應(yīng)用需要一種算法來(lái)識(shí)別家具,那么你很幸運(yùn):你可以選擇一種深度神經(jīng)網(wǎng)絡(luò)算法,并使用自己的數(shù)據(jù)集對(duì)其進(jìn)行重新編譯。
我們要先談?wù)勥@個(gè)數(shù)據(jù)集。訓(xùn)練數(shù)據(jù)對(duì)有效的深度學(xué)習(xí)算法至關(guān)重要。訓(xùn)練一個(gè)DNN通常需要數(shù)千個(gè)帶標(biāo)記的訓(xùn)練圖像(即用所需輸出標(biāo)記的圖像),以及數(shù)千個(gè)帶標(biāo)記的圖像來(lái)評(píng)估候選訓(xùn)練算法。當(dāng)然,這些數(shù)據(jù)的性質(zhì)非常重要:訓(xùn)練和驗(yàn)證數(shù)據(jù),必須能夠代表算法要處理的情況的多樣性。如果很難或者不可能獲得足夠多樣化的訓(xùn)練數(shù)據(jù),那么最好還是使用傳統(tǒng)技術(shù)。
考慮使用其他技術(shù)而非DNN的另一個(gè)原因是,如果你要執(zhí)行一項(xiàng)計(jì)算機(jī)視覺任務(wù),而在以往的報(bào)道記載中,尚未使用DNN算法來(lái)解決這樣問(wèn)題。在這種情況下,你可以嘗試使用為其他目的而創(chuàng)建的現(xiàn)有DNN算法;或者你也可以嘗試創(chuàng)建一個(gè)新的DNN算法來(lái)滿足自身需求。不管怎樣,你都是處在研究領(lǐng)域。這可能會(huì)令人望而生畏,因?yàn)楹苌儆腥撕徒M織有開發(fā)新型深度神經(jīng)網(wǎng)絡(luò)算法的經(jīng)驗(yàn)。而且,很難知道你是否能在可用的時(shí)間、精力和計(jì)算資源限度內(nèi)取得成功。
傳統(tǒng)技術(shù)與DNN的結(jié)合
當(dāng)我們深入研究客戶的需求時(shí),我們經(jīng)常發(fā)現(xiàn),最初看起來(lái)像單一視覺問(wèn)題的任務(wù),往往可以分解為幾個(gè)子任務(wù)。通常,在這些子任務(wù)中,自然有一些子任務(wù)是適合使用DNN解決的,而另一些子任務(wù)則不適合用DNN來(lái)解決。對(duì)于這些項(xiàng)目,結(jié)合DNN和傳統(tǒng)技術(shù)的解決方案,通常是更好的選擇,而不是試圖將整個(gè)問(wèn)題都強(qiáng)制轉(zhuǎn)向DNN解決方案。
記住機(jī)器學(xué)習(xí)技術(shù)是多種多樣、變化多端的,這一點(diǎn)也非常重要。早在深度神經(jīng)網(wǎng)絡(luò)普及之前,其他機(jī)器學(xué)習(xí)技術(shù)(如支持向量機(jī),SVM)就已經(jīng)被用于解決很多視覺問(wèn)題,并且今天仍然很有用。
鑒于DNN在研究和技術(shù)方面的巨大投資,很明顯,DNN作為首選解決方案的適用范圍,將會(huì)繼續(xù)迅速擴(kuò)大。然而,在可預(yù)見的未來(lái),許多應(yīng)用將通過(guò)傳統(tǒng)技術(shù)(包括其他形式的機(jī)器學(xué)習(xí))或通過(guò)深度學(xué)習(xí)和傳統(tǒng)算法的組合,來(lái)獲得最好的解決方案。