RestNet50預訓練模型top1近80%,基於飛槳PaddlePaddle的多種圖像...

2020-12-12 砍柴網

在計算機視覺領域,圖像分類是非常重要的基本問題,是圖像目標檢測、圖像分割、圖像檢索、視頻理解、物體跟蹤、行為分析等其他高層視覺任務的基礎,在實際場景中,有著廣泛應用。飛槳(PaddlePaddle)視覺模型庫圖像分類持續提供業內領先的分類網絡結構訓練方法以及在imagenet 1000分類任務上的預訓練模型。目前,已開源10種不同網絡結構,25個預訓練模型,包括當前效果最優的ResNet50(top-1:79.84%),助力用戶提高構建模型的效率,大大減輕「煉丹」的煩惱。

  一、當前效果最優的ResNet50預訓練模型

ResNet是近幾年非常流行的卷積神經網絡結構,其創造性提出的殘差結構,一舉在ILSVRC2015比賽中取得冠軍,並且獲得計算機視覺頂級會議CVPR 2016的最佳論文。其中50層的網絡結構(ResNet50)的效果優化,備受學術界和工業界關注。

一方面,廣泛使用的ResNet50在imagenet1000分類任務上,top1識別準確率可以達到較高的識別準確率76.5%;另一方面對一張224*224的圖像進行分類,預測效率高,適合研究探索新方法和實際場景應用,在Tesla P4卡測試,如果使用飛槳核心框架Paddle Fluid預測,平均預測時間是8.787ms,進一步結合TensorRT預測,平均預測時間可以加速到5.434ms。「Bag of Tricks for Image Classification with Convolutional Neural Networks」[1]匯總了近些年ResNet50改進工作,通過採用網絡結構微調、餘弦學習率衰減、標籤平滑、mixup以及知識蒸餾技巧,在預測效率基本不變的前提下,將ResNet50的top1識別準確率從76.5%提升到79.29%。

百度視覺技術團隊,基於百度深度學習平臺飛槳,不僅復現了這些技巧,而且對知識蒸餾進行改進,將ResNet50的top1識別準確率從79.29%提升到79.84%,同時將這些技巧用於訓練其他分類網絡結構,提升這些網絡預訓練模型的能力。以下將會對網絡結構微調和知識蒸餾兩部分進行介紹。

對於ResNet網絡結構微調,「Bag of Tricks for Image Classification with Convolutional Neural Networks」[1]中提到了三種:ResNet-B、ResNet-C和ResNet-D。ResNet-B與標準的ResNet主要區別是每個殘差模塊特徵圖下採樣的位置不同。ResNet-C主要改動如下,將輸入圖像後面第一個7x7的卷積核換成3個3x3的卷積核,在不改變初始感受野的情況下能帶來更好的性能。 ResNet-D的改動也是在每個殘差模塊,在stride為2的1x1的卷積核做下採樣前接一個2x2的avg-pool,這樣可以在幾乎不增加計算量的同時,有效避免信息丟失。ResNet(B,C,D)改動如下圖所示。

在設計知識蒸餾技巧時,我們的基本思想是在student model有預訓練的情況下,讓student model直接學習teacher model的softmax輸出而不考慮真實label的情況會有更低的泛化誤差,採用這種非常簡單的方式,可以有效將teacher model的能力遷移到student model,如下圖所示,將ResNet152_vd(top1:80.59%)作為teacher model,將已訓練好的ResNet50_vd(top1:79.12)作為student model, 學習率採用帶warmup的餘弦下降的方式訓練100epoch。最終ResNet50_vd網絡結構 top1的識別準確率可以達到79.84%。 這個預訓練模型已經開源,其訓練代碼不久將會發布。

下表顯示了每一次網絡結構改動及增加訓練策略後在imagenet 1000分類任務上top1的識別準確率,其中LSR為Label Smoothing Regularization的縮寫。

  二、飛槳已開源的圖像分類預訓練模型簡介

AlexNet[2]

