真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

數(shù)平精準(zhǔn)推薦|OCR技術(shù)之系統(tǒng)篇-創(chuàng)新互聯(lián)

導(dǎo)語(yǔ):如果說(shuō)算法和數(shù)據(jù)是跑車(chē)的發(fā)動(dòng)機(jī)和汽油,那么系統(tǒng)則是變速箱,穩(wěn)定而靈活的變速箱,是圖像識(shí)別服務(wù)向前推進(jìn)的基礎(chǔ)。算法、數(shù)據(jù)、系統(tǒng)三位一體,隨著算法的快速發(fā)展和數(shù)據(jù)的日益積累,系統(tǒng)也在高效而穩(wěn)定地升級(jí)。

成都創(chuàng)新互聯(lián)公司擁有一支富有激情的企業(yè)網(wǎng)站制作團(tuán)隊(duì),在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)深耕10余年,專(zhuān)業(yè)且經(jīng)驗(yàn)豐富。10余年網(wǎng)站優(yōu)化營(yíng)銷(xiāo)經(jīng)驗(yàn),我們已為成百上千中小企業(yè)提供了成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)解決方案,按需設(shè)計(jì),設(shè)計(jì)滿意,售后服務(wù)無(wú)憂。所有客戶皆提供一年免費(fèi)網(wǎng)站維護(hù)!

一、背景介紹

前面的系列文章分別介紹了算法和數(shù)據(jù),如果說(shuō)算法和數(shù)據(jù)是跑車(chē)的發(fā)動(dòng)機(jī)和汽油,那么系統(tǒng)則是變速箱,穩(wěn)定而靈活的變速箱,是圖像識(shí)別服務(wù)向前推進(jìn)的基礎(chǔ)。算法、數(shù)據(jù)、系統(tǒng)三位一體,組合成完整的OCR在線服務(wù)。伴隨著算法的升級(jí)和業(yè)務(wù)的持續(xù)接入,系統(tǒng)也經(jīng)歷了從單機(jī)版升級(jí)到分布式版本;從為了每個(gè)算法定制系統(tǒng)模塊,到分離框架和算法邏輯,提高算法的運(yùn)行效率和模塊的可重用性;從單一的運(yùn)行環(huán)境,升級(jí)到CPU/GPU異構(gòu)并行。除了一般分布式系統(tǒng)所需要提供的功能,我們還結(jié)合算法和運(yùn)維特性,增加了單點(diǎn)熱更新和集群快照等特性。


二、我們面臨的挑戰(zhàn)

圖像識(shí)別服務(wù)框架作為一個(gè)提供在線服務(wù)的系統(tǒng),既面臨一般的業(yè)務(wù)系統(tǒng)或平臺(tái)所面臨的挑戰(zhàn),也面臨作為算法系統(tǒng),需要支撐復(fù)雜算法和業(yè)務(wù)的挑戰(zhàn),主要表現(xiàn)在以下幾點(diǎn):


1.高性能與高可靠

任何在線系統(tǒng)都面臨性能和可靠性的挑戰(zhàn)。在我們系統(tǒng)中,圖像識(shí)別服務(wù)作為在線服務(wù),需要能夠迅速響應(yīng)并返回,并且不管在框架層還是算法層,都要保證高可用性。

2.系統(tǒng)解耦&高可擴(kuò)展性

作為一個(gè)分布式的算法系統(tǒng),算法模塊與框架的解耦,可以使算法與后臺(tái)人員更高效的同步開(kāi)發(fā),分別對(duì)算法與框架進(jìn)行更新迭代。而高可擴(kuò)展性,既要求框架在集群上支持資源可擴(kuò)展,又要求做到單機(jī)算法的迅速接入與替換。

3.復(fù)雜業(yè)務(wù)與算法的支撐

隨著業(yè)務(wù)的持續(xù)接入和算法的復(fù)雜化,需要在框架層靈活的支撐算法,高效的算法模塊重用以及迅速適配新算法并接入新業(yè)務(wù)。

4.不同運(yùn)行環(huán)境的支持

算法系統(tǒng),尤其是圖像識(shí)別算法系統(tǒng),運(yùn)行環(huán)境包括CPU與GPU,框架除了要支持不同環(huán)境的高效運(yùn)行,也要支持不同環(huán)節(jié)運(yùn)行在不同硬件環(huán)境,以保證資源合理高效的使用。

三、我們的解決方案

圖像識(shí)別從算法研究、模型訓(xùn)練到規(guī)?;奶峁┓?wù),需要處理的流程比較多,我們將開(kāi)發(fā)階段主要分為如下兩個(gè)階段:


算法研究&模型訓(xùn)練:

