來源:機器之心
本文約2700字,建議閱讀6分鐘
本文介紹了PaddleClas作為一個超強的影像分類任務的工具集,可以助力開發者訓練出更好的視覺模型并快速應用落地,
百度 PaddlePaddle 團隊開發的 PaddleClas 是一個適用于業界和學界的影像分類任務工具集,可以幫助用戶訓練更好的計算機視覺模型并應用于真實場景中,近期 PaddleClas 迎來了全面升級,其中提供了更高精度的知識蒸餾模型、更豐富的模型種類以及更佳的開發體驗,從而使得開發者更方便地在服務器端或者移動端、IoT 端進行部署,
影像分類任務作為深度學習視覺領域的基石,幾乎是每一位視覺方向開發者最先要學習的基礎本領,眾所周知,影像分類已廣泛應用在智慧零售、智慧交通、智慧醫療、智慧安防等等各行各業,不僅如此,影像目標檢測、影像分割、影像檢索、OCR、人臉識別等高階視覺任務也常將影像分類網路作為骨干網路,影像分類的網路結構和預訓練模型則無疑是智能視覺技術的穩固地基和強壯骨架,它的性能直接影響高階視覺任務的效果,
影像分類任務如此重要,但好的分類網路卻沒有那么容易被訓練出來,開發者往往要面臨像目標遮擋、尺度變化、變形、背景噪音過大、光照視角多變、目標姿態多變等問題,為了解決這些困難,大家一般需要從資料增廣、骨干網路設計、損失定義、優化器設計、模型壓縮裁剪量化、模型可解釋性、特征遷移學習等不同的角度對影像分類問題進行深入探索,聽起來是不是就頭大?
莫慌!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 個系列模型(InceptionV3、GhostNet、ResNeSt 和 RegNet),至此 PaddleClas 總共包含 29 個系列的分類網路以及 134 個預訓練模型;
開發體驗進一步升級:全面支持動態圖,使你的演算法構建、訓練以及評估除錯更輕松,并進一步打通全流程部署,無論是在移動端、IoT 端還是在服務器端進行部署,都可以在這里找到最佳的部署方案;
數十種影像分類演算法開發的 Trick 和工具!深入理解開發者演算法開發程序中的難點,手把手教你提升演算法性能!
已經迫不及待要去看專案代碼了嘛?傳送門送你一程:
https://github.com/paddlepaddle/PaddleClas
覺得不錯的小伙伴可以點起 Star 支持一下~
在深入研究 PaddleClas 之后呢,本文也給大家決議一下 PaddleClas 本次升級的詳情,
更多高精度的知識蒸餾模型
PaddleClas 中提供了 SSLD 知識蒸餾方案,在無需更多有標簽影像的條件下,可以在不換模型的基礎上將分類模型的精度提升 3% 以上,在此次全面升級程序中,PaddleClas 進一步提供了基于 ResNet_vd、HRNet、Res2Net_vd、MobileNetV3、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 個系列模型(InceptionV3、GhostNet、ResNeSt、RegNet),目前總共包含 29 個系列的分類網路以及134 個預訓練模型,包括 ResNet、ResNet_vd、Res2Net、ResNeXt 、HRNet、ResNeSt、MobileNetV1/2/3、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,方便反復研究查看~~
GitHub: https://github.com/PaddlePaddle/PaddleClas
Gitee: https://gitee.com/paddlepaddle/PaddleClas
如果您想詳細了解更多飛槳的相關內容,請參閱以下檔案,
官網地址:
https://www.paddlepaddle.org.cn
飛槳開源框架專案地址:
GitHub: https://github.com/PaddlePaddle/Paddle
Gitee: https://gitee.com/paddlepaddle/Paddle
編輯:王菁
校對:林亦霖
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/244227.html
標籤:AI
