本發(fā)明涉及視頻回放技術(shù)領(lǐng)域,特別涉及一種視頻智能回放方法及設(shè)備。
背景技術(shù):
隨著圖像分析算法的成熟、芯片計(jì)算能力的提升,視頻智能分析在視頻監(jiān)控領(lǐng)域中的應(yīng)用越來越廣泛,監(jiān)控領(lǐng)域的智能分析按照算法運(yùn)行的位置,可以分為前端智能和后端智能兩大類。其中,前端智能主要在網(wǎng)絡(luò)攝像機(jī)上運(yùn)行,后端智能主要在智能服務(wù)器、智能NVR等設(shè)備上運(yùn)行。
后端智能的優(yōu)點(diǎn)是可以選擇性能強(qiáng)大的后端芯片執(zhí)行智能算法,可以有效提高檢測(cè)指標(biāo),實(shí)現(xiàn)更多的檢測(cè)內(nèi)容,缺點(diǎn)是芯片處理能力一般無法實(shí)現(xiàn)針對(duì)每路監(jiān)控視頻的實(shí)時(shí)處理。因此后端智能很多時(shí)候是在需要的時(shí)候選擇對(duì)應(yīng)的視頻錄像進(jìn)行事后的分析處理。
后端智能分析一般采用對(duì)視頻錄像I幀依次分析,將包含運(yùn)動(dòng)目標(biāo)的視頻前端編碼I幀逐幀進(jìn)行回放,由于實(shí)際應(yīng)用場(chǎng)景中,視頻錄像一般包含較多內(nèi)容,即使在多核的智能服務(wù)器端也需要較長的時(shí)間去進(jìn)行視頻分析,在包含較多無運(yùn)動(dòng)目標(biāo)時(shí)間段的視頻錄像的處理中,浪費(fèi)了后端智能服務(wù)器、智能NVR的處理資源,用戶需要等待較長時(shí)間才能得到分析處理的結(jié)果,對(duì)智能業(yè)務(wù)(特別是對(duì)智能檢索、智能回放這類實(shí)時(shí)性要求高的業(yè)務(wù))的用戶來說,影響使用的效率,降低用戶體驗(yàn)。
在現(xiàn)有技術(shù)中,為了加快后端智能處理的速度,采用了性能更加強(qiáng)大的處理芯片,來加速后端智能處理的速度,但是性能更加強(qiáng)大的處理芯片隨之也會(huì)增加設(shè)備的成本,在小型的監(jiān)控網(wǎng)絡(luò)中,耗費(fèi)的成本太高與用戶期望的性價(jià)比相差太大,很難實(shí)現(xiàn)。
由此,如何在不對(duì)后端智能服務(wù)器等的處理芯片改動(dòng)的情況下,提升后端智能處理的速度已經(jīng)成為了業(yè)界技術(shù)人員亟待解決的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種視頻智能回放方法及設(shè)備,將視頻錄像劃分為多個(gè)視頻片段,通過篩選出具有運(yùn)動(dòng)目標(biāo)的視頻段來進(jìn)行視頻錄像的回放,使得對(duì)視頻錄像的分析回放更準(zhǔn)確,快速。
本發(fā)明還公開了一種視頻智能回放方法,所述方法包括:
當(dāng)接收到視頻智能回放請(qǐng)求時(shí),獲取待回放視頻;
將所述待回放視頻按照預(yù)設(shè)時(shí)間間隔劃分為多個(gè)視頻片段,所述視頻片段的初始狀態(tài)為待處理狀態(tài);
依次判斷所述多個(gè)視頻片段中是否存在運(yùn)動(dòng)目標(biāo),若當(dāng)前視頻片段中存在運(yùn)動(dòng)目標(biāo),標(biāo)記當(dāng)前視頻片段的狀態(tài)為有目標(biāo)狀態(tài),并確定所述運(yùn)動(dòng)目標(biāo)的運(yùn)動(dòng)持續(xù)時(shí)長,標(biāo)記當(dāng)前視頻片段與相距所述運(yùn)動(dòng)持續(xù)時(shí)長后的最終視頻片段之間所有的視頻片段為預(yù)測(cè)有目標(biāo)狀態(tài),將狀態(tài)為有目標(biāo)狀態(tài)和預(yù)測(cè)有目標(biāo)狀態(tài)的視頻片段加入待分析列表;
獲取所述待分析列表中存在運(yùn)動(dòng)目標(biāo)的視頻片段,并將所述存在運(yùn)動(dòng)目標(biāo)的視頻片段加入播放列表;
當(dāng)所述播放列表中的視頻片段數(shù)量達(dá)到第一預(yù)設(shè)閾值時(shí),對(duì)所述播放列表中的視頻片段進(jìn)行回放。
優(yōu)選的,依次判斷所述多個(gè)視頻片段中是否存在所述運(yùn)動(dòng)目標(biāo),具體包括:
將當(dāng)前視頻片段作為待處理視頻片段,對(duì)所述待處理視頻片段中的首個(gè)I幀進(jìn)行解碼,判斷所述I幀中是否具有運(yùn)動(dòng)目標(biāo);
若所述待處理視頻片段中的首個(gè)所述I幀中沒有運(yùn)動(dòng)目標(biāo),則標(biāo)記所述待處理視頻片段為無目標(biāo)狀態(tài),將下一個(gè)視頻片段作為待處理視頻片段;
若所述待處理視頻片段中的首個(gè)所述I幀中具有運(yùn)動(dòng)目標(biāo),則標(biāo)記所述待處理視頻片段為有目標(biāo)狀態(tài),將所述最終視頻片段后的視頻片段作為待處理視頻片段。
優(yōu)選的,若當(dāng)前視頻片段中存在運(yùn)動(dòng)目標(biāo),則標(biāo)記當(dāng)前視頻片段與相距所述運(yùn)動(dòng)持續(xù)時(shí)長后的最終視頻片段之間所有的視頻片段為預(yù)測(cè)有目標(biāo)狀態(tài),具體為:
根據(jù)所述視頻片段中的首個(gè)I幀和首個(gè)P幀來獲取所述運(yùn)動(dòng)目標(biāo)的運(yùn)動(dòng)速度和運(yùn)動(dòng)方向,確定所述運(yùn)動(dòng)目標(biāo)離開所述待回放視頻中的視頻畫面的時(shí)間;
根據(jù)所述時(shí)間確定對(duì)應(yīng)的所述運(yùn)動(dòng)目標(biāo)的最終視頻片段,將所述視頻片段到所述最終視頻片段之間的所有視頻片段標(biāo)記為預(yù)測(cè)有目標(biāo)狀態(tài)。
優(yōu)選的,設(shè)置計(jì)數(shù)值,所述計(jì)數(shù)值為所述待分析列表中的待分析視頻片段的數(shù)量,獲取所述待分析列表中存在運(yùn)動(dòng)目標(biāo)的視頻片段,并將所述存在運(yùn)動(dòng)目標(biāo)的視頻片段加入播放列表,具體為:
當(dāng)所述計(jì)數(shù)值達(dá)到第二預(yù)設(shè)閾值時(shí),判斷所述待分析視頻片段是否具有符合篩選條件的運(yùn)動(dòng)目標(biāo),每進(jìn)行一次所述待分析視頻片段的判斷,所述計(jì)數(shù)值遞減一;
若所述待分析視頻片段的狀態(tài)為有目標(biāo)狀態(tài),則將所述視頻片段加入所述播放列表;
若所述分析視頻片段的狀態(tài)為預(yù)測(cè)有目標(biāo)狀態(tài),對(duì)所述待分析視頻片段首個(gè)所述I幀進(jìn)行解碼,進(jìn)一步判斷所述待分析視頻片段中是否具有運(yùn)動(dòng)目標(biāo);
若有,則將所述待分析視頻片段加入所述播放列表;
若否,則將所述待分析視頻片段標(biāo)記為無目標(biāo)狀態(tài)。
優(yōu)選的,對(duì)所述播放列表中的視頻片段進(jìn)行回放,還包括:
當(dāng)對(duì)所述播放列表中的視頻片段進(jìn)行回放完成后超過預(yù)設(shè)時(shí)長時(shí),若所述播放列表中的視頻片段數(shù)目仍小于所述第一預(yù)設(shè)閾值,則確定所述播放列表中最后視頻片段在所述待回放視頻中的位置,在所述位置對(duì)所述待回放視頻進(jìn)行回放。
相應(yīng)的,本發(fā)明還提出了一種視頻智能回放設(shè)備,其特征在于,所述設(shè)備包括:
獲取模塊,當(dāng)接收到視頻智能回放請(qǐng)求時(shí),獲取待回放視頻;
初始化模塊,將所述待回放視頻按照預(yù)設(shè)時(shí)間間隔劃分為多個(gè)視頻片段,所述視頻片段的初始狀態(tài)為待處理狀態(tài);
加速分析模塊,依次判斷所述多個(gè)視頻片段中是否存在運(yùn)動(dòng)目標(biāo),若當(dāng)前視頻片段中存在運(yùn)動(dòng)目標(biāo),標(biāo)記當(dāng)前視頻片段的狀態(tài)為有目標(biāo)狀態(tài),并確定所述運(yùn)動(dòng)目標(biāo)的運(yùn)動(dòng)持續(xù)時(shí)長,標(biāo)記當(dāng)前視頻片段與相距所述運(yùn)動(dòng)持續(xù)時(shí)長后的最終視頻片段之間所有的視頻片段為預(yù)測(cè)有目標(biāo)狀態(tài),將狀態(tài)為有目標(biāo)狀態(tài)和預(yù)測(cè)有目標(biāo)狀態(tài)的視頻片段加入待分析列表;
實(shí)時(shí)分析模塊,獲取所述待分析列表中存在運(yùn)動(dòng)目標(biāo)的視頻片段,并將所述存在運(yùn)動(dòng)目標(biāo)的視頻片段加入播放列表;
播放模塊,當(dāng)所述播放列表中的視頻片段數(shù)量達(dá)到第一預(yù)設(shè)閾值時(shí),對(duì)所述播放列表中的視頻片段進(jìn)行回放。
優(yōu)選的,所述加速分析模塊具體用于:
將當(dāng)前視頻片段作為待處理視頻片段,對(duì)所述待處理視頻片段中的首個(gè)I幀進(jìn)行解碼,判斷所述I幀中是否具有運(yùn)動(dòng)目標(biāo);
若所述待處理視頻片段中的首個(gè)所述I幀中沒有運(yùn)動(dòng)目標(biāo),則標(biāo)記所述待處理視頻片段為無目標(biāo)狀態(tài),將下一個(gè)視頻片段作為待處理視頻片段;
若所述待處理視頻片段中的首個(gè)所述I幀中具有運(yùn)動(dòng)目標(biāo),則標(biāo)記所述待處理視頻片段為有目標(biāo)狀態(tài),將所述最終視頻片段后的視頻片段作為待處理視頻片段。
優(yōu)選的,所述加速分析模塊還用于:
根據(jù)所述視頻片段中的首個(gè)I幀和首個(gè)P幀來獲取所述運(yùn)動(dòng)目標(biāo)的運(yùn)動(dòng)速度和運(yùn)動(dòng)方向,確定所述運(yùn)動(dòng)目標(biāo)離開所述待回放視頻中的視頻畫面的時(shí)間;
根據(jù)所述時(shí)間確定對(duì)應(yīng)的所述運(yùn)動(dòng)目標(biāo)的最終視頻片段,將所述視頻片段到所述最終視頻片段之間的所有視頻片段標(biāo)記為預(yù)測(cè)有目標(biāo)狀態(tài)。
優(yōu)選的,設(shè)置計(jì)數(shù)值,所述計(jì)數(shù)值為所述待分析列表中的待分析視頻片段的數(shù)量,所述實(shí)時(shí)分析模塊具體用于:
當(dāng)所述計(jì)數(shù)值達(dá)到第二預(yù)設(shè)閾值時(shí),判斷所述待分析視頻片段是否具有符合篩選條件的運(yùn)動(dòng)目標(biāo),每進(jìn)行一次所述待分析視頻片段的判斷,所述計(jì)數(shù)值遞減一;
若所述待分析視頻片段的狀態(tài)為有目標(biāo)狀態(tài),則將所述視頻片段加入所述播放列表;
若所述分析視頻片段的狀態(tài)為預(yù)測(cè)有目標(biāo)狀態(tài),對(duì)所述待分析視頻片段首個(gè)所述I幀進(jìn)行解碼,進(jìn)一步判斷所述待分析視頻片段中是否具有所述運(yùn)動(dòng)目標(biāo);
若有,則將所述待分析視頻片段加入所述播放列表;
若否,則將所述待分析視頻片段標(biāo)記為無目標(biāo)狀態(tài)。
優(yōu)選的,所述播放模塊還用于:
當(dāng)對(duì)所述播放列表中的視頻片段進(jìn)行播放完成后超過預(yù)設(shè)時(shí)長時(shí),若所述播放列表中的視頻片段數(shù)目仍小于所述第一閾值,則確定所述播放列表中最后視頻片段在所述待回放視頻中的位置,在所述位置對(duì)所述待回放視頻進(jìn)行回放。
通過應(yīng)用本發(fā)明提出的一種視頻智能回放方法,該方法應(yīng)用于包含多個(gè)運(yùn)動(dòng)目標(biāo)的待回放視頻中,將待回放視頻按照預(yù)設(shè)時(shí)間間隔劃分為多個(gè)視頻片段,若當(dāng)前視頻片段中存在運(yùn)動(dòng)目標(biāo),則標(biāo)記當(dāng)前視頻片段與相距運(yùn)動(dòng)持續(xù)時(shí)長后的最終視頻片段之間所有的視頻片段為預(yù)測(cè)有目標(biāo)狀態(tài),獲取預(yù)測(cè)有目標(biāo)狀態(tài)的視頻片段中存在運(yùn)動(dòng)目標(biāo)的視頻片段,并將存在運(yùn)動(dòng)目標(biāo)的視頻片段加入播放列表并進(jìn)行回放,提高了視頻分析的速度與準(zhǔn)確度,可以針對(duì)有運(yùn)動(dòng)目標(biāo)的場(chǎng)景進(jìn)行選擇性播放,對(duì)于沒有運(yùn)動(dòng)目標(biāo)的場(chǎng)景進(jìn)行跳過,加快了回放的速度,提升了用戶尋找關(guān)鍵目標(biāo)的體驗(yàn)。
附圖說明
圖1為本發(fā)明實(shí)施例提出的一種視頻智能回放方法的流程示意圖;
圖1a為本申請(qǐng)實(shí)施例提出的目標(biāo)速度和方向的平面模型;
圖1b為本申請(qǐng)實(shí)施例提出的目標(biāo)視角偏移角的平面模型;
圖1c為本申請(qǐng)實(shí)施例提出的目標(biāo)垂直物距模型;
圖1d為本申請(qǐng)實(shí)施例提出的目標(biāo)水平物距模型;
圖2為本發(fā)明具體實(shí)施例提出的一種視頻智能回放方法的流程示意圖;
圖3為本發(fā)明具體實(shí)施例中提出一種視頻智能回放設(shè)備的結(jié)構(gòu)示意圖;
圖4為本申請(qǐng)具體實(shí)施例中提出的一種加速分析流程示意圖;
圖5為本申請(qǐng)具體實(shí)施例中提出的一種實(shí)時(shí)分析流程示意圖;
圖6為本申請(qǐng)具體實(shí)施例中提出的一種實(shí)施回放流程示意圖。
具體實(shí)施方式
如背景技術(shù)中所述,現(xiàn)有技術(shù)中在不改動(dòng)后端服務(wù)器的過程中,通常采用對(duì)視頻錄像I幀依次分析,然后將包含運(yùn)動(dòng)目標(biāo)的視頻前端編碼I幀逐幀進(jìn)行回放,如此在服務(wù)器端將耗費(fèi)較長的時(shí)間去等待回放,影響了使用體驗(yàn)并降低用戶體驗(yàn)。
為此,本發(fā)明實(shí)施例提出了一種視頻智能回放方法,視頻錄像劃分為多個(gè)視頻片段,通過篩選出具有運(yùn)動(dòng)目標(biāo)的視頻段來進(jìn)行視頻錄像的回放,使得對(duì)視頻錄像的分析回放更準(zhǔn)確,快速。
如圖1所示,為本發(fā)明實(shí)施例提出的一種視頻智能回放方法的流程示意圖,該方法主要應(yīng)用于包含有多個(gè)運(yùn)動(dòng)目標(biāo)的待回放視頻中,運(yùn)動(dòng)目標(biāo)在待分析回放中分別具有對(duì)應(yīng)的持續(xù)時(shí)間,該方法的具體步驟如下:
步驟101,當(dāng)接收到視頻回放請(qǐng)求時(shí),獲取待回放視頻。
具體的應(yīng)用場(chǎng)景中,當(dāng)智能處理服務(wù)器端接收到視頻回放請(qǐng)求時(shí),讀取視頻回放請(qǐng)求中的待回放視頻,同時(shí)也可以是,智能處理服務(wù)器已經(jīng)存儲(chǔ)了視頻錄像,當(dāng)接收到視頻回放請(qǐng)求時(shí),獲取視頻回放請(qǐng)求中的視頻編號(hào)或時(shí)間等,服務(wù)器根據(jù)視頻編號(hào)或時(shí)間等數(shù)據(jù)進(jìn)行待回放視頻的讀取,將其加入自身的處理任務(wù)中,進(jìn)行智能回放任務(wù)。
步驟102,將待回放視頻按照預(yù)設(shè)時(shí)間間隔劃分為多個(gè)視頻片段,視頻片段的初始狀態(tài)為待處理狀態(tài)。
視頻監(jiān)控中的運(yùn)動(dòng)目標(biāo)一般具有一定的持續(xù)性,因此有效運(yùn)動(dòng)目標(biāo)都會(huì)在視頻錄像的畫面張出現(xiàn)一個(gè)持續(xù)的時(shí)間段,運(yùn)動(dòng)目標(biāo)在相鄰的I幀之間的畫面變動(dòng)是不大的,為了加快對(duì)視頻錄像的分析回放,所以采用對(duì)待回放視頻進(jìn)行劃分,劃分的標(biāo)準(zhǔn)一般以不影響視頻的分析為準(zhǔn),例如包含相鄰的幾個(gè)畫面差距不大的I幀即可。
在本步驟中,按照預(yù)設(shè)的時(shí)間間隔來對(duì)待回放視頻進(jìn)行劃分,將待回放視頻劃分為多個(gè)視頻片段,視頻片段之間的時(shí)間間隔一般以I幀間隔的1-2倍,具體時(shí)間間隔的按照實(shí)際的應(yīng)用場(chǎng)景進(jìn)行劃分,該視頻片段為多個(gè)I幀組,在該視頻片段中,I幀之間的畫面變化不會(huì)造成運(yùn)動(dòng)目標(biāo)的丟失,每個(gè)視頻片段包含一個(gè)狀態(tài)信息,初始視頻片段的狀態(tài)信息為待處理狀態(tài)。
需要說明的是,在具體的應(yīng)用場(chǎng)景中,本申請(qǐng)的方案多應(yīng)用于后端智能服務(wù)器中,在智能服務(wù)器中往往具有多核處理器,多任務(wù)并行處理,例如在四核的服務(wù)器中,可以同時(shí)支持4路處理視頻片段,為了保證視頻片段的有序性,可以定義聯(lián)系的K個(gè)視頻片段為一個(gè)視頻單元,K一般取值60或120,定義視頻單元的目的是便于并行執(zhí)行多路智能分析任務(wù),以達(dá)到加速分析的效果,對(duì)視頻片段的劃分方式,并不會(huì)影響本發(fā)明的保護(hù)范圍,為了方便說明,在以下的本申請(qǐng)實(shí)施例的技術(shù)方案描述過程中,只對(duì)服務(wù)器單核處理器支持的多線程并發(fā)處理的情況(需要說明的是,多線程并發(fā)處理指的是在同一時(shí)間內(nèi)只對(duì)單個(gè)任務(wù)進(jìn)行處理,只是在不同的時(shí)間間隔對(duì)多個(gè)線程進(jìn)行處理,并不等同于多任務(wù)并行處理,需要與多核處理器多線程并行處理任務(wù)進(jìn)行區(qū)分),以將待回放視頻劃分為視頻片段的方式為基礎(chǔ)進(jìn)行描述。
步驟103,依次判斷視頻片段中是否存在運(yùn)動(dòng)目標(biāo),若當(dāng)前視頻片段中存在運(yùn)動(dòng)目標(biāo),則標(biāo)記當(dāng)前視頻片段為有目標(biāo)狀態(tài),并確定運(yùn)動(dòng)目標(biāo)的運(yùn)動(dòng)持續(xù)時(shí)長,標(biāo)記當(dāng)前視頻片段與相距運(yùn)動(dòng)目標(biāo)持續(xù)時(shí)長后的最終視頻片段之間所有的視頻片段為預(yù)測(cè)有目標(biāo)狀態(tài),將所述狀態(tài)為有目標(biāo)狀態(tài)和預(yù)測(cè)有目標(biāo)狀態(tài)的視頻片段加入待分析列表。
在描述本步驟之前,先對(duì)視頻壓縮的方式進(jìn)行說明,在視頻壓縮中,每幀代表一幅圖像畫面,在實(shí)際壓縮中,一般采用IP編碼模式,即一個(gè)I幀組中包含一個(gè)I幀和若干個(gè)P幀,其中,I幀是關(guān)鍵幀,為一幅畫面的完整保留,解碼時(shí)只需要I幀數(shù)據(jù)就可以完成。
由于I幀中包含了完整畫面,所以在對(duì)視頻片段的分析過程中,對(duì)I幀進(jìn)行解碼,判斷I幀相對(duì)于錄像畫面的初始畫面是否發(fā)生變化,就可以判斷該視頻片段中是否存在運(yùn)動(dòng)目標(biāo)。
在對(duì)視頻錄像的回放過程中,首先要對(duì)視頻錄像進(jìn)行篩選,篩選出具有有效運(yùn)動(dòng)目標(biāo)的視頻片段來進(jìn)行播放,在本步驟中,按照視頻片段的時(shí)間順序來對(duì)視頻片段依次進(jìn)行判斷,判斷方式具體為對(duì)當(dāng)前視頻片段首個(gè)I幀進(jìn)行分析,如果I幀中圖像相對(duì)于初始畫面圖像發(fā)生變化,即存在滿足篩選條件的運(yùn)動(dòng)目標(biāo),如果I幀中圖像相對(duì)于初始畫面未發(fā)生變化,則表示不存在滿足篩選條件的運(yùn)動(dòng)目標(biāo)。
需要說明的是,在上述的滿足篩選條件的運(yùn)動(dòng)目標(biāo)中的篩選條件,可以是畫面發(fā)生變化,有物體發(fā)生運(yùn)動(dòng),這些相對(duì)于初始畫面發(fā)生變化的條件,也可以人為的設(shè)定一些特定條件,例如只關(guān)注車輛行駛忽略行人移動(dòng),只關(guān)注周圍環(huán)境變化等等,這些篩選條件的變化不會(huì)對(duì)本申請(qǐng)的保護(hù)范圍產(chǎn)生影響。
在本申請(qǐng)的優(yōu)選實(shí)施例中,根據(jù)分析的視頻片段的不同,具體分為以下兩種情況:
情況一:若當(dāng)前視頻片段中的首個(gè)I幀不存在滿足篩選條件的運(yùn)動(dòng)目標(biāo),則將該視頻片段標(biāo)記為無目標(biāo)狀態(tài),執(zhí)行分析判斷下一個(gè)視頻片段;
情況二:若當(dāng)前視頻片段中的首個(gè)I幀存在滿足篩選條件的運(yùn)動(dòng)目標(biāo),則將該視頻片段標(biāo)記為有目標(biāo)狀態(tài);
對(duì)于上述情況一,在對(duì)視頻片段的分析過程中,對(duì)當(dāng)前的視頻片段的首個(gè)I幀進(jìn)行判斷,若當(dāng)前視頻片段中的首個(gè)I幀不存在滿足篩選條件的運(yùn)動(dòng)目標(biāo),則將該視頻片段標(biāo)記為無目標(biāo)狀態(tài),將下一個(gè)視頻片段作為待處理片段并進(jìn)行分析判斷,依此類推,依次對(duì)待回放視頻中的多個(gè)視頻片段進(jìn)行分析判斷,直到分析到存在運(yùn)動(dòng)目標(biāo)的視頻片段;
針對(duì)于上述情況二中,存在運(yùn)動(dòng)目標(biāo),而運(yùn)動(dòng)目標(biāo)則會(huì)在待回放視頻中持續(xù)運(yùn)動(dòng)一段時(shí)間,為了快速的完成對(duì)待回放視頻的快速分析回放,所以采用了根據(jù)運(yùn)動(dòng)目標(biāo)的運(yùn)動(dòng)信息預(yù)測(cè)該運(yùn)動(dòng)目標(biāo)的運(yùn)動(dòng)持續(xù)時(shí)間,直接進(jìn)行獲取與當(dāng)前視頻片段相隔運(yùn)動(dòng)持續(xù)時(shí)間的視頻片段。
若當(dāng)前視頻片段中的首個(gè)I幀存在滿足篩選條件的運(yùn)動(dòng)目標(biāo),將當(dāng)前視頻片段標(biāo)記為有目標(biāo)狀態(tài)后,獲取當(dāng)前視頻片段的首個(gè)P幀,進(jìn)行分析,獲取該P(yáng)幀中相對(duì)于首個(gè)I幀中運(yùn)動(dòng)目標(biāo)移動(dòng)的距離以及移動(dòng)方向,根據(jù)相鄰首個(gè)I幀與首個(gè)P幀之間的時(shí)間間隔,確定運(yùn)動(dòng)目標(biāo)的移動(dòng)速度,估算其運(yùn)動(dòng)出視頻畫面的時(shí)間,去最晚的那個(gè)運(yùn)動(dòng)結(jié)束時(shí)間為最終結(jié)束時(shí)間,并找到該幀所屬視頻片段,將該視頻片段定義為最終視頻片段,將當(dāng)前視頻片段到最終視頻片段之間的所有視頻片段標(biāo)記為預(yù)測(cè)有目標(biāo)狀態(tài),將狀態(tài)為有目標(biāo)狀態(tài)和預(yù)測(cè)有目標(biāo)狀態(tài)的視頻片段加入待分析列表中。
在具體的應(yīng)用場(chǎng)景中,如前述方法中,將視頻片段作為待處理視頻片段,在情況二中,存在運(yùn)動(dòng)目標(biāo),則獲取預(yù)測(cè)有目標(biāo)的最終視頻,將最終視頻片段后的一個(gè)視頻片段作為待處理視頻片段,繼續(xù)進(jìn)行分析判斷,如此依次對(duì)待回放視頻片段中的多個(gè)視頻片段進(jìn)行分析判斷。
需要說明的是,為了準(zhǔn)確獲取運(yùn)動(dòng)目標(biāo)的移動(dòng)速度以及移動(dòng)方向,本申請(qǐng)的實(shí)施例中采用了獲取I幀與P幀的方法來進(jìn)行計(jì)算運(yùn)動(dòng)目標(biāo)的移動(dòng)信息,同時(shí)也可以獲取當(dāng)前視頻片段中的下一個(gè)I幀來進(jìn)行計(jì)算,采用I幀與P幀或雙I幀來獲取運(yùn)動(dòng)目標(biāo)移動(dòng)信息,二者的計(jì)算方式與結(jié)果獲取略有差異,可以根據(jù)實(shí)際的應(yīng)用場(chǎng)景來進(jìn)行選擇,不會(huì)影響本發(fā)明的保護(hù)范圍。
由于視頻錄像畫面的分析中,往往會(huì)受到攝像機(jī)的高度,以及傾斜角度等因素的影響,以下對(duì)預(yù)測(cè)運(yùn)動(dòng)目標(biāo)離開畫面時(shí)間的方法進(jìn)行詳細(xì)描述:
1)如圖1a所示,為本申請(qǐng)實(shí)施例提出的目標(biāo)速度和方向的平面模型,假設(shè)目標(biāo)進(jìn)入畫面的時(shí)間是T1。
通過執(zhí)行兩次運(yùn)動(dòng)目標(biāo)檢測(cè),即分析視頻片段中的首個(gè)I幀及P幀,獲取目標(biāo)的兩個(gè)連續(xù)的運(yùn)動(dòng)位置P1和P2。
假定運(yùn)動(dòng)目標(biāo)的速度為V1運(yùn)動(dòng)方向?yàn)镈T,根據(jù)P1和P2的坐標(biāo)x1,y1,x2,y2,計(jì)算以像素為單位的目標(biāo)水平和垂直運(yùn)動(dòng)速度V1x和V1y,同時(shí)計(jì)算目標(biāo)水平和垂直運(yùn)動(dòng)方向Dx和Dy。
根據(jù)V1和DT,計(jì)算目標(biāo)離開畫面的位置P3。
根據(jù)攝像機(jī)安裝高度H、攝像機(jī)傾斜角度Ang、P1坐標(biāo)、P3坐標(biāo),分別計(jì)算P1點(diǎn)和P3點(diǎn)的水平和垂直物距ODW1,ODH1,ODW3,ODH3。
假設(shè)速度和物距成反比,按照下面公式預(yù)估P3位置時(shí)的水平和垂直速度V3x和V3y:
V3x=V1x*ODW1/ODW3;
V3y=V1y*ODH1/ODH3;
取V1x和V3x的平均值作為目標(biāo)的平均水平速度Vavgx。
取V1y和V3y的平均值作為目標(biāo)的平均垂直速度Vavgy。
根據(jù)目標(biāo)平均速度Vavgx和Vavgy、P1坐標(biāo)x1和y1、P3坐標(biāo)x3和y3,計(jì)算目標(biāo)在畫面中的運(yùn)行時(shí)間T2。
根據(jù)目標(biāo)的運(yùn)行時(shí)間T2、采集編碼的幀間隔時(shí)間T1,計(jì)算目標(biāo)離開畫面的時(shí)間T3=T1+T2。
2)計(jì)算目標(biāo)物距的方法
預(yù)先獲取攝像機(jī)的安裝信息,包括攝像機(jī)安裝高度H、攝像機(jī)傾斜角度Ang。
預(yù)先獲取攝像機(jī)的水平和垂直視角VAV、VAH,預(yù)先獲取畫面的寬度PW和高度PH。以圖1b所示,本申請(qǐng)實(shí)施例提出的目標(biāo)視角偏移角的平面模型,假設(shè)畫面左下角為原點(diǎn)坐標(biāo),待分析目標(biāo)坐標(biāo)為x,y。
計(jì)算目標(biāo)的水平偏移視角VAVoff和垂直偏移視角VAHoff(相對(duì)于畫面中心位置的偏移角度)。
VAVoff=VAV*(x-W/2)/PW;
VAHoff=VAH*(y-H/2)/PH;
以圖1c所示,為本申請(qǐng)實(shí)施例提出的目標(biāo)垂直物距模型,計(jì)算目標(biāo)垂直物距ODH。
ODH=H/COS((Ang+VAHoff)*PI/180);
以圖1d所示,為本申請(qǐng)實(shí)施例提出的目標(biāo)水平物距模型,下面計(jì)算目標(biāo)水平物距ODW。
ODW=ODH*TAN(ABS(VAWoff)*PI/180);
步驟104,獲取待分析列表中的視頻片段中存在所述運(yùn)動(dòng)目標(biāo)的視頻片段,并將所述存在運(yùn)動(dòng)目標(biāo)的視頻片段加入播放列表。
為了達(dá)到快速分析視頻片段的目的,在估算了運(yùn)動(dòng)目標(biāo)持續(xù)的時(shí)間后,獲取到的預(yù)測(cè)有目標(biāo)狀態(tài)的視頻片段會(huì)存在一定的誤差,需要進(jìn)一步地進(jìn)行分析這些視頻片段中是否存在運(yùn)動(dòng)目標(biāo)。
本申請(qǐng)優(yōu)選實(shí)施例中,通過設(shè)置第二計(jì)數(shù)值,統(tǒng)計(jì)包含首尾的當(dāng)前視頻片段到最終視頻片段之間所有的視頻片段數(shù)目,將第二計(jì)數(shù)值遞增P,定義狀態(tài)為待分析列表中有目標(biāo)狀態(tài)和預(yù)測(cè)有目標(biāo)狀態(tài)的視頻片段為待分析視頻片段,第二計(jì)數(shù)值的大小則為待分析列表中的視頻片段的數(shù)量和。
為了保證分析的實(shí)時(shí)性,當(dāng)?shù)诙?jì)數(shù)值達(dá)到第二預(yù)設(shè)閾值時(shí),對(duì)待分析視頻片段進(jìn)行實(shí)時(shí)分析,每進(jìn)行一次待分析視頻片段的分析,第二計(jì)數(shù)值減一,根據(jù)待分析視頻片段的狀態(tài)不同,具體有如下幾種情況:
1)如果待分析視頻片段狀態(tài)為有目標(biāo)狀態(tài),則將當(dāng)前視頻片段加入播放列表,然后執(zhí)行分析下一個(gè)待分析視頻片段;
2)如果待分析視頻片段狀態(tài)為無目標(biāo)狀態(tài),則執(zhí)行分析下一個(gè)待分析視頻片段;
3)如果待分析視頻片段狀態(tài)為預(yù)測(cè)有目標(biāo)狀態(tài),則對(duì)當(dāng)前待分析視頻片段調(diào)用解碼模塊對(duì)其進(jìn)行首個(gè)I幀解碼,判斷是存在滿足篩選條件的運(yùn)動(dòng)目標(biāo),若在滿足篩選條件的運(yùn)動(dòng)目標(biāo),則將當(dāng)前待分析視頻片段加入播放列表,若不存在滿足篩選條件的運(yùn)動(dòng)目標(biāo),則將當(dāng)前待分析視頻片段設(shè)置為無目標(biāo)狀態(tài),執(zhí)行分析下一個(gè)待分析視頻片段。
步驟105,當(dāng)播放列表中的視頻片段數(shù)量達(dá)到第一預(yù)設(shè)閾值時(shí),對(duì)播放列表中的視頻片段進(jìn)行回放。
經(jīng)過前述步驟的分析,播放列表中的視頻片段均為存在運(yùn)動(dòng)目標(biāo)的視頻片段,針對(duì)有運(yùn)動(dòng)目標(biāo)的場(chǎng)景,按照正常速度回放,對(duì)于沒有運(yùn)動(dòng)目標(biāo)的場(chǎng)景加速回放或者直接跳過,這樣就可以提高回放的速度,初始加入播放列表中的視頻片段狀態(tài)未待播放狀態(tài),當(dāng)播放列表中待播放狀態(tài)的視頻片段數(shù)量大于第一閾值時(shí),對(duì)播放列表中待播放的視頻片段進(jìn)行播放,并將其標(biāo)記為已處理狀態(tài)。
在具體的應(yīng)用場(chǎng)景中,在播放列表中待播放的視頻片段播放完畢后,可能會(huì)存在很長一段時(shí)間內(nèi)沒有新的視頻片段加入播放列表,此時(shí)若停止播放則會(huì)影響用戶的體驗(yàn),故在本申請(qǐng)的優(yōu)選實(shí)施例中,采用了當(dāng)對(duì)播放列表中待播放的視頻片段進(jìn)行播放完成后,在預(yù)設(shè)時(shí)長內(nèi)播放列表中待播放的視頻片段的數(shù)目仍小于第一預(yù)設(shè)閾值,則從播放列表中最后視頻片段的位置繼續(xù)對(duì)待回放視頻進(jìn)行播放,這樣不會(huì)造成視頻回放過程中的卡屏及斷層現(xiàn)象,當(dāng)播放列表中待播放的視頻片段數(shù)目再次超過第一預(yù)設(shè)閾值時(shí),重新從播放列表中待播放視頻片段處進(jìn)行待回放視頻的播放。
通過應(yīng)用本發(fā)明實(shí)施例提出的一種視頻智能回放方法,該方法應(yīng)用于包含多個(gè)運(yùn)動(dòng)目標(biāo)的待回放視頻中,將待回放視頻按照預(yù)設(shè)時(shí)間間隔劃分為多個(gè)視頻片段,若當(dāng)前視頻片段中存在運(yùn)動(dòng)目標(biāo),則標(biāo)記當(dāng)前視頻片段與相距運(yùn)動(dòng)持續(xù)時(shí)長后的最終視頻片段之間所有的視頻片段為預(yù)測(cè)有目標(biāo)狀態(tài),獲取預(yù)測(cè)有目標(biāo)狀態(tài)的視頻片段中存在運(yùn)動(dòng)目標(biāo)的視頻片段,并將存在運(yùn)動(dòng)目標(biāo)的視頻片段加入播放列表并進(jìn)行回放,提高了視頻分析的速度與準(zhǔn)確度,可以針對(duì)有運(yùn)動(dòng)目標(biāo)的場(chǎng)景進(jìn)行選擇性播放,對(duì)于沒有運(yùn)動(dòng)目標(biāo)的場(chǎng)景進(jìn)行跳過,加快了回放的速度,提升了用戶尋找關(guān)鍵目標(biāo)的體驗(yàn)。
為了進(jìn)一步闡述本發(fā)明的技術(shù)思想,現(xiàn)結(jié)合具體的應(yīng)用場(chǎng)景,對(duì)本發(fā)明的技術(shù)方案進(jìn)行說明。
如圖2所示,為本申請(qǐng)具體實(shí)施例提出的一種視頻智能回放方法的流程示意圖,該方法應(yīng)用于包含多個(gè)具有持續(xù)時(shí)間的運(yùn)動(dòng)目標(biāo)的視頻中。
預(yù)先設(shè)置初始化計(jì)數(shù)值C,C的值為0,初始化閾值T,T按照實(shí)際的情況進(jìn)行設(shè)置,一般為5或10,初始化標(biāo)識(shí)RealFlag和PlayFlag為0,RealFlag為0時(shí)關(guān)閉實(shí)時(shí)分析過程,RealFlag為1啟動(dòng)實(shí)時(shí)分析流程,PlayFlag為0時(shí)關(guān)閉回放流程,PlayFlag為1時(shí)啟動(dòng)回放流程,初始化PrealOriPos 0,PrealOriPos為數(shù)據(jù)的存儲(chǔ)位置。
該方法的具體步驟為:
步驟201,將待回放視頻劃分為多個(gè)視頻片段;
具體的,在一個(gè)待回放視頻錄像中,定義運(yùn)動(dòng)目標(biāo)最小持續(xù)時(shí)間為ODTmin,將ODTmin設(shè)置為前端編碼I幀間隔時(shí)間的倍數(shù),ODTmin一般可以設(shè)置為I幀間隔時(shí)間的1-2倍,利用ODTmin將待回放視頻劃分為多個(gè)視頻片段。
每個(gè)視頻片段包含一個(gè)狀態(tài)信息,有效狀態(tài)包括:待分析狀態(tài)、有目標(biāo)狀態(tài)、預(yù)測(cè)有目標(biāo)狀態(tài)、無目標(biāo)狀態(tài),初始化所有的視頻片段都處于待分析狀態(tài)。
例如,若該處理芯片為4核處理芯片,可以同時(shí)支持4線程并行處理,在處理的過程中,4個(gè)線程同步對(duì)視頻片段進(jìn)行分析,就需要將視頻片段劃分為連續(xù)的視頻單元,在實(shí)際應(yīng)用中,同時(shí)對(duì)4個(gè)視頻單元進(jìn)行處理分析,當(dāng)需要進(jìn)一步分析的視頻單元達(dá)到預(yù)設(shè)數(shù)量,改為3核處理分析,單核處理待進(jìn)一步分析視頻單元,依次類推,可以靈活對(duì)當(dāng)前任務(wù)進(jìn)行處理資源的分配。
在多核處理器上才需要用到視頻單元的劃分,在單核處理器上,不需要用到視頻單元的劃分,但是會(huì)用到多線程,即線程1執(zhí)行加速分析、線程2執(zhí)行實(shí)時(shí)分析、線程3執(zhí)行回放處理。這三個(gè)線程共享單核的處理能力,且線程2并不是一直運(yùn)行的,當(dāng)沒有視頻片段待分析時(shí),就會(huì)進(jìn)入休眠狀態(tài),讓出cpu性能給線程1運(yùn)行,當(dāng)有視頻片段可分析時(shí),會(huì)被線程1喚醒,重新執(zhí)行實(shí)時(shí)分析。
步驟202,對(duì)視頻片段開始進(jìn)行加速分析。
具體的,從已經(jīng)劃分好視頻片段的待回放視頻中的首個(gè)視頻片段開始進(jìn)行加速分析,對(duì)當(dāng)前待分析視頻片段首個(gè)I幀進(jìn)行智能分析,根據(jù)智能分析結(jié)果做如下處理,會(huì)有具體以下兩種情況:
情況一、如果檢測(cè)到該幀存在滿足篩選條件的運(yùn)動(dòng)目標(biāo),則標(biāo)記當(dāng)前視頻片段的所有幀為有目標(biāo)狀態(tài);
情況二、如果檢測(cè)到該幀不存在滿足篩選條件的運(yùn)動(dòng)目標(biāo),則標(biāo)記當(dāng)前視頻片段的所有幀為無目標(biāo)狀態(tài)。
針對(duì)上述情況一,當(dāng)檢測(cè)到滿足篩選條件的運(yùn)動(dòng)目標(biāo),則獲取當(dāng)前視頻片段中的首個(gè)P幀,執(zhí)行智能加速分析,針對(duì)所有運(yùn)動(dòng)目標(biāo)估計(jì)其運(yùn)動(dòng)速度和運(yùn)動(dòng)方向,預(yù)測(cè)所有目標(biāo)的離開畫面時(shí)間,取最晚的那個(gè)運(yùn)動(dòng)結(jié)束時(shí)間作為最終結(jié)束時(shí)間,并找到該幀所屬的視頻片段(將該視頻片段定義為最終視頻片段),將當(dāng)前視頻片段到最終視頻片段之間的所有幀標(biāo)記為預(yù)測(cè)有目標(biāo)狀態(tài),統(tǒng)計(jì)包含首尾視頻片段的視頻片段總數(shù)目P,同時(shí)將計(jì)數(shù)值C遞增P。
如果當(dāng)前視頻片段或最終視頻片段后面還有待處理的視頻片段,將該視頻片段作為待分析視頻片段,如果當(dāng)前視頻片段或最終視頻片段后面均沒有待處理的視頻片段,則結(jié)束加速分析流程。
將預(yù)測(cè)有目標(biāo)狀態(tài)以及有目標(biāo)狀態(tài)的視頻片段放入待實(shí)時(shí)分析列表中,當(dāng)計(jì)數(shù)值C大于預(yù)設(shè)閾值T時(shí),如果RealFlag為0,執(zhí)行步驟203。
步驟203,對(duì)狀態(tài)為待實(shí)時(shí)分析的視頻片段進(jìn)行實(shí)時(shí)分析。
具體的,標(biāo)記RealFlag為1,根據(jù)當(dāng)前視頻片段狀態(tài)執(zhí)行如下處理:
A)如果狀態(tài)為有目標(biāo)狀態(tài),則將當(dāng)前視頻片段加入播放列表;
B)如果狀態(tài)為預(yù)測(cè)有目標(biāo)狀態(tài),對(duì)當(dāng)前視頻片段首個(gè)I幀調(diào)用解碼模塊對(duì)其解碼,并執(zhí)行分析任務(wù),如果有滿足篩選條件的運(yùn)動(dòng)目標(biāo),設(shè)置當(dāng)前視頻片段為無目標(biāo)狀態(tài);
C)如果狀態(tài)為無目標(biāo)狀態(tài),則進(jìn)行下一步操作;
D)如果狀態(tài)為待分析狀態(tài),則設(shè)置標(biāo)識(shí)RealFlag為0,結(jié)束實(shí)時(shí)分析流程。
在對(duì)當(dāng)前視頻片段進(jìn)行上述處理后,計(jì)數(shù)值C遞減,RealOriPos遞增,尋找當(dāng)前視頻片段的下一個(gè)視頻片段,如果還有下一個(gè)視頻片段,則獲取下一個(gè)視頻片段的狀態(tài)信息,重新開始實(shí)時(shí)分析,如果沒有下一個(gè)視頻片段,則結(jié)束處理流程。
步驟204,對(duì)播放列表中的視頻片段進(jìn)行回放。
具體的,當(dāng)播放列表中有視頻片段時(shí),啟動(dòng)回放任務(wù)流程。設(shè)置RealFlag為1,獲取播放列表中的視頻片段作為當(dāng)前處理視頻片段,對(duì)當(dāng)前視頻片段進(jìn)行處理播放。
當(dāng)對(duì)播放列表中待播放的視頻片段進(jìn)行播放完成后,在預(yù)設(shè)時(shí)長內(nèi)播放列表中待播放的視頻片段的數(shù)目仍小于第一預(yù)設(shè)閾值,則從播放列表中最后視頻片段的位置繼續(xù)對(duì)待回放視頻進(jìn)行回放,此時(shí)按照當(dāng)前視頻片段的狀態(tài)來進(jìn)行選擇性播放,具體處理如下:
A)如果當(dāng)前視頻片段為有目標(biāo)狀態(tài),則按照幀間隔依次播放當(dāng)前視頻片段的視頻幀;
B)如果當(dāng)前視頻片段為無目標(biāo)狀態(tài),則丟棄該視頻片段;
C)如果當(dāng)前視頻片段為待處理狀態(tài),則按照幀間隔依次播放但其視頻片段的視頻幀。
在執(zhí)行完上述步驟后,獲取下一個(gè)視頻片段,如果沒有下一個(gè)視頻片段,則設(shè)置PlayFlag為0,結(jié)束回放流程,如果有下一個(gè)視頻片段,則設(shè)置下一個(gè)視頻片段為當(dāng)前處理視頻片段,則重新執(zhí)行回放任務(wù)。
通過應(yīng)用本發(fā)明具體實(shí)施例提出的一種視頻智能回放方法,該方法應(yīng)用于包含多個(gè)運(yùn)動(dòng)目標(biāo)的待回放視頻中,將待回放視頻按照預(yù)設(shè)時(shí)間間隔劃分為多個(gè)視頻片段,若當(dāng)前視頻片段中存在運(yùn)動(dòng)目標(biāo),則標(biāo)記當(dāng)前視頻片段與相距持續(xù)時(shí)間后的最終視頻片段之間所有的視頻片段為預(yù)測(cè)有目標(biāo)狀態(tài),獲取預(yù)測(cè)有目標(biāo)狀態(tài)的視頻片段中存在運(yùn)動(dòng)目標(biāo)的視頻片段,并將存在運(yùn)動(dòng)目標(biāo)的視頻片段加入播放列表并進(jìn)行回放,提高了視頻分析的速度與準(zhǔn)確度,可以針對(duì)有運(yùn)動(dòng)目標(biāo)的場(chǎng)景進(jìn)行選擇性播放,對(duì)于沒有運(yùn)動(dòng)目標(biāo)的場(chǎng)景進(jìn)行跳過,加快了回放的速度,提升了用戶尋找關(guān)鍵目標(biāo)的體驗(yàn)。
相應(yīng)的,基于與上述相同的技術(shù)思路,本發(fā)明還提出了一種視頻智能回放設(shè)備,如圖3所示,為本申請(qǐng)具體實(shí)施例提出的一種視頻智能回放設(shè)備的機(jī)構(gòu)示意圖,該設(shè)備應(yīng)用于包含多個(gè)運(yùn)動(dòng)目標(biāo)的待回放視頻中,所述運(yùn)動(dòng)目標(biāo)在所述待回放視頻中分別具有對(duì)應(yīng)的持續(xù)時(shí)間,所述設(shè)備包括:
獲取模塊31,當(dāng)接收到視頻智能回放請(qǐng)求時(shí),獲取待回放視頻;
初始化模塊32,將所述待回放視頻按照預(yù)設(shè)時(shí)間間隔劃分為多個(gè)視頻片段,所述視頻片段的初始狀態(tài)為待處理狀態(tài);
加速分析模塊33,依次判斷所述多個(gè)視頻片段中是否存在運(yùn)動(dòng)目標(biāo),若當(dāng)前視頻片段中存在運(yùn)動(dòng)目標(biāo),標(biāo)記當(dāng)前視頻片段的狀態(tài)為有目標(biāo)狀態(tài),并確定所述運(yùn)動(dòng)目標(biāo)的運(yùn)動(dòng)持續(xù)時(shí)長,標(biāo)記當(dāng)前視頻片段與相距所述運(yùn)動(dòng)持續(xù)時(shí)長后的最終視頻片段之間所有的視頻片段為預(yù)測(cè)有目標(biāo)狀態(tài),將狀態(tài)為有目標(biāo)狀態(tài)和預(yù)測(cè)有目標(biāo)狀態(tài)的視頻片段加入待分析列表;
實(shí)時(shí)分析模塊34,獲取所述待分析列表中存在運(yùn)動(dòng)目標(biāo)的視頻片段,并將所述存在運(yùn)動(dòng)目標(biāo)的視頻片段加入播放列表;
播放模塊35,當(dāng)所述播放列表中的視頻片段數(shù)量達(dá)到第一預(yù)設(shè)閾值時(shí),對(duì)所述播放列表中的視頻片段進(jìn)行回放。
在具體的應(yīng)用場(chǎng)景中,所述加速分析模塊33具體用于:
將當(dāng)前視頻片段作為待處理視頻片段,對(duì)所述待處理視頻片段中的首個(gè)I幀進(jìn)行解碼,判斷所述I幀中是否具有運(yùn)動(dòng)目標(biāo);
若所述待處理視頻片段中的首個(gè)所述I幀中沒有運(yùn)動(dòng)目標(biāo),則標(biāo)記所述待處理視頻片段為無目標(biāo)狀態(tài),將下一個(gè)視頻片段作為待處理視頻片段;
若所述待處理視頻片段中的首個(gè)所述I幀中具有運(yùn)動(dòng)目標(biāo),則標(biāo)記所述待處理視頻片段為有目標(biāo)狀態(tài),將所述最終視頻片段后的視頻片段作為待處理視頻片段。
在具體的應(yīng)用場(chǎng)景中,,所述加速分析模塊33還用于:
根據(jù)所述視頻片段中的首個(gè)I幀和首個(gè)P幀來獲取所述運(yùn)動(dòng)目標(biāo)的運(yùn)動(dòng)速度和運(yùn)動(dòng)方向,確定所述運(yùn)動(dòng)目標(biāo)離開所述待回放視頻中的視頻畫面的時(shí)間;
根據(jù)所述時(shí)間確定對(duì)應(yīng)的所述運(yùn)動(dòng)目標(biāo)的最終視頻片段,所述視頻片段到所述最終視頻片段之間的所有視頻片段標(biāo)記為預(yù)測(cè)有目標(biāo)狀態(tài)。
在具體的應(yīng)用場(chǎng)景中,,設(shè)置計(jì)數(shù)值,所述計(jì)數(shù)值為所述待分析列表中的待分析視頻片段的數(shù)量,所述實(shí)時(shí)分析模塊34具體用于:
當(dāng)所述計(jì)數(shù)值達(dá)到第二預(yù)設(shè)閾值時(shí),判斷所述待分析視頻片段是否具有符合篩選條件的運(yùn)動(dòng)目標(biāo),每進(jìn)行一次所述待分析視頻片段的判斷,所述計(jì)數(shù)值遞減一;
若所述待分析視頻片段的狀態(tài)為有目標(biāo)狀態(tài),則將所述視頻片段加入所述播放列表;
若所述分析視頻片段的狀態(tài)為預(yù)測(cè)有目標(biāo)狀態(tài),對(duì)所述待分析視頻片段首個(gè)所述I幀進(jìn)行解碼,進(jìn)一步判斷所述待分析視頻片段中是否具有運(yùn)動(dòng)目標(biāo);
若有,則將所述待分析視頻片段加入所述播放列表;
若否,則將所述待分析視頻片段標(biāo)記為無目標(biāo)狀態(tài)。
在具體的應(yīng)用場(chǎng)景中,所述播放模塊35還用于:
當(dāng)對(duì)所述播放列表中的視頻片段進(jìn)行回放完成后超過預(yù)設(shè)時(shí)長時(shí),若所述播放列表中的視頻片段數(shù)目仍小于所述第一預(yù)設(shè)閾值,則確定所述播放列表中最后視頻片段在所述待回放視頻中的位置,在所述位置對(duì)所述待回放視頻進(jìn)行播放。
通過應(yīng)用本發(fā)明實(shí)施例提出的一種視頻智能回放設(shè)備,該設(shè)備應(yīng)用于包含多個(gè)運(yùn)動(dòng)目標(biāo)的待回放視頻中,將待回放視頻按照預(yù)設(shè)時(shí)間間隔劃分為多個(gè)視頻片段,若當(dāng)前視頻片段中存在運(yùn)動(dòng)目標(biāo),則標(biāo)記當(dāng)前視頻片段與相距運(yùn)動(dòng)持續(xù)時(shí)長后的最終視頻片段之間所有的視頻片段為預(yù)測(cè)有目標(biāo)狀態(tài),獲取預(yù)測(cè)有目標(biāo)狀態(tài)的視頻片段中存在運(yùn)動(dòng)目標(biāo)的視頻片段,并將存在運(yùn)動(dòng)目標(biāo)的視頻片段加入播放列表并進(jìn)行回放,提高了視頻分析的速度與準(zhǔn)確度,可以針對(duì)有運(yùn)動(dòng)目標(biāo)的場(chǎng)景進(jìn)行選擇性播放,對(duì)于沒有運(yùn)動(dòng)目標(biāo)的場(chǎng)景進(jìn)行跳過,加快了回放的速度,提升了用戶尋找關(guān)鍵目標(biāo)的體驗(yàn)。
以下對(duì)上述具體實(shí)施例中提出了一種智能視頻回放設(shè)備做進(jìn)一步的說明,在本具體實(shí)施例中的智能視頻回放設(shè)備中,包括初始化模塊、加速分析模塊IA_Macc、實(shí)時(shí)分析模塊IA_Mreal、回放模塊IA_Playback,以下對(duì)具體模塊的功能進(jìn)行說明:
假設(shè)后端智能芯片能夠針對(duì)1路視頻錄像實(shí)現(xiàn)N倍速智能分析,即存在多核處理器,可以支持多任務(wù)并行處理。
初始化模塊,將待回放視頻按照預(yù)設(shè)時(shí)間間隔劃分為多個(gè)視頻片段,定義連續(xù)K個(gè)視頻片段為一個(gè)視頻單元;
加速分析模塊,從首個(gè)視頻單元開始并行的執(zhí)行加速分析任務(wù);
實(shí)時(shí)分析模塊,根據(jù)加速分析模塊的分析結(jié)果,選擇合適的視頻單元逐幀執(zhí)行分析任務(wù),提供回放幀信息給實(shí)時(shí)回放模塊實(shí)現(xiàn)回放任務(wù);
回放模塊:對(duì)播放列表中的回放幀進(jìn)行播放,執(zhí)行實(shí)時(shí)回放任務(wù)。
以下對(duì)四個(gè)模塊運(yùn)行的調(diào)度策略進(jìn)行描述(以下為了便于描述,以智能芯片單核處理器的情況為基礎(chǔ)進(jìn)行說明,即在初始化模塊將待回放視頻劃分為視頻片段):
1)當(dāng)接收到智能分析的請(qǐng)求時(shí),首先運(yùn)行初始化模塊,將自身接收到的待回放視頻按照預(yù)設(shè)時(shí)間間隔劃分為多個(gè)視頻片段;
2)當(dāng)初始化模塊運(yùn)行完成后,啟動(dòng)智能分析,運(yùn)行加速分析模塊IA_Macc,實(shí)時(shí)分析模塊IA_Mreal、回放模塊IA_Playback進(jìn)入休眠狀態(tài)等待被喚醒;
3)當(dāng)處于有目標(biāo)狀態(tài)或預(yù)測(cè)有目標(biāo)狀態(tài)的視頻片段數(shù)量大于閾值T1時(shí),喚醒實(shí)時(shí)分析模塊IA_Mreal執(zhí)行實(shí)時(shí)分析任務(wù);
4)當(dāng)處于回放列表中回放幀數(shù)據(jù)大于等于閾值T2時(shí),喚醒實(shí)時(shí)回放模塊IA_Playback執(zhí)行實(shí)時(shí)回放任務(wù);
5)當(dāng)實(shí)時(shí)分析模塊IA_Mreal沒有視頻片段可處理時(shí),將會(huì)進(jìn)入休眠狀態(tài)等待被喚醒。
其中,初始化計(jì)數(shù)值C為0,初始化閥值T1,T2均為一個(gè)合理的值,比如5或10,初始化RealOriPos為0,初始化標(biāo)志RealFlag和PlayFlag為0。
對(duì)于上述步驟2)中的加速分析流程,如圖4所示,為本申請(qǐng)具體實(shí)施例中提出的一種加速分析流程示意圖,具體步驟如下:
S401,取首個(gè)視頻片段作為當(dāng)前待分析視頻片段;
S402,分析標(biāo)志RealFlag和計(jì)數(shù)值C,如果標(biāo)志RealFlag為0且計(jì)數(shù)值C大于等于T時(shí),則喚醒實(shí)時(shí)分析模塊;
S403,對(duì)當(dāng)前待回放視頻片段首個(gè)I幀進(jìn)行智能分析,根據(jù)智能分析結(jié)果做如下處理:
如果該幀檢測(cè)到滿足篩選條件的運(yùn)動(dòng)目標(biāo),則標(biāo)記當(dāng)前視頻片段的所有幀為有目標(biāo)狀態(tài),執(zhí)行S404;
如果該幀沒有檢測(cè)到滿足篩選條件的運(yùn)動(dòng)目標(biāo),則標(biāo)記當(dāng)前視頻片段的所有幀為無目標(biāo)狀態(tài),執(zhí)行S407;
S404,獲取當(dāng)前視頻片段中的首個(gè)P幀,執(zhí)行智能分析,針對(duì)所有運(yùn)動(dòng)目標(biāo)估計(jì)其運(yùn)動(dòng)速度和運(yùn)動(dòng)方向,預(yù)測(cè)所有目標(biāo)的離開畫面時(shí)間;
S405,取最晚的那個(gè)運(yùn)動(dòng)結(jié)束時(shí)間作為最終結(jié)束時(shí)間,并找到該幀所屬的視頻片段(定義為最終視頻片段),將當(dāng)前視頻片段到最終視頻片段(包括首尾兩個(gè)視頻片段)之間的所有幀標(biāo)記為預(yù)測(cè)有目標(biāo)狀態(tài),統(tǒng)計(jì)包含首尾視頻片段的視頻片段總數(shù)目P,同時(shí)將計(jì)數(shù)值C遞增P(C=C+P);
S406,如果最終視頻片段后面還有待處理的視頻片段,執(zhí)行S408;否則執(zhí)行步驟S409;
S407,如果當(dāng)前視頻片段后面還有待處理的視頻片段,執(zhí)行S408;否則執(zhí)行步驟S409。
S408,將該視頻片段作為待分析視頻片段,執(zhí)行S402;
S409,結(jié)束分析流程。
對(duì)于上述步驟3)中的實(shí)時(shí)分析流程,如圖5所示,為本申請(qǐng)具體實(shí)施例中提出的一種實(shí)時(shí)分析流程示意圖,具體步驟如下:
S501,設(shè)置標(biāo)志RealFlag為1,從RealOriPos獲取首個(gè)待實(shí)時(shí)分析的視頻片段的狀態(tài)信息;
S502,如果標(biāo)志PlayFlag為0,且播放列表中幀數(shù)目大于等于T2,喚醒實(shí)時(shí)回放模塊:
S503,根據(jù)當(dāng)前視頻片段狀態(tài)信息執(zhí)行如下處理:
如果視頻片段的狀態(tài)為有目標(biāo)狀態(tài),則將當(dāng)前視頻片段加入播放列表,執(zhí)行S505;
如果視頻片段的狀態(tài)為無目標(biāo)狀態(tài),則執(zhí)行S505;
如果視頻片段的狀態(tài)為預(yù)測(cè)有目標(biāo)狀態(tài),則執(zhí)行S504;
如果視頻片段的狀態(tài)為待分析狀態(tài),則設(shè)置標(biāo)志RealFlag為0,進(jìn)入休眠等待狀態(tài),結(jié)束分析流程;
S504,對(duì)當(dāng)前視頻片段首個(gè)I幀調(diào)用解碼模塊對(duì)其解碼,并執(zhí)行分析任務(wù):
如果有滿足篩選條件的運(yùn)動(dòng)目標(biāo),設(shè)置當(dāng)前視頻片段為有目標(biāo)狀態(tài),則將當(dāng)前視頻片段加入播放列表,執(zhí)行S505;
如果沒有滿足篩選條件的運(yùn)動(dòng)目標(biāo),設(shè)置當(dāng)前視頻片段為無目標(biāo)狀態(tài),執(zhí)行S505;
S505,計(jì)數(shù)值C遞減,RealOriPos遞增,尋找當(dāng)前視頻片段的下一個(gè)視頻片段:
如果還有下一個(gè)視頻片段,則獲取下一個(gè)視頻片段的狀態(tài)信息,執(zhí)行S502;
如果沒有下一個(gè)視頻片段,則結(jié)束處理流程;
對(duì)于上述步驟3)中的實(shí)時(shí)回放流程,當(dāng)對(duì)播放列表中待播放的視頻片段進(jìn)行播放完成后,在預(yù)設(shè)時(shí)長內(nèi)播放列表中待播放的視頻片段的數(shù)目仍小于第一閾值,則從播放列表中最后視頻片段的位置繼續(xù)對(duì)待回放視頻進(jìn)行播放,此時(shí)按照當(dāng)前視頻片段的狀態(tài)來進(jìn)行選擇性播放,當(dāng)如圖6所示,為本申請(qǐng)具體實(shí)施例中提出的一種實(shí)施回放流程示意圖,具體步驟如下:
S601,設(shè)置標(biāo)志PlayFlag為1,獲取一個(gè)視頻片段作為當(dāng)前處理視頻片段;
S602,按照當(dāng)前視頻片段的狀態(tài)處理如下:
如果當(dāng)前視頻片段為有目標(biāo)狀態(tài),則按照幀間隔依次播放當(dāng)前視頻片段的視頻幀,執(zhí)行S603;
如果當(dāng)前視頻片段為無目標(biāo)狀態(tài),則直接執(zhí)行步驟S603;
如果當(dāng)前視頻片段為待處理狀態(tài),則按照幀間隔依次播放當(dāng)前視頻片段的視頻幀,執(zhí)行S603;
S603,獲取下一個(gè)視頻片段:
如果沒有下一個(gè)視頻片段,則設(shè)置PlayFlag為0,結(jié)束回放流程;
如果有下一個(gè)視頻片段,則設(shè)置下一個(gè)視頻片段為當(dāng)前處理視頻片段,執(zhí)行S602。
由此可見,通過應(yīng)用本申請(qǐng)的技術(shù)方案,將待回放視頻按照預(yù)設(shè)時(shí)間間隔劃分為多個(gè)視頻片段,若當(dāng)前視頻片段中存在運(yùn)動(dòng)目標(biāo),則標(biāo)記當(dāng)前視頻片段與相距持續(xù)時(shí)間后的最終視頻片段之間所有的視頻片段為預(yù)測(cè)有目標(biāo)狀態(tài),獲取預(yù)測(cè)有目標(biāo)狀態(tài)的視頻片段中存在運(yùn)動(dòng)目標(biāo)的視頻片段,并將存在運(yùn)動(dòng)目標(biāo)的視頻片段加入播放列表并進(jìn)行回放,提高了視頻分析回放的速度與準(zhǔn)確度,可以針對(duì)有運(yùn)動(dòng)目標(biāo)的場(chǎng)景進(jìn)行選擇性播放,對(duì)于沒有運(yùn)動(dòng)目標(biāo)的場(chǎng)景進(jìn)行跳過,加快了回放的速度,提升了用戶尋找關(guān)鍵目標(biāo)的體驗(yàn)。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可以通過硬件實(shí)現(xiàn),也可以借助軟件加必要的通用硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是CD-ROM,U盤,移動(dòng)硬盤等)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施場(chǎng)景所述的方法。
本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施場(chǎng)景的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。
本領(lǐng)域技術(shù)人員可以理解實(shí)施場(chǎng)景中的裝置中的模塊可以按照實(shí)施場(chǎng)景描述進(jìn)行分布于實(shí)施場(chǎng)景的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施場(chǎng)景的一個(gè)或多個(gè)裝置中。上述實(shí)施場(chǎng)景的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。
上述本發(fā)明序號(hào)僅僅為了描述,不代表實(shí)施場(chǎng)景的優(yōu)劣。
以上公開的僅為本發(fā)明的幾個(gè)具體實(shí)施場(chǎng)景,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。