AI學習:ImageNet和Inception網絡

ImageNet

"ImageNet改變了AI領域人們對數據集的認識,人們真正開始意識到它在研究中的地位,就像算法一樣重要!"

    ImageNet項目是一個用於視覺對象識別軟件研究的大型可視化數據庫,目前是一個超過15 million的圖像數據集,大約有22,000類。這個項目是由李飛飛團隊從2007年開始,耗費大量人力,通過各種方式(網絡抓取,人工標註,亞馬遜衆包平臺)收集製作而成,它作爲論文在CVPR-2009發佈。

    當時人們還很懷疑通過更多數據就能改進算法的看法。深度學習發展起來有幾個關鍵的因素,一個就是龐大的數據(比如說ImageNet),一個是GPU的出現,還有更優的深度模型,更好的優化算法。可以說數據和GPU推動了這些的產生,這些產生繼續推動深度學習的發展。

 

ImageNet挑戰賽

    自2010年以來,ImageNet項目每年舉辦一次軟件比賽,即ImageNet大規模視覺識別挑戰賽(ILSVRC),到2017年後截止

    比賽項目包括:圖像分類(Classification)、目標定位(Object localization)、目標檢測(Object detection)、視頻目標檢測(Object detection from video)、場景分類(Scene classification)、場景解析(Scene parsing)

    2012年在解決ImageNet挑戰方面取得了巨大的突破,被廣泛認爲是2010年的深度學習革命的開始。2012-2015年期間在ImageNet比賽上提出的一些經典網絡,包括AlexNetZFNetOverFeatVGGInceptionResNet

 

Inception網絡

    Inception網絡又叫做GoogLeNet2012AlexNet贏得ImageNet挑戰賽後,直到GoogLeNet出來之前,主流的網絡結構突破大致是網絡更深(層數),但是純粹的增大網絡的缺點:1.參數太多,容易過擬合,若訓練數據集有限;2.網絡越大計算複雜度越大,難以應用;3.網絡越深,梯度越往後穿越容易消失(梯度彌散),難以優化模型。Inception就是在這樣的情況下應運而生。

    Inception 網絡是複雜的(需要大量工程工作)。它使用大量 trick 來提升性能,包括速度和準確率兩方面。它的不斷進化帶來了多種 Inception 網絡版本的出現。常見的版本有:

  • Inception v1
  • Inception v2 Inception v3
  • Inception v4 Inception-ResNet

Inception具體原理參考https://my.oschina.net/u/876354/blog/1637819

 

基於Inception-v3模型的圖像分類器

谷歌在大型圖像數據庫ImageNet上訓練好了一個Inception-v3模型,這個模型可以直接用來進行圖像分類。

使tensorflow提供的classify_image進行圖像分類

1.安裝tensorflow環境,可以使用tensorflow提供的Docker鏡像快速搭建環境:

//下載

# docker pull tensorflow/tensorflow:1.13.1-py3 //CPU版本

# docker pull tensorflow/tensorflow:1.13.1-gpu-py3 //GPU版本

 

//啓動

# docker run -ti tensorflow/tensorflow:1.13.1-py3 bash

2.在tensorflow環境下載示例代碼執行

# wget https://github.com/tensorflow/models/blob/master/tutorials/image/imagenet/classify_image.py

# python classify_image.py

這個示例代碼會下載訓練好的Inception-v3模型,同時下載一張熊貓照片進行識別分類,下載目錄在/tmp/imagenet/

  • nception-2015-12-05.tgz:模型壓縮包
  • classify_image_graph_def.pb:訓練好的Inception-v3模型
  • imagenet_2012_challenge_label_map_proto.pbtxt
  • imagenet_synset_to_human_label_map.txt:類別文件,共包含2萬多種類別
  • cropped_panda.jpg :熊貓圖片

執行結果:

# python classify_image.py

giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca (score = 0.89107)

indri, indris, Indri indri, Indri brevicaudatus (score = 0.00779)

lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens (score = 0.00296)

custard apple (score = 0.00147)

earthstar (score = 0.00117)

 

另外也可以訓練自己的模型,參考https://www.jianshu.com/p/acb681e9b68a

 

 

參考

  1. https://baike.baidu.com/item/ImageNet/17752829?fr=aladdin
  2. https://www.cnblogs.com/liaohuiqiang/p/9609162.html
  3. http://baijiahao.baidu.com/s?id=1601882944953788623&wfr=spider&for=pc

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章