本發(fā)明屬于智能視頻分析領(lǐng)域,特別涉及一種集群視頻分析方法和系統(tǒng)。
背景技術(shù):
現(xiàn)有技術(shù)中,集群分析系統(tǒng)在執(zhí)行視頻分析任務(wù)時,通常不會對任務(wù)進(jìn)行劃分,即使劃分也是粗略劃分,不會以任務(wù)的執(zhí)行時間長度為單位進(jìn)行劃分,現(xiàn)有技術(shù)的不劃分的方案或者粗劃分的方案不適用于視頻智能分析領(lǐng)域,且容易造成任務(wù)的執(zhí)行時間過長、任務(wù)大量排隊等問題。
另外,在任務(wù)進(jìn)入任務(wù)調(diào)度隊列后,現(xiàn)有技術(shù)通常將任務(wù)按照優(yōu)先級順序進(jìn)行排序。實際上,視頻分析任務(wù)有諸多因素需要考慮,例如任務(wù)的執(zhí)行時間、取流時間、硬件資源需求等等?,F(xiàn)有技術(shù)將任務(wù)以優(yōu)先級作為排序的唯一條件,在實際執(zhí)行任務(wù)時,往往容易造成任務(wù)順序混亂等問題。
在執(zhí)行視頻分析任務(wù)時,現(xiàn)有技術(shù)通常采用主動推送的方式,即任務(wù)調(diào)度節(jié)點將任務(wù)主動推送到計算節(jié)點,然后計算節(jié)點執(zhí)行該任務(wù)。然而,這種主動推送的方式往往會造成計算節(jié)點疲于應(yīng)付任務(wù)調(diào)度節(jié)點的任務(wù)推送?,F(xiàn)有技術(shù)中也有少許方案,采用計算節(jié)點主動獲取任務(wù)的方式,即計算節(jié)點主動獲取任務(wù)調(diào)度節(jié)點中的任務(wù),但是這種主動獲取任務(wù)的方式缺少對計算節(jié)點內(nèi)部的任務(wù)調(diào)度方案。
因此,有必要基于現(xiàn)有的集群視頻分析方法提出一種新型的集群視頻分析方法,降低任務(wù)執(zhí)行時間、防止任務(wù)滯留、防止任務(wù)順序混亂以及合理地進(jìn)行任務(wù)調(diào)度。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種集群視頻分析方法和系統(tǒng),本發(fā)明根據(jù)時長對數(shù)據(jù)片段進(jìn)行劃分,使得數(shù)據(jù)片段的處理時間減少,防止了數(shù)據(jù)片段的滯留;另外,在排序時,根據(jù)數(shù)據(jù)片段的多個要素進(jìn)行排序而非單一地根據(jù)數(shù)據(jù)片段的優(yōu)先級進(jìn)行排序,能夠防止數(shù)據(jù)片段出現(xiàn)混亂;而在計算節(jié)點獲取數(shù)據(jù)片段時,通過本發(fā)明所述的調(diào)度方法,能夠?qū)崿F(xiàn)合理的任務(wù)調(diào)度。
為實現(xiàn)上述目的,本發(fā)明的一個方面提供了一種集群視頻分析方法,該方法用于集群系統(tǒng),所述集群系統(tǒng)包括至少一個主計算節(jié)點和多個從計算節(jié)點,該方法包括:基于待執(zhí)行視頻數(shù)據(jù)的預(yù)定時長,將所述待執(zhí)行視頻數(shù)據(jù)劃分為至少一個數(shù)據(jù)片段;將所述數(shù)據(jù)片段插入到執(zhí)行數(shù)據(jù)隊列;從計算節(jié)點從所述執(zhí)行數(shù)據(jù)隊列獲取數(shù)據(jù)片段并對所述數(shù)據(jù)片段進(jìn)行處理。
其中,在所述將待執(zhí)行視頻數(shù)據(jù)劃分為至少一個數(shù)據(jù)片段的步驟之前,還包括:根據(jù)預(yù)定時長對待分析的視頻數(shù)據(jù)進(jìn)行劃分,以生成下一預(yù)定時長的待執(zhí)行視頻數(shù)據(jù)。
其中,所述將數(shù)據(jù)片段插入到執(zhí)行數(shù)據(jù)隊列的步驟進(jìn)一步包括:獲取所述數(shù)據(jù)片段的優(yōu)先級、預(yù)定執(zhí)行開始時間、預(yù)定執(zhí)行結(jié)束時間、所需要的計算節(jié)點核數(shù)和分辨率的信息;根據(jù)獲取到的所述信息以確定所述數(shù)據(jù)片段在執(zhí)行數(shù)據(jù)隊列中的排序。
其中,在所述從計算節(jié)點從所述執(zhí)行數(shù)據(jù)隊列獲取數(shù)據(jù)片段并對所述數(shù) 據(jù)片段進(jìn)行處理的步驟之前,還包括:從計算節(jié)點統(tǒng)計自身計算資源是否有空余,如果有空余則向執(zhí)行數(shù)據(jù)隊列請求獲取數(shù)據(jù)片段。
其中,所述從計算節(jié)點從所述執(zhí)行數(shù)據(jù)隊列獲取數(shù)據(jù)片段并對所述數(shù)據(jù)片段進(jìn)行處理的步驟進(jìn)一步包括:判斷所述數(shù)據(jù)片段所需要的資源是否超過該從計算節(jié)點目前空閑量;如果是,則重新進(jìn)行數(shù)據(jù)片段的請求,否則獲取所述數(shù)據(jù)片段并對所述數(shù)據(jù)片段進(jìn)行處理。
其中,所述重新進(jìn)行數(shù)據(jù)片段的請求的步驟包括:請求下一個數(shù)據(jù)片段;或者,選擇暫停目前正在執(zhí)行的數(shù)據(jù)片段直到該從計算節(jié)點的空閑量滿足所述數(shù)據(jù)片段所需要的資源,再對所述數(shù)據(jù)片段進(jìn)行請求。
其中,該方法還包括:從計算節(jié)點實時反饋數(shù)據(jù)片段執(zhí)行情況以及上報從計算節(jié)點的資源使用情況。
根據(jù)本發(fā)明的另一方面,提供了一種集群視頻分析系統(tǒng),所述集群視頻分析系統(tǒng)包括至少一個主計算節(jié)點和多個從計算節(jié)點,所述主計算節(jié)點包括:數(shù)據(jù)片段劃分單元,用于基于待執(zhí)行視頻數(shù)據(jù)的預(yù)定時長,將所述待執(zhí)行視頻數(shù)據(jù)劃分為至少一個數(shù)據(jù)片段;數(shù)據(jù)片段插入單元,用于將所述數(shù)據(jù)片段插入到執(zhí)行數(shù)據(jù)隊列;所述從計算節(jié)點包括:數(shù)據(jù)片段獲取單元,用于從所述執(zhí)行數(shù)據(jù)隊列獲取數(shù)據(jù)片段;數(shù)據(jù)片段處理單元,用于對所述獲取的數(shù)據(jù)片段進(jìn)行處理。
其中,所述主計算節(jié)點還包括周期性劃分單元,用于根據(jù)預(yù)定時長對待分析的視頻數(shù)據(jù)進(jìn)行劃分,以生成下一預(yù)定時長的待執(zhí)行視頻數(shù)據(jù)。
其中,所述數(shù)據(jù)片段插入單元包括:信息獲取子單元,用于獲取數(shù)據(jù)片段的優(yōu)先級、預(yù)定執(zhí)行開始時間、預(yù)定執(zhí)行結(jié)束時間、所需要的計算節(jié)點核 數(shù)和分辨率的信息;排序子單元,用于根據(jù)獲取到的所述信息確定所述數(shù)據(jù)片段在執(zhí)行數(shù)據(jù)隊列中的排序。
其中,所述從計算節(jié)點還包括計算資源統(tǒng)計單元,用于統(tǒng)計自身計算資源是否有空余,如果有空余,所述數(shù)據(jù)片段獲取單元向執(zhí)行數(shù)據(jù)隊列申請獲取數(shù)據(jù)片段。
其中,所述從計算節(jié)點還包括資源匹配單元,用于判斷所述數(shù)據(jù)片段所需要的資源是否超過該計算節(jié)點目前空閑量;所述數(shù)據(jù)片段獲取單元,在資源匹配單元判斷為是的情況下,重新進(jìn)行數(shù)據(jù)片段的請求,否則獲取所述數(shù)據(jù)片段。
其中,所述數(shù)據(jù)片段獲取單元在資源匹配單元判斷為是的情況下,重新進(jìn)行數(shù)據(jù)片段的請求,具體為:主動請求下一個數(shù)據(jù)片段;或者,選擇暫停目前正在執(zhí)行的數(shù)據(jù)片段直到該從計算節(jié)點的空閑量滿足所述數(shù)據(jù)片段所需要的資源,再對所述數(shù)據(jù)片段進(jìn)行請求。
優(yōu)選的,所述從計算節(jié)點還包括心跳上報單元,用于向主計算節(jié)點實時反饋任務(wù)執(zhí)行情況以及上報計算節(jié)點的資源使用情況信息。
如上所述,本發(fā)明的集群視頻分析方法和系統(tǒng),能夠防止數(shù)據(jù)片段的滯留和數(shù)據(jù)片段出現(xiàn)混亂,還能夠?qū)崿F(xiàn)合理的任務(wù)調(diào)度。
附圖說明
圖1是本發(fā)明的集群視頻分析方法的流程示意圖;
圖2是本發(fā)明的步驟S2的流程示意圖;
圖3是本發(fā)明的步驟S3的流程示意圖;
圖4、5是本發(fā)明的集群視頻分析系統(tǒng)的結(jié)構(gòu)示意圖;
圖6是本發(fā)明的數(shù)據(jù)片段插入單元的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明了,下面結(jié)合具體實施方式并參照附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)該理解,這些描述只是示例性的,而并非要限制本發(fā)明的范圍。此外,在以下說明中,省略了對公知結(jié)構(gòu)和技術(shù)的描述,以避免不必要地混淆本發(fā)明的概念。
集群技術(shù)(cluster)是一種較新的技術(shù),通過集群技術(shù),可以在付出較低成本的情況下獲得在性能、可靠性、靈活性方面相對較高的收益,其中的任務(wù)調(diào)度是集群系統(tǒng)中的核心技術(shù)。集群是一組相互獨立的、通過高速網(wǎng)絡(luò)互聯(lián)的計算機(jī),它們構(gòu)成了一個組,并以單一系統(tǒng)的模式加以管理。一個用戶與集群相互作用時,集群像是一個獨立的服務(wù)器。集群配置是用于提高可用性和可縮放性。
主動式計算節(jié)點是指通過主動式任務(wù)獲取方式,由計算節(jié)點自主決定是否獲取任務(wù),當(dāng)任務(wù)需要的計算節(jié)點核數(shù)高于計算節(jié)點自身計算資源時,由計算節(jié)點自行決定是否進(jìn)行內(nèi)部任務(wù)調(diào)整后獲取該任務(wù)。
圖1是本發(fā)明的集群視頻分析方法的流程示意圖。
本發(fā)明的集群視頻分析方法用于集群系統(tǒng),所述集群系統(tǒng)包括至少一個主計算節(jié)點和多個從計算節(jié)點。
如圖1所示,本發(fā)明的集群視頻分析方法包括:
步驟S1,基于待執(zhí)行視頻數(shù)據(jù)的預(yù)定時長,將所述待執(zhí)行視頻數(shù)據(jù)劃分為至少一個數(shù)據(jù)片段。
本步驟中,將接收到的待分析的視頻數(shù)據(jù)插入執(zhí)行計劃表中,將執(zhí)行計 劃表內(nèi)所有未標(biāo)示為結(jié)束的待分析的視頻數(shù)據(jù),根據(jù)預(yù)定周期對待分析的視頻數(shù)據(jù)進(jìn)行劃分,以生成下一周期(如半小時)的待執(zhí)行視頻數(shù)據(jù),將生成的下一周期的待執(zhí)行視頻數(shù)據(jù)進(jìn)行劃分,劃分為至少一個數(shù)據(jù)片段。
其中,所述待執(zhí)行視頻數(shù)據(jù)的信息包括但不限于待執(zhí)行視頻數(shù)據(jù)的ID、待執(zhí)行視頻數(shù)據(jù)的執(zhí)行時間、待執(zhí)行視頻數(shù)據(jù)的取流時間、待執(zhí)行視頻數(shù)據(jù)的優(yōu)先級和待執(zhí)行視頻數(shù)據(jù)的取流地址等信息。
待執(zhí)行視頻數(shù)據(jù)的執(zhí)行時間標(biāo)示了待執(zhí)行視頻數(shù)據(jù)預(yù)定執(zhí)行開始時間和待執(zhí)行視頻數(shù)據(jù)的預(yù)定執(zhí)行結(jié)束時間。
待執(zhí)行視頻數(shù)據(jù)的取流時間,是指待分析的視頻數(shù)據(jù)的進(jìn)行分析時的起始時間和結(jié)束時間。例如,待執(zhí)行視頻數(shù)據(jù)的時間段為5:00-6:00,該時間段5:00-6:00即為待執(zhí)行視頻數(shù)據(jù)的取流時間。
待執(zhí)行視頻數(shù)據(jù)的取流地址,待分析的視頻數(shù)據(jù)通常存儲在特定的介質(zhì)中,例如,存儲在NVR(Network Video Recorder,即網(wǎng)絡(luò)硬盤錄像機(jī))中,當(dāng)需要獲取存儲在NVR中的待分析的視頻數(shù)據(jù)時,就需要知道該存儲介質(zhì)的地址,該地址即是待執(zhí)行視頻數(shù)據(jù)的取流地址。
舉例來說,例如,商場環(huán)境下每天上午的11:00-11:30的時間段是人流高峰,可按照10分鐘(即預(yù)定時長)每片將該時間段(即上午11:00-11:30)的待執(zhí)行視頻數(shù)據(jù)進(jìn)行劃分,即劃分為3個數(shù)據(jù)片段。同樣地,商場環(huán)境下每天的午夜時間11:00-11:30是人流低峰,此時可以不對該時間段(即午夜11:00-11:30)的待執(zhí)行視頻數(shù)據(jù)進(jìn)行劃分,即1個數(shù)據(jù)片段,直接對該數(shù)據(jù)片段進(jìn)行處理,其目的是減少待執(zhí)行視頻數(shù)據(jù)的滯留時間。最后,將上述數(shù)據(jù)片段插入到執(zhí)行數(shù)據(jù)隊列。
本發(fā)明中,所述預(yù)定時長是一個經(jīng)驗值,可通過經(jīng)驗公式得到該預(yù)定時長。具體的,該預(yù)定時長隨著待執(zhí)行視頻數(shù)據(jù)每次的運行時間的變化而不斷變化。例如,在初始化時,可以設(shè)置該待執(zhí)行視頻數(shù)據(jù)的預(yù)定時長為任意時長(即初始時長),例如30分鐘、40分鐘或者其他值,假設(shè)一待執(zhí)行視頻數(shù)據(jù)的初始時長為30分鐘,設(shè)該待執(zhí)行視頻數(shù)據(jù)的時間段為10:00-10:30(即待執(zhí)行視頻數(shù)據(jù)的取流時間),則此時該待執(zhí)行視頻數(shù)據(jù)對應(yīng)的權(quán)重是固定值,例如1。隨著該時間段(即10:00-10:30)的待執(zhí)行視頻數(shù)據(jù)的運行時間不斷增加,其權(quán)重也在不斷增加。后續(xù)的,在對該時間段(即10:00-10:30)的待執(zhí)行視頻數(shù)據(jù)進(jìn)行劃分時,將該權(quán)重作為參考值對待執(zhí)行視頻數(shù)據(jù)進(jìn)行劃分。例如,在初始化時按照半小時每片對該待執(zhí)行視頻數(shù)據(jù)進(jìn)行劃分,隨著待執(zhí)行視頻數(shù)據(jù)的執(zhí)行時間的不斷增加,權(quán)重也在不斷增加,后續(xù)在對待執(zhí)行視頻數(shù)據(jù)進(jìn)行劃分時,可能將該待執(zhí)行視頻數(shù)據(jù)劃分成25分鐘每片或20分鐘每片等等。
需要說明的是,劃分是將待執(zhí)行視頻數(shù)據(jù)根據(jù)待執(zhí)行視頻數(shù)據(jù)的預(yù)定時長劃分為至少一個數(shù)據(jù)片段,用于集群內(nèi)部并發(fā)執(zhí)行及任務(wù)調(diào)度。
步驟S2,將所述數(shù)據(jù)片段插入到執(zhí)行數(shù)據(jù)隊列。
本步驟中,將步驟S1中劃分為的至少一個數(shù)據(jù)片段插入到執(zhí)行數(shù)據(jù)隊列中,等待從計算節(jié)點的獲取和處理。
步驟S3,從計算節(jié)點從所述執(zhí)行數(shù)據(jù)隊列獲取數(shù)據(jù)片段并對所述數(shù)據(jù)片段進(jìn)行處理。
本步驟中,從計算節(jié)點主動從所述執(zhí)行數(shù)據(jù)隊列中獲取數(shù)據(jù)片段,并對獲取到的所述數(shù)據(jù)片段進(jìn)行處理。
本步驟中,從計算節(jié)點實時(或每隔預(yù)定周期時間,例如5秒)掃描執(zhí)行數(shù)據(jù)隊列獲取每個數(shù)據(jù)片段所需要的計算資源,當(dāng)從計算節(jié)點發(fā)現(xiàn)自身計算資源有空余(即計算節(jié)點核數(shù)不為空)時,判斷獲取到的所述數(shù)據(jù)片段所需要的資源是否超過該從計算節(jié)點目前空閑量,當(dāng)判斷結(jié)果為否時,則獲取所述數(shù)據(jù)片段并對所述數(shù)據(jù)片段進(jìn)行處理。具體的,在計算節(jié)點對獲取到的所述數(shù)據(jù)片段進(jìn)行處理的過程中,修改該數(shù)據(jù)片段的執(zhí)行狀態(tài),例如將執(zhí)行狀態(tài)改為正在運行或?qū)⑺鰯?shù)據(jù)片段進(jìn)行鎖定等等。
通過上述方法,將待執(zhí)行視頻數(shù)據(jù)按照預(yù)定時長進(jìn)行劃分,使得每個數(shù)據(jù)片段的處理時間減少,防止了數(shù)據(jù)片段的滯留;另外,在排序時,根據(jù)數(shù)據(jù)片段的多個要素進(jìn)行排序而非單一的根據(jù)數(shù)據(jù)片段的優(yōu)先級進(jìn)行排序,能夠防止數(shù)據(jù)片段的順序出現(xiàn)混亂;當(dāng)從計算節(jié)點主動獲取任務(wù)時,通過本發(fā)明提供的任務(wù)調(diào)度方法,能夠合理的進(jìn)行任務(wù)調(diào)度。
可選的,在一實施方式中,在所述將待執(zhí)行視頻數(shù)據(jù)劃分為至少一個數(shù)據(jù)片段的步驟之前,還包括:根據(jù)預(yù)定時長對待分析的視頻數(shù)據(jù)進(jìn)行劃分,以生成下一預(yù)定時長的待執(zhí)行視頻數(shù)據(jù)。
具體來說,根據(jù)步驟S1中的預(yù)定時長對待分析的視頻數(shù)據(jù)進(jìn)行劃分,以生成下一個預(yù)定時長的待執(zhí)行視頻數(shù)據(jù)。例如,以半小時為周期循環(huán)掃描整個執(zhí)行計劃表,生成下一半小時的待執(zhí)行視頻數(shù)據(jù)。同樣的,該預(yù)定時長的計算公式及計算過程同上,此處不再贅述。
當(dāng)接收到的待執(zhí)行視頻數(shù)據(jù)是一次性待執(zhí)行視頻數(shù)據(jù)時,直接對該待執(zhí)行視頻數(shù)據(jù)進(jìn)行任務(wù)劃分。具體來說,當(dāng)接收到一次性待執(zhí)行視頻數(shù)據(jù)時,對該一次性待執(zhí)行視頻數(shù)據(jù)不生成執(zhí)行計劃表,即直接進(jìn)行任務(wù)劃分。其中, 一次性待執(zhí)行視頻數(shù)據(jù)是指只執(zhí)行一次的待執(zhí)行視頻數(shù)據(jù),有別于計劃的待執(zhí)行視頻數(shù)據(jù),計劃的待執(zhí)行視頻數(shù)據(jù)會按照配置原則周而復(fù)始地執(zhí)行。
通過將待執(zhí)行視頻數(shù)據(jù)根據(jù)預(yù)定時長進(jìn)行劃分,可以確定出一天(即24小時)的待分析的視頻數(shù)據(jù)生成的數(shù)據(jù)片段的數(shù)量以及每個數(shù)據(jù)片段的大小。
圖2是本發(fā)明的步驟S2的流程示意圖。
如圖2所示,前述步驟S2將所述數(shù)據(jù)片段插入到執(zhí)行數(shù)據(jù)隊列進(jìn)一步包括:
步驟S21,獲取所述數(shù)據(jù)片段的優(yōu)先級、預(yù)定執(zhí)行開始時間、預(yù)定執(zhí)行結(jié)束時間、所需要的計算節(jié)點核數(shù)和分辨率的信息。
本步驟中,在將所述數(shù)據(jù)片段插入執(zhí)行數(shù)據(jù)隊列時,獲取每個數(shù)據(jù)片段的優(yōu)先級、預(yù)定執(zhí)行開始時間、預(yù)定執(zhí)行結(jié)束時間、所需要的計算節(jié)點核數(shù)和分辨率的信息等等,進(jìn)一步根據(jù)所述信息對所述數(shù)據(jù)片段進(jìn)行排序。
步驟S22,根據(jù)獲取到的所述信息以確定所述數(shù)據(jù)片段在執(zhí)行數(shù)據(jù)隊列中的排序。
本步驟中,根據(jù)步驟S21獲取到的每個數(shù)據(jù)片段的優(yōu)先級、預(yù)定執(zhí)行開始時間、預(yù)定執(zhí)行結(jié)束時間、所需要的計算節(jié)點核數(shù)和分辨率的信息等等,來確定所述數(shù)據(jù)片段在執(zhí)行數(shù)據(jù)隊列中的順序。其中,所需要的計算節(jié)點核數(shù)是指在執(zhí)行數(shù)據(jù)片段時所需要使用的計算節(jié)點核數(shù)。分辨率即畫面分辨率,例如1080P表示畫面分辨率為1920×1080。
具體的,當(dāng)多個數(shù)據(jù)片段的優(yōu)先級同為“高”時,進(jìn)一步,按照數(shù)據(jù)片段的預(yù)定執(zhí)行開始時間進(jìn)行排序,當(dāng)多個數(shù)據(jù)片段的預(yù)定執(zhí)行開始時間相同時,進(jìn)一步按照預(yù)定執(zhí)行結(jié)束時間進(jìn)行排序,按照前述順序,以此類推。
舉例來說,假設(shè)一個數(shù)據(jù)片段的預(yù)定執(zhí)行開始時間是11:00-11:15,另一個數(shù)據(jù)片段的預(yù)定執(zhí)行開始時間是11:15-11:30,則將執(zhí)行時間早的數(shù)據(jù)片段(即預(yù)定執(zhí)行開始時間早的數(shù)據(jù)片段)排在前面。假設(shè)一個數(shù)據(jù)片段的預(yù)定執(zhí)行開始時間是11:00-11:15,另一任務(wù)的預(yù)定執(zhí)行開始時間是11:00-11:10,則預(yù)定執(zhí)行結(jié)束時間早的數(shù)據(jù)片段(即預(yù)定執(zhí)行結(jié)束時間早的數(shù)據(jù)片段)排在前面。
本發(fā)明中,在對數(shù)據(jù)片段進(jìn)行排序時可以按照優(yōu)先級、預(yù)定執(zhí)行開始時間、預(yù)定執(zhí)行結(jié)束時間、所需要的計算節(jié)點核數(shù)和分辨率等信息進(jìn)行排序,但不限于上述幾種信息。可選的,可以根據(jù)上述某個信息進(jìn)行數(shù)據(jù)片段的排序。優(yōu)選的,根據(jù)本發(fā)明所述的上述幾種信息對數(shù)據(jù)片段進(jìn)行綜合排序。舉例來說,可以僅根據(jù)預(yù)定執(zhí)行開始時間對數(shù)據(jù)片段進(jìn)行排序,也可以根據(jù)預(yù)定執(zhí)行開始時間和優(yōu)先級對數(shù)據(jù)片段進(jìn)行排序。
在一實施方式中,在所述從計算節(jié)點從所述執(zhí)行數(shù)據(jù)隊列獲取數(shù)據(jù)片段并對所述數(shù)據(jù)片段進(jìn)行處理的步驟之前,還包括:從計算節(jié)點實時(或每隔預(yù)定時間周期,例如5秒)統(tǒng)計自身計算資源是否有空余,如果有空余,則向執(zhí)行數(shù)據(jù)隊列請求獲取數(shù)據(jù)片段。具體來說,在從計算節(jié)點獲取數(shù)據(jù)片段的過程中,從計算節(jié)點需要統(tǒng)計自身計算資源是否空余,在從計算節(jié)點資源有空余時,向執(zhí)行數(shù)據(jù)隊列請求獲取數(shù)據(jù)片段。
圖3是本發(fā)明的步驟S3的流程示意圖。
如圖3所示,前述步驟S3進(jìn)一步包括:
步驟S31,判斷所述數(shù)據(jù)片段所需要的資源是否超過該計算節(jié)點目前空閑量。
本步驟中,對獲取到的每個數(shù)據(jù)片段,判斷每個所述數(shù)據(jù)片段所需要的資源是否超過該從計算節(jié)點目前空閑量。
步驟S32,如果是,則重新進(jìn)行數(shù)據(jù)片段的請求。
步驟S33,否則獲取所述數(shù)據(jù)片段并對所述數(shù)據(jù)片段進(jìn)行處理。
當(dāng)步驟S2的判斷結(jié)果為是時(即從計算節(jié)點的空閑量小于所述數(shù)據(jù)片段所需要的資源時),重新進(jìn)行數(shù)據(jù)片段的請求。當(dāng)步驟S2的判斷結(jié)果為否時(即從計算節(jié)點的空閑量大于或等于所述數(shù)據(jù)片段所需要的資源時),獲取所述數(shù)據(jù)片段并對所述數(shù)據(jù)片段進(jìn)行處理。
在一實施方式中,前述所述重新進(jìn)行數(shù)據(jù)片段的請求的步驟進(jìn)一步包括:請求下一個數(shù)據(jù)片段;或者,選擇暫停目前正在執(zhí)行的數(shù)據(jù)片段直到該從計算節(jié)點的空閑量滿足所述數(shù)據(jù)片段所需要的資源,再對所述數(shù)據(jù)片段進(jìn)行請求。
具體來說,當(dāng)判斷結(jié)果為獲取到的所述數(shù)據(jù)片段所需要的資源超過該從計算節(jié)點自身的目前空閑量時,表明計算節(jié)點無法承載所述數(shù)據(jù)片段,此時計算節(jié)點有兩種處理方式:可以請求下一個數(shù)據(jù)片段;或者,選擇暫停目前正在執(zhí)行的數(shù)據(jù)片段(即在執(zhí)行數(shù)據(jù)隊列中,執(zhí)行狀態(tài)標(biāo)示為正在執(zhí)行或者鎖定狀態(tài)的數(shù)據(jù)片段)。當(dāng)判斷結(jié)果為獲取到的所述數(shù)據(jù)片段未超過計算節(jié)點自身的目前空閑量時,執(zhí)行步驟S3即該從計算節(jié)點獲取所述數(shù)據(jù)片段并對所述數(shù)據(jù)片段進(jìn)行處理。舉例來說,當(dāng)某個數(shù)據(jù)片段所需要的計算節(jié)點核數(shù)為2,而當(dāng)前該計算節(jié)點的自身計算資源為1,此時該計算節(jié)點無法承接該數(shù)據(jù)片段,此時計算節(jié)點不請求該數(shù)據(jù)片段,而選擇上述兩種執(zhí)行方式中的一種。
這里,用戶可自定義設(shè)置根據(jù)數(shù)據(jù)片段的某些信息對正在執(zhí)行的數(shù)據(jù)片 段進(jìn)行暫停,所述信息包括但不限于優(yōu)先級、數(shù)據(jù)片段剩余進(jìn)度等等??蛇x的,即可以單一的按照優(yōu)先級的高低停止某個數(shù)據(jù)片段,或者可以單一的按照數(shù)據(jù)片段剩余進(jìn)度停止某個任務(wù),或者可以同時按照優(yōu)先級的高低和任務(wù)剩余進(jìn)度的長度停止某個數(shù)據(jù)片段。具體來說,可優(yōu)先停止優(yōu)先級別低的數(shù)據(jù)片段,或者優(yōu)先停止剩余進(jìn)度長的數(shù)據(jù)片段。
在一實施方式中,所述方法還包括:從計算節(jié)點實時反饋數(shù)據(jù)片段的執(zhí)行情況以及上報該從計算節(jié)點的資源使用情況。
具體的,在從計算節(jié)點處理數(shù)據(jù)片段的過程中,該從計算節(jié)點實時(或每間隔預(yù)定時間周期,例如3秒)向任務(wù)調(diào)度服務(wù)反饋數(shù)據(jù)片段的執(zhí)行情況(例如正在執(zhí)行、或執(zhí)行結(jié)束等)以及上報該從計算節(jié)點的資源使用情況(例如CPU占用情況、內(nèi)存使用情況等等)。任務(wù)調(diào)度服務(wù)根據(jù)從計算節(jié)點實時上報的數(shù)據(jù)片段的執(zhí)行狀態(tài)以及自身的資源使用情況等,合理的進(jìn)行任務(wù)調(diào)度。其中,任務(wù)調(diào)度是指針對劃分完的數(shù)據(jù)片段及其優(yōu)先級、執(zhí)行時間等,結(jié)合從計算節(jié)點上報的資源使用情況,合理有效地進(jìn)行數(shù)據(jù)片段的調(diào)度。計算最小單元狀態(tài)是指能夠使用視頻分析算法完成一個視頻分析任務(wù)的最小計算資源單位,例如,使用人臉?biāo)惴ㄍ瓿梢粋€視頻分析任務(wù)需要的最小計算單元,可以提前計算出來,當(dāng)計算節(jié)點的剩余計算單元不足最小計算單元時,不會申請數(shù)據(jù)片段。
如上所述,詳細(xì)介紹了本發(fā)明的集群視頻分析方法,如圖1所示,本發(fā)明根據(jù)時長對待執(zhí)行視頻數(shù)據(jù)進(jìn)行劃分,使得數(shù)據(jù)片段的處理時間減少,防止了數(shù)據(jù)片段的滯留;另外,在排序時,根據(jù)數(shù)據(jù)片段的多個要素進(jìn)行排序而非單一的根據(jù)數(shù)據(jù)片段的優(yōu)先級進(jìn)行排序,能夠防止數(shù)據(jù)片段的順序出現(xiàn) 混亂;當(dāng)計算節(jié)點主動獲取任務(wù)時,通過本發(fā)明提供的任務(wù)調(diào)度方法,能夠合理的進(jìn)行任務(wù)調(diào)度。
圖4、5是本發(fā)明的集群視頻分析系統(tǒng)的結(jié)構(gòu)示意圖。
如圖4、5所示,本發(fā)明的集群視頻分析系統(tǒng)包括至少一個主計算節(jié)點1和多個從計算節(jié)點2。其中,主計算節(jié)點1包括數(shù)據(jù)片段劃分單元11和數(shù)據(jù)片段插入單元12,從計算節(jié)點2包括數(shù)據(jù)片段獲取單元21和數(shù)據(jù)片段處理單元22。
數(shù)據(jù)片段劃分單元11,用于基于待執(zhí)行視頻數(shù)據(jù)的預(yù)定時長,將所述待執(zhí)行視頻數(shù)據(jù)劃分為至少一個數(shù)據(jù)片段。具體來說,根據(jù)待執(zhí)行視頻數(shù)據(jù)的預(yù)定時長,將所述待執(zhí)行視頻數(shù)據(jù)劃分為至少一個數(shù)據(jù)片段,并將所述至少一個數(shù)據(jù)片段發(fā)送到執(zhí)行數(shù)據(jù)隊列。
該模塊的處理過程可參見方法部分的描述。
數(shù)據(jù)片段插入單元12連接到所述數(shù)據(jù)片段劃分單元11,用于將所述數(shù)據(jù)片段插入到執(zhí)行數(shù)據(jù)隊列。具體來說,數(shù)據(jù)片段插入單元12將接收到的所述數(shù)據(jù)片段按照優(yōu)先級、預(yù)定執(zhí)行開始時間、預(yù)定執(zhí)行結(jié)束時間、所需要的計算節(jié)點核數(shù)和分辨率等信息進(jìn)行排序,但不限于上述幾種信息。
該模塊的處理過程可參見方法部分的描述。
數(shù)據(jù)片段獲取單元21與所述數(shù)據(jù)片段插入單元12連接,用于從所述執(zhí)行數(shù)據(jù)隊列獲取數(shù)據(jù)片段。具體來說,從計算節(jié)點中的數(shù)據(jù)片段獲取單元21獲取執(zhí)行數(shù)據(jù)隊列中的數(shù)據(jù)片段,當(dāng)從計算節(jié)點的空閑量滿足所述數(shù)據(jù)片段所需要的資源時,數(shù)據(jù)片段獲取單元21能夠獲取到數(shù)據(jù)片段。
該模塊的處理過程可參見方法部分的描述。
數(shù)據(jù)片段處理單元22連接到所述數(shù)據(jù)片段獲取單元21,用于對所述獲取的數(shù)據(jù)片段進(jìn)行處理。具體來說,當(dāng)數(shù)據(jù)片段獲取單元21獲取到所述數(shù)據(jù)片段時,將所述數(shù)據(jù)片段發(fā)送給數(shù)據(jù)片段處理單元22進(jìn)行處理。
該模塊的處理過程可參見方法部分的描述。
在一實施方式中,所述主計算節(jié)點1還包括周期性劃分單元13,用于根據(jù)預(yù)定時長對待分析的視頻數(shù)據(jù)進(jìn)行劃分,以生成下一個預(yù)定時長的待執(zhí)行視頻數(shù)據(jù)。
該模塊的處理過程可參見方法部分的描述。
圖6是本發(fā)明的數(shù)據(jù)片段插入單元的結(jié)構(gòu)示意圖。
如圖6所示,所述數(shù)據(jù)片段插入單元12包括信息獲取子單元20和排序子單元30。
信息獲取子單元20,用于獲取數(shù)據(jù)片段的優(yōu)先級、預(yù)定執(zhí)行開始時間、預(yù)定執(zhí)行結(jié)束時間、所需要的計算節(jié)點核數(shù)和分辨率的信息。
排序子單元30與所述信息獲取子單元20連接,用于根據(jù)獲取到的所述信息確定所述數(shù)據(jù)片段在執(zhí)行數(shù)據(jù)隊列中的排序。
在一實施方式中,所述從計算節(jié)點2還包括計算資源統(tǒng)計單元23,用于統(tǒng)計自身計算資源是否有空余,如果有空余所述數(shù)據(jù)片段獲取單元21向執(zhí)行數(shù)據(jù)隊列申請獲取數(shù)據(jù)片段。具體來說,計算節(jié)點統(tǒng)計單元23統(tǒng)計自身計算資源是否有空余,當(dāng)有空余時,通知數(shù)據(jù)片段獲取單元21向執(zhí)行數(shù)據(jù)隊列發(fā)送數(shù)據(jù)片段獲取的請求。
在一實施方式中,所述從計算節(jié)點還包括資源匹配單元24,用于判斷所述數(shù)據(jù)片段所需要的資源是否超過該計算節(jié)點目前空閑量,所述數(shù)據(jù)片段獲 取單元21,在資源匹配單元判斷為是的情況下,重新進(jìn)行數(shù)據(jù)片段的請求,否則獲取所述數(shù)據(jù)片段。具體來說,在數(shù)據(jù)片段獲取單元21向執(zhí)行數(shù)據(jù)隊列獲取數(shù)據(jù)片段之前,所述資源匹配單元24判斷所述數(shù)據(jù)片段所需要的資源是否超過該計算節(jié)點目前空閑量,在資源匹配單元24的判斷結(jié)果為是的情況下,重新進(jìn)行數(shù)據(jù)片段的請求,在資源匹配單元24的判斷結(jié)果為否的情況下,獲取該數(shù)據(jù)片段。
在一實施方式中,所述數(shù)據(jù)片段獲取單元21在資源匹配單元判斷為是的情況下,重新進(jìn)行數(shù)據(jù)片段的請求,具體為:主動請求下一個數(shù)據(jù)片段;或者,選擇暫停目前正在執(zhí)行的數(shù)據(jù)片段直到該計算節(jié)點的空閑量滿足所述數(shù)據(jù)片段所需要的資源,再對所述數(shù)據(jù)片段進(jìn)行請求。
在一實施方式中,所述從計算節(jié)點2還包括心跳上報單元25,用于向主計算節(jié)點1反饋任務(wù)執(zhí)行情況以及上報計算節(jié)點的資源使用情況信息。具體來說,在從計算節(jié)點2處理數(shù)據(jù)片段的過程中,心跳上報單元25實時(或每間隔預(yù)定時間周期,例如3秒)上報數(shù)據(jù)片段的執(zhí)行情況以及上報計算節(jié)點的資源使用情況信息給任務(wù)調(diào)度服務(wù)。
如上所述,本發(fā)明提供了一種集群視頻分析方法和系統(tǒng),本發(fā)明根據(jù)時長對待執(zhí)行視頻數(shù)據(jù)進(jìn)行劃分,使得數(shù)據(jù)片段的處理時間減少,防止了數(shù)據(jù)片段的滯留;而且在對數(shù)據(jù)片段進(jìn)行排序時,根據(jù)數(shù)據(jù)片段的多個要素進(jìn)行排序,防止數(shù)據(jù)片段順序的混亂;同時,在計算節(jié)點獲取數(shù)據(jù)片段時,按照本發(fā)明的調(diào)度方法,能夠合理的對數(shù)據(jù)片段進(jìn)行調(diào)度。
應(yīng)當(dāng)理解的是,本發(fā)明的上述具體實施方式僅僅用于示例性說明或解釋本發(fā)明的原理,而不構(gòu)成對本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和 范圍的情況下所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修改例。