2012年,Alex等人提出的AlexNet網絡在ImageNet大賽上以遠超第二名的成績奪冠,卷積神經網絡乃至深度學習引起了廣泛的關注。AlexNet使用relu作為CNN的激活函數,解決了sigmoid在網絡較深時的梯度彌散問題。訓練時使用Dropout隨機丟掉一部分神經元,避免了模型過擬合。在CNN中使用重疊的最大池化(步長小於卷積核)。此前CNN中普遍使用平均池化,使用最大池化可以避免平均池化的模糊效果,同時重疊效果提升了特徵的豐富性。從某種意義上說,AlexNet引爆了神經網絡的研究與應用熱潮。

VGG 系列模型[3]

VGGNet是牛津大學計算機視覺組和DeepMind公司共同研發一種深度卷積網絡,2014年在ILSVRC比賽上獲得了分類項目的第二名和定位項目的第一名,其網絡設計思想直接影響了往後這些年的CNN網絡設計,進一步推動了基於深度學習的計算機視覺的發展。當前飛槳分類模型庫提供了VGG11,VGG13,VGG16以及VGG19四個網絡結構預訓練模型。

GoogLeNet[4]與InceptionV4[5]

GoogLeNet又名InceptionV1,是Inception網絡的開山鼻祖,GoogLeNet創造性地使用了1x1的卷積來進行升降維並且在多個尺寸上同時進行卷積再聚合,在相同的計算量下能提取到更多的特徵,從而提升訓練結果。此後Inception系列網絡在不斷升級,InceptionV4更是達到了當時的state of the art的效果,在各類AI競賽中,也總能看到InceptionV4的影子。當前飛槳分類模型庫提供的InceptionV4由於採用了label_smoothing與mixup混合訓練的方式,將論文的指標提高了近0.8個點,成為目前開源最好的InceptonV4的預訓練模型。

MobileNet系列模型[6] [7]

MobileNet是谷歌大腦為移動端設計的網絡,它的出現一定程度上滿足了移動端應用深度學習技術的需求,截止到現在,MobileNet網絡一共有三代,每一代都在上一代的基礎上進行了改進與優化,使得其稱為名副其實的速度快,精度高,存儲空間小的網絡。

當前飛槳分類模型庫提供了MobileNetV1和MobileNetV2的預訓練模型(1x),其精度指標都高於論文指標,其他大小的預訓練模型將在不久後開源。

ShuffleNet系列模型[8] [9]

隨著移動端網絡的需求的發展,移動端網絡也成為很多科研機構的研究對象。曠視科技在2017,2018年相繼提出的輕量級可用於行動裝置的卷積神經網絡ShuffleNetV1與ShuffleNetV2。其與MobileNet系列網絡一塊促進了移動端網絡的發展。當前飛槳分類模型庫提供了ShuffleNetV2(1x)的預訓練模型,其精度指標都高於論文指標。其他大小的預訓練模型將在不久後開源。

ResNet 系列模型[10]

ResNet創新性的提出了殘差結構,一舉在ILSVRC2015比賽中取得冠軍,top5錯誤率為3.57%。史丹福大學的Joyce Xu將ResNet稱為「真正重新定義了我們看待神經網絡的方式」的三大架構之一。在最新發布的飛槳分類預訓練模型包括ResNet18,ResNet34,ResNet50,ResNet101和ResNet152。

ResNet系列模型的改進版[1]

由於ResNet系列網絡的泛化性能強,『性價比』高,從其誕生以來,就成為學術界和工業界青睞的網絡,因此其改進版的網絡也越來越多。在最新發布的飛槳分類預訓練模型包括ResNet50_vc,ResNet50_vd,ResNet101_vd,ResNet152_vd和ResNet200_vd。

ResNeXt系列模型及改進版[11]

ResNeXt是ResNet和InceptionV4的結合體,然而ResNext不需要人工設計複雜的Inception結構細節,而是每一個分支都採用相同的拓撲結構。ResNeXt的本質是分組卷積,通過變量基數(Cardinality)來控制組的數量。與ResNet 參數量相同的條件下,ResNeXt表現出更低的泛化誤差。在最新發布的飛槳分類預訓練模型包括有ResNeXt101_64x4d,ResNeXt101_vd_64x4d,其他ResNeXt預訓練模型將在不久後開源。

