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