PaddlePaddle应用于百度视觉技术的工程实践
深度學(xué)習(xí)的出現(xiàn),某種程度上改變了我們對計(jì)算機(jī)視覺的定義。而PaddlePaddle是百度開源的深度學(xué)習(xí)框架,它是如何支持百度視覺技術(shù),有哪些工程實(shí)踐,這篇文章將由百度視覺技術(shù)部主任研發(fā)架構(gòu)師劉國翌為大家解答。
以下為劉國翌老師演講實(shí)錄
百度AI視覺能力
百度內(nèi)部大規(guī)模應(yīng)用計(jì)算機(jī)視覺的技術(shù)分為四個方面,第一是圖像識別,包含圖像分類、文字識別、人臉識別等。第二是圖像檢索,包含圖文、相同圖片、相似圖片和商品圖片檢索。第三是視頻理解,主要涉及視頻分類、目標(biāo)追蹤、人體姿態(tài)跟蹤,應(yīng)用在商業(yè)、監(jiān)控、安全、新零售等領(lǐng)域,。第四是機(jī)器人視覺,包括嵌入式視覺、SLAM、深度傳感器。這是百度計(jì)算機(jī)視覺整體的劃分,除機(jī)器人視覺大量應(yīng)用深度學(xué)習(xí)技術(shù),其余三個技術(shù)是從傳統(tǒng)的機(jī)器視覺的方法逐漸過渡到現(xiàn)在最流行的深度學(xué)習(xí)的過程,是逐步替代的。
其中,圖像識別是百度應(yīng)用最廣泛也是最重要的技術(shù),包括無人車、推薦、圖像配圖等等。它的基礎(chǔ)能力包含通用分類、文字識別、圖像檢索、細(xì)粒度識別、圖像審核、視頻內(nèi)容分析六大能力。
圖一:百度識圖基礎(chǔ)能力
? 通用分類:在實(shí)際應(yīng)用中,我們需要處理上萬類的通用分類以及各種各樣的目標(biāo)檢測,因此百度內(nèi)部建設(shè)自己的分類體系。
? 文字識別:和人臉識別一樣,是圖像識別的最主要的指令,是編碼和解碼的過程,方向是目標(biāo)類檢測。
? 圖像檢索:用以覆蓋廣泛的需求,可以搜到互聯(lián)網(wǎng)所有包含這張圖片的網(wǎng)頁,以及跟這張圖片關(guān)聯(lián)的商品,包括垂類的識別,比如商品、景點(diǎn)、紅酒、外幣等等,這些無法通過一個簡單分類來解決。因此需要通過圖像特征學(xué)習(xí),從而實(shí)現(xiàn)從圖片到信息的關(guān)聯(lián)。基于此,圖像檢索技術(shù)最關(guān)鍵的是圖像深度學(xué)習(xí),基于通用分類,提取分到某個中間層,定義圖像不良的相應(yīng)損失函數(shù),使得相同的或者相類似的問題能得到統(tǒng)一的表達(dá)。另外重要的垂類,比如動植物、商標(biāo)、車型等等,這種采用專用的分類技術(shù)或者分類數(shù)據(jù),并建設(shè)一個分類的數(shù)據(jù)閉環(huán)來持續(xù)進(jìn)行迭代。模型迭代需要解決三個問題,第一個問題是如何在眾多的模型結(jié)構(gòu)里選擇最適合、最先進(jìn)、最好的結(jié)構(gòu)。第二個問題是上百個模型如何進(jìn)行評價,這時我們需要系統(tǒng)的方法。換句話說,第二個問題就是如何快速經(jīng)濟(jì)的復(fù)現(xiàn)模型,希望有流程使其自動化和標(biāo)準(zhǔn)化。第三個問題:如何沉淀模型研發(fā)中大量的算法經(jīng)驗(yàn)。因此視覺研發(fā)的實(shí)現(xiàn)目標(biāo)是使得機(jī)器學(xué)習(xí)擁有流程化,標(biāo)準(zhǔn)化,持續(xù)快速迭代的能力。
基于PaddlePaddle,如何實(shí)現(xiàn)視覺模型研發(fā)
現(xiàn)在市場上有各種各樣的不同的框架,不同框架的使用會帶來模型研發(fā)、訓(xùn)練不同實(shí)現(xiàn)的問題。因此,百度內(nèi)部趨向于使用同一種框架和流程,把所有的算法研發(fā)經(jīng)驗(yàn),包括數(shù)據(jù)處理流程都往一個方向去努力。
其中,PaddlePaddle是提供基礎(chǔ)的平臺或架構(gòu),它為我們提供了符合論文實(shí)現(xiàn)標(biāo)準(zhǔn)的算子的實(shí)現(xiàn)。同時,PaddlePaddle復(fù)現(xiàn)使用單卡進(jìn)行訓(xùn)練,來保證單機(jī)單卡以及多機(jī)多卡效率互有分工。因此,基于PaddlePaddle,實(shí)現(xiàn)了訓(xùn)練的標(biāo)準(zhǔn)化和自動化以及最底層的訓(xùn)練框架。
PaddlePaddle訓(xùn)練平臺中的Paddle Cloud是公司級的平臺,它的數(shù)據(jù)讀取可以實(shí)現(xiàn)從數(shù)據(jù)倉庫和HDFS、AFS直讀,大家通過這個平臺去共享復(fù)現(xiàn)方案以及降低模型復(fù)現(xiàn)和訓(xùn)練的門檻。
目前,PaddlePaddle中已發(fā)布的視覺模型有:
?圖像分類:image_classification
?人臉檢測:face_detection
?OCR識別:ocr_recognition
?目標(biāo)檢測:object_detection
?圖像分割:ICNet
?模型轉(zhuǎn)換:image_classification/caffe2fluid
同時,還在開發(fā)中的模型如下:
?圖像特征學(xué)習(xí)
?OCR 檢測
?定點(diǎn)化訓(xùn)練
?視頻分類
?GAN
圖二:圖像分類模型的論文結(jié)果復(fù)現(xiàn)
這是我們在圖像分類模型復(fù)現(xiàn)的結(jié)果,我們在研發(fā)過程中使用的一些數(shù)據(jù)集,通過提高社區(qū)提交代碼文檔和質(zhì)量的要求,所有代碼進(jìn)行持續(xù)的集成測試,保證隨著版本的迭代,使得穩(wěn)定性和正確性能保持。
PaddlePaddle涉及大量的基礎(chǔ)算法和優(yōu)化算法,里面任何一部分的修改都有可能造成潛在的錯誤,為保證這些修改能持續(xù)得到驗(yàn)證,一方面在公司內(nèi)部持續(xù)使用,另一方面我們會有專門的QA團(tuán)隊(duì)來保證持續(xù)迭代的功能,當(dāng)然,我們也會有專門的團(tuán)隊(duì)來負(fù)責(zé)PaddlePaddle訓(xùn)練模型之后的預(yù)測優(yōu)化。所有這些通過分工協(xié)作,視覺模型研發(fā)及相應(yīng)預(yù)測的優(yōu)化,更多是接近真正的使用場景。除復(fù)現(xiàn)大量經(jīng)典的模型,我們自己也做一些自研的模型研發(fā),如人臉檢測,大規(guī)模分類以及視覺識別方面,在公開數(shù)據(jù)做到世界領(lǐng)先水平。未來會逐步把這些模型開放出來,跟大家一起去改進(jìn)和升級這些算法。
工程示例:OCR PaddlePaddle v1 遷移到PaddlePaddle Fluid
OCR長期適用比較老的版本進(jìn)行模型識別訓(xùn)練,期望使用最新PaddlePaddle Fluid進(jìn)行研發(fā),并統(tǒng)一到Paddle Cloud集群訓(xùn)練,應(yīng)用最新的模型預(yù)測優(yōu)化。因此成立PaddlePaddle vision聯(lián)合項(xiàng)目組,模型研發(fā)和對齊并進(jìn)行訓(xùn)練遷移和預(yù)測遷移。
模型遷移主要有四個步驟:
?完成C++端OP開發(fā)。
?完成模型網(wǎng)絡(luò)配置,驗(yàn)證前向網(wǎng)絡(luò)
?與舊版本Paddle對齊模型訓(xùn)練指標(biāo)。
?對比多種優(yōu)化方法和學(xué)習(xí)率動態(tài)調(diào)整策略。
最終試驗(yàn)的效果是識別率可以跟以前的版本打平,經(jīng)過優(yōu)化,可以有提升的空間。
模型訓(xùn)練主要有兩個方面的提高:第一實(shí)現(xiàn)Fluid框架訓(xùn)練OCR英文識別模型。與舊版本PaddlePaddle訓(xùn)練出的模型相比精度相對提升1%;第二在Paddle Cloud上實(shí)現(xiàn)afs數(shù)據(jù)分發(fā),實(shí)現(xiàn)Paddle Cloud進(jìn)行單機(jī)單卡,單機(jī)多卡訓(xùn)練OCR識別模型。
以上這些工作和PaddlePaddle技術(shù)團(tuán)隊(duì)一起完成,不僅實(shí)現(xiàn)了PaddlePaddle的升級,也實(shí)現(xiàn)了自己整個訓(xùn)練方式的升級。
整體實(shí)現(xiàn)迭代之后影響面大概是1500萬文本圖像的識別,流量得到了升級。概括來說,我們是基于PaddlePaddle開發(fā)了一個流程:首先是基線算法采用公開數(shù)據(jù)集,實(shí)現(xiàn)公開的算法并在社區(qū)上提交代碼和文檔,以保證基線模型的正確性,以及跟其他分發(fā)的圖像對比。第二是代碼經(jīng)過反復(fù)review,提高了代碼和文檔的質(zhì)量,也通過社區(qū)的反饋,實(shí)現(xiàn)了技術(shù)的積累以及相應(yīng)的問題解決。第三基于PaddlePaddle框架,實(shí)現(xiàn)了統(tǒng)一的集群訓(xùn)練方式,實(shí)現(xiàn)了標(biāo)準(zhǔn)化、自動化去做機(jī)器學(xué)習(xí),且一些高級的訓(xùn)練特性,可以快速集成到框架中去。第四預(yù)測框架通過專業(yè)專門的團(tuán)隊(duì),進(jìn)行優(yōu)化,可以達(dá)到世界領(lǐng)先水平。同時,獨(dú)立的訓(xùn)練QA測試,保證訓(xùn)練結(jié)果隨版本迭代是可復(fù)現(xiàn)的。
實(shí)錄結(jié)束
劉國翌,百度視覺技術(shù)部主任研發(fā)架構(gòu)師,百度AI技術(shù)部識圖技術(shù)負(fù)責(zé)人,負(fù)責(zé)研發(fā)基于圖像檢索、大規(guī)模圖像分類和垂類識別技術(shù)的識圖系統(tǒng),滿足手機(jī)拍照場景下的以圖搜圖、以圖搜信息的用戶需求,組織研發(fā)并建設(shè)了百度視覺技術(shù)開放平臺,開放百度的各項(xiàng)視覺能力。
轉(zhuǎn)載于:https://blog.51cto.com/13970240/2288309
總結(jié)
以上是生活随笔為你收集整理的PaddlePaddle应用于百度视觉技术的工程实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PostgreSQL 10.1 手册_部
- 下一篇: 刺激战场帅气的名字(一提刺激消费)