算法人員進(jìn)行算法研究、模型訓(xùn)練,以及業(yè)務(wù)對(duì)接。算法無(wú)需關(guān)心框架以及系統(tǒng)的調(diào)度,只需輸出單個(gè)模塊的算法SO和訓(xùn)練好的模型文件。

框架開(kāi)發(fā)&算法集成:

后臺(tái)開(kāi)發(fā)人員進(jìn)行服務(wù)框架的開(kāi)發(fā)及算法SO的集成運(yùn)行,即把算法研究人員研究好的算法及模型文件集成到服務(wù)框架中,提供穩(wěn)定的在線圖像識(shí)別服務(wù)。

接下來(lái)將重點(diǎn)介紹系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)。

四、圖像識(shí)別服務(wù)框架

4.1 系統(tǒng)架構(gòu)

框架層使用Java編碼,算法層采用插件化設(shè)計(jì),可以加載jar包、so或者其他腳本,這是一個(gè)多語(yǔ)言的混編系統(tǒng)。圖像識(shí)別算法一般都是計(jì)算密集型,并且一部分需要運(yùn)行在GPU上,所以在算法層,我們使用CUDA C++編寫(xiě)so,使用JNI掛載so進(jìn)行算法的執(zhí)行和調(diào)度。如圖1,架構(gòu)上主要分為三層:接入層、框架層、算法層,再加上評(píng)測(cè)系統(tǒng)、存儲(chǔ)系統(tǒng)、監(jiān)控告警系統(tǒng)、日志系統(tǒng)等周邊系統(tǒng)構(gòu)成一套完整的圖像識(shí)別服務(wù)系統(tǒng)。

數(shù)平精準(zhǔn)推薦 | OCR技術(shù)之系統(tǒng)篇

圖1  圖像識(shí)別服務(wù)框架系統(tǒng)構(gòu)架圖

接入層:包括協(xié)議轉(zhuǎn)換、參數(shù)輸配和結(jié)果適配等

框架層:圖像識(shí)別服務(wù)運(yùn)行的系統(tǒng)框架,加載運(yùn)行算法SO,提供穩(wěn)定的識(shí)別服務(wù),包括

  • Master:接收接入層的請(qǐng)求,進(jìn)行請(qǐng)求拆分、請(qǐng)求調(diào)度、結(jié)果合并等

  • Worker:實(shí)際執(zhí)行算法的進(jìn)程載體,主要包含算法SO/模型的加載、更新,進(jìn)行算法的執(zhí)行

  • Zookeeper:存儲(chǔ)worker心跳信息、算法映射關(guān)系、算法執(zhí)行計(jì)劃、算法靜態(tài)/動(dòng)態(tài)快照信息等

  • ConfigServer:監(jiān)聽(tīng)worker心跳并實(shí)時(shí)更新動(dòng)態(tài)動(dòng)態(tài)路由表,觸發(fā)master更新路由規(guī)則及連接池


算法層:算法人員提供各種算法模型及算法so

周邊系統(tǒng)

  • 評(píng)測(cè)系統(tǒng):提供版本評(píng)測(cè)功能

  • 存儲(chǔ)系統(tǒng):非敏感圖片及badcase存儲(chǔ)

  • 監(jiān)控告警:監(jiān)控服務(wù)的運(yùn)行狀態(tài),在異常時(shí)進(jìn)行告警

  • 日志系統(tǒng):請(qǐng)求日志的存儲(chǔ),為問(wèn)題的跟蹤排查提供依據(jù)框架運(yùn)行時(shí)


4.2 系統(tǒng)運(yùn)行態(tài)

本節(jié)將結(jié)合實(shí)際的OCR預(yù)測(cè)請(qǐng)求剖析框架的運(yùn)行態(tài)。

1)   一個(gè)OCR識(shí)別實(shí)例

如圖2,我們以STR(Scene Text Recognition,場(chǎng)景文字識(shí)別)為例,一個(gè)典型的使用場(chǎng)景為廣告圖片素材理解。在任務(wù)中,我們將識(shí)別圖片中文字,并給出具體坐標(biāo)。

數(shù)平精準(zhǔn)推薦 | OCR技術(shù)之系統(tǒng)篇

圖2  一個(gè)OCR識(shí)別實(shí)例

2)  系統(tǒng)運(yùn)行態(tài)

如圖3,我們?cè)敿?xì)剖析上述實(shí)例在框架中的運(yùn)行過(guò)程

數(shù)平精準(zhǔn)推薦 | OCR技術(shù)之系統(tǒng)篇

 圖3 系統(tǒng)運(yùn)行態(tài)


1. 業(yè)務(wù)側(cè)的請(qǐng)求攜帶圖片內(nèi)容(或圖片URL)、bid(標(biāo)識(shí)不同的業(yè)務(wù))及tid(標(biāo)識(shí)不同算法大類(lèi))。

