亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種實時視頻流的分布式文字識別系統(tǒng)的制作方法

文檔序號:11251398閱讀:709來源:國知局
一種實時視頻流的分布式文字識別系統(tǒng)的制造方法與工藝

本發(fā)明屬于視頻流內(nèi)容識別技術(shù)領(lǐng)域,更具體地,涉及一種實時視頻流的分布式文字識別系統(tǒng)。



背景技術(shù):

近幾年隨著圖像識別技術(shù)的快速發(fā)展,對視頻中圖像內(nèi)容的識別需求也在不斷增加。在傳統(tǒng)的安防監(jiān)控視頻中,視頻中的人物圖像是識別的主要目標,而在桌面辦公系統(tǒng)和在線教育等關(guān)注文字信息的視頻中,識別的目標就是視頻中的文字信息。為了達到實時獲取識別視頻中的文字信息的要求,需要對網(wǎng)絡(luò)中傳輸?shù)膶崟r視頻流進行及時的識別處理。同時實際的使用環(huán)境中一般需要對多個視頻流同時進行文字識別處理,所以又要解決多并發(fā)視頻流的實時文字識別處理的問題。

ocr(opticalcharacterrecognition,光學(xué)字符識別)是對圖像信息進行分析處理獲取文字信息的技術(shù)。ocr技術(shù)的應(yīng)用相對成熟,在國內(nèi)外的應(yīng)用領(lǐng)域非常廣泛,包括交通、金融、保險、教育等。ocr技術(shù)在英文字符和數(shù)字上的識別的出錯率很低,主要是因為英文字母數(shù)和數(shù)字總共只有36個,而中文漢字的數(shù)量是數(shù)萬個,常用漢字也有數(shù)千個,所以在識別的難度上要比英文和數(shù)字大很多。ocr的中文識別也經(jīng)歷了較長時間的成長變化,在各種新技術(shù)和方法下ocr的中文識別準確率也在不斷提高。當(dāng)前主流的ocr技術(shù)都是基于機器學(xué)習(xí)或深度學(xué)習(xí)來實現(xiàn),其中g(shù)oogle的ocr開源框架tesseract是一個典型代表。在英文和數(shù)字識別上,使用善于對英文和數(shù)字識別的tesseract;在中文識別上,則可以利用深度學(xué)習(xí)來實現(xiàn)。

在面對多并發(fā)的視頻處理時,一般都是采用分布式系統(tǒng)方案來處理。分布式系統(tǒng)的一個很大特點是它具有很好的可擴展性和容錯性。在面對高并發(fā)和大數(shù)據(jù)處理時,通常單臺服務(wù)器是無法對任務(wù)進行及時處理。而在分布式系統(tǒng)下可以根據(jù)需要隨時新增適量服務(wù)器來實現(xiàn)任務(wù)的及時處理。分布式系統(tǒng)有多個種類,有分布式調(diào)度、分布式計算和分布式存儲。分布式計算是當(dāng)前使用最多的分布式系統(tǒng),mapreduce和spark框架是分布式計算下典型代表。在視頻文件的處理上,很多現(xiàn)有系統(tǒng)采用的是mapreduce框架。

基于mapreduce框架的視頻處理系統(tǒng)比較適合于對視頻文件的處理,和對視頻文件的處理不同的是,實時視頻流的處理具有很高的實時性要求,在視頻解碼上,一般的單線程解碼難以滿足實時視頻流解碼要求。對于實時視頻流的處理,不適合采用mapreduce框架。一方面是因為視頻流中視頻數(shù)據(jù)幀在解碼上具有依賴性。視頻壓縮后的幀分為三種:i幀、p幀和b幀。i幀是可以直接進行解碼得到原始圖像數(shù),而p幀和b幀是需要依賴前后的i幀或p幀才能進行解碼。要實現(xiàn)正確地解碼,一個有依賴關(guān)系的i幀、p幀和b幀最好是在同一個解碼處進行解碼。另一方面,在幀率一定的實時視頻流下,視頻流處理端單位時間內(nèi)接收到的待處理視頻數(shù)據(jù)量并未超過其處理能力。對于視頻文件,單位時間內(nèi)可以讀取大量視頻數(shù)據(jù),對于超出機器自身處理能力的視頻數(shù)據(jù)可以分發(fā)到其他機器進行處理;而實時視頻流不同,因為視頻幀率一定,單位時間內(nèi)能夠從網(wǎng)絡(luò)上讀取的視頻數(shù)據(jù)量一般不會超過機器自身的處理能力。



