一惹挟、寫(xiě)在前面
? ?這兩天在公司做PM實(shí)習(xí)吨些,主要是自學(xué)一些CV的知識(shí)遏片,以了解產(chǎn)品在解決一些在圖像識(shí)別、圖像搜索方面的問(wèn)題顽爹,學(xué)習(xí)的主要方式是在知網(wǎng)檢索了6.7篇國(guó)內(nèi)近3年計(jì)算機(jī)視覺(jué)和物體識(shí)別的碩博士論文纤泵。由于時(shí)間關(guān)系,后面還會(huì)繼續(xù)更新圖片相似度計(jì)算(以圖搜圖)等方面的學(xué)習(xí)成果
? ?將這兩天的學(xué)習(xí)成果在這里總結(jié)一下镜粤。你將會(huì)看到計(jì)算機(jī)視覺(jué)在解決特定物體識(shí)別問(wèn)題(主要是卷積神經(jīng)網(wǎng)絡(luò)CNNs)的基礎(chǔ)過(guò)程和原理捏题,但這里不會(huì)深入到技術(shù)的實(shí)現(xiàn)層面。
二肉渴、問(wèn)題背景與歷史(該技術(shù)為什么出現(xiàn)公荧?解決了什么問(wèn)題)
1、計(jì)算機(jī)視覺(jué)的研究層次
??計(jì)算機(jī)視覺(jué)(Computer vision)是一門(mén)研究如何使機(jī)器“看”的科學(xué)同规,更進(jìn)一步的說(shuō)循狰,就是指用攝影機(jī)和計(jì)算機(jī)代替人眼對(duì)目標(biāo)進(jìn)行識(shí)別、跟蹤和測(cè)量等機(jī)器視覺(jué)券勺,并進(jìn)一步做圖像處理绪钥,用計(jì)算機(jī)處理成為更適合人眼觀察或傳送給儀器檢測(cè)的圖像。
?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??————維基百科
??通常而言关炼,計(jì)算機(jī)視覺(jué)的研究包括三個(gè)層次:
(1)底層特征的研究:
??這一層次的研究主要聚焦如何高效提取出圖像對(duì)象具有判別性能的特征程腹,具體的研究?jī)?nèi)容通常包括:物體識(shí)別、字符識(shí)別等
(2)中層語(yǔ)義特征的研究:
?? 該層次的研究在于在識(shí)別出對(duì)象的基礎(chǔ)上儒拂,對(duì)其位置寸潦、邊緣等信息能夠準(zhǔn)確區(qū)分∩В現(xiàn)在比較熱門(mén)的:圖像分割;語(yǔ)義分割见转;場(chǎng)景標(biāo)注等命雀,都屬于該領(lǐng)域的范疇
(3)高層語(yǔ)義理解:
??這一層次建立在前兩層的基礎(chǔ)上,其核心在于“理解”一詞池户。 目標(biāo)在于對(duì)復(fù)雜圖像中的各個(gè)對(duì)象完成語(yǔ)義級(jí)別的理解咏雌。這一層次的研究常常應(yīng)用于:場(chǎng)景識(shí)別、圖像摘要生成及圖像語(yǔ)義回答等校焦。
??而我研究的問(wèn)題主要隸屬于底層特征和中層語(yǔ)義特征研究中的物體識(shí)別和場(chǎng)景標(biāo)注問(wèn)題赊抖。
2、人類(lèi)的視覺(jué)原理
人類(lèi)的視覺(jué)工作模式是這樣的:
? ?首先寨典,我們大腦中的神經(jīng)元接收到大量的信息微粒氛雪,但我們的大腦還并不能處理它們。
?? 于是接著神經(jīng)元與神經(jīng)元之間交互將大量的微粒信息整合成一條又一條的線耸成。
? ?接著报亩,無(wú)數(shù)條線又整合成一個(gè)個(gè)輪廓。
? ?最后多個(gè)輪廓累加終于聚合我們現(xiàn)在眼前看到的樣子井氢。
??計(jì)算機(jī)科學(xué)受到神經(jīng)科學(xué)的啟發(fā)弦追,也采用了類(lèi)似的工作方式。具體而言花竞,圖像識(shí)別問(wèn)題一般都遵循下面幾個(gè)流程
3劲件、圖像識(shí)別的一般流程
??(1)獲取底層信息。獲取充分且清潔的高質(zhì)量數(shù)據(jù)往往是圖像識(shí)別工作能否成功的關(guān)鍵所在
??(2)數(shù)據(jù)預(yù)處理工作约急,在圖像識(shí)別領(lǐng)域主要包括四個(gè)方面的技術(shù):去噪處理(提升信噪比)零远、圖像增強(qiáng)和圖像修復(fù)(主要針對(duì)不夠清晰或有破損缺失的圖像);歸一化處理(一方面是為了減少開(kāi)銷(xiāo)厌蔽、提高算法的性能牵辣,另一方面則是為了能成功使用深度學(xué)習(xí)等算法,這類(lèi)算法必須使用歸一化數(shù)據(jù))奴饮。
??(3)特征提取纬向,這一點(diǎn)是該領(lǐng)域的核心,也是本文的核心戴卜。圖像識(shí)別的基礎(chǔ)是能夠提取出足夠高質(zhì)量罢猪,能體現(xiàn)圖像獨(dú)特性和區(qū)分度的特征。
??過(guò)去在10年代之前我們主要還是更多的使用傳統(tǒng)的人工特征提取方法叉瘩,如PCA\LCA等來(lái)提取一些人工設(shè)計(jì)的特征,主要的方法有(HOG粘捎、LBP以及十分著名的SIFT算法)薇缅。但是這些方法普遍存在(a)一般基于圖像的一些提層特征信息(如色彩危彩、紋理等)難以表達(dá)復(fù)雜的圖像高層語(yǔ)義,故泛化能力普遍比較弱泳桦。(b)這些方法一般都針對(duì)特定領(lǐng)域的特定應(yīng)用設(shè)計(jì)汤徽,泛化能力和遷移的能力大多比較弱。
??另外一種思路是使用BP方法灸撰,但是畢竟BP方法是一個(gè)全連接的神經(jīng)網(wǎng)絡(luò)谒府。這以為這我們非常容易發(fā)生過(guò)擬合問(wèn)題(每個(gè)元素都要負(fù)責(zé)底層的所有參數(shù)),另外也不能根據(jù)樣本對(duì)訓(xùn)練過(guò)程進(jìn)行優(yōu)化浮毯,實(shí)在是費(fèi)時(shí)又費(fèi)力完疫。
??因此,一些研究者開(kāi)始嘗試把諸如神經(jīng)網(wǎng)絡(luò)债蓝、深度學(xué)習(xí)等方法運(yùn)用到特征提取的過(guò)程中壳鹤,以十幾年前深度學(xué)習(xí)方法在業(yè)界最重要的比賽ImageNet中第一次戰(zhàn)勝了SIFT算法為分界線,由于其使用權(quán)重共享和特征降采樣饰迹,充分利用了數(shù)據(jù)的特征芳誓。幾乎每次比賽的冠軍和主流都被深度學(xué)習(xí)算法及其各自改進(jìn)型所占領(lǐng)。其中啊鸭,目前使用較多又最為主流的是CNN算法锹淌,在第四部分主要也研究CNN方法的機(jī)理。
三赠制、一些技術(shù)概念的補(bǔ)充說(shuō)明
1赂摆、傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
??上圖是一個(gè)簡(jiǎn)易的神經(jīng)網(wǎng)絡(luò),只有一層隱含層憎妙,而且是全連接的(如圖库正,上一層的每個(gè)節(jié)點(diǎn)都要對(duì)下一層的每個(gè)節(jié)點(diǎn)負(fù)責(zé)。)具體神經(jīng)元與神經(jīng)元的作用過(guò)程可見(jiàn)下圖厘唾。
2褥符、反向傳播算法(BP算法)
??在諸多傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)中,BP算法可能是性能最好抚垃、應(yīng)用最廣泛的算法之一了喷楣。其核心思想是:導(dǎo)入訓(xùn)練樣本、計(jì)算期望值和實(shí)際值之間的差值鹤树,不斷地調(diào)整權(quán)重铣焊,使得誤差減少的規(guī)定值的范圍內(nèi)。其具體過(guò)程如下圖:
3罕伯、機(jī)器學(xué)習(xí)的淺層模型和深層模型
??一般來(lái)說(shuō)曲伊,機(jī)器學(xué)習(xí)又分成淺層學(xué)習(xí)和深度學(xué)習(xí)。傳統(tǒng)的機(jī)器學(xué)習(xí)算法,如SVM坟募、貝葉斯岛蚤、神經(jīng)網(wǎng)絡(luò)等都屬于淺層模型,其特點(diǎn)是只有一個(gè)隱含層懈糯。邏輯簡(jiǎn)單易懂涤妒、但是其存在理論上缺乏深度、訓(xùn)練時(shí)間較長(zhǎng)赚哗、參數(shù)很大程度上依賴(lài)經(jīng)驗(yàn)和運(yùn)氣等問(wèn)題她紫。
??如果是有多個(gè)隱含層的多層神經(jīng)網(wǎng)絡(luò)(一般定義為大于5層),那么我們將把這個(gè)模型稱(chēng)為深度學(xué)習(xí)屿储,其往往也和分層訓(xùn)練配套使用贿讹。這也是目前AI最火的領(lǐng)域之一了。如果是淺層模型的問(wèn)題在于對(duì)一個(gè)復(fù)雜函數(shù)的表示能力不夠扩所,特別是在復(fù)雜問(wèn)題分類(lèi)情況上容易出現(xiàn)分類(lèi)不足的弊端围详,深度網(wǎng)絡(luò)的優(yōu)勢(shì)則在于其多層的架構(gòu)可以分層表示邏輯,這樣就可以用簡(jiǎn)單的方法表示出復(fù)雜的問(wèn)題祖屏,一個(gè)簡(jiǎn)單的例子是:
??如果我們想計(jì)算sin(cos(log(exp(x))))助赞,
??那么深度學(xué)習(xí)則可分層表示為exp(x)—>log(x)—>cos(x)—>sin(x)
4、模式識(shí)別的魯棒性
??圖像識(shí)別問(wèn)題是物體識(shí)別的一個(gè)子問(wèn)題袁勺,其魯棒性往往是解決該類(lèi)問(wèn)題一個(gè)非常重要的指標(biāo)雹食,該指標(biāo)是指分類(lèi)結(jié)果對(duì)于傳入數(shù)據(jù)中的一些轉(zhuǎn)化和扭曲具有保持不變的特性。這些轉(zhuǎn)化和扭曲具體主要包括了:
(1)噪音(2)尺度變化(3)旋轉(zhuǎn)(4)光線變化(5)位移
四期丰、核心技術(shù):CNN的定義群叶、原理、組成部分和特性
??該部分具體的內(nèi)容钝荡,想要快速理解原理的話推薦看[知乎相關(guān)文章] (https://www.zhihu.com/search?type=content&q=CNN)街立,
??特別是其中有些高贊回答中都有很多動(dòng)圖和動(dòng)畫(huà),非常有助于理解埠通。
??但核心而言赎离,CNN的核心優(yōu)勢(shì)在于共享權(quán)重以及感受野,減少了網(wǎng)絡(luò)的參數(shù)端辱,實(shí)現(xiàn)了更快的訓(xùn)練速度和同樣預(yù)測(cè)結(jié)果下更少的訓(xùn)練樣本梁剔,而且相對(duì)于人工方法,一般使用深度學(xué)習(xí)實(shí)現(xiàn)的CNN算法使用無(wú)監(jiān)督學(xué)習(xí)舞蔽,其也不需要手工提取特征荣病。
1、CNN的基本原理
CNN算法的過(guò)程給我的感覺(jué)渗柿,個(gè)人很像一個(gè)“擦玻璃”的過(guò)程个盆。其技術(shù)主要包括了三個(gè)特性:局部感知、權(quán)重共享和池化。
(1)CNN中的神經(jīng)元
??CNN中的神經(jīng)元主要分成了兩種:
(a)用于特征提取的S元砾省,它們一起組成了卷積層鸡岗,用于對(duì)于圖片中的每一個(gè)特征首先局部感知。其又包含很關(guān)鍵的閾值參數(shù)(控制輸出對(duì)輸入的反映敏感度)和感受野參數(shù)(決定了從輸入層中提取多大的空間進(jìn)行輸入编兄,可以簡(jiǎn)單理解為擦玻璃的抹布有多大)
(b)抗形變的C元,它們一起組成了池化層声登,也被稱(chēng)為欠采樣或下采樣狠鸳。主要用于特征降維,壓縮數(shù)據(jù)和參數(shù)的數(shù)量悯嗓,減小過(guò)擬合件舵,同時(shí)提高模型的容錯(cuò)性。
(c*)激活函數(shù)脯厨,及卷積層輸出的結(jié)果要經(jīng)過(guò)一次激勵(lì)函數(shù)才會(huì)映射到池化層中铅祸,主要的激活函數(shù)有Sigmoid函數(shù)、Tanh函數(shù)合武、ReLU临梗、Leaky ReLU、ELU稼跳、Maxout等盟庞。
(2)CNN的算法過(guò)程
(3)區(qū)域感受野——特性1:區(qū)域感知
??也許你會(huì)抱有疑問(wèn),CNN算法和傳統(tǒng)的BP算法等究竟有什么區(qū)別呢汤善。這就會(huì)引出區(qū)域感受野的概念。在前面我們提到,一個(gè)全連接中揭朝,較高一層的每個(gè)神經(jīng)元要對(duì)低層的每一個(gè)神經(jīng)元負(fù)責(zé)猪半,從而導(dǎo)致了過(guò)擬合和維度災(zāi)難的問(wèn)題。但是有了區(qū)域感受野和在旱,每個(gè)神經(jīng)元只需要記錄一個(gè)小區(qū)域摇零,而高層會(huì)把這些信息綜合起來(lái),從而解決了全連接的問(wèn)題颈渊。
(4)卷積核——特性1:區(qū)域感知
??了解區(qū)域感受野后遂黍,你也許會(huì)想,區(qū)域感受野的底層神經(jīng)元具體是怎么聚合信息映射到上一層的神經(jīng)元呢俊嗽,這就要提到重要的卷積核的概念雾家。這個(gè)過(guò)程非常像上面曾提到的“神經(jīng)元與神經(jīng)元的聯(lián)系”一圖,下面給大家一個(gè)很直觀的理解绍豁。
??上面的這個(gè)過(guò)程就被稱(chēng)為一個(gè)卷積核芯咧。在實(shí)際應(yīng)用中,單特征不足以被系統(tǒng)學(xué)習(xí)分類(lèi),因此我們往往會(huì)使用多個(gè)濾波器敬飒,每個(gè)濾波器對(duì)應(yīng)1個(gè)卷積核邪铲,也對(duì)應(yīng)了一個(gè)不同的特征。比如:我們現(xiàn)在有一個(gè)人臉識(shí)別應(yīng)用无拗,我們使用一個(gè)卷積核提取出眼睛的特征带到,然后使用另一個(gè)卷積核提取出鼻子的特征,再用一個(gè)卷積核提取出嘴巴的特征英染,最后高層把這些信息聚合起來(lái)揽惹,就形成了分辨一個(gè)人與另一個(gè)人不同的判斷特征。
(5)權(quán)值共享——特性2
??現(xiàn)在我們已經(jīng)有了區(qū)域感受野四康,也已經(jīng)了解了卷積核的概念搪搏。但你會(huì)發(fā)現(xiàn)在實(shí)際應(yīng)用中還是有問(wèn)題:
??給一個(gè)100100的參數(shù)空間,假設(shè)我們的感受野大小是1010闪金,那么一共有squar(1000-10+1)個(gè)疯溺,即10的六次方個(gè)感受野。每個(gè)感受野中就有100個(gè)參數(shù)特征哎垦,及時(shí)每個(gè)感受野只對(duì)應(yīng)一個(gè)卷積核囱嫩,那么空間內(nèi)也會(huì)有10的八次方個(gè)次數(shù),撼泛,更何況我們常常使用很多個(gè)卷積核挠说。巨大的參數(shù)要求我們還需要進(jìn)一步減少權(quán)重參數(shù),這就引出了權(quán)重共享的概念愿题。
??用一句話概括就是损俭,對(duì)同一個(gè)特征圖,每個(gè)感受野的卷積核是一樣的潘酗,如這樣操作后上例只需要100個(gè)參數(shù)杆兵。
(6)池化--特性3
??池化是CNN技術(shù)的最后一個(gè)特性,其基本思想是:一塊區(qū)域有用的圖像特征仔夺,在另一塊相似的區(qū)域中很可能仍然有用琐脏。即我們通過(guò)卷積得到了大量的邊緣EDGE數(shù)據(jù),但往往相鄰的邊緣具有相似的特性缸兔,就好像我們已經(jīng)得到了一個(gè)強(qiáng)邊緣日裙,再擁有大量相似的次邊緣特征其實(shí)是沒(méi)有太大增量?jī)r(jià)值的,因?yàn)檫@樣會(huì)使得系統(tǒng)里充斥大量冗余信息消耗計(jì)算資源惰蜜。具體而言昂拂,池化層把語(yǔ)義上相似的特征合并起來(lái),通過(guò)池化操作減少卷積層輸出的特征向量抛猖,減少了參數(shù)格侯,緩解了過(guò)擬合問(wèn)題鼻听。常見(jiàn)的池化操作主要包括3種:
分別是最大值池化(保留了圖像的紋理特征)、均值池化(保留了圖像的整體特征)和隨機(jī)值池化联四。該技術(shù)的弊端是容易過(guò)快減小數(shù)據(jù)尺寸撑碴,目前趨勢(shì)是用其他方法代替池化的作用,比如膠囊網(wǎng)絡(luò)推薦采用動(dòng)態(tài)路由來(lái)代替?zhèn)鹘y(tǒng)池化方法,原因是池化會(huì)帶來(lái)一定程度上表征的位移不變性朝墩,傳統(tǒng)觀點(diǎn)認(rèn)為這是一個(gè)優(yōu)勢(shì)醉拓,但是膠囊網(wǎng)絡(luò)的作者Hinton et al.認(rèn)為圖像中位置信息是應(yīng)該保留的有價(jià)值信息,利用特別的聚類(lèi)評(píng)分算法和動(dòng)態(tài)路由的方式可以學(xué)習(xí)到更高級(jí)且靈活的表征收苏,有望沖破目前卷積網(wǎng)絡(luò)構(gòu)架的瓶頸廉嚼。
2、CNN技術(shù)的局限
??CNN總體來(lái)說(shuō)是一種結(jié)構(gòu)倒戏,其包含了多種網(wǎng)絡(luò)模型結(jié)構(gòu),數(shù)目繁多的的網(wǎng)絡(luò)模型結(jié)構(gòu)決定了數(shù)據(jù)擬合能力和泛化能力的差異恐似。其中的復(fù)雜性對(duì)用戶(hù)的技術(shù)能力有較高的要求杜跷。此外,CNN仍然沒(méi)有很好的解決過(guò)擬合問(wèn)題和計(jì)算速度較慢的問(wèn)題矫夷。
五葛闷、相關(guān)深度學(xué)習(xí)技術(shù)的概覽比較與未來(lái)發(fā)展趨勢(shì)
??該部分的核心參考文獻(xiàn):
《深度學(xué)習(xí)在圖像識(shí)別中的應(yīng)用研究綜述》鄭遠(yuǎn)攀,李廣陽(yáng),李曄.[J].計(jì)算機(jī)工程與應(yīng)用,2019,55(12):20-36.
??深度學(xué)習(xí)技術(shù)在計(jì)算機(jī)圖像識(shí)別方面的領(lǐng)域應(yīng)用研究是目前以及可預(yù)見(jiàn)的未來(lái)的主流趨勢(shì),在這里首先對(duì)深度學(xué)習(xí)的基本概念作一簡(jiǎn)介双藕,其次對(duì)深度學(xué)習(xí)常用的結(jié)構(gòu)模型進(jìn)行概述說(shuō)明淑趾,主要簡(jiǎn)述了深度信念網(wǎng)絡(luò)(DBN)、卷積神經(jīng)網(wǎng)絡(luò)(CNN)忧陪、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)扣泊、生成式對(duì)抗網(wǎng)絡(luò)(GAN)、膠囊網(wǎng)絡(luò)(CapsNet)以及對(duì)各個(gè)深度模型的改進(jìn)模型做一對(duì)比分析嘶摊。
1延蟹、深度學(xué)習(xí)技術(shù)的分類(lèi)
??深度學(xué)習(xí)按照學(xué)習(xí)架構(gòu)可分為生成架構(gòu)、判別架構(gòu)及混合架構(gòu)叶堆。
其生成架構(gòu)模型主要包括:
??受限波爾茲曼機(jī)阱飘、自編碼器、深層信念網(wǎng)絡(luò)等虱颗。判別架構(gòu)模型主要包括:深層前饋網(wǎng)絡(luò)沥匈、卷積神經(jīng)網(wǎng)絡(luò)等⊥妫混合架構(gòu)模型則是這兩種架構(gòu)的集合高帖。深度學(xué)習(xí)按數(shù)據(jù)是否具有標(biāo)簽可分為非監(jiān)督學(xué)習(xí)與監(jiān)督學(xué)習(xí)。非監(jiān)督學(xué)習(xí)方法主要包括:受限玻爾茲曼機(jī)辨萍、自動(dòng)編碼器棋恼、深層信念網(wǎng)絡(luò)返弹、深層玻爾茲曼機(jī)等。
??監(jiān)督學(xué)習(xí)方法主要包括:深層感知器爪飘、深層前饋網(wǎng)絡(luò)义起、卷積神經(jīng)網(wǎng)絡(luò)、深層堆疊網(wǎng)絡(luò)师崎、循環(huán)神經(jīng)網(wǎng)絡(luò)等默终。大量實(shí)驗(yàn)研究表明,監(jiān)督學(xué)習(xí)與非監(jiān)督學(xué)習(xí)之間無(wú)明確的界限犁罩,如:深度信念網(wǎng)絡(luò)在訓(xùn)練過(guò)程中既用到監(jiān)督學(xué)習(xí)方法又涉及非監(jiān)督學(xué)習(xí)方法齐蔽。
2、深度學(xué)習(xí)主流框架對(duì)比
3床估、主要技術(shù)概覽
六含滴、部分參考資料
[1]周彬. 多視圖視覺(jué)檢測(cè)關(guān)鍵技術(shù)及其應(yīng)用研究[D].浙江大學(xué),2019.
[2]鄭遠(yuǎn)攀,李廣陽(yáng),李曄.深度學(xué)習(xí)在圖像識(shí)別中的應(yīng)用研究綜述[J].計(jì)算機(jī)工程與應(yīng)用,2019,55(12):20-36.
[3]逄淑超. 深度學(xué)習(xí)在計(jì)算機(jī)視覺(jué)領(lǐng)域的若干關(guān)鍵技術(shù)研究[D].吉林大學(xué),2017.
[4]段萌. 基于卷積神經(jīng)網(wǎng)絡(luò)的圖像識(shí)別方法研究[D].鄭州大學(xué),2017.
[5]李彥冬. 基于卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算機(jī)視覺(jué)關(guān)鍵技術(shù)研究[D].電子科技大學(xué),2017.
[6]李衛(wèi). 深度學(xué)習(xí)在圖像識(shí)別中的研究及應(yīng)用[D].武漢理工大學(xué),2014.
[7]許可. 卷積神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別上的應(yīng)用的研究[D].浙江大學(xué),2012.
[8]CSDN、知乎丐巫、機(jī)器之心谈况、維基百科