百度 PaddlePaddle 團隊開發的 PaddleClas 是一個適用於業界和學界的圖像分類任務工具集,能夠幫助用戶訓練更好的計算機視覺模型並應用於真實場景中。近期 PaddleClas 迎來了全面升級,其中提供了更高精度的知識蒸餾模型、更豐富的模型種類以及更佳的開發體驗,從而使得開發者更方便地在服務器端或者移動端、IoT 端進行部署。git
下載安裝命令 ## CPU版本安裝命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle ## GPU版本安裝命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu
圖像分類任務做爲深度學習視覺領域的「基石」,幾乎是每一位視覺方向開發者最早要學習的基礎本領。衆所周知,圖像分類已普遍應用在智慧零售、智慧交通、智慧醫療、智慧安防等等各行各業。不只如此,圖像目標檢測、圖像分割、圖像檢索、OCR、人臉識別等高階視覺任務也常將圖像分類網絡做爲骨幹網絡。圖像分類的網絡結構和預訓練模型則無疑是智能視覺技術的穩固地基和強壯骨架,它的性能直接影響高階視覺任務的效果。github
圖像分類任務如此重要,但好的分類網絡卻沒有那麼容易被訓練出來。開發者每每要面臨像目標遮擋、尺度變化、變形、背景噪音過大、光照視角多變、目標姿態多變等問題。爲了解決這些困難,你們通常須要從數據增廣、骨幹網絡設計、損失定義、優化器設計、模型壓縮裁剪量化、模型可解釋性、特徵遷移學習等不一樣的角度對圖像分類問題進行深刻探索。聽起來是否是就頭大?算法
莫慌!PaddleClas 就是一個超強的圖像分類任務的工具集,助力開發者訓練出更好的視覺模型並快速應用落地。PaddleClas 近期也完成了全新的升級,本次升級以後,PaddleClas 可算成爲了地表超強開源圖像分類庫(很差說『最』,怕被請喝茶)。那這個稱號是從哪裏來的呢?讓咱們用事實說話,看看 PaddleClas 升級後到底有多強大!服務器
-
更高精度的模型:基於百度自研的知識蒸餾方案(SSLD),PaddleClas 開源了 14 個 SSLD 分類預訓練模型,精度廣泛提高 3% 以上;其中 ResNet50_vd 模型在 ImageNet-1k 數據集上的 Top-1 精度達到了 84.0%,Res2Net200_vd 預訓練模型 Top-1 精度高達 85.1%。同時也優化出更多業界 SOTA 模型,並支持圖像檢測、分割以及 OCR 等高階視覺任務全面提高模型效果;網絡
-
更豐富的模型種類:本次升級新增 4 個系列模型(InceptionV三、GhostNet、ResNeSt 和 RegNet),至此 PaddleClas 總共包含 29 個系列的分類網絡以及 134 個預訓練模型;工具
-
開發體驗進一步升級:全面支持動態圖,使你的算法構建、訓練以及評估調試更輕鬆。並進一步打通全流程部署,不管是在移動端、IoT 端仍是在服務器端進行部署,均可以在這裏找到最佳的部署方案;性能
-
數十種圖像分類算法開發的 Trick 和工具!深刻理解開發者算法開發過程當中的難點,手把手教你提高算法性能!學習
已經火燒眉毛要去看項目代碼了嘛?傳送門送你一程:優化
https://github.com/paddlepaddle/PaddleClasurl
以爲不錯的小夥伴能夠點起 Star 支持一下~
在深刻研究 PaddleClas 以後呢,本文也給你們解析一下 PaddleClas 本次升級的詳情。
更多高精度的知識蒸餾模型
PaddleClas 中提供了 SSLD 知識蒸餾方案,在無需更多有標籤圖像的條件下,能夠在不換模型的基礎上將分類模型的精度提高 3% 以上。在這次全面升級過程當中,PaddleClas 進一步提供了基於 ResNet_vd、HRNet、Res2Net_vd、MobileNetV三、GhostNet 等骨幹網絡蒸餾獲得的 SSLD 預訓練模型,不只能夠用於遷移訓練、預訓練權重參數;也能夠用於檢測、分割等下游視覺任務中,進一步提高下游視覺任務的精度指標。
就讓咱們看圖說話:下面兩張圖給出了 PaddleClas 在服務器端和端側(移動端、IoT 端)開源的 SSLD 蒸餾預訓練模型的精度提高對比狀況:
能夠看出,不管是服務器端仍是移動端或 IoT 端,通過 SSLD 知識蒸餾以後的模型精度均提高了 3% 左右。並且模型越大,精度提高越明顯。特別地,基於該蒸餾方案,PaddleClas 將 ResNet50_vd 的 Top-1 精度提高到 83.0%;進一步地,基於 Fix 策略,調大訓練尺度 (224 -> 320),ResNet50_vd 的 Top-1 精度能夠到達 84.0%。
此外,基於 SSLD 蒸餾預訓練模型,在目標檢測任務中,模型精度提高也很是明顯,具體以下表所示:
在圖像分割任務中, 基於 CityScapes 數據集的精度收益以下表所示:
在文字檢測任務中(OCR),基於 DBNet 的精度收益以下:
在絕大多數場景中,不須要任何額外的訓練或者預測成本,僅使用 SSLD 知識蒸餾預訓練模型,即可以輕鬆提高模型精度。更多 SSLD 的原理和性能,能夠到這裏查看詳情:https://github.com/PaddlePaddle/PaddleClas/blob/release/2.0-rc1/docs/zh_CN/advanced_tutorials/distillation/distillation.md
更豐富的模型種類
如咱們在開頭所述, PaddleClas 在這次升級中,進一步豐富了模型庫,新增 4 個系列模型(InceptionV三、GhostNet、ResNeSt、RegNet)。目前總共包含 29 個系列的分類網絡以及 134 個預訓練模型,包括 ResNet、ResNet_vd、Res2Net、ResNeXt 、HRNet、ResNeSt、MobileNetV1/2/三、GhostNet 等,涵蓋了從服務器端到移動端的各種使用場景,這也是目前種類最豐富的圖像分類代碼倉庫。
-
InceptionV3 是 Google 對 InceptionV2 的一種改進。首先,InceptionV3 設計和使用了更多種類的 Inception 模塊,部分 Inception 模塊將較大的方形二維卷積拆成兩個較小的非對稱卷積,從而大幅度節省參數量;
-
GhostNet 是華爲於 2020 年提出的一種全新的輕量化網絡結構。經過引入 Ghost module,大大緩解了傳統深度網絡中特徵的冗餘計算問題,使得網絡的參數量和計算量大大下降;
-
ResNeSt 系列模型是 2020 年提出的。在原有的 ResNet 網絡結構上作了改進,經過引入 K 個 Group 和在不一樣 Group 中加入相似於 SEBlock 的 attention 模塊,使得精度相比於基礎模型 ResNet 有了大幅度的提高,且參數量和 flops 與基礎的 ResNet 基本保持一致;
-
RegNet 是由 Facebook 於 2020 年提出。經過加入共享瓶頸 ratio、共享組寬度、調整網絡深度與寬度等策略,最終實現簡化設計空間結構、提升設計空間的可解釋性、改善設計空間的質量,並保持設計空間的模型多樣性的目的。
下面也分別給出了服務端模型和端側模型在 T4 GPU 和驍龍 855 芯片上的預測耗時與精度曲線,你們能夠根據本身的預測耗時或者精度要求,選擇合適的分類網絡。
更好的易用性
全面支持動態圖
靜態計算指的是程序在編譯執行時首先生成神經網絡結構,而後再執行相應操做。經過這種先定義後運行的方式,再次運行的時候就再也不須要從新構建計算圖,所以在速度方面會更快一些。動態計算指的是程序按照編寫命令的順序進行執行,這會大大下降調試的難度。在這次升級中,PaddleClas 在訓練過程當中爲動態圖模式,在預測部署時爲靜態圖模式,從而保證了訓練過程當中的易用性以及模型預測過程當中的效率。
多系統、多硬件、多端部署全面支持
PaddleClas 如今支持包括 GPU/CPU/XPU、Windows/Linux/MacOS 等多種訓練平臺。對於訓練獲得的模型,PaddleClas 提供基於服務器端(Paddle Inference)和 移動端、IoT 端(Paddle Lite),以及輕量化服務端(Hub Serving)的高性能部署方法,同時支持 Python 預測與 C++ 預測,知足大多數開發者的使用需求。
更豐富的教程文檔及調優Trick
-
《PaddleClas 的圖像分類訓練、評估、預測開始教程》:https://github.com/PaddlePaddle/PaddleClas/blob/dygraph/docs/zh_CN/tutorials/getting_started.md
-
開源社區小夥伴總結的《基於 PaddleClas 完成產業級圖像分類項目》
-
基於 Paddle Lite 在手機、機器人終端等進行模型優化與交叉編譯的方案《PaddleClas 端側部署教程》:https://github.com/PaddlePaddle/PaddleClas/blob/dygraph/deploy/lite/readme.md
-
針對開發者在開發過程當中遇到的實際難題總結出的《圖像分類 30 問》https://github.com/PaddlePaddle/PaddleClas/blob/dygraph/docs/zh_CN/faq.md
-
還有《PaddleClas 每週 FAQ》https://github.com/PaddlePaddle/PaddleClas/blob/dygraph/docs/zh_CN/faq_series.md 等等高價值內容
此外,考慮到圖像分類領域內容豐富,更新頻繁,PaddleClas 官方團隊計劃儘量高頻地持續更新圖像分類領域的 Tricks、FAQ 等內容給到你們,力爭全方位讓開發者不管是進行學術科研以仍是產業算法應用過程當中都更加順暢。
這樣有如和璧隋珠同樣的開源項目,這樣用心勤奮的技術團隊,你還不心動要嘗試使用下 PaddleClas 嗎?趕忙前往 PaddleClas 開源地址查看項目詳情吧!也歡迎各位小夥伴點星(Star)、Fork、Watch,方便反覆研究查看~~
下載安裝命令 ## CPU版本安裝命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle ## GPU版本安裝命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu
GitHub:
https://github.com/PaddlePaddle/PaddleClas
Gitee:
https://gitee.com/paddlepaddle/PaddleClas
本文同步分享在 博客「飛槳PaddlePaddle」(CSDN)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。