技術(shù)實現(xiàn)要素:

針對現(xiàn)有技術(shù)的以上缺陷或改進需求,本發(fā)明提供了一種實時視頻流的分布式文字識別系統(tǒng),其目的在于對視頻流進行多線程解碼的同時采用分布式任務(wù)調(diào)度框架調(diào)度對解碼圖像的文字識別處理,由此解決多并發(fā)實時視頻流的文字識別問題。

為實現(xiàn)上述目的,按照本發(fā)明的一個方面,提供了一種實時視頻流的分布式文字識別系統(tǒng),所述系統(tǒng)包括:

視頻流管理模塊,用于管理視頻流處理任務(wù)的開啟或關(guān)閉,視頻流處理任務(wù)開啟時向任務(wù)調(diào)度模塊提交視頻流處理任務(wù)的開啟請求和視頻流地址;視頻流處理任務(wù)關(guān)閉時向任務(wù)調(diào)度模塊提交視頻流處理任務(wù)的關(guān)閉請求;

任務(wù)調(diào)度模塊,用于儲存視頻流地址和圖像數(shù)據(jù),收到視頻流處理任務(wù)的開啟請求后調(diào)度一個空閑的視頻流解碼模塊執(zhí)行視頻解碼任務(wù);收到圖像數(shù)據(jù)的文字識別請求后調(diào)度一個空閑的文字識別模塊執(zhí)行文字識別任務(wù);收視頻流處理任務(wù)的關(guān)閉請求后刪除儲存的視頻流地址;

視頻流解碼模塊,用于收到任

務(wù)調(diào)度模塊的視頻解碼任務(wù)后從任務(wù)調(diào)度模塊中讀取視頻流地址,獲取視頻數(shù)據(jù)并進行解碼處理,解碼得到的圖像數(shù)據(jù)存入任務(wù)調(diào)度模塊并向任務(wù)調(diào)度模塊提交該圖像的文字識別請求;同時視頻解碼模塊每隔一段時間向任務(wù)調(diào)度模塊查詢其處理的視頻流地址是否已被刪除,若被刪除則停止視頻流的解碼處理,否則繼續(xù)執(zhí)行解碼操作;

文字識別模塊,用于收到任務(wù)調(diào)度模塊的文字識別任務(wù)后從任務(wù)調(diào)度模塊中讀取圖像數(shù)據(jù)進行文字識別,識別完成后從任務(wù)調(diào)度模塊中刪除已識別的圖像數(shù)據(jù)。

進一步地,所述任務(wù)調(diào)度模塊包括:

緩存單元,用于儲存視頻流地址和圖像數(shù)據(jù);

分布式任務(wù)調(diào)度服務(wù)器單元,收到視頻流處理任務(wù)的開啟請求后調(diào)度一個空閑的視頻流解碼模塊執(zhí)行視頻解碼任務(wù);收到圖像數(shù)據(jù)的文字識別請求后調(diào)度一個空閑的文字識別模塊執(zhí)行文字識別任務(wù);收視頻流處理任務(wù)的關(guān)閉請求后刪除緩存單元中儲存的視頻流地址。

進一步地,所述視頻流管理模塊包括:

視頻流處理任務(wù)的開啟單元,用于分布式任務(wù)調(diào)度服務(wù)器單元提交視頻流處理任務(wù)的開啟請求,并將視頻流地址發(fā)送至緩存單元儲存;

視頻流處理任務(wù)的關(guān)閉單元,用于視頻流處理任務(wù)關(guān)閉時向分布式任務(wù)調(diào)度服務(wù)器單元提交視頻流處理任務(wù)的關(guān)閉請求。

進一步地,所述視頻流解碼模塊包括:

停止解碼單元,用于按設(shè)定的時間間隔查詢緩存單元正在使用的視頻流地址是否被刪除,若刪除則停止視頻流讀取和解碼單元的視頻解碼任務(wù);否則不做處理;

視頻流讀取和解碼單元,用于接收分布式任務(wù)調(diào)度服務(wù)器單元的調(diào)度讀取緩存單元中的視頻流地址執(zhí)行視頻解碼任務(wù),得到解碼圖像,并將解碼圖像傳給圖像識別請求單元;

圖像識別請求單元,用于提取解碼圖像的灰度圖像數(shù)據(jù)存入緩存單元中并向分布式任務(wù)調(diào)度服務(wù)器單元發(fā)送圖像數(shù)據(jù)的文字識別請求。

進一步地,所述文字識別模塊包括:

待識別圖像讀取單元,用于接受分布式任務(wù)調(diào)度服務(wù)器單元發(fā)送的文字識別請求,從緩存單元讀取圖像數(shù)據(jù)并發(fā)送至圖像字符識別單元;

字符識別單元,用于判斷圖像數(shù)據(jù)是否需要進行文字識別處理,若需要則對圖像數(shù)據(jù)進行文字識別并將獲得的文字識別結(jié)果發(fā)送至后處理單元;

后處理單元,用于接受文字識別結(jié)果,并刪除緩存單元中字符識別單元處理過的圖像數(shù)據(jù)。

總體而言,通過本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)特征及有益效果:

(1)本發(fā)明中使用者可以通過視頻流地址把實時視頻流接入到系統(tǒng)中進行解碼和文字識別處理,同時采用分布式任務(wù)調(diào)度框架可以實現(xiàn)多并發(fā)實時視頻流的處理。

(2)解碼和識別模塊的分離不但使得系統(tǒng)具有很好的適應(yīng)性,在不同需求下只需對識別模塊進行相應(yīng)修改就可以實現(xiàn)視頻流的處理,而且還可以通過一個解碼模塊對應(yīng)多個文字識別模塊來解決視頻流的解碼和文字識別在速度上的不匹配問題。

(3)整個系統(tǒng)是基于分布式任務(wù)調(diào)度框架實現(xiàn)的分布式系統(tǒng);具有擴展性,可以隨時向系統(tǒng)添加解碼或文字識別模塊;具有容錯性,當(dāng)解碼或識別模塊處理發(fā)生異常時會系統(tǒng)會把任務(wù)重新發(fā)送到可用的解碼或識別模塊繼續(xù)處理。

附圖說明

圖1是本發(fā)明系統(tǒng)的結(jié)構(gòu)示意圖;

圖2是本發(fā)明系統(tǒng)的整體工作流程圖;

圖3是本發(fā)明系統(tǒng)實施例的布局示意圖。

具體實施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。

如圖1所示,本發(fā)明系統(tǒng)包括視頻流管理模塊100、視頻流解碼模塊200、文字識別模塊300和任務(wù)調(diào)度模塊400,下面對各部分作進一步詳細的說明:

任務(wù)調(diào)度模塊400用于調(diào)度視頻流解碼模塊200執(zhí)行視頻解碼任務(wù)和文字識別模塊300執(zhí)行文字識別任務(wù),同時用于傳遞停止視頻流處理信號、視頻流地址數(shù)據(jù)和待進行文字識別的圖像數(shù)據(jù)。

任務(wù)調(diào)度模塊400包括緩存單元401和分布式任務(wù)調(diào)度服務(wù)器單元402:

緩存單元401用于存儲視視頻流地址和視頻流解碼模塊200解碼得到的圖像數(shù)據(jù)。

分布式任務(wù)調(diào)度服務(wù)器單元402用于調(diào)度視頻流解碼模塊200執(zhí)行視頻流的解碼任務(wù)和文字識別模塊300對視頻流解碼模塊200解碼后的圖像數(shù)據(jù)執(zhí)行文字識別任務(wù)。分布式任務(wù)調(diào)度服務(wù)器單元402若接收視頻流管理模塊100發(fā)送的開啟視頻流文字識別處理請求,則調(diào)度視頻流解碼模塊200執(zhí)行視頻流解碼任務(wù);分布式任務(wù)調(diào)度服務(wù)器單元402若接收視頻流解碼模塊200發(fā)送的對視頻流解碼模塊200解碼得到的圖像進行文字識別的請求,則調(diào)度文字識別模塊300執(zhí)行文字識別任務(wù)。

視頻流管理模塊100用于開啟或關(guān)閉一個視頻流文字識別任務(wù)的執(zhí)行,具體地說是通過控制視頻流解碼模塊200來實現(xiàn)對整個視頻流文字識別任務(wù)啟動和關(guān)閉。本發(fā)明的視頻流管理模塊100包括視頻流處理任務(wù)的開啟單元101和視頻流處理任務(wù)的關(guān)閉單元102。

視頻流處理任務(wù)的開啟單元101用于開啟一個視頻流文字識別任務(wù)的執(zhí)行。開啟時向分布式任務(wù)調(diào)度服務(wù)器單元402發(fā)送一個視頻流解碼任務(wù)請求,請求中攜帶了一個視頻流地址,分布式任務(wù)調(diào)度服務(wù)器單元402接收到視頻流解碼任務(wù)的請求和攜帶的視頻流地址后使用接收到的視頻流地址調(diào)度一個空閑可用的視頻流解碼模塊200去執(zhí)行視頻流地址對應(yīng)的視頻流的解碼任務(wù);同時向緩存單元401中存儲該視頻流地址作為視頻流文字識別處理任務(wù)的開啟信號。

視頻流處理任務(wù)的關(guān)閉單元102用于關(guān)閉一個正在進行視頻流文字識別處理任務(wù)的執(zhí)行。視頻流處理任務(wù)的關(guān)閉單元102從緩存單元401中刪除要關(guān)閉的視頻流地址,視頻流解碼模塊200在檢測到緩存單元401中無當(dāng)前視頻流解碼模塊200所進行解碼的視頻流對應(yīng)的視頻流地址后停止當(dāng)前視頻流解碼任務(wù)的執(zhí)行,實現(xiàn)該視頻流的文字識別任務(wù)的停止。

視頻流解碼模塊200是在接收到分布式任務(wù)調(diào)度服務(wù)器單元402發(fā)送的視頻流地址和視頻流解碼任務(wù)后執(zhí)行從分布式任務(wù)調(diào)度服務(wù)器單元402接收的視頻流地址對應(yīng)的視頻流解碼任務(wù),每次解碼得到一個圖像后都會向分布式任務(wù)調(diào)度服務(wù)器單元402發(fā)送一個對解碼得到圖像的文字識別處理請求,同時每隔一段時間檢查緩存單元401中當(dāng)前視頻流解碼模塊進行解碼的視頻流對應(yīng)的視頻流地址是否存在來確定是否繼續(xù)執(zhí)行視頻流的解碼任務(wù)。本發(fā)明的視頻流解碼模塊200包括停止解碼單元201、視頻流讀取和解碼單元202和圖像識別請求單元203。

停止解碼單元201每隔一段時間從緩存單元401中查詢當(dāng)前正在視頻流解碼模塊200上進行解碼的視頻流地址是否存在,如果存在則當(dāng)前視頻流解碼模塊200繼續(xù)執(zhí)行解碼任務(wù),否則結(jié)束當(dāng)前視頻流解碼模塊200所進行的視頻流解碼任務(wù)的執(zhí)行。

視頻流讀取和解碼單元202在接收到分布式任務(wù)調(diào)度服務(wù)器單元402調(diào)度執(zhí)行的視頻流解碼任務(wù)和對應(yīng)的視頻流地址后進行視頻流的解碼。與一般視頻文件的解碼不同的是對視頻流進行解碼具有很高的實時性要求;如果視頻流的解碼速度比網(wǎng)絡(luò)上視頻數(shù)據(jù)的傳輸速度慢就會造成視頻幀丟失,由于視頻幀之間在解碼時具有前后依賴關(guān)系,會影響后續(xù)視頻幀的解碼得到的圖像質(zhì)量從而影響圖像的文字識別效果。在視頻流讀取和解碼單元202中采用了多線程流水線技術(shù)避免視頻幀丟失并實現(xiàn)視頻流的實時處理:

多線程流水線技術(shù)解碼的具體實現(xiàn)是:

1)從視頻流中讀取視頻幀線程reader;

2)對讀取的視頻幀進行解碼線程decoder;

3)對解碼后得到的解碼數(shù)據(jù)進行后處理線程postprocesser。reader線程從網(wǎng)絡(luò)中讀取傳輸過來的視頻數(shù)據(jù),把讀取的視頻數(shù)據(jù)包放入一個packet_queue的隊列中;decoder線程從packet_queue隊列中依次讀取視頻數(shù)據(jù)包,對讀取的視頻數(shù)據(jù)包進行解碼得到解碼數(shù)據(jù),把得到的解碼數(shù)據(jù)放入到一個frame_queue的隊列中;postprocesser線程從frame_queue中獲取解碼數(shù)據(jù),分離解碼數(shù)據(jù)中的灰度圖像數(shù)據(jù),并把灰度圖像數(shù)據(jù)信息發(fā)送給圖像識別請求單元203。

圖像識別請求單元203把接收到灰度圖像數(shù)據(jù)信息存入緩存單元401并向分布式任務(wù)調(diào)度服務(wù)器單元402發(fā)送接收到的灰度圖像的文字識別請求。其中向分布式任務(wù)調(diào)度服務(wù)器單元402發(fā)送的請求中攜帶的參數(shù)是可以從緩存單元401中獲取存入的灰度圖像數(shù)據(jù)對應(yīng)的鍵。文字識別模塊300通過該鍵從緩存單元401中獲取對應(yīng)的灰度圖像數(shù)據(jù)來進行文字識別處理。

文字識別模塊300在接收到分布式任務(wù)調(diào)度服務(wù)器單元402調(diào)度執(zhí)行的文字識別任務(wù)后從緩存單元401中讀取對應(yīng)的灰度圖像進行文字識別處理,最后對識別結(jié)果進行保存等后處理。本發(fā)明的文字識別模塊300包括待識別圖像讀取單元301、圖像字符識別單元302和后處理單元303。

待識別圖像讀取單元301是在接收到分布式任務(wù)調(diào)度服務(wù)器單元402調(diào)度的文字識別任務(wù)和用于從緩存單元401中獲取灰度圖像數(shù)據(jù)的鍵后,從緩存單元401中讀取鍵所對應(yīng)的灰度圖像數(shù)據(jù)發(fā)送到圖像字符識別單元302。

圖像字符識別單元302是對待識別圖像讀取單元301發(fā)送過來的灰度圖像進行文字識別。在識別前先對灰度圖像進行是否要進行識別的判斷,如果圖像不屬于待識別圖像的范圍則直接丟棄圖像,否則對灰度圖像進行相關(guān)的文字識別處理。把文字識別處理結(jié)果發(fā)送給后處理單元303。

后處理單元303在接收到圖像字符識別單元302發(fā)送的文字識別結(jié)果后對識別結(jié)果進行保存等處理,同時刪除緩存單元401中已識別完成的灰度圖像數(shù)據(jù)信息。

如圖2所示,本發(fā)明流程為:視頻流處理任務(wù)的開啟單元101向分布式任務(wù)調(diào)度服務(wù)器單元402發(fā)送視頻流的處理請求并把視頻流地址寫入緩存單元401,分布式任務(wù)調(diào)度服務(wù)器單元402收到視頻流處理請求后調(diào)度一個視頻流解碼模塊200去執(zhí)行視頻流的解碼任務(wù),視頻流的讀取和解碼單元202對視頻流進行解碼處理,得到一張圖像后通過圖像識別請求單元203保存圖像至緩存單元401并向分布式任務(wù)調(diào)度服務(wù)器單元402發(fā)送圖像的文字識別請求。分布式任務(wù)調(diào)度服務(wù)器單元402收到文字識別請求后調(diào)度一個文字識別模塊300進行圖像的文字識別處理,待識別圖像讀取單元301從緩存單元401中讀取圖片數(shù)據(jù)后,字符識別單元302對圖像進行文字識別,后處理單元303對識別后的文字信息進行保存等處理。停止解碼單元201檢測是否有停止解碼處理的信號。如果有則結(jié)束當(dāng)前解碼任務(wù)的執(zhí)行,在視頻流的解碼停止后,文字識別模塊也不會收到對應(yīng)視頻流的圖像文字識別處理請求,從而實現(xiàn)整個視頻流處理任務(wù)的結(jié)束;否則重復(fù)執(zhí)行視頻流的解碼和圖像的文字識別處理。

圖3是本發(fā)明的系統(tǒng)實施示意圖。視頻流解碼和文字識別都是使用了多服務(wù)器集群,這些服務(wù)器都可用通過分布式任務(wù)調(diào)度服務(wù)器單元402進行調(diào)度去執(zhí)行相應(yīng)視頻流解碼或文字識別任務(wù)。緩存單元401服務(wù)器是作為解碼后的圖像數(shù)據(jù)傳遞給文字識別服務(wù)器的緩存使用和關(guān)閉視頻流解碼信號的傳遞池。客戶端用于管理視頻流,向分布式任務(wù)調(diào)度服務(wù)器單元402發(fā)送視頻流解碼請求或向緩存單元401傳送關(guān)閉視頻流解碼處理信號。

為了本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1