視頻分析方法和設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及視頻處理領(lǐng)域,具體涉及一種視頻分析方法和設(shè)備。
【背景技術(shù)】
[0002]目前的視頻分析技術(shù)已經(jīng)發(fā)展為利用多個中央處理單元(CPU)采用多線程的方式進(jìn)行視頻分析。其中,以一個視頻文件為單位來進(jìn)行視頻分析。這樣,多個CHJ雖然利用多線程的方式來進(jìn)行數(shù)據(jù)處理,但是對于一個視頻文件而言,數(shù)據(jù)處理是由多個CHJ串行進(jìn)行的。視頻文件需要被完全解碼,才能進(jìn)行分析。
[0003]現(xiàn)有的視頻分析設(shè)備分析速度慢、效率低并且耗時長。
【發(fā)明內(nèi)容】
[0004]鑒于上述問題,提出了本發(fā)明以便提供一種至少部分地解決上述問題的視頻分析方法和設(shè)備。
[0005]根據(jù)本發(fā)明一個方面,提供了一種視頻分析方法,包括以下步驟:
[0006]對視頻文件進(jìn)行切片處理,以獲得視頻切片;
[0007]將所述視頻切片分發(fā)到多個處理器,以由所述多個處理器對分到的視頻切片進(jìn)行解碼和分析;以及
[0008]綜合所有視頻切片的分析結(jié)果。
[0009]根據(jù)本發(fā)明另一方面,還提供了一種視頻分析設(shè)備,包括切分裝置、分發(fā)裝置和綜合裝置。其中,所述切分裝置用于對視頻文件進(jìn)行切片處理,以獲得視頻切片。所述分發(fā)裝置用于將所述視頻切片分發(fā)到多個處理器,以由所述多個處理器對分到的視頻切片進(jìn)行解碼和分析。所述綜合裝置用于綜合所有視頻切片的分析結(jié)果。
[0010]上述視頻分析方法和設(shè)備充分利用了多個處理器分布式計算的優(yōu)勢,有效利用了每個處理器的計算能力,分析速度快,效率高。由此,真正實現(xiàn)了視頻分析云計算。
[0011]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【附圖說明】
[0012]通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0013]圖1示出了根據(jù)本發(fā)明一個實施例的視頻分析方法的流程圖;
[0014]圖2示出了根據(jù)本發(fā)明另一個實施例的視頻分析方法的流程圖;以及
[0015]圖3示出了根據(jù)本發(fā)明一個實施例的視頻分析設(shè)備的示意性框圖。
【具體實施方式】
[0016]下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0017]根據(jù)本發(fā)明的一個方面,提供了一種視頻分析方法。視頻分析包括但不限于:視頻的運動檢測、視頻中人數(shù)統(tǒng)計、根據(jù)視頻進(jìn)行越線檢測、視頻人臉識別、視頻中人物的表情分析、視頻中的拋灑物分析、視頻的物品遺留分析、視頻的逆向人流分析等。圖1示出了根據(jù)本發(fā)明一個實施例的視頻分析方法100的流程圖。如圖1所示,該視頻分析方法100包括步驟S110、步驟S130和步驟S150。
[0018]在步驟SllO中,對視頻文件進(jìn)行切片處理,以獲得視頻切片。這里,采用視頻切片技術(shù)來對視頻文件進(jìn)行切片處理。視頻切片包括視頻文件中的多幀連續(xù)圖像和該多幀連續(xù)圖像的時間信息。將數(shù)據(jù)量巨大的視頻文件切分成一個個視頻切片,以分別解碼和分析處理。在后續(xù)步驟中,以一個視頻切片為單位進(jìn)行視頻分析。
[0019]具體地,首先可以對視頻文件進(jìn)行類型分析,以確定其類型。例如,根據(jù)視頻標(biāo)準(zhǔn)查找視頻文件中的數(shù)據(jù),并根據(jù)所找到的數(shù)據(jù)確定視頻文件的類型。例如,在視頻文件中查找到3個ΟχΟΟΟΟΟΙΒΑ,則視頻文件為節(jié)目流(Program Stream,PS)。然后,可以根據(jù)視頻文件的類型,讀取視頻文件中的數(shù)據(jù),將所述視頻文件切分為視頻切片。
[°02°] 可選地,根據(jù)視頻文件的畫面組(Group Of Picture G0P)對視頻文件進(jìn)行切片處理。
[0021]GOP是一組連續(xù)的圖像。在視頻編碼序列中,主要有三種編碼幀:幀內(nèi)編碼圖像幀(I幀)、預(yù)測編碼圖像幀(P幀)和雙向預(yù)測編碼圖像幀(B幀)。GOP包括I幀以及在該I幀之后、在下一個相鄰I幀之前的P幀和B幀。根據(jù)本發(fā)明的一個實施例,可以將I個GOP或數(shù)個連續(xù)的GOP作為I個視頻切片。
[0022]根據(jù)GOP的定義,GOP可以作為一個獨立的圖像編解碼單元。根據(jù)GOP來對視頻文件進(jìn)行切片處理能夠保證后續(xù)操作的順利進(jìn)行,且簡單易行。
[0023]可選地,根據(jù)視頻文件的視頻場景切換對視頻文件進(jìn)行切片處理。
[0024]與文本數(shù)據(jù)不同,視頻數(shù)據(jù)不僅包括時間信息還包括空間信息??梢詫σ曨l內(nèi)容進(jìn)行景物變化檢測。如果發(fā)生了景物變化,那么可以據(jù)此認(rèn)為視頻場景發(fā)生了切換。即可根據(jù)視頻場景切換,將視頻文件切分為視頻切片。也就是說,不同的視頻切片包含不同的景物??梢酝ㄟ^對視頻文件進(jìn)行特征檢測來識別場景切換,例如顏色、光照、紋理等特征。
[0025]根據(jù)視頻文件的視頻場景切換對視頻文件進(jìn)行切片處理特別適合于場景切換頻繁的視頻文件。場景的切換意味著一個適于編解碼的新圖像序列的開始,保證了后續(xù)解碼和分析操作的順利進(jìn)行。
[0026]在步驟S130中,將視頻切片分發(fā)到多個處理器,以由多個處理器對分到的視頻切片進(jìn)行解碼和分析。在此,將步驟SllO所獲得的視頻切片分發(fā)到各個處理器??梢园凑找曨l的視頻切片的順序?qū)⑵湟来畏职l(fā)給各個處理器。每個處理器以一個視頻切片為單位進(jìn)行視頻處理。首先,對視頻切片進(jìn)行解碼。例如,將視頻切片解碼為YUV格式。然后,針對YUV格式的視頻切片,利用分析模型進(jìn)行相應(yīng)的視頻分析。
[0027]處理器可以包括各種計算單元,例如CPU、圖形處理單元(GPU)等。處理器可以是多核的??蛇x地,多個處理器包括數(shù)字信號處理器(DSP),例如DM816x芯片。DSP雖然通用功能較弱,但其是特別適合于進(jìn)行數(shù)字信號處理運算的微處理器,其主要應(yīng)用是實時快速地實現(xiàn)各種數(shù)字信號處理算法。對于視頻分析來說,DSP的處理能力大大高于CPU,但其成本和能耗卻大大低于CPU。
[0028]處理器可以存在很多個,可選地,大于1000個。執(zhí)行視頻分析的分布式計算的處理器越多,則視頻分析設(shè)備的計算能力越強(qiáng),視頻文件的分析速度越快。
[0029]多個處理器執(zhí)行分布式計算。每個處理器執(zhí)行的都是對視頻切片的解碼和分析操作,從這個角度而言,每個處理器執(zhí)行的計算是相同的。只是各個處理器所操作的對象不同,每個處理器針對不同的視頻切片進(jìn)行解碼和分析操作。每個處理器只需對自己所分到的視頻切片進(jìn)行處理,而無需考慮視頻文件的其他視頻切片。即使其他視頻切片在其他處理器中尚未完成解碼,只要該處理器已經(jīng)對其所分到的視頻切片完成了解碼,那么即可進(jìn)行接下來的分析處理。針對所分到的視頻切片,多個處理器可以以并行的方式進(jìn)行處理。換言之,多個處理器可以同時對各自分到的視頻切片進(jìn)行解碼和分析,彼此互不干擾和影響。由此,有效地利用了各個處理器的計算能力。
[0030]可以理解,分析處理可以采用任何合適的分析模型,例如基于H.264/H.265標(biāo)準(zhǔn)的分析算法的分析模型,本發(fā)明對此不做限定。
[0031]在步驟S150中,綜合所有視頻切片的分析結(jié)果,作為最終分析結(jié)果。
[0032]例如,對于根據(jù)視頻進(jìn)行車牌識別的視頻分析,則根據(jù)每個視頻切片的車牌識別結(jié)果返回車牌號。又例如,對于人臉識別的視頻分析,那么將分析每個視頻切片所獲得的人臉特征值作為最終分析結(jié)果。再例如,對于視頻中人物的表情分析,那么可以綜合根據(jù)每個視頻切片分析處理所獲得的疲勞或者痛苦特征值。另例如,對于視頻人數(shù)統(tǒng)計分析,那么可以加和對每個視頻切片進(jìn)行分析所獲得的其中的人數(shù),以獲得視頻文件中所涉及的總?cè)藬?shù)。
[0033]上述視頻分析方法充分利用了多個處理器執(zhí)行分布式計算,真正實現(xiàn)了視頻分析云計算。因為處理器能夠?qū)λ值降囊曨l切片并行處理,所以有效利用了每個處理器的計算能力,分析速度快、效率高并且耗時短。
[0034]圖2示出了根據(jù)本發(fā)明另一個實施例的視頻分析方法200的流程圖。如圖2所示,該視頻分析方法200包括步驟S205、步驟S210、步驟S230、步驟S240和步驟S250。其中步驟S210和步驟S250與上述視頻分析方法100中的對應(yīng)步驟類似,為了簡潔,在此不再贅述。
[0035]在步驟S230之前,視頻分析方法200可以包括步驟S205,檢測多個處理器的計算能力??梢栽谟布想姇r,進(jìn)行硬件設(shè)備自檢,從而檢測多個處理器的計算能力。由此,可以評估計算資源的可用性。
[0036]可選地,檢測多個處理器的計算能力進(jìn)一步包括:檢測多個處理器的數(shù)目、多個處理器中的核心的數(shù)目和/或多個處理器中的核心的主頻。處理器的數(shù)目越多,處理器中的核心數(shù)越多,核心的主頻越高,則處理器的計算能力越強(qiáng)。
[0037]在步驟S230中,將視頻切片分發(fā)到多個處理器可以根據(jù)多個處理器的計算能力。
[0038]處理器的數(shù)目顯著影響計算能力??蛇x地,根據(jù)處理器的數(shù)目將視頻切片分發(fā)到多個處理器。假如處理器的數(shù)目較少,而視頻切片的數(shù)目較多,那么可以為每個處理器分多個視頻切片。
[0039]在本發(fā)明的一些場景中,可以對很多個視頻文件同時進(jìn)行視頻分析。這些視頻文件的分辨率可以是不同的,例如分辨率為3840 X 2160和4096 X 2160像素的超高清數(shù)字視頻、分辨率為1920X1080像素的全高清數(shù)字視頻??蛇x地,將超高清數(shù)字視頻分發(fā)給計算能力較高的處理器,例如其中核心較多、主頻較高的處理器。而將全高清數(shù)字視頻分發(fā)給計算能力較低的處理器,例如其中核心較少、主頻較低的處理器。
[0040]檢測處理器的計算能力并且根據(jù)該計算能力分發(fā)視頻切片的處理任務(wù),可以有效利用每個處理器的計算能力,讓每一個處理器物盡其用。并且,由于處理器能夠能者多勞,所以能夠盡可能同時完成各自的處理任務(wù),避免因為短板效應(yīng)導(dǎo)致個別處理器等待的情況,提高了視頻分析設(shè)備的分析速度。
[0041]在多個處理器利