計算機(jī)視覺是當(dāng)前最熱門的研究之一,是一門多學(xué)科交叉的研究,涵蓋計算機(jī)科學(xué)(圖形學(xué)、算法、理論研究等)、數(shù)學(xué)(信息檢索、機(jī)器學(xué)習(xí))、工程(機(jī)器人、NLP等)、生物學(xué)(神經(jīng)系統(tǒng)科學(xué))和心理學(xué)(認(rèn)知科學(xué))。由于計算機(jī)視覺表示對視覺環(huán)境及背景的相對理解,很多科學(xué)家相信,這一領(lǐng)域的研究將為人工智能行業(yè)的發(fā)展奠定基礎(chǔ)。
那么,什么是計算機(jī)視覺呢?下面是一些公認(rèn)的定義:
從圖像中清晰地、有意義地描述物理對象的結(jié)構(gòu)(Ballard & Brown,1982);
由一個或多個數(shù)字圖像計算立體世界的性質(zhì)(Trucco & Verri,1998);
基于遙感圖像對真實物體和場景做出有用的決定(Sockman & Shapiro,2001);
那么,為什么研究計算機(jī)視覺呢?答案很明顯,從該領(lǐng)域可以衍生出一系列的應(yīng)用程序,比如:
人臉識別:人臉檢測算法,能夠從照片中認(rèn)出某人的身份;
圖像檢索:類似于谷歌圖像使用基于內(nèi)容的查詢來搜索相關(guān)圖像,算法返回與3.查詢內(nèi)容最佳匹配的圖像。
游戲和控制:體感游戲;
監(jiān)控:公共場所隨處可見的監(jiān)控攝像機(jī),用來監(jiān)視可疑行為;
生物識別技術(shù):指紋、虹膜和人臉匹配是生物特征識別中常用的方法;
智能汽車:視覺仍然是觀察交通標(biāo)志、信號燈及其它視覺特征的主要信息來源;
正如斯坦福大學(xué)公開課CS231所言,計算機(jī)視覺任務(wù)大多是基于卷積神經(jīng)網(wǎng)絡(luò)完成。比如圖像分類、定位和檢測等。那么,對于計算機(jī)視覺而言,有哪些任務(wù)是占據(jù)主要地位并對世界有所影響的呢?本篇文章將分享給讀者5種重要的計算機(jī)視覺技術(shù),以及其相關(guān)的深度學(xué)習(xí)模型和應(yīng)用程序。相信這5種技術(shù)能夠改變你對世界的看法。
1.圖像分類
圖像分類這一任務(wù)在我們的日常生活中經(jīng)常發(fā)生,我們習(xí)慣了于此便不以為然。每天早上洗漱刷牙需要拿牙刷、毛巾等生活用品,如何準(zhǔn)確的拿到這些用品便是一個圖像分類任務(wù)。官方定義為:給定一組圖像集,其中每張圖像都被標(biāo)記了對應(yīng)的類別。之后為一組新的測試圖像集預(yù)測其標(biāo)簽類別,并測量預(yù)測準(zhǔn)確性。
如何編寫一個可以將圖像分類的算法呢?計算機(jī)視覺研究人員已經(jīng)提出了一種數(shù)據(jù)驅(qū)動的方法來解決這個問題。研究人員在代碼中不再關(guān)心圖像如何表達(dá),而是為計算機(jī)提供許多很多圖像(包含每個類別),之后開發(fā)學(xué)習(xí)算法,讓計算機(jī)自己學(xué)習(xí)這些圖像的特征,之后根據(jù)學(xué)到的特征對圖像進(jìn)行分類。
鑒于此,完整的圖像分類步驟一般形式如下:
首先,輸入一組訓(xùn)練圖像數(shù)據(jù)集;
然后,使用該訓(xùn)練集訓(xùn)練一個分類器,該分類器能夠?qū)W習(xí)每個類別的特征;
最后,使用測試集來評估分類器的性能,即將預(yù)測出的結(jié)果與真實類別標(biāo)記進(jìn)行比較;
對于圖像分類而言,最受歡迎的方法是卷積神經(jīng)網(wǎng)絡(luò)(CNN)。CNN是深度學(xué)習(xí)中的一種常用方法,其性能遠(yuǎn)超一般的機(jī)器學(xué)習(xí)算法。CNN網(wǎng)絡(luò)結(jié)構(gòu)基本是由卷積層、池化層以及全連接層組成,其中,卷積層被認(rèn)為是提取圖像特征的主要部件,它類似于一個“掃描儀”,通過卷積核與圖像像素矩陣進(jìn)行卷積運算,每次只“掃描”卷積核大小的尺寸,之后滑動到下一個區(qū)域進(jìn)行相關(guān)的運算,這種計算叫作滑動窗口。
從圖中可以看到,輸入圖像送入卷積神經(jīng)網(wǎng)絡(luò)中,通過卷積層進(jìn)行特征提取,之后通過池化層過濾細(xì)節(jié)(一般采用最大值池化、平均池化),最后在全連接層進(jìn)行特征展開,送入相應(yīng)的分類器得到其分類結(jié)果。
大多數(shù)圖像分類算法都是在ImageNet數(shù)據(jù)集上訓(xùn)練的,該數(shù)據(jù)集由120萬張的圖像組成,涵蓋1000個類別,該數(shù)據(jù)集也可以稱作改變?nèi)斯ぶ悄芎褪澜绲臄?shù)據(jù)集。ImagNet 數(shù)據(jù)集讓人們意識到,構(gòu)建優(yōu)良數(shù)據(jù)集的工作是 AI 研究的核心,數(shù)據(jù)和算法一樣至關(guān)重要。為此,世界組織也舉辦了針對該數(shù)據(jù)集的挑戰(zhàn)賽——ImageNet挑戰(zhàn)賽。
第一屆ImageNet挑戰(zhàn)賽的第一名是由Alex Krizhevsky(NIPS 2012)獲得,采用的方法是深層卷積神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示。在該模型中,采用了一些技巧,比如最大值池化、線性修正單元激活函數(shù)ReLU以及使用GPU仿真計算等,AlexNet模型拉開了深度學(xué)習(xí)研究的序幕。自從AlexNet網(wǎng)絡(luò)模型贏得比賽之后,有很多基于CNN的算法也在ImageNet上取得了特別好的成績,比如ZFNet(2013)、GoogleNet(2014)、VGGNet(2014)、ResNet(2015)以及DenseNet(2016)等。
2.目標(biāo)檢測
目標(biāo)檢測通常是從圖像中輸出單個目標(biāo)的Bounding Box(邊框)以及標(biāo)簽。比如,在汽車檢測中,必須使用邊框檢測出給定圖像中的所有車輛。
之前在圖像分類任務(wù)中大放光彩的CNN同樣也可以應(yīng)用于此。第一個高效模型是R-CNN(基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)),如下圖所示。在該網(wǎng)絡(luò)中,首先掃描圖像并使用搜索算法生成可能區(qū)域,之后對每個可能區(qū)域運行CNN,最后將每個CNN網(wǎng)絡(luò)的輸出送入SVM分類器中來對區(qū)域進(jìn)行分類和線性回歸,并用邊框標(biāo)注目標(biāo)。
本質(zhì)上,是將物體檢測轉(zhuǎn)換成圖像分類問題。但該方法存在一些問題,比如訓(xùn)練速度慢,耗費內(nèi)存、預(yù)測時間長等。
為了解決上述這些問題,Ross Girshickyou提出Fast R-CNN算法,從兩個方面提升了檢測速度:1)在給出建議區(qū)域之前執(zhí)行特征提取,從而只需在整幅圖像上運行一次CNN;2)使用Softmax分類器代替SVM分類器;
雖然Fast R-CNN在速度方面有所提升,然而,選擇搜索算法仍然需要大量的時間來生成建議區(qū)域。為此又提出了Faster R-CNN算法,該模型提出了候選區(qū)域生成網(wǎng)絡(luò)(RPN),用來代替選擇搜索算法,將所有內(nèi)容整合在一個網(wǎng)絡(luò)中,大大提高了檢測速度和精度。
近年來,目標(biāo)檢測研究趨勢主要向更快、更有效的檢測系統(tǒng)發(fā)展。目前已經(jīng)有一些其它的方法可供使用,比如YOLO、SSD以及R-FCN等。
3.目標(biāo)跟蹤
目標(biāo)跟蹤是指在給定場景中跟蹤感興趣的具體對象或多個對象的過程。簡單來說,給出目標(biāo)在跟蹤視頻第一幀中的初始狀態(tài)(如位置、尺寸),自動估計目標(biāo)物體在后續(xù)幀中的狀態(tài)。該技術(shù)對自動駕駛汽車等領(lǐng)域顯得至關(guān)重要。
根據(jù)觀察模型,目標(biāo)跟蹤可以分為兩類:產(chǎn)生式(generative method)和判別式(discriminative method)。其中,產(chǎn)生式方法主要運用生成模型描述目標(biāo)的表觀特征,之后通過搜索候選目標(biāo)來最小化重構(gòu)誤差。常用的算法有稀疏編碼(sparse coding)、主成分分析(PCA)等。與之相對的,判別式方法通過訓(xùn)練分類器來區(qū)分目標(biāo)和背景,其性能更為穩(wěn)定,逐漸成為目標(biāo)跟蹤這一領(lǐng)域的主要研究方法。常用的算法有堆棧自動編碼器(SAE)、卷積神經(jīng)網(wǎng)絡(luò)(CNN)等。
使用SAE方法進(jìn)行目標(biāo)跟蹤的最經(jīng)典深層網(wǎng)絡(luò)是Deep Learning Tracker(DLT),提出了離線預(yù)訓(xùn)練和在線微調(diào)。該方法的主要步驟如下:
先使用棧式自動編碼器(SDAE)在大規(guī)模自然圖像數(shù)據(jù)集上進(jìn)行無監(jiān)督離線預(yù)訓(xùn)練來獲得通用的物體表征能力。
將預(yù)訓(xùn)練網(wǎng)絡(luò)的編碼部分與分類器相結(jié)合組成分類網(wǎng)絡(luò),然后利用從初始幀獲得的正、負(fù)樣本對網(wǎng)絡(luò)進(jìn)行微調(diào),使其可以區(qū)分當(dāng)前對象和背景。在跟蹤過程中,選擇分類網(wǎng)絡(luò)輸出得分最大的patch作為最終預(yù)測目標(biāo)。
模型更新策略采用限定閾值的方法。
基于CNN完成目標(biāo)跟蹤的典型算法是FCNT和MD Net。
聯(lián)系客服