SE_ResNeXt 系列模型及改進版[12]

SE 全稱 Sequeeze-and-Excitation,在ILSVRC 2017 的分類項目中取得 了第一名的成績。在 ImageNet 數據集上將 top-5 錯誤率從原先的最好成績 2.991% 降低到 2.251%。

在最新發布的飛槳預訓練模型包括SE_ResNeXt50_32x4d,SE_ResNeXt101_32x4d,SE154_vd.

  三、總結

無論是學術研究,還是工業應用,圖像分類以及在imagenet上預訓練模型,都起著非常重要的作用。本文介紹的圖像分類技術以及預訓練模型已經應用到百度視覺能力方方面面,包括以圖搜索、圖像分類、OCR、人臉識別、視頻理解等方向。這些視覺能力不僅用於內部產品,也通過百度AI開放平臺持續對外輸出,目前已對外開放了包括人臉識別、文字識別(OCR)、圖像審核、圖像識別、圖像搜索等在內的70多項基礎能力,為開發者和合作夥伴提供全棧式計算機視覺能力。百度視覺技術團隊會持續跟進業界前沿,基於百度深度學習平臺飛槳,為用戶提供更多新的圖像分類預訓練模型(包括NasNet系列,MobileNetV3,EfficientNet系列等),敬請期待。

參考文獻

[1] Tong He, Zhi Zhang, Hang Zhang, Zhongyue Zhang, Junyuan Xie, Mu Li, Bag of Tricks for Image Classification with Convolutional Neural Networks, In CVPR 2019

  [2] A. Krizhevsky, I. Sutskever, and G. E. Hinton. Imagenet classification with deep convolutional neural networks. In 
NIPS, 2012. 


[3] O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M. Bernstein, et al. Imagenet large scale visual recognition challenge. IJCV.

[4] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabinovich. Going deeper with convolutions. In CVPR, 2015

  [5] C. Szegedy, S. Ioffe, and V. Vanhoucke. Inception- v4, inception-resnet and the impact of residual con- nections on learning. In ICLR Workshop, 2016. 


  [6] Howard, A.G., Zhu, M., Chen, B., Kalenichenko, D., Wang, W., Weyand, T., An- 
dreetto, M., Adam, H.: Mobilenets: Efficient convolutional neural networks for 
mobile vision applications. arXiv preprint arXiv:1704.04861 (2017) 


  [7] Sandler, M., Howard, A., Zhu, M., Zhmoginov, A., Chen, L.C.: Inverted residuals and linear bottlenecks: Mobile networks for classification, detection and segmenta- 
tion. arXiv preprint arXiv:1801.04381 (2018) 


[8] Zhang, X., Zhou, X., Lin, M., and Sun, J. Shufflenet: An ex- tremely efficient convolutional neural network for mobile devices. CVPR, 2018.

[9] Ma, N., Zhang, X., Zheng, H.-T., and Sun, J. Shufflenet v2: Practical guidelines for efficient cnn architecture design. ECCV, 2018.

[10] He, K., Zhang, X., Ren, S., and Sun, J. Deep residual learning for image recognition. CVPR, pp. 770–778, 2016.

[11] Xie, S., Girshick, R., Dolla ́r, P., Tu, Z., and He, K. Aggregated residual transformations for deep neural networks. CVPR

[12] Hu, J., Shen, L., and Sun, G. Squeeze-and-excitation net- works. CVPR, 2018.

