第5章 圖像分類的數據集


5圖像分類的數據集

在我們實際進入到代碼編寫階段來構建分類器之前,我們首先回顧下在本書中用到的數據集。一些數據集可理想的獲得大於95%的准確率,另一些則還在開放研究階段,還有一些是圖像分類競賽的部分數據集。

現在就對這些數據集進行回顧是很重要的,這樣我們就可以在以后的章節中對我們在使用這些數據時可能遇到的挑戰有一個高級的理解。

1         MNIST

 

圖1 MNIST數據集的一個樣例

MNIST數據集是計算機視覺和機器學習文獻中最受研究的數據集之一。這個數據集的目標是正確的分類手寫數字0-9。在許多例子中,這個數據集是作為基准(benchmark),用於機器學習排名的基准。實際上,MNIST數據集用在深度學習的訓練神經網絡模型和其它語言中的“Hello World”示例是一樣的。

MNIST本身包含60000張訓練圖片和10000張測試圖片。每張圖片是784維的特征向量,即對應於圖像的28*28的灰階像素強度。這個像素值是[0, 255]之間的無符號整數。所有數字放置在前景白色背景黑色的區域。

我們主要在Starter Bundle的早期章節中使用這個數據集用於進入神經網絡的學習。

2         Animals:Dogs, Cats, Pandas

 

圖2 三分類動物集的例子

這個數據集的目的是正確的分類包含貓、狗、大熊貓的圖像。每個類別包含1000張圖片,總共3000張圖片,這個數據集是另一個“入門”數據集,可以在CPU或GPU上快速的訓練深度學習模型且獲得好的精確度。其中,貓和狗圖像來自Kaggle的Cats vs.Dogs競賽,大熊貓圖像節選自ImageNet數據集。

在第10章我們用這個數據集來示例說明,使用圖像的像素作為特征向量是如何不能獲得高質量的機器學習模型的,除非我們利用CNN。

這個數據集僅用在Starter Bundle中。

3         CIFAR-10

 

圖3 來自10類CIFAR-10數據集的例子

就像MNIST,CIFAR-10是在計算機視覺和機器學習文獻中的另一個標准的基准數據集。CIFAR-10包含60000張特征向量維數為3072的32*32*3(RGB)的圖像。

如圖3所示,CIFAR-10數據集包含圖示中的10個類別。當我們很容易的在MNIST上獲得大於97%的分類正確率,但在CIFAR-10上會有些難度(在CIFAR-100上難度更大)。挑戰主要來自對象出現方式的顯示差異。

盡管是個小的數據集,但是CIFAR-10仍然是新的CNN架構的基准測試集。我們將在Starter Bundle和Practitioner Bundle中使用CIFAR-10。

4         SMILES

 

圖4 SMILES數據集的例子

SIMILES數據集包含要么笑要么不笑的人臉圖像,數據集中總共有13165張灰階圖像,大小為32*32。

圖像是圍繞人臉的32*32大小,即讓我們設計出只專注於微笑識別的機器學習算法。計算機視覺預處理與機器學習(尤其是在基准數據集中)脫鈎是一大常見趨勢,當我們回顧常見的基准數據集時將看到。在一些例子中,假設一個機器學習研究者在應用他們自己的機器學習算法之前,有足夠的計算機視覺知識來正確的對一組圖像數據集進行預處理,是不公平的。

但是,這種趨勢正在快速改變,任何有興趣將機器學習應用於計算機視覺問題的從業者都被認為至少擁有計算機視覺方面的基本背景。這一趨勢在未來還會繼續,所以如果你打算在計算機視覺的深度學習方面更加深入的學習,一定要用一點計算機視覺來補充你的教育,即使這只是基礎知識。

如果要提高計算機視覺知識,見文檔《Adrian Rosebrock - Practical Python and OpenCV, 3rd Edition + Case studies》。

5         Kaggle:Dags vs. Cats

 

圖5 來自貓狗Kaggle競賽的例子

這個數據集是Kaggle競賽的一部分,專門用於正確的分類包含貓和狗的圖像。總共25000張具有不同分辨率的圖像提供給算法使用。

如何決定預先處理你的圖像會導致不同的性能水平,再次證明計算機視覺和圖像處理基礎的背景將會在學習深度學習中發揮很大的作用。

我們將在Practitioner Bundle中的AlexNet網絡中使用該數據集作為例子。

6         Flowers-17

Flowers-17數據集是17個種類,每個種類包含80張圖像。這個數據集的目標是在給定輸入圖像時,正確的預測flower的種類。Flowers-17可認為是一個有挑戰的數據集,由於縮放、視點角度、背景密集、亮度變化和類內差異等變化因素。此外,每個類只有80張圖像,這在訓練深度學習模型而避免過擬合也是一個挑戰。

 

圖6 三個類別的示例

作為經驗法則,建議在訓練深度神經網絡時,每個類別至少1000-5000張圖像。我們將在Practitioner Bundle中研究Flowers-17數據集,利用特征提取(feature extraction)和微調(fine-tuning)等轉移學習方法來提高分類性能。

