基于MapReduce計(jì)算模型的分布式運(yùn)動(dòng)目標(biāo)檢測(cè)方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種基于MapReduce計(jì)算模型的分布式運(yùn)動(dòng)目標(biāo)檢測(cè)方法,本發(fā)明以MapReduce計(jì)算模型為基礎(chǔ),以分布式計(jì)算的方式進(jìn)行三幀差分法的計(jì)算,將圖像的分析任務(wù)分發(fā)到對(duì)計(jì)算配置要求不高的多個(gè)節(jié)點(diǎn)上同時(shí)進(jìn)行。這樣即節(jié)約了分析計(jì)算的硬件成本,也解決了因設(shè)置時(shí)間間隔較小、需要計(jì)算的圖像過(guò)多而造成的效率降低問(wèn)題。
【專(zhuān)利說(shuō)明】基于MapReduce計(jì)算模型的分布式運(yùn)動(dòng)目標(biāo)檢測(cè)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)視覺(jué)領(lǐng)域,涉及基于MapReduce計(jì)算模型的一種分布式運(yùn)動(dòng)目標(biāo)檢測(cè)方法,適用于快速運(yùn)動(dòng)目標(biāo)檢測(cè)的范疇。
【背景技術(shù)】
[0002]在計(jì)算機(jī)視覺(jué)領(lǐng)域,基于動(dòng)態(tài)圖像序列的運(yùn)動(dòng)目標(biāo)檢測(cè)是一個(gè)非?;钴S的研究方向,大量有意義的視覺(jué)信息會(huì)包含在運(yùn)動(dòng)之中,研究運(yùn)動(dòng)目標(biāo)的檢測(cè)有很大的現(xiàn)實(shí)意義和應(yīng)用價(jià)值。幀間差分法是運(yùn)動(dòng)目標(biāo)檢測(cè)基本的方法之一,將視頻理解為圖像序列,相鄰幀之間差分后非零像素被認(rèn)為是運(yùn)動(dòng)對(duì)象造成,從而形成前景區(qū)域。這種方法對(duì)于動(dòng)態(tài)環(huán)境有較強(qiáng)的自適應(yīng)能力,并且實(shí)現(xiàn)邏輯簡(jiǎn)單,穩(wěn)定性較好。差分處理的前后幀并不一定是連續(xù)時(shí)序的視頻圖像,通過(guò)設(shè)置固定時(shí)間間隔來(lái)選取進(jìn)行差分處理的幀。對(duì)于運(yùn)動(dòng)過(guò)快的檢測(cè)目標(biāo),如果時(shí)間間隔設(shè)置過(guò)大,同一目標(biāo)在前后兩幀中沒(méi)有重疊,會(huì)被檢測(cè)為兩個(gè)獨(dú)立的目標(biāo)。但是設(shè)置過(guò)小的時(shí)間間隔會(huì)導(dǎo)致需要處理的圖像數(shù)據(jù)過(guò)大。目前大多數(shù)幀間差分法是以串行處理圖像幀的方式進(jìn)行分析的,幀數(shù)增加勢(shì)必加大計(jì)算量影響效率。
[0003]目前解決上述問(wèn)題的方法大致分為兩種:一種是在可以容忍的范圍內(nèi)最大程度增大時(shí)間間隔,但是依然無(wú)法避免對(duì)運(yùn)動(dòng)速度過(guò)快的目標(biāo)檢測(cè)的失誤,而且檢測(cè)失誤對(duì)后續(xù)監(jiān)控處理造成的損失是無(wú)法預(yù)計(jì)的;一種是單方面提高計(jì)算機(jī)硬件配置,來(lái)迎合計(jì)算量不斷增加的需要。但隨著監(jiān)控視頻畫(huà)質(zhì)的不斷提高計(jì)算量也會(huì)不斷提高,無(wú)限制的擴(kuò)展硬件配置去滿(mǎn)足計(jì)算需要是不現(xiàn)實(shí)的。
[0004]所以,有必要提出一種新的技術(shù)方案,在有限硬件配置的情況下提高快速運(yùn)動(dòng)目標(biāo)檢測(cè)的分析效率。
【發(fā)明內(nèi)容】
[0005]發(fā)明目的:針對(duì)檢測(cè)目標(biāo)運(yùn)動(dòng)快速出現(xiàn)的上述問(wèn)題,本發(fā)明使用MapReduce計(jì)算模型對(duì)三幀差分進(jìn)行分布式運(yùn)算,以便在有限硬件環(huán)境下提高該運(yùn)動(dòng)目標(biāo)檢測(cè)方法的分析效率,以適應(yīng)圖像幀頻不斷提高的需要。
[0006]具體包括如下步驟:
[0007](I)上傳待分析的視頻并進(jìn)行保存,以自定義時(shí)間間隔將視頻分解為視頻幀序列,為后續(xù)分析提供數(shù)據(jù);
[0008]上傳的視頻文件是視頻分析的數(shù)據(jù)源,將存放路徑作為輸入?yún)?shù)傳給分片處理邏輯,處理邏輯循環(huán)讀取視頻文件,并按照設(shè)置的時(shí)間間隔獲得一幀幀視頻圖像,獲得的每個(gè)視頻圖像對(duì)應(yīng)一個(gè)時(shí)間戳(精度到毫秒,根據(jù)實(shí)際需要還可以更小),并將對(duì)應(yīng)關(guān)系存儲(chǔ)到HBase數(shù)據(jù)庫(kù)中,方便后續(xù)分析讀??;
[0009](2)首先進(jìn)行視頻幀的差分二值化處理。將視頻幀序列中每?jī)蓭鳛椴罘钟?jì)算因子的輸入值傳入;
[0010]“差分二值化”計(jì)算因子需要傳入兩幀視頻圖像進(jìn)行分析,在HBase數(shù)據(jù)庫(kù)中每幀圖像和按照時(shí)間戳排序的下幀圖像共同作為一個(gè)Map節(jié)點(diǎn)的輸入,Map的輸入格式固定為key/value鍵值對(duì),這里key為圖像對(duì)應(yīng)時(shí)間戳,value為圖像內(nèi)容;Map用于對(duì)相鄰兩幀圖像進(jìn)行灰度差分和二值化的處理,生成結(jié)果圖像與輸入的兩幀時(shí)間戳分別對(duì)應(yīng)再存于HBase數(shù)據(jù)庫(kù);
[0011]計(jì)算時(shí)會(huì)有多個(gè)Map節(jié)點(diǎn)共同進(jìn)行,系統(tǒng)監(jiān)控每個(gè)節(jié)點(diǎn)的完成情況,當(dāng)出現(xiàn)閑置節(jié)點(diǎn)時(shí),從最后處理的視頻圖像幀開(kāi)始,按照上述邏輯獲得輸入值繼續(xù)節(jié)點(diǎn)計(jì)算;
[0012](3)每三個(gè)計(jì)算結(jié)果圖像進(jìn)行邏輯與的處理;上一步的計(jì)算結(jié)果圖像以時(shí)序排列,每三個(gè)為一組作為下個(gè)計(jì)算因子“邏輯與”的輸入進(jìn)行處理;
[0013]從數(shù)據(jù)庫(kù)HBase中獲得時(shí)間戳相同的差分二值化圖像,并作為Reduce節(jié)點(diǎn)的輸入進(jìn)行圖像像素點(diǎn)的邏輯與處理,處理結(jié)果再與時(shí)間戳對(duì)應(yīng)存入數(shù)據(jù)庫(kù),為最后生成視頻輸出提供數(shù)據(jù);
[0014]與Map相同,Reduce節(jié)點(diǎn)也為多個(gè)共同進(jìn)行,系統(tǒng)實(shí)時(shí)監(jiān)控并分配下一個(gè)任務(wù)給每個(gè)Reduce處理節(jié)點(diǎn),直至視頻分析結(jié)束;
[0015](4)將多個(gè)“邏輯與”計(jì)算因子的輸出結(jié)果圖像以時(shí)間順序進(jìn)行合并,最終檢測(cè)得到快速運(yùn)動(dòng)目標(biāo)的視頻輸出;
[0016](5)將Reduce節(jié)點(diǎn)輸出的圖像幀以對(duì)應(yīng)時(shí)間戳為順序進(jìn)行視頻播放,即得到檢測(cè)后的視頻結(jié)果。
[0017]相對(duì)于現(xiàn)有的方式,本發(fā)明具有如下有益效果:
[0018]本發(fā)明以MapReduce計(jì)算模型為基礎(chǔ),以分布式計(jì)算的方式進(jìn)行三幀差分法的計(jì)算,將圖像的分析任務(wù)分發(fā)到對(duì)計(jì)算配置要求不高的多個(gè)節(jié)點(diǎn)上同時(shí)進(jìn)行。這樣即節(jié)約了分析計(jì)算的硬件成本,也解決了因設(shè)置時(shí)間間隔較小、需要計(jì)算的圖像過(guò)多而造成的效率降低問(wèn)題。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0019]圖1:方法過(guò)程說(shuō)明圖
[0020]圖2:方法整體過(guò)程流程圖
【具體實(shí)施方式】
[0021]下面結(jié)合具體實(shí)施例和附圖進(jìn)一步詳細(xì)說(shuō)明,應(yīng)理解這些實(shí)施例僅用于說(shuō)明本發(fā)明而不用于限制本發(fā)明的范圍,閱讀本發(fā)明后,本領(lǐng)域技術(shù)人員對(duì)發(fā)明的各種等價(jià)形式的修改均落于本申請(qǐng)所得權(quán)利要求所限定的范圍。
[0022]如圖2所示,本發(fā)明提供了一種基于MapReduce計(jì)算模型的分布式運(yùn)動(dòng)目標(biāo)檢測(cè)方法,具體包括如下步驟:
[0023]1.上傳待處理視頻文件。將視頻文件放在UNIX/LINUX系統(tǒng)某一指定路徑下,路徑將作為FileInputFormat類(lèi)中inputPaths屬性的初始值,以便程序查找到視頻文件并進(jìn)行數(shù)據(jù)拆分;
[0024]2.進(jìn)行輸入視頻數(shù)據(jù)拆分。InputFormatO方法會(huì)根據(jù)輸入格式調(diào)用RecordReader對(duì)象進(jìn)行數(shù)據(jù)拆分。繼承FileInputFormat類(lèi)定義圖像輸入格式〈key,value〉,其中key是圖像巾貞在時(shí)序中的唯一序號(hào)(時(shí)間戳),value是視頻圖像巾貞的信息。再實(shí)現(xiàn)RecordReader類(lèi)中nextKeyValue O方法,依次讀取圖像巾貞序列中未讀取過(guò)的巾貞信息,信息按照輸入格式保存為key/value形式;
[0025]3.兩兩視頻幀傳入給差分計(jì)算因子。假設(shè)執(zhí)行節(jié)點(diǎn)TaskTracker有η個(gè),調(diào)度節(jié)點(diǎn)JobTracker將η+1個(gè)輸入key/value相鄰為一組傳給Map進(jìn)行“差分二值化”的計(jì)算。η個(gè)TaskTracker節(jié)點(diǎn)同時(shí)進(jìn)行計(jì)算,節(jié)點(diǎn)JobTracker根據(jù)調(diào)度機(jī)制監(jiān)控每個(gè)節(jié)點(diǎn)的執(zhí)行情況,在某一節(jié)點(diǎn)執(zhí)行結(jié)束后,再分配下一個(gè)相鄰key/value給該節(jié)點(diǎn);
[0026]4.具體實(shí)現(xiàn)二值化處理的接口方法。實(shí)現(xiàn)Mapper接口中map O方法,該方法將輸入的連續(xù)兩幀圖像進(jìn)行差分計(jì)算生成灰度差分圖像,并對(duì)灰度差分圖像進(jìn)行二值化處理。處理后的圖像信息存放在傳入的兩個(gè)value中,作為下一步處理的輸入(其中開(kāi)始的一、二兩幀在處理結(jié)束后只將處理圖像放入第二幀的value中輸出);
[0027]5.合并二值化處理結(jié)果。將map輸出的key/value以key相同為條件進(jìn)行合并,合并后的信息作為ReduceO方法的輸入;
[0028]6.具體實(shí)現(xiàn)邏輯與處理的接口方法。實(shí)現(xiàn)Reducer接口中reduce O方法,該方法對(duì)輸入的value進(jìn)行遍歷獲得兩幀圖像信息(連續(xù)三幀視頻圖像兩兩處理后的圖像),再對(duì)兩幀圖像每一像素點(diǎn)進(jìn)行邏輯與運(yùn)算獲取共同部分,生成標(biāo)記出運(yùn)動(dòng)目標(biāo)輪廓的圖像,并存入傳入的value中輸出;
[0029]7.合并輸出處理結(jié)果,獲得檢測(cè)結(jié)果。實(shí)現(xiàn)OutputFormat O方法,將reduce O的輸出key/value以key值為順序,依次輸出對(duì)應(yīng)value中處理后的圖像,即實(shí)現(xiàn)了運(yùn)動(dòng)目標(biāo)檢測(cè)后的視頻輸出。
[0030]除上述實(shí)施例外,本發(fā)明還可以有其他實(shí)施方式,凡采用等同替換或等效變換形成的技術(shù)方案,均落在本發(fā)明要求的保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.基于MapReduce計(jì)算模型的分布式運(yùn)動(dòng)目標(biāo)檢測(cè)方法,其特征在于,包括以下步驟: (1)上傳待分析的視頻并進(jìn)行保存,以自定義時(shí)間間隔將視頻分解為視頻幀序列,為后續(xù)分析提供數(shù)據(jù); 上傳的視頻文件是視頻分析的數(shù)據(jù)源,將存放路徑作為輸入?yún)?shù)傳給分片處理邏輯,處理邏輯循環(huán)讀取視頻文件,并按照設(shè)置的時(shí)間間隔獲得一幀幀視頻圖像,獲得的每個(gè)視頻圖像對(duì)應(yīng)一個(gè)時(shí)間戳(精度到毫秒,根據(jù)實(shí)際需要還可以更小),并將對(duì)應(yīng)關(guān)系存儲(chǔ)到HBase數(shù)據(jù)庫(kù)中,方便后續(xù)分析讀??; (2)首先進(jìn)行視頻幀的差分二值化處理。將視頻幀序列中每?jī)蓭鳛椴罘钟?jì)算因子的輸入值傳入; “差分二值化”計(jì)算因子需要傳入兩幀視頻圖像進(jìn)行分析,在HBase數(shù)據(jù)庫(kù)中每幀圖像和按照時(shí)間戳排序的下幀圖像共同作為一個(gè)Map節(jié)點(diǎn)的輸入,Map的輸入格式固定為key/value鍵值對(duì),這里key為圖像對(duì)應(yīng)時(shí)間戳,value為圖像內(nèi)容;Map用于對(duì)相鄰兩巾貞圖像進(jìn)行灰度差分和二值化的處理,生成結(jié)果圖像與輸入的兩幀時(shí)間戳分別對(duì)應(yīng)再存于HBase數(shù)據(jù)庫(kù); 計(jì)算時(shí)會(huì)有多個(gè)Map節(jié)點(diǎn)共同進(jìn)行,系統(tǒng)監(jiān)控每個(gè)節(jié)點(diǎn)的完成情況,當(dāng)出現(xiàn)閑置節(jié)點(diǎn)時(shí),從最后處理的視頻圖像幀開(kāi)始,按照上述邏輯獲得輸入值繼續(xù)節(jié)點(diǎn)計(jì)算; (3)每三個(gè)計(jì)算結(jié)果圖像進(jìn)行邏輯與的處理;上一步的計(jì)算結(jié)果圖像以時(shí)序排列,每三個(gè)為一組作為下個(gè)計(jì)算因子“邏輯與”的輸入進(jìn)行處理; 從數(shù)據(jù)庫(kù)HBase中獲得時(shí)間戳相同的差分二值化圖像,并作為Reduce節(jié)點(diǎn)的輸入進(jìn)行圖像像素點(diǎn)的邏輯與處理,處理結(jié)果再與時(shí)間戳對(duì)應(yīng)存入數(shù)據(jù)庫(kù),為最后生成視頻輸出提供數(shù)據(jù); 與Map相同,Reduce節(jié)點(diǎn)也為多個(gè)共同進(jìn)行,系統(tǒng)實(shí)時(shí)監(jiān)控并分配下一個(gè)任務(wù)給每個(gè)Reduce處理節(jié)點(diǎn),直至視頻分析結(jié)束; (4)將多個(gè)“邏輯與”計(jì)算因子的輸出結(jié)果圖像以時(shí)間順序進(jìn)行合并,最終檢測(cè)得到快速運(yùn)動(dòng)目標(biāo)的視頻輸出; (5)將Reduce節(jié)點(diǎn)輸出的圖像幀以對(duì)應(yīng)時(shí)間戳為順序進(jìn)行視頻播放,即得到檢測(cè)后的視頻結(jié)果。
【文檔編號(hào)】G06K9/00GK103984926SQ201410208382
【公開(kāi)日】2014年8月13日 申請(qǐng)日期:2014年5月15日 優(yōu)先權(quán)日:2014年5月15日
【發(fā)明者】薛峰, 席屏 申請(qǐng)人:江蘇科大匯峰科技有限公司