飞桨PaddlePaddle升级解读 | PaddleDetection物体检测统一框架
目標檢測是機器視覺領域的核心問題之一。7 月 3 日百度 AI 開發者大會,飛槳核心框架 Paddle Fluid v1.5 宣布開源了 PaddleDetection 物體檢測統一框架,用戶可以非常方便、快速的搭建出各種檢測框架,構建強大的各類應用。?
PaddleDetection 物體檢測統一框架,覆蓋主流的檢測算法,即具備高精度模型、也具備高速推理模型,并提供豐富的預訓練模型,具有工業化、模塊化、高性能的優勢。?
工業化:結合飛槳核心框架的高速推理引擎,訓練到部署無縫銜接?
模塊化:提供模塊化設計,模型網絡結構和數據處理均可定制?
高性能:基于高效的核心框架,訓練速度和顯存占用上有一定的優勢,例如,YOLO v3 訓練速度相比同類框架快 1.6 倍。
?
支持的模型與主干網絡體系
模型?
Faster-RCNN(支持 FPN):創造性地采用卷積網絡自行產生建議框,并且和目標檢測網絡共享卷積網絡,建議框數目減少,質量提高。
Mask-RCNN(支持 FPN):經典的兩階段框架,在 Faster R-CNN 模型基礎上添加分割分支,得到掩碼結果,實現了掩碼和類別預測關系的解藕,可得到像素級別的檢測結果。?
Cascade-RCNN:在訓練過程中選取不同的 IoU 閾值,訓練多個級聯的檢測器。在具有挑戰性的 COCO 數據集上,作為單模型對象檢測器表現優異。?
RetinaNet:經典的一階段框架,由 ResNet 主干網絡、FPN 結構、和兩個分別用于回歸物體位置和預測物體類別的子網絡組成。在訓練過程中使用 Focal Loss,解決了傳統一階段檢測器存在前景背景類別不平衡的問題,進一步提高了一階段檢測器的精度。?
YOLO v3:速度和精度均衡的目標檢測網絡,相比于原作者 DarkNet 中的 YOLO v3 實現,飛槳的實現參考了論文 Bag of Tricks for Image Classification with Convolutional Neural Networks?增加了 mixup,label_smooth 等處理,精度(mAP(0.5:0.95))相比于原作者提高了 4.7 個絕對百分點,在此基礎上加入 synchronize batch normalization,最終精度相比原作者提高 5.9 個絕對百分點。?
SSD:很好的繼承了 MobileNet 預測速度快,易于部署的特點,能夠很好的在多種設備上完成圖像目標檢測任務。
主干網絡?
ResNet、ResNet-VD、ResNeXt、ResNeXt-VD、SENet、MobileNet、DarkNet。
預訓練模型效果
本次 PaddleDetection 總共開源 20+ 個預訓練模型,不僅開源常用主干網絡的基線模型,并且基于 ResNet 改進版的模型,幾乎在不增加計算量的情況下,在 COCO 數據集上,相比基線模型精度提升 1% 左右,如下表所示。Yolo v3 也持續發布更輕量的主干網絡模型。
安裝好飛槳環境后,可以下載預訓練模型快速驗證推理效果。?同時,PaddleDetection 也提供了 Jupyter Notebook 的推理示例程序,參考:?
https://github.com/PaddlePaddle/models/blob/develop/PaddleCV/PaddleDetection/demo/mask_rcnn_demo.ipynb
????--infer_img=demo/000000570688.jpg
自動生成配置文件
PaddleDetection 從自動化和靜態分析的原則出發,采用了一種用戶友好、 易于維護和擴展的配置設計,避免對配置的檢查并不嚴格造成的拼寫錯誤或者遺漏的配置項造成訓練過程中的嚴重錯誤,將問題提前規避。
利用 Python 的反射機制,PaddleDection 的配置系統從 Python 類的構造函數抽取多種信息, 如參數名、初始值、參數注釋、數據類型來作為配置規則,便于設計的模塊化,提升可測試性及擴展性。?
為了方便用戶配置,PaddleDection 提供了 configure 工具,為用戶提供以下功能:?
預定義好各個模塊,根據給出的模塊列表生成配置文件,默認生成完整配置;
如果指定參數,也可以生成最小配置,即省略所有默認配置項;
檢查配置文件中的缺少或者多余的配置項以及依賴缺失;
顯示指定模塊的幫助信息,如描述,配置項,配置文件模板及命令行示例;
列出當前已注冊的模塊。
靈活易用的數據處理
支持多種數據源,方便的數據源擴展能力;
可定制的、可插拔的圖像預處理功能,可快速構建復雜預處理流程;
多種數據預處理加速策略 ,具備基于共享內存多進程加速能力。?
數據是深度學習中最關鍵的一步,數據的量級和數據類型直接影響模型的訓練結果。如何進行數據預處理也是各位開發者開始訓練一個模型的第一步,PaddleDetection 的數據處理模塊用于加載數據并將其轉換成適用于檢測模型的訓練、驗證、測試所需要的格式。?
PaddleDetection 為用戶提供可定制的、可插拔的圖像預處理功能,即為用戶針對不同的算法提供了缺省的數據預處理操作,也給用戶預留了的靈活配置的接口,下面截取部分配置文件代碼片段,可自由增添操作。
????to_rgb:?true
????with_mixup:?false
??-?!RandomFlipImage
????prob:?0.5
??-?!NormalizeImage
????is_channel_first:?false
????is_scale:?true
????mean:?[0.485,?0.456,?0.406]
????std:?[0.229,?0.224,?0.225]
??-?!ResizeImage
????max_size:?1333
????target_size:?800
??-?!Permute
????channel_first:?true
????to_bgr:?false
項目地址:
https://github.com/PaddlePaddle/models/tree/v1.5/PaddleCV/PaddleDetection?fr=paper
下載最新版本的 Paddle Fluid v1.5,請點擊閱讀原文或查看以下鏈接:
http://www.paddlepaddle.org.cn?fr=paper1
?
最后給大家推薦一個GPU福利
Tesla V100免費算力!
配合PaddleHub能讓模型原地起飛
掃碼下方二維碼申請
?
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
▽ 點擊 |?閱讀原文?|?下載最新版本
總結
以上是生活随笔為你收集整理的飞桨PaddlePaddle升级解读 | PaddleDetection物体检测统一框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 商汤科技2020年校园招聘丨以你所AI,
- 下一篇: Keras梯度累积优化器:用时间换取效果