2.  在master節(jié)點(diǎn)找到對(duì)應(yīng)的算法,然后找到相應(yīng)執(zhí)行計(jì)劃,執(zhí)行計(jì)劃中定義了算法的執(zhí)行步驟;根據(jù)各個(gè)步驟找到相應(yīng)的路由節(jié)點(diǎn),master將請(qǐng)求拆分/打包/路由到相應(yīng)的worker

3. master將原始圖片路由分發(fā)到檢測(cè)子系統(tǒng)。檢測(cè)過(guò)程運(yùn)行在GPU上,算法so檢測(cè)出模塊中各個(gè)圖片框(如圖2中的“京東”、“內(nèi)外真皮”等),切分好之后將結(jié)果返回給master

4. master將檢測(cè)結(jié)果拆分,并行分發(fā)到識(shí)別子系統(tǒng)。識(shí)別過(guò)程運(yùn)行在GPU上,算法so將識(shí)別出單個(gè)圖片框的文字,分別返回給master

5.  master將識(shí)別結(jié)果匯總,一起發(fā)送到重排序子系統(tǒng)。重排序子系統(tǒng)運(yùn)行在CPU上,算法so將結(jié)果返回給master

6.  master將最終結(jié)果封裝并返回

每個(gè)模塊在整個(gè)過(guò)程中的作用為:

  • 算法映射:由bid+tid映射到一個(gè)具體的子算法。相同的tid與不同的bid組合,可以支持不同業(yè)務(wù)對(duì)同類(lèi)算法的定制

  • 執(zhí)行計(jì)劃:定義算法的執(zhí)行步驟,比如圖中STR圖片文字識(shí)別,包含三個(gè)步驟:檢測(cè)、識(shí)別和重排序

  • 動(dòng)態(tài)快照:即動(dòng)態(tài)路由表,定義了算法每個(gè)階段映射到的具體節(jié)點(diǎn)。worker上報(bào)心跳,由ConfigServer整理生成動(dòng)態(tài)路由表,由Master節(jié)點(diǎn)監(jiān)聽(tīng)路由表的變更

4.3  容災(zāi)與集群熱更新

熱更新能力是一個(gè)系統(tǒng)提供可靠和穩(wěn)定服務(wù)的基礎(chǔ)功能,即可以保證系統(tǒng)的無(wú)損升級(jí),又可以保障系統(tǒng)的容災(zāi)能力。如圖4,系統(tǒng)主要借助zookeeper和worker的心跳機(jī)制實(shí)現(xiàn)集群熱更新。

數(shù)平精準(zhǔn)推薦 | OCR技術(shù)之系統(tǒng)篇

圖4  集群熱更新

  • Worker:在啟動(dòng)的時(shí)候與zookeeper建立臨時(shí)節(jié)點(diǎn)維持心跳信息

  • Configserver:監(jiān)聽(tīng)worker在zookeeper的心跳信息,如果worker斷連或重連,configserver立刻感知到并修改動(dòng)態(tài)快照

  • Master:監(jiān)聽(tīng)zookeeper上的動(dòng)態(tài)快照信息,動(dòng)態(tài)快照變更立刻觸發(fā)路由規(guī)則及路由連接池的更新


通過(guò)這幾個(gè)角色的配合,在worker節(jié)點(diǎn)出現(xiàn)異常的情況下,master迅速就完成了切換,保證了系統(tǒng)的穩(wěn)定。這種機(jī)制也支持了集群的熱更新,在需要對(duì)某個(gè)worker進(jìn)行更新時(shí),先對(duì)worker進(jìn)行下線,master感知后不向此worker發(fā)請(qǐng)求,完成更新啟動(dòng)后,master再跟其重新建立連接并發(fā)送請(qǐng)求。

4.4 單點(diǎn)熱更新

單點(diǎn)熱更新,指的是在不重啟服務(wù)的前提下,對(duì)進(jìn)程內(nèi)單個(gè)或多個(gè)模塊進(jìn)行替換升級(jí)。與其他業(yè)務(wù)系統(tǒng)不一樣的,在算法平臺(tái)下,考慮以下兩種場(chǎng)景:

1)  一個(gè)進(jìn)程內(nèi)加載了多個(gè)算法SO,需要對(duì)其中一個(gè)算法模塊進(jìn)行更新;

2)   算法鏈上串行多個(gè)模塊,需要對(duì)其中一個(gè)模塊進(jìn)行實(shí)驗(yàn)或更新。

