計算機視覺的任務不少,有圖像分類、目標檢測、語義分割、實例分割和全景分割等,那它們的區別是什麼呢?
一、Image Classification(圖像分類)
圖像分類(下圖左)就是對圖像判斷出所屬的分類,好比在學習分類中數據集有人(person)、羊(sheep)、狗(dog)和貓(cat)四種,圖像分類要求給定一個圖片輸出圖片裏含有哪些分類,好比下圖的例子是含有person、sheep和dog三種。git
二、Object detection(目標檢測)
目標檢測(上圖右)簡單來講就是圖片裏面有什麼?分別在哪裏?(把它們用矩形框框住)
目前經常使用的目標檢測算法有Faster R-CNN和基於YOLO的目標檢測的算法
三、semantic segmentation(語義分割)
一般意義上的目標分割指的就是語義分割
語義分割(下圖左)就是須要區分到圖中每一點像素點,而不只僅是矩形框框住了。可是同一物體的不一樣實例不須要單獨分割出來。對下圖左,標註爲人,羊,狗,草地。而不須要羊1,羊2,羊3,羊4,羊5等。算法
四、Instance segmentation(實例分割)
實例分割(上圖右)其實就是目標檢測和語義分割的結合。相對目標檢測的邊界框,實例分割可精確到物體的邊緣;相對語義分割,實例分割須要標註出圖上同一物體的不一樣個體(羊1,羊2,羊3...)
目前經常使用的實例分割算法是Mask R-CNN。
Mask R-CNN 經過向 Faster R-CNN 添加一個分支來進行像素級分割,該分支輸出一個二進制掩碼,該掩碼錶示給定像素是否爲目標對象的一部分:該分支是基於卷積神經網絡特徵映射的全卷積網絡。將給定的卷積神經網絡特徵映射做爲輸入,輸出爲一個矩陣,其中像素屬於該對象的全部位置用 1 表示,其餘位置則用 0 表示,這就是二進制掩碼。
一旦生成這些掩碼, Mask R-CNN 將 RoIAlign 與來自 Faster R-CNN 的分類和邊界框相結合,以便進行精確的分割:
五、Panoramic segmentation(全景分割)
全景分割是語義分割和實例分割的結合。跟實例分割不一樣的是:實例分割只對圖像中的object進行檢測,並對檢測到的object進行分割,而全景分割是對圖中的全部物體包括背景都要進行檢測和分割。api
轉自:https://blog.csdn.net/Gerwels_JI/article/details/82990189markdown
後期我會寫CV綜述,此處留坑佔位!
也會對object segmentation的方法進行總結,佔坑!網絡
圖像理解領域中的object segmentation方向包括了:image classification、object localization、object detection、semantic segmentation、instance-level segmentation。分類複雜度依次遞增,分類詳細程度依次遞增。架構
計算機視覺(CV)一直是目前深度學習領域最熱的研究領域,其是一種交叉學科包括計算機科學(computer science / (Graphics, Algorithms, Theory, Systems, Architecture)、數學 (Information Retrieval, Machine Learning)、工程學(Robotics, Speech, NLP, Image Processing)、物理(Optics)、生物學 (Neuroscience), and 神經科學 (Cognitive Science),因爲計算機視覺表示了對視覺環境的理解,加上其學科交叉性,衆多科學家認爲計算機視覺的發展能夠爲實現理想的人工智能鋪路。app
對於問題:什麼纔是計算機視覺?如下有三個不一樣的教科書式計算機視覺定義:框架
「the construction of explicit, meaningful descriptions of physical objects from images」 (Ballard & Brown, 1982)dom
「computing properties of the 3D world from one or more digital images」 (Trucco & Verri, 1998)性能
「to make useful decisions about real physical objects and scenes based on sensed images」 (Sockman & Shapiro, 2001)
那麼爲何要研究計算機視覺呢?最簡單的答案就是其能夠將研究快速有效的應用到現實場景中,下面列舉了幾個CV應用的場景:
筆者最近完成了斯坦福的CS231課程【1】,課程中將卷積神經網絡用在視覺識別任務中,包括圖像分類,定位和檢測,尤爲是深度學習技術的發展極大的提升了這些任務的精度,完成這個課程後,筆者想和你們分享5個最具影響力的計算機視覺技術。
圖像分類任務描述以下:給定一系列標記爲單標籤的圖像,但願成功預測出未經標記的新的數據的標籤。與這個任務相聯繫的是更多的挑戰:包括:角度多樣性, scale多樣性, 額外新類的變化, 圖像的損壞, 先驗條件, 和背景的變化。
so,如何才能設計一個算法分類出不一樣的類,計算機視覺研究者提出以數據爲驅動的解決方法,令計算機從一些已經有類別標記的圖像中學習到圖像的視覺表示。
而在這個算法中最經常使用的就是卷積神經網絡了,Convolutional Neural Networks (CNNs)。輸入圖像到CNN網絡中後,CNN並非直接對整個圖像作計算,而是建立一個滑動機制,假設先輸入圖像中10*10的pixel,以相乘的計算方式計算,乘數部分紅爲卷積核,而後從左到右進行滑動,計算接下來的10*10pixel,這就是CNN中的滑動窗口計算機制。
輸入數據輸入卷積層後,卷積層中卷積核僅關注當前部分和它附近的部分。總體的卷積網絡趨向於更窄以便於在相同參數量的狀況下搭建更深的網絡。除了卷積層以外,在分類中常使用的還有池化層pooling layer,最多見的是最大池化 Max pooling,假設maxpooling的pooling核是2,maxpooling 的工做機制是取2x2大小的像素塊中的最大值代替這個像素塊。
圖像分類最典型的數據集是imagenet,一個包含120萬張,1000類的大型圖像數據集。以此數據集爲基礎,衍生了許多典型的深度學習經典網絡:
圖像分類任務雖然簡單,應用範圍也有限,可是其是計算視覺的基礎,圖像分類上的成功代表深度學習網絡具備學習並理解圖像的能力。目前計算機視覺的其餘任務使用的basemodel都是在image classification上取得成功的網絡結構。所以,能夠把圖像分類視爲深度學習實現人工智能的第一步。
注:貌似16年日後,基本沒有革新性質的網絡結構出現了,/手動笑哭/。
object detection的任務是檢測到圖像中的目標並分類出目標種類,如上圖所示,檢測出車並框住,並給出框中目標的置信度,固然上圖並非目前深度學習最好的結構,圖中有兩個漏檢測的目標。
目標檢測與圖像分類,目標定位不一樣的地方在於目標檢測是同時應用分類和定位技術到圖像中的多個目標,此類任務的label也更復雜,不只要知道目標的位置(bounding box)還要知道目標的類別,並且爲了檢測到比較小的目標,提升檢測精度,此類任務的batch size每每很小。
目標檢測的技術實現相對複雜,可是應用場景很是多,好比統計:統計人、車、花朵或者微生物的數量是現實生活中各類不一樣類型的使用圖形信息的系統最普遍的需求;圖像檢索,根據圖像檢測圖像;衛星圖像分析;安防場景等等。
目前深度學習在這方面的工做有不少:
以上這些都是近幾年來最典型的目標檢測成果,這些工做提供了深度學習技術在目標檢測上的應用形式以及研究方向,目前的大部分較好的結果都是基於這些工做改進而來。
目標追蹤便是在一個給定的場景中,follow一個或者多個目標。傳統上,目標追蹤都是應用在視頻或者實時場景交互,好比觀測者追蹤一個初始的目標。目前來說,使用最典型的場景就是自動駕駛了。
目標追蹤能夠分爲兩類:一類是生成式方法,另外一類是判別式方法。生成方法使用生成模型來描述表觀特徵並最小化重建偏差以搜索目標,如PCA。而判別式方法能夠用來區分物體和背景,其性能更穩健,並逐漸成爲跟蹤的主要方法。判別法也被稱爲跟蹤檢測,深度學習屬於這一類別。爲了經過檢測實現跟蹤,咱們檢測全部幀的候選對象,並使用深度學習從候選對象中識別想要的對象。有兩種可使用的基本網絡模型:堆疊自動編碼器(SAE)和卷積神經網絡(CNN)。
使用SAE跟蹤任務的最受歡迎的深度網絡是Deep Learning Tracker,它提出線下預訓練和在線微調網絡,工做流程以下:
因爲其在圖像分類和目標檢測方面的優點,CNN已成爲計算機視覺和視覺跟蹤的主流深度模型。通常來講,大規模的CNN既能夠做爲分類器也能夠做爲跟蹤器來訓練。 2種有表明性的基於CNN的跟蹤算法是全卷積網絡跟蹤器(FCNT)和多域CNN(MD Net)。
FCNT成功地分析和利用了VGG模型的特徵圖,這是一個預先訓練好的ImageNet,並得出如下結論:
所以,FCNT設計了特徵選擇網絡以在VGG網絡的conv4-3和conv5-3層上選擇最相關的特徵圖。而後爲了不嘈雜的過擬合,它還爲兩層單獨選擇的特徵映射設計了額外的兩個通道(稱爲SNet和GNet)。 GNet捕獲對象的類別信息,而SNet將該對象從具備類似外觀的背景中區分出來。兩個網絡都使用第一幀中給定的邊界框進行初始化,以獲取對象的熱圖,而對於新幀,將裁剪並傳播最後一幀中以對象位置爲中心的感興趣區域(ROI)。最後,經過SNet和GNet,分類器獲取兩個預測的熱圖,跟蹤器根據是否存在干擾,決定使用哪一個熱圖來生成最終的跟蹤結果。 FCNT的pipline以下所示。
與FCNT的想法不一樣,MD Net使用視頻的全部序列來跟蹤它們的移動。上述網絡使用不相關的圖像數據來減小跟蹤數據的訓練需求,而且這種想法與跟蹤有一些誤差。該視頻中的一個類的對象能夠是另外一個視頻中的背景,所以MD Net提出了多域的思想來獨立地區分每一個域中的對象和背景。而一個域表示一組包含相同類型對象的視頻。
以下圖所示,MD Net分爲兩部分:域特定層的共享層和K分支。每一個分支包含一個softmax損失的二進制分類層,用於區分每一個域中的對象和背景,共享層與全部域共享以確保通常表示。
近年來,深度學習研究人員嘗試了不一樣的方法來適應視覺追蹤任務的特徵。有許多方向已經被探索:應用其餘網絡模型,如Recurrent Neural Net和Deep Belief Net,設計網絡結構以適應視頻處理和端到端學習,優化流程,結構和參數,或者甚至將深度學習與計算機視覺的傳統方法或其餘領域的方法(如語言處理和語音識別)相結合。
計算機視覺的核心是分割過程,它將整個圖像分紅像素分組,而後能夠對其進行標記和分類。特別地,語義分割試圖在語義上理解圖像中每一個像素的角色(例如,它是汽車,摩托車仍是其餘類型的類)。例如,在上圖中,除了識別人,道路,汽車,樹木等以外,咱們還必須劃定每一個物體的邊界。所以,與分類不一樣,咱們須要從咱們的模型進行像素級的預測。
與其餘計算機視覺任務同樣,CNN在分割問題上取得了巨大成功。最流行的初始方法之一是經過滑動窗口進行patches分類,其中每一個像素使用其周圍的圖像pathes分別分類。可是,這在計算上效率很是低,由於咱們不重用重疊patches之間的共享功能。
加州大學伯克利分校的研究員提出了全卷積網絡(FCN),它在沒有任何徹底鏈接層的狀況下推廣端到端CNN體系結構進行密集預測。這容許針對任何尺寸的圖像生成分割圖,而且與patches分類方法相比也快得多。幾乎全部後續的語義分割方法都採用了這種範式。
然而,仍然存在一個問題:原始圖像分辨率的卷積將很是昂貴。爲了解決這個問題,FCN在網絡內部使用下采樣和上採樣。下采樣層被稱爲條帶卷積,而上採樣層被稱爲轉置卷積。
儘管有上採樣/下采樣層,但因爲池中的信息丟失,FCN會生成粗分割圖。 SegNet是一種比使用最大池和編碼器 - 解碼器框架的FCN更高效的內存架構。在SegNet中,從更高分辨率的特徵映射中引入了快捷/跳過鏈接,以改善上採樣/下采樣的粗糙度。
最近的語義分割研究都嚴重依賴徹底卷積網絡,如
空洞卷積 https://arxiv.org/pdf/1511.07122.pdf,
DeepLab https://arxiv.org/pdf/1412.7062.pdf
RefineNet https://arxiv.org/pdf/1611.06612.pdf。
除了語義分段以外,實例分段還將不一樣的實例分類,例如用5種不一樣顏色標記5輛汽車。在分類中,一般有一個圖像包含單個對象做爲焦點,任務是說出該圖像是什麼。但爲了分割實例,咱們須要執行更復雜的任務。咱們看到多個重疊物體和不一樣背景的複雜景點,咱們不只分類這些不一樣的物體,並且還肯定它們的邊界,差別和彼此之間的關係!
到目前爲止,咱們已經看到了如何以許多有趣的方式使用CNN特徵,以便用bounding box框住圖像中的不一樣對象。咱們能夠擴展這種技術來定位每一個對象的精確像素,而不只僅是邊界框嗎?固然能夠, Facebook AI使用稱爲Mask R-CNN的體系結構研究了此實例分割問題。
就像Fast R-CNN和更快的R-CNN同樣,Mask R-CNN的底層直覺很直觀鑑於更快的R-CNN在物體檢測方面的工做如此出色,咱們是否能夠將其擴展到進行像素級分割?
Mask R-CNN經過向Faster R-CNN添加分支來完成此操做,該分支輸出一個二進制掩碼,該掩碼錶示給定像素是否爲對象的一部分。該分支是基於CNN特徵映射的徹底卷積網絡。給定CNN特徵映射做爲輸入,網絡輸出一個矩陣,其中像素屬於該對象的全部位置均爲1,而其餘位置爲0(這稱爲二進制掩碼)。
另外,當在原始Faster R-CNN架構上運行時沒有修改時,由RoIPool(感興趣區域)選擇的特徵映射區域與原始圖像的區域略微錯開。因爲圖像分割須要像素級別的特異性,與邊界框不一樣,這天然會致使不許確。 Mask R-CNN經過調整RoIPool使用稱爲Roialign(感興趣區域對齊)的方法更精確地對齊來解決此問題。本質上,RoIAlign使用雙線性插值來避免舍入錯誤,這會致使檢測和分割不許確。
一旦生成這些蒙版,Mask R-CNN將它們與來自Faster R-CNN的分類和邊界框相結合,以生成如此精確的精確分割:
這5種主要的計算機視覺技術能夠幫助計算機從單個或一系列圖像中提取,分析和理解有用的信息。還有許多其餘我還沒有涉及的高級技術,包括樣式轉換,着色,動做識別,3D對象,人體姿式估計等等。事實上,計算機視覺領域的成本過高,沒法深刻報道,我鼓勵您進一步探索,不管是經過在線課程,博客教程仍是正式文檔。我強烈推薦CS231n做爲初學者,由於您將學習實施,訓練和調試本身的神經網絡。做爲獎勵,您能夠從個人GitHub存儲庫中獲取全部演講幻燈片和分配指南。我但願它會引導你改變如何看待這個世界!