7         CALTECH-101

2004年,李飛飛介紹的CALTECH-101數據集,該數據集作為目標檢測的流行的基准數據集。通常用於目標檢測(如預測圖像中特定對象的包圍框的(x,y)坐標),我們也可以用CALTECH-101來研究深度學習。

CALTECH-101具有極大的類別失衡,使得它可以用於類別失衡算法方面的研究。

之前的圖像分類方法在CALTECH-101上的精確度在35%-65%之間。但是就像我們在Practitioner Bundle中指出的,我們可以利用深度學習用於圖像分類來達到99%的分類正確率。

8         Tiny ImageNet 200

斯坦福大學優秀的cs231n: Convolutional Neural Networks for Visual Recognition class課程為學生組織了一個類似於ImageNet挑戰的圖像分類挑戰,但范圍更小。本數據集共有200個圖像類,其中500張圖像用於訓練,50張圖像用於驗證,50張圖像用於每類測試。每張圖像被預處理且裁剪成64*64*3像素大小,使學生更容易的關注與深度學習技術而不是計算機視覺預處理功能上。

但是,就像我們在Practitioner Bundle中指出的,這個裁剪使得問題變得更難一些,因為它使得一些重要的、有鑒別能力的信息在預處理任務中被裁剪掉了。也就是說,我將在這個數據集上示例如何訓練VGGNet、GooLenet和ResNet且在排行榜中獲得較高排名。

9         Adience

 

圖 7 用於年齡和性別預測的Adience數據集的例子

Adience數據集用於促進年齡和性別識別的研究。總共圖像26580張年齡分布在0-60之間。這個數據集的目標是正確的預測年齡和性別。我們將在ImageNet Bundle中進一步(構建自己的年齡和性別預測系統)討論Adience數據集。

10    ImageNet

在計算機視覺和深度學習社區中,你可能對ImageNet是什么或不是什么感到一點混淆。

10.1          ImageNet是什么?

ImageNet實際上是一個項目,旨在根據一組定義的單詞和短語,將圖像標記並分類到將近2.2萬個類別中。

截止到該書此時,項目中有大概1400萬張圖像。為了管理如此多的數據,采用WordNet層次管理,在WordNet中的每個有意義的單詞或短語稱為同義詞集(synet)。在InageNet中,圖像依據這些synet組織,目標是每個synet包含1000+的圖像。

10.2          ILSVRC

在計算機視覺和深度學習背景下,當人們談論ImageNet時,很可能他們談到的是ImageNet Large Scale Visual Recognition Challenge或者簡寫的ILSVRC。

在這個挑戰中圖像分類的目標是訓練一個模型,使用大概120萬張圖像用於訓練,50000張用於驗證,100000張用於測試,能夠將圖像分類到1000個不同的類別中。這1000個類別代表了我們日常生活中遇到的目標類別,如不同種類的狗、貓,不同的車輛等等。你可以看到整個目標類別在http://pyimg.co/x1ler

在圖像分類方面,ImageNet挑戰是用於計算機視覺分類算法的實際挑戰,自2012年以來,這項挑戰的排行榜一直被CNNs和深度學習技術占據。

在ImageNet Bundle中,我將在這個著名的數據集上從頭演示如何訓練重要的網絡結構(AlexNet,SqueezeNet,VGGNet,GoogLeNet,ResNet),允許你復制你在相關研究論文中看到的最新的研究成果。

11    Kaggle: Facial Expression Recognition Challenge

 

圖8 Kaggle中FER的例子

Kaggle的另一項挑戰,Facial Expression Recognition Challenge(FER)(面部表情識別挑戰)的目標是僅從他們的面部照片就能正確的識別出一個人正在經歷的面部表情。在FER中提供了35888張圖像,目標是將給定的面部表情分類到下述的7種類別中:

1. Angry

2. Disgust (sometimes grouped in with “Fear” due to class imbalance)

3. Fear

4. Happy

5. Sad

6. Surprise

7. Neutral

我將在ImageNet Bundle中演示如何使用這個數據集用於表情識別。

12    Indoor CVPR

室內場景識別(Indoor Scene Recognition)數據集,包含大量室內場景,包括商店、房屋、休閑空間、工作場所和公共空間。這個數據集的目標是訓練一個正確的能識別每一個場景的模型。但是,代替使用這個數據集的原始作用,我們在ImageNet Bundle中使用它來自動的檢測和修正圖像方向。

13    Standard Cars

 

圖9 Cars數據集的例子

這個Cars數據集包括196種汽車種類的16185張圖像。你可以根據車輛制造、型號、甚至是制造年份,以任何你想要的方式切片和掃描這個數據集。盡管每個類別有較少的圖像(具有較高的類別失衡),但是我將演示在標記車輛的制造型號時如何利用CNNs來獲得>95%的分類正確率。

 

 

 

                      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM