PaddleSeg
簡介
PaddleSeg是基于PaddlePaddle開發的端到端圖像分割開發套件,覆寫了DeepLabv3+, U-Net, ICNet, PSPNet, HRNet, Fast-SCNN等主流分割網絡。通過子產品化的設計,以配置化方式驅動模型組合,幫助開發者更便捷地完成從訓練到部署的全流程圖像分割應用。
特點
豐富的資料增強
基于百度視覺技術部的實際業務經驗,内置10+種資料增強政策,可結合實際業務場景進行定制組合,提升模型泛化能力和魯棒性。
子產品化設計
支援U-Net, DeepLabv3+, ICNet, PSPNet, HRNet, Fast-SCNN六種主流分割網絡,結合預訓練模型和可調節的骨幹網絡,滿足不同性能和精度的要求;選擇不同的損失函數如Dice Loss, Lovasz Loss等方式可以強化小目标和不均衡樣本場景下的分割精度。
高性能
PaddleSeg支援多程序I/O、多卡并行等訓練加速政策,結合飛槳核心架構的顯存優化功能,可大幅度減少分割模型的顯存開銷,讓開發者更低成本、更高效地完成圖像分割訓練。
工業級部署
全面提供服務端和移動端的工業級部署能力,依托飛槳高性能推理引擎和高性能圖像處理實作,開發者可以輕松完成高性能的分割模型部署和內建。通過Paddle-Lite,可以在移動裝置或者嵌入式裝置上完成輕量級、高性能的人像分割模型部署。
産業實踐案例
PaddleSeg提供豐富地産業實踐案例,如人像分割、工業表計檢測、遙感分割、人體解析,工業質檢等産業實踐案例,助力開發者更便捷地落地圖像分割技術。
安裝
1. 安裝PaddlePaddle
版本要求
PaddlePaddle >= 1.7.0
Python >= 3.5+
由于圖像分割模型計算開銷大,推薦在GPU版本的PaddlePaddle下使用PaddleSeg.
pip install -U paddlepaddle-gpu
同時請保證您參考NVIDIA官網,已經正确配置和安裝了顯示卡驅動,CUDA 9,cuDNN 7.3,NCCL2等依賴,其他更加詳細的安裝資訊請參考:PaddlePaddle安裝說明。
2. 下載下傳PaddleSeg代碼
git clone https://github.com/PaddlePaddle/PaddleSeg
3. 安裝PaddleSeg依賴
通過以下指令安裝python包依賴,請確定在該分支上至少執行過一次以下指令:
cd PaddleSeg
pip install -r requirements.txt
使用教程
我們提供了一系列的使用教程,來說明如何使用PaddleSeg完成語義分割模型的訓練、評估、部署。
這一系列的文檔被分為快速入門、基礎功能、預測部署、進階功能四個部分,四個教程由淺至深地介紹PaddleSeg的設計思路和使用方法。
快速入門
基礎功能
預測部署
進階功能
線上體驗
我們在AI Studio平台上提供了線上體驗的教程,歡迎體驗:
線上教程
連結
快速開始
U-Net圖像分割
DeepLabv3+圖像分割
工業質檢(零件瑕疵檢測)
人像分割
PaddleSeg特色垂類模型
FAQ
Q: 安裝requirements.txt指定的依賴包時,部分包提示找不到?
A: 可能是pip源的問題,這種情況下建議切換為官方源,或者通過pip install -r requirements.txt -i指定其他源位址。
Q:圖像分割的資料增強如何配置,Unpadding, StepScaling, RangeScaling的原理是什麼?
A: 更詳細資料增強文檔可以參考資料增強
Q: 訓練時因為某些原因中斷了,如何恢複訓練?
A: 啟動訓練腳本時通過指令行覆寫TRAIN.RESUME_MODEL_DIR配置為模型checkpoint目錄即可, 以下代碼示例第100輪重新恢複訓練:
python pdseg/train.py --cfg xxx.yaml TRAIN.RESUME_MODEL_DIR /PATH/TO/MODEL_CKPT/100
Q: 預測時圖檔過大,導緻顯存不足如何處理?
A: 降低Batch size,使用Group Norm政策;請注意訓練過程中當DEFAULT_NORM_TYPE選擇bn時,為了Batch Norm計算穩定性,batch size需要滿足>=2
交流與回報
歡迎您通過Github Issues來送出問題、報告與建議
微信公衆号:飛槳PaddlePaddle
QQ群: 703252161
微信公衆号 官方技術交流QQ群
更新日志
2020.05.12
v0.5.0
全面更新HumanSeg人像分割模型,新增超輕量級人像分割模型HumanSeg-lite支援移動端實時人像分割處理,并提供基于光流的視訊分割後處理提升分割流暢性。
新增氣象遙感分割方案,支援積雪識别、雲檢測等氣象遙感場景。
新增Lovasz Loss,解決資料類别不均衡問題。
使用VisualDL 2.0作為訓練可視化工具
2020.02.25
v0.4.0
新增适用于實時場景且不需要預訓練模型的分割網絡Fast-SCNN,提供基于Cityscapes的預訓練模型1個
新增LaneNet車道線檢測網絡,提供預訓練模型一個
新增基于PaddleSlim的分割庫壓縮政策(量化, 蒸餾, 剪枝, 搜尋)
2019.12.15
v0.3.0
新增HRNet分割網絡,提供基于cityscapes和ImageNet的預訓練模型8個
支援使用僞彩色标簽進行訓練/評估/預測,提升訓練體驗,并提供将灰階标注圖轉為僞彩色标注圖的腳本
新增學習率warmup功能,支援與不同的學習率Decay政策配合使用
新增圖像歸一化操作的GPU化實作,進一步提升預測速度。
新增Python部署方案,更低成本完成工業級部署。
新增Paddle-Lite移動端部署方案,支援人像分割模型的移動端部署。
新增不同分割模型的預測性能資料Benchmark, 便于開發者提供模型選型性能參考。
2019.11.04
v0.2.0
新增PSPNet分割網絡,提供基于COCO和cityscapes資料集的預訓練模型4個。
新增Dice Loss、BCE Loss以及組合Loss配置,支援樣本不均衡場景下的模型優化。
支援FP16混合精度訓練以及動态Loss Scaling,在不損耗精度的情況下,訓練速度提升30%+。
支援PaddlePaddle多卡多程序訓練,多卡訓練時訓練速度提升15%+。
釋出基于UNet的工業标記表盤分割模型。
2019.09.10
v0.1.0
PaddleSeg分割庫初始版本釋出,包含DeepLabv3+, U-Net, ICNet三類分割模型, 其中DeepLabv3+支援Xception, MobileNet v2兩種可調節的骨幹網絡。
CVPR19 LIP人體部件分割比賽冠軍預測模型釋出ACE2P。
預置基于DeepLabv3+網絡的人像分割和車道線分割預測模型釋出。
貢獻代碼
我們非常歡迎您為PaddleSeg貢獻代碼或者提供使用建議。如果您可以修複某個issue或者增加一個新功能,歡迎給我們送出Pull Requests.