這或許是計(jì)算機(jī)視覺領(lǐng)域內(nèi)最著名的問題。它主要指將一張圖像歸為某種類別。學(xué)術(shù)界最流行的一類數(shù)據(jù)集是ImageNet,由數(shù)以百萬計(jì)已分好類的圖像組成,部分用于年度ImageNet大規(guī)模視覺識別挑戰(zhàn)比賽(ILSVRC)。近年來,分類模型已經(jīng)超過了人類的表現(xiàn),因此該問題基本算是一個(gè)已經(jīng)解決的問題。圖像分類領(lǐng)域有許多挑戰(zhàn),但是也有許多文章介紹已經(jīng)解決了的,以及未解決的挑戰(zhàn)。
分類樣例
與分類類似,定位問題是找到圖像中單一物體的位置。
目標(biāo)定位示例
目標(biāo)定位在實(shí)際生活中是很有用的。例如,智能裁剪(根據(jù)目標(biāo)所在位置來裁剪圖像),甚至對規(guī)則目標(biāo)進(jìn)行提取,以使用不同技術(shù)對其進(jìn)行進(jìn)一步處理。它可以與分類相結(jié)合,不僅可以定位對象,還可以將其進(jìn)行分類。
從目標(biāo)檢測再進(jìn)一步,我們不僅想在圖像中找到目標(biāo),而且要找到每一個(gè)被檢測目標(biāo)的像素級掩膜。我們將此問題稱為實(shí)例或目標(biāo)分割。
將定位以及分類問題結(jié)合起來,最終我們需要同時(shí)檢測和分類多個(gè)目標(biāo)。目標(biāo)檢測是在圖像上定位和分類數(shù)量可變的對象的問題。重要的區(qū)別是“變量”部分。與分類問題相比,目標(biāo)檢測的輸出數(shù)量是可變的,因?yàn)閷τ诿糠鶊D來說,檢測到的目標(biāo)數(shù)目可能是不同的。在本文中,我們將介紹目標(biāo)檢測實(shí)際應(yīng)用的細(xì)節(jié),以及它作為一個(gè)機(jī)器學(xué)習(xí)問題,存在的主要問題是什么,過去幾年中,解決該問題的方式是如何一步步變成深度學(xué)習(xí)的。
目標(biāo)檢測示例
在Tryolabs,我們專門從事應(yīng)用最先進(jìn)的機(jī)器學(xué)習(xí)技術(shù)來解決商業(yè)問題,所以即使我們熱愛所有瘋狂的機(jī)器學(xué)習(xí)研究問題,但是最后我們更多是在考慮實(shí)際應(yīng)用問題。
盡管目標(biāo)檢測在工業(yè)界仍然是一個(gè)新工具,但已經(jīng)有許多使用目標(biāo)檢測技術(shù)的實(shí)用而有趣的應(yīng)用了。
自2000年年中,一些傻瓜相機(jī)已經(jīng)開始自帶人臉檢測功能,能夠進(jìn)行更有效地自動(dòng)對焦。雖然這只是目標(biāo)檢測的一種狹義類型,但它所使用的方法也適用于其他類型的目標(biāo),我們將在后面詳述。
目標(biāo)檢測的一個(gè)很簡單但常常被忽視的用途是計(jì)數(shù)。統(tǒng)計(jì)人、汽車、花卉甚至微生物數(shù)量的能力是各種圖像信息系統(tǒng)應(yīng)該要具備的。最近,隨著視頻監(jiān)控設(shè)備的激增,其中蘊(yùn)藏著前所未有的使用計(jì)算機(jī)視覺方法將原始信息轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù)的機(jī)會。
我們都很喜歡Pinterest視覺搜索引擎。他們使用目標(biāo)檢測技術(shù)作為系統(tǒng)的一部分,用于索引圖像中的不同部分。這樣,當(dāng)你搜索某個(gè)特定的提包時(shí),你能搜到你想要的手提袋在不同場景下的圖像。這個(gè)功能比谷歌圖像的反向搜索引擎要強(qiáng)大得多。
相似圖像:我們應(yīng)用目標(biāo)檢測技術(shù)來定位包或者鞋子這類產(chǎn)品。在這個(gè)例子中,用戶可以點(diǎn)擊自動(dòng)標(biāo)注好的物體去查看相似的產(chǎn)品。(Pinterest論文中的例子)
Jing,Yushi。 《Pinterest的視覺搜索》(Visual Search at Pinterest.)
在擁有廉價(jià)的無人機(jī)和(幾乎)負(fù)擔(dān)得起的衛(wèi)星發(fā)射服務(wù)之前,從未有過如此多的地球俯瞰圖。已經(jīng)有公司開始使用來自Planet和Descartes Labs公司的衛(wèi)星圖像,應(yīng)用目標(biāo)檢測技術(shù)進(jìn)行車輛、樹木和船只的數(shù)量統(tǒng)計(jì)。它帶來了高質(zhì)量的圖像,這在以前是不可能的(或非常昂貴的),現(xiàn)在使用它的人已經(jīng)越來越多了。
一些公司用無人機(jī)來自動(dòng)勘察人類難以進(jìn)入的區(qū)域(例如Betterview),或使用目標(biāo)檢測技術(shù)進(jìn)行一般性的分析(如TensorFlight)。除此之外,一些公司在沒有人工干預(yù)的情況下使用這種技術(shù)進(jìn)行自動(dòng)檢測和定位問題。
TensorFlight
讓我們開始深入研究目標(biāo)檢測的主要問題。
我們前面已經(jīng)提到關(guān)于圖片中目標(biāo)數(shù)量可變的問題,但我們忽視了為什么它會成為一個(gè)問題。訓(xùn)練機(jī)器學(xué)習(xí)模型時(shí),通常需要將數(shù)據(jù)表示成固定大小的向量。由于事先不知道圖像中目標(biāo)的數(shù)量,所以我們不知道正確的輸出數(shù)量。正因?yàn)槿绱耍覀冃枰恍┖罄m(xù)處理,這也增加了模型的復(fù)雜度。
這種輸出數(shù)量不定的問題已經(jīng)使用基于滑動(dòng)窗口的方法得到了解決,在圖片的不同位置得到滑窗的固定大小特征。在得到所有的預(yù)測值之后,一些滑窗被丟棄,一些被合并,從而得到最終輸出。
另一個(gè)大挑戰(zhàn)是目標(biāo)的大小不一致問題。當(dāng)進(jìn)行簡單分類時(shí),我們希望能對占圖像比例最大的目標(biāo)進(jìn)行分類。另一方面,想要找到的目標(biāo)可能只有幾個(gè)像素大?。ɑ蛑徽荚紙D像的很小一部分)。傳統(tǒng)方法使用不同大小的滑動(dòng)窗口解決了這一問題,這種方法雖然簡單但是效率很低。
第三個(gè)挑戰(zhàn)是同時(shí)解決兩個(gè)問題。我們?nèi)绾螌⒍ㄎ缓头诸愡@兩種不同類型的問題最理想地結(jié)合進(jìn)一個(gè)單一模型?
在接著介紹深度學(xué)習(xí)和如何應(yīng)對這些挑戰(zhàn)之前,讓我們快速地回顧一下經(jīng)典方法。
盡管近年來已經(jīng)有很多不同類型的方法,我們主要介紹兩個(gè)最流行的(現(xiàn)在依然廣泛使用)。
第一個(gè)是2001年P(guān)aul Viola和Michael Jones在論文《魯棒實(shí)時(shí)目標(biāo)檢測》中提出的Viola Jones框架。該方法快速并且相對簡單,因此傻瓜相機(jī)的人臉檢測就是使用這個(gè)算法,它能做到實(shí)時(shí)檢測,并且運(yùn)算量很小。
我們不會介紹它運(yùn)作的底層細(xì)節(jié)以及如何訓(xùn)練它,但會介紹它的高層算法。它的工作原理是使用Haar特征產(chǎn)生多種(可能有數(shù)千個(gè))簡單的二進(jìn)制分類器。這些分類器由級聯(lián)的多尺度滑動(dòng)窗口進(jìn)行評估,并且在出現(xiàn)消極分類情況的早期及時(shí)丟棄錯(cuò)誤分類。
另一個(gè)類似的經(jīng)典方法是采用梯度方向直方圖(Histogram of Oriented Gradients,HOG)作為特征,以及支持向量機(jī)(SVM)作為分類器。它仍然依賴多尺度滑動(dòng)窗口,盡管它的效果比Viola Jones要好很多,但是速度也慢很多。
深度學(xué)習(xí)作為機(jī)器學(xué)習(xí),尤其是計(jì)算機(jī)視覺中真正的“變革者”,已經(jīng)是眾人皆知了。與深度學(xué)習(xí)模型在圖像分類任務(wù)上完全碾壓其他經(jīng)典模型類似,深度學(xué)習(xí)模型在目標(biāo)檢測領(lǐng)域也是最好的方法。
現(xiàn)在,你已經(jīng)對目標(biāo)檢測的挑戰(zhàn)是什么有了更直觀的了解,也知道了如何解決這些問題,下面我們會對過去幾年深度學(xué)習(xí)方法在目標(biāo)檢測領(lǐng)域的演變過程做一個(gè)綜述介紹。
第一個(gè)使用深度學(xué)習(xí)進(jìn)行目標(biāo)檢測并取得很大進(jìn)展的方法是紐約大學(xué)在2013年提出的Overfeat。他們提出了一個(gè)使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)的多尺度滑動(dòng)窗口算法。
在Overfeat提出不久,來自加州大學(xué)伯克利分校的Ross Girshick等人發(fā)表了基于卷積神經(jīng)網(wǎng)絡(luò)特征的區(qū)域方法(Regions with CNN features,R-CNN),它在目標(biāo)檢測比賽上相比其他方法取得了50%的性能提升。他們提出了一個(gè)三階段的方法:
使用區(qū)域候選算法提取包含可能目標(biāo)的區(qū)域(最流行的選擇性搜索算法)
使用CNN在每個(gè)區(qū)域上提取特征。
使用支持向量機(jī)對區(qū)域進(jìn)行分類。
6Girshick, Ross, et al. 'Rich feature hierarchies for accurate object detection and semantic segmentation.' 2014.
雖然該方法取得了很好的結(jié)果,但是訓(xùn)練階段有很多問題。要訓(xùn)練網(wǎng)絡(luò),首先要生成訓(xùn)練數(shù)據(jù)集的候選區(qū)域,然后對每一個(gè)區(qū)域使用CNN提取特征(對于Pascal 2012訓(xùn)練數(shù)據(jù)集來說,通常需要生成大于200GB的中間文件),最后訓(xùn)練SVM分類器。
一年以后,Ross Girshick(微軟亞洲研究院)發(fā)表了Fast R-CNN,這個(gè)方法迅速演化成一個(gè)純深度學(xué)習(xí)的方法。與R-CNN相似,它也使用選擇性搜索來生成候選區(qū)域,但與R-CNN不同的是,F(xiàn)ast R-CNN在整張圖上使用CNN來提取特征,然后在特征圖上使用區(qū)域興趣池化(Region of Interest,ROI),并且最后用前饋神經(jīng)網(wǎng)絡(luò)來進(jìn)行分類和回歸。這個(gè)方法不僅快,而且由于RoI池化層和全連接層的存在,該模型可以進(jìn)行端到端的求導(dǎo),并且訓(xùn)練也更容易。最大的不足是該模型仍舊依賴選擇性搜索(或者其他的區(qū)域候選算法),這也成為了模型推理階段的一個(gè)瓶頸。
7Girshick, Ross. 'Fast R-CNN' 2015.
不久之后,Joseph Redmon(Girshick也是共同作者之一)發(fā)表了一篇名為《你只用看一遍:統(tǒng)一框架的實(shí)時(shí)目標(biāo)檢測》(You Only Look Once: Unified, Real-Time Object Detection(YOLO))的論文。YOLO提出了一個(gè)簡單的卷積神經(jīng)網(wǎng)絡(luò)方法,它取得了很好的結(jié)果,并且速度也非???,第一次實(shí)現(xiàn)了實(shí)時(shí)的目標(biāo)檢測。
Redmon, Joseph, et al. 'You only look once: Unified, real-time object detection.' 2016.
隨后,任少卿(Girshick也作為共同作者,現(xiàn)在Facebook研究院)發(fā)表了Faster R-CNN,這是R-CNN系列的第三代。Faster R-CNN增加了一個(gè)所謂的“區(qū)域候選網(wǎng)絡(luò)(Regio Proosal Network,RPN)”,試圖擺脫搜索選擇算法,從而讓模型實(shí)現(xiàn)完全端到端的訓(xùn)練。我們不會詳細(xì)介紹RPN的原理,不過簡單地說,它的作用是根據(jù)“屬于目標(biāo)”的分?jǐn)?shù)來輸出可能目標(biāo)。RoI池化層和全連接層使用這些目標(biāo)進(jìn)行分類。我們會在后續(xù)的博客中詳細(xì)介紹該結(jié)構(gòu)的細(xì)節(jié)。
9Ren, Shaoqing, et al. 'Faster R-CNN: Towards real-time object detection with region proposal networks.' 2015.
最后,有兩篇著名的論文,《單幀檢測器》(Single Shot Detector,SSD),它在YOLO的基礎(chǔ)上進(jìn)行改良,通過使用多尺度的卷積特征圖以達(dá)到更好的結(jié)果和速度,以及《基于區(qū)域的全卷積網(wǎng)絡(luò)》(Region-based Fully Convolutional Networks,R-FCN),它使用了Faster RCNN的架構(gòu),但是只含有卷積網(wǎng)絡(luò)。
在研究中,數(shù)據(jù)集起到非常重要的作用(有時(shí)被低估了)。每當(dāng)一個(gè)新的數(shù)據(jù)集發(fā)布以后,新的論文接踵而至,新的模型被互相比較,不斷進(jìn)步,把可能性推向極致。
不幸的是,目標(biāo)檢測的數(shù)據(jù)集不是太多。數(shù)據(jù)比較難(也很昂貴)獲得,公司可能不愿意免費(fèi)發(fā)布他們投資的產(chǎn)品,而大學(xué)又沒有足夠的資源。
不過現(xiàn)在依然有一些很好的數(shù)據(jù)集,下面是一些主要的公開數(shù)據(jù)集:
數(shù)據(jù)集名稱 圖像數(shù)量(訓(xùn)練驗(yàn)證) 種類 最后一次更新ImageNet 450K 200 2015COCO 120K 80 2014Pascal VOC 12K 20 2012Oxford-IIIT Pet 7K 37 2012KITTI Vision 7K 3 2014
總而言之,目標(biāo)檢測領(lǐng)域現(xiàn)在有很多機(jī)會,不管是在未知的應(yīng)用還是在提出新方法推進(jìn)領(lǐng)域內(nèi)最先進(jìn)的效果上。盡管這只是一個(gè)目標(biāo)檢測的概述,我希望它能讓你們對目標(biāo)檢測有一個(gè)基本了解,從而引導(dǎo)你們了解深度知識。
后面幾周,我們會做關(guān)于目標(biāo)檢測框架實(shí)現(xiàn)的細(xì)節(jié)、評估標(biāo)準(zhǔn)以及訓(xùn)練模型方法的系列文章。我們也會嘗試將過去的目標(biāo)檢測算法應(yīng)用到其他問題上。
聯(lián)系客服