多路視頻檢測系統(tǒng)中的目標(biāo)檢測方法、裝置及服務(wù)器的制造方法
【專利摘要】本發(fā)明公開了一種多路視頻檢測系統(tǒng)中的目標(biāo)檢測方法、裝置及服務(wù)器,該方法包括:獲取攝像頭采集的第一視頻圖像;根據(jù)從第二視頻圖像中預(yù)測出的目標(biāo)的數(shù)量和實際檢測出的目標(biāo)的數(shù)量,預(yù)測所述第一視頻圖像中包括的目標(biāo)的數(shù)量;根據(jù)預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系、以及預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量,確定所述多路視頻檢測系統(tǒng)中各個GPU檢測所述第一視頻圖像的檢測時間;將總檢測時間最短的GPU確定為檢測所述第一視頻圖像的GPU,并將所述第一視頻圖像發(fā)送給確定出的GPU進(jìn)行目標(biāo)檢測。該方案確保針對多路視頻檢測系統(tǒng)中的目標(biāo)的檢測在最短時間內(nèi)完成,進(jìn)而確保了目標(biāo)檢測的實時性。
【專利說明】多路視頻檢測系統(tǒng)中的目標(biāo)檢測方法、裝置及服務(wù)器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,尤指一種多路視頻檢測系統(tǒng)中的目標(biāo)檢測方法、裝置及服務(wù)器。
【背景技術(shù)】
[0002]目標(biāo)檢測是指從一副圖片或者一幀視頻圖像中標(biāo)定出目標(biāo)的位置和大小,比如人臉檢測、車牌檢測等等;目標(biāo)檢測是視頻監(jiān)控中的一個重要環(huán)節(jié),通常采用的算法是:用一個固定大小(例如:20X20)的窗口,按照固定的步長(例如:1個像素)在待檢測圖像上滑動,窗口每次滑動到一個位置,都判斷窗口中包含的圖像是否為待檢測目標(biāo)。該算法是一種計算密集型算法,對于一幀1080P (大小為1920X 1080)的視頻圖像,需要計算2014000次,這樣會導(dǎo)致中央處理器(Central Processing Unit, CPU)負(fù)載很重。為了降低CPU的負(fù)載,將部分檢測功能轉(zhuǎn)移到圖形處理器(Graphic Processing Unit,GPU)上。在多路視頻檢測系統(tǒng)中,為了滿足目標(biāo)檢測的實時性需求,通常會包含多個GPU,如圖1所示。
[0003]每一視頻圖像的目標(biāo)檢測時間與該圖像中包含的目標(biāo)數(shù)量成正相關(guān),目標(biāo)數(shù)量越多,檢測時間越長。針對多路視頻的目標(biāo)檢測對實時性要求較高,需要在規(guī)定時長內(nèi)完成所有視頻的檢測。目前,通常的做法是為每個GPU分配固定的一路或多路視頻進(jìn)行檢測,這樣極易出現(xiàn)GPU負(fù)載不均衡的現(xiàn)象,在某個GPU上處理的多路視頻中,每一路視頻的每一視頻圖像都包含多個目標(biāo)時,該GPU非常忙碌,這就使得該GPU無法在規(guī)定時長內(nèi)完成所有計算;而在另一個GPU處理的多路視頻上,每一路視頻的每一視頻圖像都包含少數(shù)目標(biāo)或者不包含目標(biāo),該GPU非常空閑。當(dāng)多個GPU負(fù)載不均衡時,可能會導(dǎo)致檢測時間超時,影響目標(biāo)檢測的實時性。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供一種多路視頻檢測系統(tǒng)中的目標(biāo)檢測方法、裝置以及服務(wù)器,用以解決現(xiàn)有基于多路視頻的目標(biāo)檢測方法中存在的檢測時間超時、影響目標(biāo)檢測的實時性的問題。
[0005]第一方面,提供一種多路視頻檢測系統(tǒng)中的目標(biāo)檢測方法,包括:
[0006]獲取所述多路視頻檢測系統(tǒng)中的攝像頭采集的第一視頻圖像;
[0007]根據(jù)從第二視頻圖像中預(yù)測出的目標(biāo)的數(shù)量和實際檢測出的目標(biāo)的數(shù)量,預(yù)測所述第一視頻圖像中包括的目標(biāo)的數(shù)量,所述第二視頻圖像是所述攝像頭在所述第一視頻圖像之前采集到的;
[0008]根據(jù)預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系、以及預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量,確定所述多路視頻檢測系統(tǒng)中各個圖形處理器GPU檢測所述第一視頻圖像的檢測時間;
[0009]將總檢測時間最短的GPU確定為檢測所述第一視頻圖像的GPU,并將所述第一視頻圖像發(fā)送給確定出的GPU進(jìn)行目標(biāo)檢測,每個所述GPU的總檢測時間是該GPU檢測自身已接收且未完成檢測的視頻圖像和檢測所述第一視頻圖像的檢測時間之和。
[0010]結(jié)合第一方面,在第一種可能的實現(xiàn)方式中,還包括:
[0011]接收確定出的GPU發(fā)送的從所述第一視頻圖像中實際檢測出的目標(biāo)的數(shù)量。[0012]結(jié)合第一方面或者第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,根據(jù)從第二視頻圖像中預(yù)測出的目標(biāo)的數(shù)量和實際檢測出的目標(biāo)的數(shù)量,預(yù)測所述第一視頻圖像中包括的目標(biāo)的數(shù)量,具體包括:
[0013]通過下列公式預(yù)測所述第一視頻圖像中包括的目標(biāo)的數(shù)量:F' U=CiFiH+
(1-α ) F' i,t-l ;
[0014]其中,F(xiàn)' i,t為預(yù)測的攝像頭i采集的第一視頻圖像t中包括的所述目標(biāo)的數(shù)量,F(xiàn)' 為預(yù)測的攝像頭i采集的第二視頻圖像t-Ι中包括的所述目標(biāo)的數(shù)量,F(xiàn)i^1是實際檢測出的攝像頭i中采集的第二視頻圖像t-Ι中包括的所述目標(biāo)的數(shù)量,α為遺忘因子,0〈α〈I。
[0015]結(jié)合第一方面、第一方面的第一種可能的實現(xiàn)方式或者第一方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,在根據(jù)從第二視頻圖像中預(yù)測出的目標(biāo)的數(shù)量和實際檢測出的目標(biāo)的數(shù)量,預(yù)測所述第一視頻圖像中包括的目標(biāo)的數(shù)量之前,還包括:
[0016]獲取一組實驗圖像,所述一組實驗圖像中每個實驗圖像包括的目標(biāo)的數(shù)量均不同;
[0017]依次使用各個GPU檢測所述一組實驗圖像;
[0018]記錄各個GPU的檢測時間與目標(biāo)的數(shù)量的對應(yīng)關(guān)系。
[0019]結(jié)合第一方面、第一方面的第一種可能的實現(xiàn)方式、第一方面的第二種可能的實現(xiàn)方式或者第一方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,根據(jù)預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系、以及預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量,確定所述多路視頻檢測系統(tǒng)中各個GPU檢測所述第一視頻圖像的檢測時間,具體包括:
[0020]若預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量為整數(shù),則從預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系中查找所述整數(shù)對應(yīng)的檢測時間,將查找到的各個GPU對應(yīng)的檢測時間作為對應(yīng)GPU檢測所述第一視頻圖像的檢測時間;
[0021]若預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量為浮點數(shù),則確定大小最接近所述浮點數(shù)的兩個整數(shù),從預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系中查找確定出的兩個整數(shù)對應(yīng)的檢測時間,根據(jù)查找到的各個GPU對應(yīng)的兩個檢測時間使用線性插值法得到對應(yīng)GPU檢測所述第一視頻圖像的檢測時間。
[0022]結(jié)合第一方面、第一方面的第一種可能的實現(xiàn)方式、第一方面的第二種可能的實現(xiàn)方式、第一方面的第三種可能的實現(xiàn)方式或者第一方面的第四種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,將總檢測時間最短的GPU確定為檢測所述第一視頻圖像的GPU,并將所述第一視頻圖像發(fā)送給確定出的GPU進(jìn)行目標(biāo)檢測,具體包括:
[0023]計算各個GPU的總檢測時間;
[0024]將總檢查時間最短的GPU的標(biāo)識ID信息與所述攝像頭關(guān)聯(lián);
[0025]將所述第一視頻圖像發(fā)送給與所述攝像頭關(guān)聯(lián)的GPU的ID信息所標(biāo)識的GPU進(jìn)行目標(biāo)檢測。
[0026]第二方面,提供一種多路視頻檢測系統(tǒng)中的目標(biāo)檢測裝置,包括:[0027]獲取單元,用于獲取所述多路視頻檢測系統(tǒng)中的攝像頭采集的第一視頻圖像;
[0028]預(yù)測單元,用于根據(jù)從第二視頻圖像中預(yù)測出的目標(biāo)的數(shù)量和實際檢測出的目標(biāo)的數(shù)量,預(yù)測所述第一視頻圖像中包括的目標(biāo)的數(shù)量,所述第二視頻圖像是所述攝像頭在所述第一視頻圖像之前采集到的;
[0029]確定單元,用于根據(jù)預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系、以及預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量,確定所述多路視頻檢測系統(tǒng)中各個圖形處理器GPU檢測所述第一視頻圖像的檢測時間;
[0030]收發(fā)單元,用于將總檢測時間最短的GPU確定為檢測所述第一視頻圖像的GPU,并將所述第一視頻圖像發(fā)送給確定出的GPU進(jìn)行目標(biāo)檢測,每個所述GPU的總檢測時間是該GI3U檢測自身已接收且未完成檢測的視頻圖像和檢測所述第一視頻圖像的檢測時間之和。
[0031]結(jié)合第二方面,在第二種可能的實現(xiàn)方式中,所述收發(fā)單元,還用于:
[0032]接收確定出的GPU發(fā)送的從所述第一視頻圖像中實際檢測出的目標(biāo)的數(shù)量。[0033]結(jié)合第二方面或者第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述預(yù)測單元,具體用于:
[0034]通過下列公式預(yù)測所述第一視頻圖像中包括的目標(biāo)的數(shù)量:F' i;t=a Fi t^1+
(卜α ) P' i,t-l ;
[0035]其中,F(xiàn)' i,t為預(yù)測的攝像頭i采集的第一視頻圖像t中包括的所述目標(biāo)的數(shù)量,F(xiàn)' 為預(yù)測的攝像頭i采集的第二視頻圖像t-Ι中包括的所述目標(biāo)的數(shù)量,F(xiàn)i^1是實際檢測出的攝像頭i中采集的第二視頻圖像t-Ι中包括的所述目標(biāo)的數(shù)量,α為遺忘因子,0〈α〈I。
[0036]結(jié)合第二方面、第二方面的第一種可能的實現(xiàn)方式或者第二方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述確定單元,具體用于:
[0037]若預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量為整數(shù),則從預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系中查找所述整數(shù)對應(yīng)的檢測時間,將查找到的各個GPU對應(yīng)的檢測時間作為對應(yīng)GPU檢測所述第一視頻圖像的檢測時間;
[0038]若預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量為浮點數(shù),則確定大小最接近所述浮點數(shù)的兩個整數(shù),從預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系中查找確定出的兩個整數(shù)對應(yīng)的檢測時間,根據(jù)查找到的各個GPU對應(yīng)的兩個檢測時間使用線性插值法得到對應(yīng)GPU檢測所述第一視頻圖像的檢測時間。
[0039]結(jié)合第二方面、第二方面的第一種可能的實現(xiàn)方式、第二方面的第二種可能的實現(xiàn)方式或者第二方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述收發(fā)單元,具體用于:
[0040]計算各個GPU的總檢測時間;
[0041]將總檢查時間最短的GPU的標(biāo)識ID信息與所述攝像頭關(guān)聯(lián);
[0042]將所述第一視頻圖像發(fā)送給與所述攝像頭關(guān)聯(lián)的GPU的ID信息所標(biāo)識的GPU進(jìn)行目標(biāo)檢測。
[0043]第三方面,提供一種服務(wù)器,包括:
[0044]處理器,用于獲取多路視頻檢測系統(tǒng)中的攝像頭采集的第一視頻圖像;根據(jù)從第二視頻圖像中預(yù)測出的目標(biāo)的數(shù)量和實際檢測出的目標(biāo)的數(shù)量,預(yù)測所述第一視頻圖像中包括的目標(biāo)的數(shù)量,所述第二視頻圖像是所述攝像頭在所述第一視頻圖像之前采集到的;根據(jù)預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系、以及預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量,確定所述多路視頻檢測系統(tǒng)中各個圖形處理器GPU檢測所述第一視頻圖像的檢測時間;
[0045]收發(fā)器,用于將總檢測時間最短的GPU確定為檢測所述第一視頻圖像的GPU,并將所述第一視頻圖像發(fā)送給確定出的GPU進(jìn)行目標(biāo)檢測,每個所述GPU的總檢測時間是該GPU檢測自身已接收且未完成檢測的視頻圖像和檢測所述第一視頻圖像的檢測時間之和。
[0046]結(jié)合第三方面,在第一種可能的實現(xiàn)方式中,所述處理器,具體用于:
[0047]通過下列公式預(yù)測所述第一視頻圖像中包括的目標(biāo)的數(shù)量:F' i;t=a Fi t^1+
(卜α ) P' i,t-l ;
[0048]其中,F(xiàn)' i,t為預(yù)測的攝像頭i采集的第一視頻圖像t中包括的所述目標(biāo)的數(shù)量,F(xiàn)' 為預(yù)測的攝像頭i采集的第二視頻圖像t-Ι中包括的所述目標(biāo)的數(shù)量,F(xiàn)i^1是實際檢測出的攝像頭i中采集的第二視頻圖像t-Ι中包括的所述目標(biāo)的數(shù)量,α為遺忘因子,0〈α〈I。
[0049]結(jié)合第三方面或者第三方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述處理器,具體用于:
[0050]若預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量為整數(shù),則從預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系中查找所述整數(shù)對應(yīng)的檢測時間,將查找到的各個GPU對應(yīng)的檢測時間作為對應(yīng)GPU檢測 所述第一視頻圖像的檢測時間;
[0051]若預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量為浮點數(shù),則確定大小最接近所述浮點數(shù)的兩個整數(shù),從預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系中查找確定出的兩個整數(shù)對應(yīng)的檢測時間,根據(jù)查找到的各個GPU對應(yīng)的兩個檢測時間使用線性插值法得到對應(yīng)GPU檢測所述第一視頻圖像的檢測時間。
[0052]根據(jù)第一方面提供的多路視頻檢測系統(tǒng)中的目標(biāo)檢測方法、第二方面提供的多路視頻檢測系統(tǒng)中的目標(biāo)檢測裝置或者第三方面提供的服務(wù)器,針對多路視頻檢測系統(tǒng)中攝像頭采集的第一視頻圖像,不再固定分配給一個GPU進(jìn)行目標(biāo)檢測,而是動態(tài)為其確定檢測的GPU,首先預(yù)測第一視頻圖像中包括的目標(biāo)的數(shù)量,然后確定各個GPU檢測第一視頻圖像的檢測時間,最后將總檢測時間最短的GPU確定為檢測第一視頻圖像的GPU,從而實現(xiàn)了各個GPU之間的負(fù)載均衡,確保針對多路視頻檢測系統(tǒng)中的目標(biāo)的檢測在最短時間內(nèi)完成,進(jìn)而確保了目標(biāo)檢測的實時性。
【專利附圖】
【附圖說明】
[0053]圖1為現(xiàn)有技術(shù)中的多路視頻檢測系統(tǒng)的架構(gòu)圖;
[0054]圖2為本發(fā)明實施例中多路視頻檢測系統(tǒng)中的目標(biāo)檢測方法的流程圖;
[0055]圖3為本發(fā)明實施例中能力曲線的示意圖;
[0056]圖4為本發(fā)明實施例中多路視頻檢測系統(tǒng)中的目標(biāo)檢測裝置的結(jié)構(gòu)示意圖;
[0057]圖5為本發(fā)明實施例中多路視頻檢測系統(tǒng)中的服務(wù)器的結(jié)構(gòu)示意圖。
【具體實施方式】[0058]針對現(xiàn)有的基于多路視頻的目標(biāo)檢測方法中存在的檢測時間超時、影響目標(biāo)檢測的實時性的問題,本發(fā)明實施例提供一種多路視頻檢測系統(tǒng)中的目標(biāo)檢測方法,該方法可以應(yīng)用在如圖1所示的多路視頻檢測系統(tǒng)中,該系統(tǒng)包括一個服務(wù)器、多個攝像頭和多個GPU,服務(wù)器接收多個攝像頭采集的視頻圖像,并分發(fā)給各個GPU進(jìn)行目標(biāo)檢測。
[0059]該方法的流程如圖2所示,執(zhí)行主體可以是服務(wù)器,具體包括:
[0060]S20:獲取多路視頻檢測系統(tǒng)中的攝像頭采集的第一視頻圖像。
[0061]在多路視頻檢測系統(tǒng)中,一般會有多個攝像頭,可以按照設(shè)定時間周期輪詢獲取各個攝像頭采集的第一視頻圖像,設(shè)定時間周期可以根據(jù)實際需要確定,例如5s、6s、7.5s、IOs等等,也可以隨機(jī)獲取各個攝像頭采集的第一視頻圖像,當(dāng)然也可以采用其它方式獲取。
[0062]S21:根據(jù)從第二視頻圖像中預(yù)測出的目標(biāo)的數(shù)量和實際檢測出的目標(biāo)的數(shù)量,預(yù)測第一視頻圖像中包括的目標(biāo)的數(shù)量,第二視頻圖像是攝像頭在第一視頻圖像之前采集到的。
[0063]首先在攝像頭采集第一視頻圖像之前采集的視頻圖像中選取隨機(jī)一個已檢測視頻圖像或者選取時間最近的一個已檢測視頻圖像作為第二視頻圖像,然后獲取從第二視頻圖像中預(yù)測出的目標(biāo)的數(shù)量和實際檢測出的目標(biāo)的數(shù)量,據(jù)此可以預(yù)測出第一視頻圖像中包括的目標(biāo)的數(shù)量。
[0064]其中,從第二視頻圖像中實際檢測出的目標(biāo)的數(shù)量是由檢測第二視頻圖像的GPU提供的。
[0065]S22:根據(jù)預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系、以及預(yù)測出的第一視頻圖像中包括的目標(biāo)的數(shù)量,確定多路視頻檢測系統(tǒng)中各個GPU檢測第一視頻圖像的檢測時間。
[0066]S23:將總檢測時間最短的GPU確定為檢測第一視頻圖像的GPU,并將第一視頻圖像發(fā)送給確定出的GPU進(jìn)行目標(biāo)檢測,每個GPU的總檢測時間是該GPU檢測自身已接收且未完成檢測的視頻圖像和檢測第一視頻圖像的檢測時間之和。
[0067]該方案中,針對多路視頻檢測系統(tǒng)中攝像頭采集的第一視頻圖像,不再固定分配給一個GPU進(jìn)行目標(biāo)檢測,而是動態(tài)為其確定檢測的GPU,首先預(yù)測第一視頻圖像中包括的目標(biāo)的數(shù)量,然后確定各個GPU檢測第一視頻圖像的檢測時間,最后將總檢測時間最短的GPU確定為檢測第一視頻圖像的GPU,從而實現(xiàn)了各個GPU之間的負(fù)載均衡,確保針對多路視頻檢測系統(tǒng)中的目標(biāo)的檢測在最短時間內(nèi)完成,進(jìn)而確保了目標(biāo)檢測的實時性。
[0068]具體的,上述S21中的根據(jù)從第二視頻圖像中預(yù)測出的目標(biāo)的數(shù)量和實際檢測出的目標(biāo)的數(shù)量,預(yù)測第一視頻圖像中包括的目標(biāo)的數(shù)量,具體包括:
[0069]通過下列公式預(yù)測第一視頻圖像中包括的目標(biāo)的數(shù)量:F' i t=a Fi,t-1+ (1-α )
F' i,t-1 ;
[0070]其中,F(xiàn)' i,t為預(yù)測的攝像頭i采集的第一視頻圖像t中包括的目標(biāo)的數(shù)量,F(xiàn)' 為預(yù)測的攝像頭i采集的第二視頻圖像t-1中包括的目標(biāo)的數(shù)量,F(xiàn)i,t-1是實際檢測出的攝像頭i中采集的第二視頻圖像t-1中包括的目標(biāo)的數(shù)量,a為遺忘因子,0〈α〈1,較佳值為0.5。
[0071]具體的,上述S21中的在根據(jù)從第二視頻圖像中預(yù)測出的目標(biāo)的數(shù)量和實際檢測出的目標(biāo)的數(shù)量,預(yù)測第一視頻圖像中包括的目標(biāo)的數(shù)量之前,還包括:[0072]獲取一組實驗圖像,一組實驗圖像中每個實驗圖像包括的目標(biāo)的數(shù)量均不同;
[0073]依次使用各個GPU檢測一組實驗圖像;
[0074]記錄各個GPU的檢測時間與目標(biāo)的數(shù)量的對應(yīng)關(guān)系。
[0075]下面以目標(biāo)檢測為人臉檢測為例來說明,預(yù)先從將要檢測的第一視頻圖像或者已經(jīng)檢測過的第二視頻圖像中提取一組圖像,每張圖像中包含0,1,2,...,N張人臉,這組圖像作為實驗圖像;依次使用各個GPU來檢測該組實驗圖像,記錄各個GPU的檢測時間與人臉數(shù)量的對應(yīng)關(guān)系,以二元組〈人臉數(shù),檢測時間T>的形式記錄,當(dāng)然也可以采用其他形式近記錄。
[0076]然后還可以人臉數(shù)量為橫坐標(biāo)、以檢測時間為縱坐標(biāo),擬合出一條曲線,得到每個GPU的能力曲線,圖3所示為一個GPU的能力曲線的示意圖。
[0077]具體的,上述S22中的根據(jù)預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系、以及預(yù)測出的第一視頻圖像中包括的目標(biāo)的數(shù)量,確定多路視頻檢測系統(tǒng)中各個GPU檢測第一視頻圖像的檢測時間,具體包括以下兩種情況:
[0078]第一種情況,若預(yù)測出的第一視頻圖像中包括的目標(biāo)的數(shù)量為整數(shù),則從預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系中查找整數(shù)對應(yīng)的檢測時間,將查找到的各個GPU對應(yīng)的檢測時間作為對應(yīng)GPU檢測第一視頻圖像的檢測時間。
[0079]在這種情況中,可以根據(jù)預(yù)測出的第一視頻圖像中包括的目標(biāo)的數(shù)量直接從二元組或者能力曲線上查找到各個GPU的檢測時間。
[0080]第二種情況,若預(yù)測出的第一視頻圖像中包括的目標(biāo)的數(shù)量為浮點數(shù),則確定大小最接近浮點數(shù)的兩個整數(shù),從預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系中查找確定出的兩個整數(shù)對應(yīng)的檢測時間,根據(jù)查找到的各個GPU對應(yīng)的兩個檢測時間使用線性插值法得到對應(yīng)GPU檢測第一視頻圖像的檢測時間。
[0081]在這種情況中,無法根據(jù)預(yù)測出的第一頻幀圖像中包括的目標(biāo)的數(shù)量直接從二元組或者能力曲線上查找到各個GPU的檢測時間,首先需要確定大小最接近浮點數(shù)的兩個整數(shù),從預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系中查找確定出的兩個整數(shù)對應(yīng)的檢測時間,根據(jù)查找到的各個GPU對應(yīng)的兩個檢測時間使用線性插值法得到對應(yīng)GPU檢測第一視頻圖像的檢測時間。
[0082]具體的,上述S23中的將總檢測時間最短的GPU確定為檢測第一視頻圖像的GPU,并將第一視頻圖像發(fā)送給確定出的GPU進(jìn)行目標(biāo)檢測,具體包括:
[0083]計算各個GPU的總檢測時間;
[0084]將總檢查時間最短的GPU的標(biāo)識(Identification, ID)信息與攝像頭關(guān)聯(lián);
[0085]將第一視頻圖像發(fā)送給與攝像頭關(guān)聯(lián)的GPU的ID信息所標(biāo)識的GPU進(jìn)行目標(biāo)檢測。
[0086]動態(tài)調(diào)整檢測多路視頻的GPU,是為了實現(xiàn)負(fù)載均衡,從而使得全部檢測完多路視頻的時間最短,因此可以計算各個GPU的總檢測時間,即各個GPU檢測已接收到的視頻圖像和所述第一視頻圖像的檢測時間之和。
[0087]將總檢查時間最短的GPU的ID信息與該攝像頭關(guān)聯(lián)起來,將該GPU作為檢測第一視頻圖像的GPU,并將第一視頻圖像發(fā)送給與該GPU進(jìn)行目標(biāo)檢測。在下一次輪詢到該攝像頭之前的這段時間,都是由該GPU來檢測該攝像頭采集的第一視頻圖像的。[0088]基于同一發(fā)明構(gòu)思,本發(fā)明實施例提供一種多路視頻檢測系統(tǒng)中的目標(biāo)檢測裝置,結(jié)構(gòu)如圖4所示,包括:
[0089]獲取單元40,用于獲取多路視頻檢測系統(tǒng)中的攝像頭采集的第一視頻圖像。
[0090]預(yù)測單元41,用于根據(jù)從第二視頻圖像中預(yù)測出的目標(biāo)的數(shù)量和實際檢測出的目標(biāo)的數(shù)量,預(yù)測第一視頻圖像中包括的目標(biāo)的數(shù)量,第二視頻圖像是攝像頭在第一視頻圖像之前采集到的。
[0091]確定單元42,用于根據(jù)預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系、以及預(yù)測出的第一視頻圖像中包括的目標(biāo)的數(shù)量,確定多路視頻檢測系統(tǒng)中各個GPU檢測第一視頻圖像的檢測時間。
[0092]收發(fā)單元43,用于將總檢測時間最短的GPU確定為檢測第一視頻圖像的GPU,并將第一視頻圖像發(fā)送給確定出的GPU進(jìn)行目標(biāo)檢測,每個GPU的總檢測時間是該GPU檢測自身已接收且未完成檢測的視頻圖像和檢測第一視頻圖像的檢測時間之和。
[0093]可選的,上述收發(fā)單元43,還用于:接收確定出的GPU發(fā)送的從第一視頻圖像中實際檢測出的目標(biāo)的數(shù)量。
[0094]具體的,上述預(yù)測 單元41,用于根據(jù)從第二視頻圖像中預(yù)測出的目標(biāo)的數(shù)量和實際檢測出的目標(biāo)的數(shù)量,預(yù)測第一視頻圖像中包括的目標(biāo)的數(shù)量,具體用于:
[0095]通過下列公式預(yù)測第一視頻圖像中包括的目標(biāo)的數(shù)量:F' U=CiFi^+ (1-α )
F' i,t-1 ;
[0096]其中,F(xiàn)' i,t為預(yù)測的攝像頭i采集的第一視頻圖像t中包括的目標(biāo)的數(shù)量,F(xiàn)' 為預(yù)測的攝像頭i采集的第二視頻圖像t-Ι中包括的目標(biāo)的數(shù)量,F(xiàn)i^1是實際檢測出的攝像頭i中采集的第二視頻圖像t-Ι中包括的目標(biāo)的數(shù)量,α為遺忘因子,0〈α〈1。
[0097]具體的,上述確定單元42,具體用于:
[0098]若預(yù)測出的第一視頻圖像中包括的目標(biāo)的數(shù)量為整數(shù),則從預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系中查找整數(shù)對應(yīng)的檢測時間,將查找到的各個GPU對應(yīng)的檢測時間作為對應(yīng)GPU檢測第一視頻圖像的檢測時間;
[0099]若預(yù)測出的第一視頻圖像中包括的目標(biāo)的數(shù)量為浮點數(shù),則確定大小最接近浮點數(shù)的兩個整數(shù),從預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系中查找確定出的兩個整數(shù)對應(yīng)的檢測時間,根據(jù)查找到的各個GPU對應(yīng)的兩個檢測時間使用線性插值法得到對應(yīng)GPU檢測第一視頻圖像的檢測時間。
[0100]具體的,上述收發(fā)單元43,具體用于:
[0101]計算各個GPU的總檢測時間;
[0102]將總檢查時間最短的GPU的ID /[目息與攝像頭關(guān)聯(lián);
[0103]將第一視頻圖像發(fā)送給與攝像頭關(guān)聯(lián)的GPU的ID信息所標(biāo)識的GPU進(jìn)行目標(biāo)檢測。
[0104]基于同一發(fā)明構(gòu) 思,本發(fā)明實施例提供一種服務(wù)器,該服務(wù)器的結(jié)構(gòu)如圖5所示,包括:
[0105]處理器50,用于獲取多路視頻檢測系統(tǒng)中的攝像頭采集的第一視頻圖像;根據(jù)從第二視頻圖像中預(yù)測出的目標(biāo)的數(shù)量和實際檢測出的目標(biāo)的數(shù)量,預(yù)測第一視頻圖像中包括的目標(biāo)的數(shù)量,第二視頻圖像是攝像頭在第一視頻圖像之前采集到的;根據(jù)預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系、以及預(yù)測出的第一視頻圖像中包括的目標(biāo)的數(shù)量,確定多路視頻檢測系統(tǒng)中各個GPU檢測第一視頻圖像的檢測時間。
[0106]收發(fā)器51,用于將總檢測時間最短的GPU確定為檢測第一視頻圖像的GPU,并將第一視頻圖像發(fā)送給確定出的GPU進(jìn)行目標(biāo)檢測,每個GPU的總檢測時間是該GPU檢測自身已接收且未完成檢測的視頻圖像和檢測第一視頻圖像的檢測時間之和。
[0107]處理器50與收發(fā)器51之間通過總線連通。
[0108]具體的,上述處理器50,具體用于:通過下列公式預(yù)測第一視頻圖像中包括的目標(biāo)的數(shù)量:F' i t=a FiH+ (1-α ) F' i;t_!;
[0109]其中,F(xiàn)' i,t為預(yù)測的攝像頭i采集的第一視頻圖像t中包括的目標(biāo)的數(shù)量,F(xiàn)' 為預(yù)測的攝像頭i采集的第二視頻圖像t-Ι中包括的目標(biāo)的數(shù)量,F(xiàn)i^1是實際檢測出的攝像頭i中采集的第二視頻圖像t-Ι中包括的目標(biāo)的數(shù)量,a為遺忘因子,0〈α〈1。
[0110]具體的,上述處理器50,具體用于:[0111]若預(yù)測出的第一視頻圖像中包括的目標(biāo)的數(shù)量為整數(shù),則從預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系中查找整數(shù)對應(yīng)的檢測時間,將查找到的各個GPU對應(yīng)的檢測時間作為對應(yīng)GPU檢測第一視頻圖像的檢測時間;
[0112]若預(yù)測出的第一視頻圖像中包括的目標(biāo)的數(shù)量為浮點數(shù),則確定大小最接近浮點數(shù)的兩個整數(shù),從預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系中查找確定出的兩個整數(shù)對應(yīng)的檢測時間,根據(jù)查找到的各個GPU對應(yīng)的兩個檢測時間使用線性插值法得到對應(yīng)GPU檢測第一視頻圖像的檢測時間。
[0113]本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機(jī)程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機(jī)程序指令到通用計算機(jī)、專用計算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0114]這些計算機(jī)程序指令也可存儲在能引導(dǎo)計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機(jī)可讀存儲器中,使得存儲在該計算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0115]這些計算機(jī)程序指令也可裝載到計算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機(jī)實現(xiàn)的處理,從而在計算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0116]盡管已描述了本發(fā)明的可選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括可選實施例以及落入本發(fā)明范圍的所有變更和修改。
[0117]顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明實施例進(jìn)行各種改動和變型而不脫離本發(fā)明實施例的精神和范圍。這樣,倘若本發(fā)明實施例的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
【權(quán)利要求】
1.一種多路視頻檢測系統(tǒng)中的目標(biāo)檢測方法,其特征在于,包括: 獲取所述多路視頻檢測系統(tǒng)中的攝像頭采集的第一視頻圖像; 根據(jù)從第二視頻圖像中預(yù)測出的目標(biāo)的數(shù)量和實際檢測出的目標(biāo)的數(shù)量,預(yù)測所述第一視頻圖像中包括的目標(biāo)的數(shù)量,所述第二視頻圖像是所述攝像頭在所述第一視頻圖像之前采集到的; 根據(jù)預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系、以及預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量,確定所述多路視頻檢測系統(tǒng)中各個圖形處理器GPU檢測所述第一視頻圖像的檢測時間; 將總檢測時間最短的GPU確定為檢測所述第一視頻圖像的GPU,并將所述第一視頻圖像發(fā)送給確定出的GPU進(jìn)行目標(biāo)檢測,每個所述GPU的總檢測時間是該GPU檢測自身已接收且未完成檢測的視頻圖像和檢測所述第一視頻圖像的檢測時間之和。
2.如權(quán)利要求1所述的方法,其特征在于,還包括: 接收確定出的GPU發(fā)送的從所述第一視頻圖像中實際檢測出的目標(biāo)的數(shù)量。
3.如權(quán)利要求1或2所述的方法,其特征在于,根據(jù)從第二視頻圖像中預(yù)測出的目標(biāo)的數(shù)量和實際檢測出的目標(biāo)的數(shù)量,預(yù)測所述第一視頻圖像中包括的目標(biāo)的數(shù)量,具體包括: 通過下列公式預(yù)測所述第一視頻圖像中包括的目標(biāo)的數(shù)量:F' U=CiFi^+ (1-α )F' i,t-1 ; 其中,F(xiàn)' i,t為預(yù)測的攝像頭i采集的第一視頻圖像t中包括的所述目標(biāo)的數(shù)量,F(xiàn)' 為預(yù)測的攝像頭i采集的第二視頻圖像t-Ι中包括的所述目標(biāo)的數(shù)量,F(xiàn)i^1是實際檢測出的攝像頭i中采集的第二視頻圖像t-Ι中包括的所述目標(biāo)的數(shù)量,α為遺忘因子,0〈α〈I。
4.如權(quán)利要求1-3任一所述的方法,其特征在于,在根據(jù)從第二視頻圖像中預(yù)測出的目標(biāo)的數(shù)量和實際檢測出的目標(biāo)的數(shù)量,預(yù)測所述第一視頻圖像中包括的目標(biāo)的數(shù)量之前,還包括: 獲取一組實驗圖像,所述一組實驗圖像中每個實驗圖像包括的目標(biāo)的數(shù)量均不同; 依次使用各個GPU檢測所述一組實驗圖像; 記錄各個GPU的檢測時間與目標(biāo)的數(shù)量的對應(yīng)關(guān)系。
5.如權(quán)利要求1-4任一所述的方法,其特征在于,根據(jù)預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系、以及預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量,確定所述多路視頻檢測系統(tǒng)中各個GPU檢測所述第一視頻圖像的檢測時間,具體包括: 若預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量為整數(shù),則從預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系中查找所述整數(shù)對應(yīng)的檢測時間,將查找到的各個GPU對應(yīng)的檢測時間作為對應(yīng)GPU檢測所述第一視頻圖像的檢測時間; 若預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量為浮點數(shù),則確定大小最接近所述浮點數(shù)的兩個整數(shù),從預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系中查找確定出的兩個整數(shù)對應(yīng)的檢測時間,根據(jù)查找到的各個GPU對應(yīng)的兩個檢測時間使用線性插值法得到對應(yīng)GPU檢測所述第一視頻圖像的檢測時間。
6.如權(quán)利要求1-5任一所述的方法,其特征在于,將總檢測時間最短的GPU確定為檢測所述第一視頻圖像的GPU,并將所述第一視頻圖像發(fā)送給確定出的GPU進(jìn)行目標(biāo)檢測,具體包括: 計算各個GPU的總檢測時間; 將總檢查時間最短的GPU的標(biāo)識ID信息與所述攝像頭關(guān)聯(lián); 將所述第一視頻圖像發(fā)送給與所述攝像頭關(guān)聯(lián)的GPU的ID信息所標(biāo)識的GPU進(jìn)行目標(biāo)檢測。
7.一種多路視頻檢測系統(tǒng)中的目標(biāo)檢測裝置,其特征在于,包括: 獲取單元,用于獲取所述多路視頻檢測系統(tǒng)中的攝像頭采集的第一視頻圖像; 預(yù)測單元,用于根據(jù)從第二視頻圖像中預(yù)測出的目標(biāo)的數(shù)量和實際檢測出的目標(biāo)的數(shù)量,預(yù)測所述第一視頻圖像中包括的目標(biāo)的數(shù)量,所述第二視頻圖像是所述攝像頭在所述第一視頻圖像之前采集到的; 確定單元,用于根據(jù)預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系、以及預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量,確定所述多路視頻檢測系統(tǒng)中各個圖形處理器GPU檢測所述第一視頻圖像的檢測時間; 收發(fā)單元,用于將總檢測時間最短的GPU確定為檢測所述第一視頻圖像的GPU,并將所述第一視頻圖像發(fā)送給確定出的GPU進(jìn)行目標(biāo)檢測,每個所述GPU的總檢測時間是該GPU檢測自身已接收且未完成檢測的視頻圖像和檢測所述第一視頻圖像的檢測時間之和。
8.如權(quán)利要求7所述的裝置,其特征在于,所述收發(fā)單元,還用于: 接收確定出的GPU發(fā)送的從所述第一視頻圖像中實際檢測出的目標(biāo)的數(shù)量。
9.如權(quán)利要求7或8所述的裝置,其特征在于,所述預(yù)測單元,具體用于: 通過下列公式預(yù)測所述第一視頻圖像中包括的目標(biāo)的數(shù)量:F'i,t=aFi,t+ (1-α )F' i,t-1 ; 其中,F(xiàn)' i,t為預(yù)測的攝像頭i采集的第一視頻圖像t中包括的所述目標(biāo)的數(shù)量,F(xiàn)' i,t-1為預(yù)測的攝像頭i采集的第二視頻圖像t-1中包括的所述目標(biāo)的數(shù)量,F(xiàn)i,t-1是實際檢測出的攝像頭i中采集的第二視頻圖像t-1中包括的所述目標(biāo)的數(shù)量,α為遺忘因子,0〈α〈1。
10.如權(quán)利要求7-9任一所述的裝置,其特征在于,所述確定單元,具體用于: 若預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量為整數(shù),則從預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系中查找所述整數(shù)對應(yīng)的檢測時間,將查找到的各個GPU對應(yīng)的檢測時間作為對應(yīng)GPU檢測所述第一視頻圖像的檢測時間; 若預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量為浮點數(shù),則確定大小最接近所述浮點數(shù)的兩個整數(shù),從預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系中查找確定出的兩個整數(shù)對應(yīng)的檢測時間,根據(jù)查找到的各個GPU對應(yīng)的兩個檢測時間使用線性插值法得到對應(yīng)GPU檢測所述第一視頻圖像的檢測時間。
11.如權(quán)利要求7-10任一所述的裝置,其特征在于,所述收發(fā)單元,具體用于: 計算各個GPU的總檢測時間; 將總檢查時間最短的GPU的標(biāo)識ID信息與所述攝像頭關(guān)聯(lián); 將所述第一視頻圖像發(fā)送給與所述攝像頭關(guān)聯(lián)的GPU的ID信息所標(biāo)識的GPU進(jìn)行目標(biāo)檢測。
12.—種服務(wù)器,其特征在于,包括: 處理器,用于獲取多路視頻檢測系統(tǒng)中的攝像頭采集的第一視頻圖像;根據(jù)從第二視頻圖像中預(yù)測出的目標(biāo)的數(shù)量和實際檢測出的目標(biāo)的數(shù)量,預(yù)測所述第一視頻圖像中包括的目標(biāo)的數(shù)量,所述第二視頻圖像是所述攝像頭在所述第一視頻圖像之前采集到的;根據(jù)預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系、以及預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量,確定所述多路視頻檢測系統(tǒng)中各個圖形處理器GPU檢測所述第一視頻圖像的檢測時間; 收發(fā)器,用于將總檢測時間最短的GPU確定為檢測所述第一視頻圖像的GPU,并將所述第一視頻圖像發(fā)送給確定出的GPU進(jìn)行目標(biāo)檢測,每個所述GPU的總檢測時間是該GPU檢測自身已接收且未完成檢測的視頻圖像和檢測所述第一視頻圖像的檢測時間之和。
13.如權(quán)利要求12所述的服務(wù)器,其特征在于,所述處理器,具體用于: 通過下列公式預(yù)測所述第一視頻圖像中包括的目標(biāo)的數(shù)量:F' U=CiFi^+ (1-α )F' i,t-1 ; 其中,F(xiàn)' i,t為預(yù)測的攝像頭i采集的第一視頻圖像t中包括的所述目標(biāo)的數(shù)量,F(xiàn)' 為預(yù)測的攝像頭i采集的第二視頻圖像t-Ι中包括的所述目標(biāo)的數(shù)量,F(xiàn)i^1是實際檢測出的攝像頭i中采集的第二視頻圖像t-Ι中包括的所述目標(biāo)的數(shù)量,α為遺忘因子,0〈α〈1。
14.如權(quán)利要求12或13所述的服務(wù)器,其特征在于,所述處理器,具體用于: 若預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量為整數(shù),則從預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系中查找所述整數(shù)對應(yīng)的檢測時間,將查找到的各個GPU對應(yīng)的檢測時間作為對應(yīng)GPU檢測所述第一視頻圖像的檢測時間; 若預(yù)測出的所述第一視頻圖像中包括的目標(biāo)的數(shù)量為浮點數(shù),則確定大小最接近所述浮點數(shù)的兩個整數(shù),從預(yù)置的目標(biāo)數(shù)量與檢測時間的對應(yīng)關(guān)系中查找確定出的兩個整數(shù)對應(yīng)的檢測時間,根據(jù)查找到的各個GPU對應(yīng)的兩個檢測時間使用線性插值法得到對應(yīng)GPU檢測所述第一視頻圖像的檢測時間。
【文檔編號】G06K9/00GK103646235SQ201310603859
【公開日】2014年3月19日 申請日期:2013年11月25日 優(yōu)先權(quán)日:2013年11月25日
【發(fā)明者】聶雪軍, 胡敏, 郭志建 申請人:華為技術(shù)有限公司