這兩種場(chǎng)景下,使用集群熱更新或者對(duì)進(jìn)程進(jìn)行重啟,就有點(diǎn)重了,所以我們實(shí)現(xiàn)了一套進(jìn)程內(nèi)單個(gè)so的動(dòng)態(tài)更新方案。通過(guò)Java代碼是無(wú)法直接實(shí)現(xiàn)SO的動(dòng)態(tài)加載的,如圖4,我們引入了代理so,通過(guò)在代理so進(jìn)行(dlopen,dlsym和dlclose)操作,從而達(dá)到動(dòng)態(tài)加載SO的目的。同時(shí)在代理so中,我們封裝了所有JNI轉(zhuǎn)換和算法需要使用的接口,很好的進(jìn)行了框架和算法的解耦。除了so的動(dòng)態(tài)加載,我們還實(shí)現(xiàn)了模型的動(dòng)態(tài)加載。

數(shù)平精準(zhǔn)推薦 | OCR技術(shù)之系統(tǒng)篇

圖5  單點(diǎn)熱更新


4.5 靜態(tài)快照

通常在分布式框架中,是不需要靜態(tài)快照的。但在算法系統(tǒng)中,我們通常需要頻繁上下線一批so,而這些so會(huì)分布在不同機(jī)器不同節(jié)點(diǎn)上。雖然簡(jiǎn)單的通過(guò)上傳/刪除服務(wù)器上的本地so文件,可以觸發(fā)相關(guān)進(jìn)程的動(dòng)態(tài)加載/卸載,但這種操作繁復(fù),在算法復(fù)雜,一個(gè)進(jìn)程加載了很多so的時(shí)候,操作容易出錯(cuò)。所以,這里我們需要在運(yùn)維上對(duì)系統(tǒng)進(jìn)行優(yōu)化,提高系統(tǒng)可運(yùn)維性。

如圖5,我們?cè)趧?dòng)態(tài)快照的同時(shí)還引入了靜態(tài)快照,靜態(tài)快照由運(yùn)維通過(guò)腳本或配置文件寫(xiě)入靜態(tài)路由表,將一個(gè)集群的預(yù)期初始狀態(tài)配置到zookeeper上。ConfigServer整理靜態(tài)快照和worker上報(bào)的心跳信息,生成最終的動(dòng)態(tài)快照。

數(shù)平精準(zhǔn)推薦 | OCR技術(shù)之系統(tǒng)篇

圖6  靜態(tài)快照

這種動(dòng)靜態(tài)快照結(jié)合的集群快照機(jī)制相比只有動(dòng)態(tài)快照在運(yùn)維上會(huì)稍微復(fù)雜,但可以通過(guò)運(yùn)維工具降低復(fù)雜度。動(dòng)靜態(tài)集群快照機(jī)制優(yōu)勢(shì)也很明顯,第一、在復(fù)雜算法下,不容易出錯(cuò);第二、可以在動(dòng)態(tài)快照之余快速上下線一些算法或者更改算法流程。

五、框架的一些思考

我們成功地將Java與CUDA C++混編系統(tǒng)作為圖像識(shí)別服務(wù)框架,并且支撐了眾多業(yè)務(wù)。成熟穩(wěn)定的框架,可以解放更多的人力用于算法開(kāi)發(fā)和業(yè)務(wù)接入。依托于Java成熟的開(kāi)源工具,可以迅速開(kāi)發(fā)出框架和進(jìn)行維護(hù),使用Java作為框架調(diào)度層和網(wǎng)絡(luò)層,對(duì)比傳統(tǒng)C++框架并沒(méi)有性能差異;而使用CUDA C++編寫(xiě)SO的方式,可以更好的適配GPU環(huán)境和深度學(xué)習(xí)框架,更高效地利用機(jī)器計(jì)算資源。當(dāng)然,我們的系統(tǒng)還在持續(xù)進(jìn)化,后續(xù)將進(jìn)一步在資源利用率、調(diào)度效率、業(yè)務(wù)接入速度和運(yùn)維精細(xì)化等方向繼續(xù)努力。


六、結(jié)束語(yǔ)

我們推出了OCR技術(shù)系列文章總共包括了《OCR技術(shù)之檢測(cè)篇》、《OCR技術(shù)之識(shí)別篇》、《OCR技術(shù)之?dāng)?shù)據(jù)篇》、《OCR技術(shù)之系統(tǒng)篇》等4篇文章,希望通過(guò)這些文章能夠與大家一同探討OCR領(lǐng)域的一些技術(shù)與應(yīng)用。在后續(xù)的工作中,團(tuán)隊(duì)也將繼續(xù)在OCR領(lǐng)域深耕細(xì)作,不斷前行,持續(xù)提升技術(shù)水平與服務(wù)質(zhì)量,為OCR技術(shù)的發(fā)展貢獻(xiàn)微薄之力。


另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


當(dāng)前題目:數(shù)平精準(zhǔn)推薦|OCR技術(shù)之系統(tǒng)篇-創(chuàng)新互聯(lián)
URL標(biāo)題:http://weahome.cn/article/igcip.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部