相關焦點

  • 基於飛槳PaddlePaddle的多種圖像分類預訓練模型強勢發布
    當前飛槳分類模型庫提供了VGG11,VGG13,VGG16以及VGG19四個網絡結構預訓練模型。當前飛槳分類模型庫提供的InceptionV4由於採用了label_smoothing與mixup混合訓練的方式,將論文的指標提高了近0.8個點,成為目前開源最好的InceptonV4的預訓練模型。
  • 23個系列分類網絡,10萬分類預訓練模型,這是飛槳PaddleClas百寶箱
    飛槳圖像分類套件 PaddleClas 是飛槳為工業界和學術界所準備的一個圖像分類任務的工具集,助力使用者訓練出更好的視覺模型和應用落地。PaddleClas 具備以下 4 大特色,豐富的模型庫、高階優化支持、特色拓展應用、以及工業級部署工具。下面將為大家詳細分解。
  • 基於飛槳PaddleClas實現軋鋼帶表面缺陷分類,top1準確率可達100%
    【飛槳開發者說】路星奎,瀋陽化工大學信息工程學院研究生在讀,計算機視覺技術愛好者,研究方向為圖像分類、目標檢測、圖像分割等2019年7月的飛槳活動中
  • 基於飛槳PaddlePaddle的語義角色標註任務全解析
    原始數據中同時包括了詞性標註、命名實體識別、語法解析樹等多種信息。我們使用 test.wsj 文件夾中的數據進行訓練和測試,並只會用到 words 文件夾(文本序列)和 props 文件夾(標註結果)下的數據。
  • 快到沒朋友的YOLO v3有了PaddlePaddle 預訓練模型
    同樣使用了全卷積結構,其中最後一個卷積層的卷積核個數是255:3*(80+4+1)=255,3表示一個grid cell包含3個boundingbox,4表示框的4個坐標信息,1表示Confidence Score,80表示COCO數據集中80個類別的概率。
  • PaddlePaddle升級解讀 | PaddleHub輕鬆完成遷移學習
    項目地址:https://github.com/PaddlePaddle/PaddleHubPaddleHub介紹PaddleHub是基於PaddlePaddle開發的預訓練模型管理工具,可以藉助預訓練模型更便捷地開展遷移學習工作,旨在讓PaddlePaddle生態下的開發者更便捷體驗到大規模預訓練模型的價值。
  • 一行命令啟動,十分鐘完成部署,PaddleServing開放模型即服務功能
    Paddle Serving 秉承模型即服務(Model As A Service,MAAS)的理念,全面打通並自動化飛槳訓練框架與 Paddle Serving 的銜接流程,讓用戶在使用飛槳成功完成模型訓練的那一刻,收穫的不再只是模型,而是同時擁有了該模型的推理服務,使用戶能夠在幾分鐘內將模型轉化為一個可以在伺服器端部署的遠程服務
  • 如何基於Flutter和Paddle Lite實現實時目標檢測
    很早之前接觸到了飛槳(PaddlePaddle)以及PaddleDetection工具,被他們的簡單易用吸引,同時,這些工具極大降低了訓練模型的門檻並減少了所需時間,非常適合新手入門。在很多實際應用場景也有不俗的表現。
  • PaddlePaddle 2.0.0 Beta 發布,API 體系升級,命令式編程完善
    本版本系統優化了飛槳基礎API的目錄結構,全面修復了歷史遺留的相關問題,並對API做了充分補充,特別是提供了更為完善的高層API功能;同時提供了對動態圖的量化訓練、混合精度訓練的支持,動靜轉換實現了完備的語法支持,並且易用性大幅提升,動態圖相關功能趨於完善,推薦使用動態圖模式。此外,推理庫的C++接口也做了升級優化,推理庫對量化模型的支持以及推理性能都有了全面增強。
  • 我用Paddle Lite在樹莓派3b+上從零開始搭建「實時表情識別」項目
    本項目實踐的是基於嵌入式系統的表情識別系統的設計方法,將圖像採集、人臉檢測、表情識別和結果輸出整合到樹莓派中。項目使用USB攝像頭實時採集數據,利用PyramidBox算法在複雜環境下檢測人臉,將檢測到的人臉截取,使用飛槳(PaddlePaddle)搭建MobileNetV2深度學習網絡,使用fer2013數據集訓練模型,並對截取的人臉進行表情分類,最後將模型轉化,使用飛槳輕量化推理引擎Paddle Lite部署到Raspberry Pi 3B+中,實現實時表情識別。
  • 史上最全解讀|飛槳模型庫重大升級,主流算法模型全覆蓋
    PaddleCV 發布訓練部署端到端的圖像分割庫 PaddleSeg,圖像分類新增 EfficientNet 等 43 個預訓練模型。PaddleDetection 新增 2019 Objects365 Full Track 冠軍模型、BlazeFace 等人臉檢測小模型,行人檢測和車輛檢測的預訓練模型。
  • 百度飛槳分布式訓練在 Volcano 系統上的實踐
    2018 年 10 月,飛槳團隊發布 Paddle Fluid 1.0 版本,對神經網絡描述、大規模分布式訓練、高性能推理引擎等核心能力進行了全面升級。以工業界應用必需的分布式訓練能力為例,在最新的 Paddle Fluid 1.5.2 版本中,飛槳支持數據並行、模型並行、流水線並行等多種並行模式,參數伺服器架構和點對點同步訓練架構全面支持在 CPU、GPU 等硬體資源設備上的大規模訓練。本文將介紹飛槳分布式訓練在 Kubernetes 社區中的 Volcano 系統上進行實踐的案例。
  • 雲腦科技-實習僧文本匹配模型及基於百度PaddlePaddle的應用
    卷積神經網絡 (CNN) 一直以來的主要應用都是在基於圖像的深度學習算法上。近些年 CNN 在自然語言處理上的應用證明,CNN 系列的算法可以高效的對語言進行建模,在更快的執行速度下,達到或超過 GRU/LSTM 的效果。
  • Google AI地標檢索識別競賽雙料獲勝方案|飛槳PaddlePaddle開源
    機器之心發布來源:百度飛槳近日,百度視覺團隊基於飛槳(PaddlePaddle)深度學習平臺,自主研發的地標檢索/識別解決方案,在 Google Landmark Retrieval 2019[1] 和 Google Landmark Recognition 2019[2] 兩個任務中都斬獲第二名
  • 飛槳產業級PaddleNLP最新全景圖發布
    導讀:PaddleNLP是飛槳開源的產業級NLP工具與預訓練模型集
  • 深度學習CPU加速方案,飛槳全流程開發工具PaddleX 打通OpenVINO...
    首先,飛槳(PaddlePaddle)以百度多年的深度學習技術研究和業務應用為基礎,是中國首個開源開放、技術領先、功能完備的產業級深度學習平臺,集深度學習核心訓練和推理框架、基礎模型庫、端到端開發套件和豐富的工具組件於一體。目前,飛槳已凝聚超230萬開發者,服務企業9萬家,基於飛槳開源深度學習平臺產生了31萬個模型 。
  • 基於PaddlePaddle的圖片分類實戰 | 深度學習基礎任務教程系列
    深度學習模型中的卷積神經網絡 (Convolution Neural Network, CNN) 直接利用圖像像素信息作為輸入,最大程度上保留了輸入圖像的所有信息,通過卷積操作進行特徵的提取和高層抽象,模型輸出直接是圖像識別的結果。這種基於"輸入-輸出"直接端到端的學習方法取得了非常好的效果。
  • 深度學習與PaddlePaddle的應用-個性化推薦
    基於內容的推薦(Content-based Recommendation)基於內容的推薦系統通過分析一系列用戶之前已評分物品的文檔和(或)描述,從而基於用戶已評分對象的特徵建立模型或個人信息。個人信息是用戶興趣的結構化描述,並且被應用在推薦新的感興趣的物品中。
  • 百度飛槳發布工業級圖像分割利器PaddleSeg
    機器之心發布機器之心編輯部近日,飛槳官方發布了工業級圖像分割模型庫 PaddleSeg,給開發者帶來誠意滿滿的三重超值驚喜:①一次性開源 15 個官方支持的圖像分割領域主流模型,大禮包帶來大滿足。②多卡訓練速度比對標產品快兩倍,工業級部署能力,時間節省超痛快。
  • 基礎入門,怎樣用PaddlePaddle優雅地寫VGG與ResNet
    一般來說,圖像分類通過手工提取特徵或特徵學習方法對整個圖像進行全部描述,然後使用分類器判別物體類別,因此如何提取圖像的特徵至關重要。基於深度學習的圖像分類方法,可以通過有監督或無監督的方式學習層次化的特徵描述,從而取代了手工設計或選擇圖像特徵的工作。