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比賽上提出的一些經典網絡,包括AlexNet,ZFNet,OverFeat,VGG,Inception,ResNet。
Inception網絡
Inception網絡又叫做GoogLeNet。2012年AlexNet贏得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
參考
- https://baike.baidu.com/item/ImageNet/17752829?fr=aladdin
- https://www.cnblogs.com/liaohuiqiang/p/9609162.html
- http://baijiahao.baidu.com/s?id=1601882944953788623&wfr=spider&for=pc