馮亞洲,岳 東
(南京郵電大學(xué) 先進(jìn)技術(shù)研究院,江蘇 南京 210023)
電力視頻大數(shù)據(jù)分布式檢索系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
馮亞洲,岳 東
(南京郵電大學(xué) 先進(jìn)技術(shù)研究院,江蘇 南京 210023)
隨著智能電網(wǎng)的迅速發(fā)展和逐漸完善,海量的電力視頻大數(shù)據(jù)每時(shí)每刻都在產(chǎn)生,電力行業(yè)對(duì)視頻處理也提出了更高的要求。云計(jì)算平臺(tái)Hadoop具有海量數(shù)據(jù)存儲(chǔ)和運(yùn)算、高可靠性、高拓展性等特點(diǎn),為解決電力視頻大數(shù)據(jù)的檢索問題提供了新的研究思路。在介紹平臺(tái)環(huán)境之后,著重闡述了整個(gè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。以Hadoop大數(shù)據(jù)平臺(tái)為基礎(chǔ),將視頻文件存儲(chǔ)在HDFS中,利用FFmpeg進(jìn)行解碼,輔之以O(shè)penCV函數(shù)庫(kù)進(jìn)行視頻幀的特征提取,使用直方圖法在MapReduce計(jì)算框架上實(shí)現(xiàn)關(guān)鍵幀的提取。最后基于Lucene實(shí)現(xiàn)關(guān)鍵幀的索引,系統(tǒng)將檢索結(jié)果通過Web檢索界面呈現(xiàn)給用戶。設(shè)計(jì)并實(shí)現(xiàn)的基于Hadoop的電力視頻大數(shù)據(jù)檢索系統(tǒng),能夠容納海量電力視頻大數(shù)據(jù)的存儲(chǔ)和運(yùn)算,并且能夠?qū)崿F(xiàn)電力視頻大數(shù)據(jù)的快速檢索。
電力視頻大數(shù)據(jù);視頻檢索;Hadoop;OpenCV;Lucene
隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展以及互聯(lián)網(wǎng)科技的普遍應(yīng)用,每天都會(huì)產(chǎn)生大量的以圖片和視頻等形式表現(xiàn)的多媒體數(shù)據(jù)。在電力行業(yè)應(yīng)用中,輸變電狀態(tài)監(jiān)測(cè)、智能營(yíng)業(yè)廳、各類機(jī)房等都對(duì)視頻系統(tǒng)提出了更高要求。傳統(tǒng)的檢索系統(tǒng)由于緩慢的檢索速度、有限的可擴(kuò)展性、無法實(shí)現(xiàn)實(shí)時(shí)性和較差的穩(wěn)定性等問題,已經(jīng)無法滿足人們?cè)絹碓綇?fù)雜多樣的要求[1]?,F(xiàn)有的視頻檢索主要借用基于文本數(shù)據(jù)庫(kù)的檢索方法,檢索過程中會(huì)消耗大量的CPU資源。
云計(jì)算具有分布式、并行處理能力,可以將任務(wù)分配到各個(gè)工作節(jié)點(diǎn)同時(shí)完成任務(wù),為輸電線路電力視頻檢索提供一種全新的研究思路[2]。Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS)是一個(gè)可擴(kuò)展的分布式文件存儲(chǔ)系統(tǒng),可以在廉價(jià)的普通硬件上運(yùn)行。盡管大多數(shù)的技術(shù)人員并不了解系統(tǒng)底層的詳細(xì)信息,但是Map/Reduce函數(shù)可以很容易地實(shí)現(xiàn)大規(guī)模數(shù)據(jù)的并行處理和計(jì)算,具有高可靠性、高擴(kuò)展性、高效性以及高容錯(cuò)性等優(yōu)點(diǎn),在大規(guī)模數(shù)據(jù)處理領(lǐng)域得到了廣泛應(yīng)用。
1.1 硬 件
文中的檢索原型開發(fā)及運(yùn)行等都是在大數(shù)據(jù)實(shí)驗(yàn)中心的硬件環(huán)境下進(jìn)行,目前大數(shù)據(jù)研究中心擁有數(shù)十臺(tái)高檔機(jī)架式服務(wù)器、專業(yè)GPN圖像處理服務(wù)器等專業(yè)大數(shù)據(jù)存儲(chǔ)和處理設(shè)備,構(gòu)建了基礎(chǔ)處理平臺(tái)以及面向互聯(lián)網(wǎng)、電力、教育科研、交通安防及過程控制等實(shí)驗(yàn)環(huán)境。表1為大數(shù)據(jù)研究中心設(shè)備數(shù)量及配置匯總。
表1 大數(shù)據(jù)研究中心設(shè)備數(shù)量及配置匯總
1.2 軟 件
OpenCV是一個(gè)用于圖像處理、分析、機(jī)器視覺方面的開源函數(shù)庫(kù)。采用的編寫語(yǔ)言是C及C++,可以在Windows、Linux、mac OSX系統(tǒng)上運(yùn)行[3]。因?yàn)樗鼘W⒂谠O(shè)計(jì)成為一種用于實(shí)時(shí)系統(tǒng)的開源庫(kù),所以該庫(kù)的所有代碼都是經(jīng)過優(yōu)化的,并且計(jì)算效率很高。OpenCV擁有豐富的函數(shù),可調(diào)用的API(應(yīng)用程序編程接口)有500多個(gè),在物體識(shí)別、圖像分割、立體視覺、機(jī)器人和運(yùn)動(dòng)分析等計(jì)算機(jī)視覺和圖像處理領(lǐng)域應(yīng)用廣泛[4]。由于機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺密切相關(guān),OpenCV也提供了機(jī)器學(xué)習(xí)庫(kù)(Machine Learning Library,MLL)。
OpenCV主體分為四個(gè)模塊,分別包含不同的算法、函數(shù)或者執(zhí)行工具。例如,CV模塊包含了圖像處理方法和計(jì)算機(jī)視覺算法;MLL作為機(jī)器學(xué)習(xí)庫(kù),包含聚類等工具;HighGUI包含圖像和視頻讀寫、處理等函數(shù);CXCore提供了所有OpenCV運(yùn)行時(shí)的一些最基本的數(shù)據(jù)結(jié)構(gòu)和出錯(cuò)處理的基本函數(shù)[5]。
Hadoop分布式計(jì)算平臺(tái)以HDFS和MapReduce(Google MapReduce的開源實(shí)現(xiàn))為核心。一個(gè)HDFS集群擁有一個(gè)主節(jié)點(diǎn)(NameNode)和若干個(gè)從節(jié)點(diǎn)(DataNode)。NameNode作為文件系統(tǒng)的管理者,管理文件系統(tǒng)的元數(shù)據(jù),包括命名空間、集群配置信息和存儲(chǔ)塊的復(fù)制等;DataNode是文件存儲(chǔ)的基本單元,周期性地將存儲(chǔ)的Block信息發(fā)送給NameNode[6]。MapReduce框架采用Master/Slave結(jié)構(gòu),包含一個(gè)JobTracker和若干個(gè)TaskTracker。主節(jié)點(diǎn)作為任務(wù)節(jié)點(diǎn)管理調(diào)度每一個(gè)分配到作業(yè)中的任務(wù),并且能夠重新安排之前失敗的任務(wù);從節(jié)點(diǎn)作為工作節(jié)點(diǎn)完成分配到的任務(wù),并且TaskTracker必須與DataNode部署在同一臺(tái)計(jì)算機(jī)上[7-8]。
可以看出,HDFS和MapReduce是Hadoop分布式系統(tǒng)體系結(jié)構(gòu)的核心。HDFS作為存儲(chǔ)基礎(chǔ)提供海量的數(shù)據(jù)存儲(chǔ),MapReduce作為處理引擎對(duì)海量數(shù)據(jù)進(jìn)行分布式計(jì)算處理。MapReduce在HDFS提供的文件操作和存儲(chǔ)等支持下進(jìn)行任務(wù)處理,HDFS在MapReduce完成任務(wù)的調(diào)度、監(jiān)控、執(zhí)行等工作過程中構(gòu)建分布式系統(tǒng)的基礎(chǔ),二者相互作用,完成了Hadoop分布式集群的主要任務(wù),將系統(tǒng)底層細(xì)節(jié)透明的分布式基礎(chǔ)架構(gòu)呈現(xiàn)在用戶眼前[9]。
2.1 關(guān)鍵幀提取
視頻由于其本身“非結(jié)構(gòu)化”的特點(diǎn),在對(duì)其進(jìn)行分析和檢索之前,首先要對(duì)其進(jìn)行結(jié)構(gòu)層次的描述和組織,將其劃分成相互獨(dú)立的視頻片段并選取合適的關(guān)鍵幀。視頻結(jié)構(gòu)化就是把一個(gè)連續(xù)視頻流按照其內(nèi)容展開的不同,分成若干語(yǔ)義段落單元[10]。視頻的層次結(jié)構(gòu)自頂而下分成視頻(Video)、場(chǎng)景(Scene)、鏡頭(Shot)以及幀(Frame),其粒度越來越精細(xì)[11]。
該系統(tǒng)采用X2直方圖法提取關(guān)鍵幀,用式(1)計(jì)算兩視頻幀圖像間的距離:
(1)
2.2 基于Hadoop平臺(tái)分布式關(guān)鍵幀提取
在Hadoop平臺(tái)中,HDFS作為分布式文件系統(tǒng)可以存儲(chǔ)任何種類的大數(shù)據(jù),而Map/Reduce計(jì)算框架可以滿足并行運(yùn)算的要求。因此文中采用以HDFS為基礎(chǔ)的視頻大數(shù)據(jù)存儲(chǔ)平臺(tái),利用Map/Reduce計(jì)算框架進(jìn)行視頻關(guān)鍵幀提取。
提取技術(shù)方案如下所述:
HDFS存儲(chǔ)視頻數(shù)據(jù):HDFS采用冗余備份的策略保證了分布式文件系統(tǒng)的安全性,非常適合大數(shù)據(jù)文件的存儲(chǔ)[12]。數(shù)據(jù)在上傳到HDFS的過程中,HDFS會(huì)根據(jù)用戶置頂?shù)腂lock的大小(默認(rèn)64 M)自動(dòng)對(duì)其進(jìn)行分割處理。在均衡整個(gè)系統(tǒng)負(fù)載的情況下,均勻地將數(shù)據(jù)分布存儲(chǔ)到集群中的DataNode。
分布式關(guān)鍵幀提?。豪肍Fmpeg第三方解碼庫(kù)[13],實(shí)現(xiàn)視頻文件的分割,進(jìn)而將分割后的文件傳送到多臺(tái)計(jì)算節(jié)點(diǎn)上進(jìn)行分布式的關(guān)鍵幀提取,最后將提取到的關(guān)鍵幀存儲(chǔ)在HDFS上。
分布式提取流程如圖1所示。
圖1 分布式視頻關(guān)鍵幀提取
2.3 基于Lucene的視頻檢索
Lucene是一個(gè)高效、技術(shù)成熟的全文檢索工具包,提供完整的查詢引擎和索引引擎。具有如下幾個(gè)優(yōu)點(diǎn):
(1)Lucene定義了一個(gè)特殊的索引文件格式,該格式獨(dú)立于應(yīng)用平臺(tái)。
(2)設(shè)計(jì)了獨(dú)立于語(yǔ)言和文件格式的文本分析接口,用戶只需要實(shí)現(xiàn)文本分析的接口就可以擴(kuò)展新的語(yǔ)言和文件格式。
(3)Lucene的設(shè)計(jì)者已經(jīng)默認(rèn)實(shí)現(xiàn)了一套強(qiáng)大的查詢引擎,用戶不需要編寫大段代碼就可以獲得Lucene的搜索能力[14]。
優(yōu)秀的面向?qū)ο笤O(shè)計(jì)的系統(tǒng)框架,而且獨(dú)立于應(yīng)用系統(tǒng)的特點(diǎn)大大降低了Lucene的耦合度,可以使用戶方便地?cái)U(kuò)展新功能,很輕松地將Lucene嵌入到實(shí)際應(yīng)用中以實(shí)現(xiàn)全文檢索功能。
Lucene系統(tǒng)的結(jié)構(gòu)組織圖及各個(gè)模塊所屬的系統(tǒng)部分如圖2所示。Lucene將所有的源代碼分成7個(gè)主要模塊。其中,索引核心主要用于操作索引的創(chuàng)建與維護(hù)[15]。
圖2 Lucene系統(tǒng)的結(jié)構(gòu)組織圖
3.1 原型系統(tǒng)框架圖
體系架構(gòu)如圖3所示。
圖3 原型系統(tǒng)框架圖
系統(tǒng)是在Hadoop平臺(tái)的支持下完成,HDFS平臺(tái)在存儲(chǔ)海量視頻數(shù)據(jù)中起到了重要作用。大量的原始視頻數(shù)據(jù)存儲(chǔ)在HDFS平臺(tái)上,構(gòu)成視頻檢索的視頻庫(kù),用戶搜索的視頻都在這個(gè)視頻庫(kù)中產(chǎn)生。
有了原始數(shù)據(jù),系統(tǒng)將對(duì)其進(jìn)行處理。系統(tǒng)將原始視頻分成不同的視頻片段,并且利用OpenCV視覺庫(kù)和直方圖算法提取出能代表該視頻的關(guān)鍵幀,并存儲(chǔ)在HDFS平臺(tái)上。關(guān)鍵幀的提取將直接關(guān)系到用戶檢索的質(zhì)量,因此這一步相當(dāng)重要,這也是整個(gè)系統(tǒng)最關(guān)鍵的一步。視頻關(guān)鍵幀即一幅幅圖片,而且相對(duì)于海量的原始數(shù)據(jù),關(guān)鍵幀大大提高了檢索效率,且檢索精度也令人滿意。
存儲(chǔ)在HDFS平臺(tái)上的關(guān)鍵幀既與原始視頻片段形成一一對(duì)應(yīng)的關(guān)系,又在時(shí)刻等待著示例圖片的輸入,等待著被索引。關(guān)鍵幀索引的方法有很多,該系統(tǒng)利用LIRE圖像檢索系統(tǒng)建立視頻關(guān)鍵幀索引,用戶通過該索引搜索相似的圖像,從而定位到相似圖片的對(duì)應(yīng)視頻。
3.2 Web檢索界面介紹
首先是系統(tǒng)首頁(yè),“以圖搜視頻”是檢索系統(tǒng)名稱。從這個(gè)首頁(yè)及名稱可知,要完成視頻檢索,用戶需要提供示例圖片,這對(duì)提高檢索效率和檢索精度都起到了至關(guān)重要的作用。在這個(gè)界面,用戶上傳示例圖片,系統(tǒng)將搜索包含與示例圖片類似、相像的視頻幀的視頻片段。
系統(tǒng)的第二個(gè)界面是搜索結(jié)果返回頁(yè),如圖4所示。該界面除了顯示用戶上傳的示例圖片,大部分界面顯示與用戶上傳示例圖片相關(guān)的視頻關(guān)鍵幀。這些關(guān)鍵幀按照與示例圖片相關(guān)程度由高到低的順序排列,在本頁(yè)用戶就可以觀察出哪些關(guān)鍵幀符合用戶的主觀意志,即哪段視頻是用戶想要得到的。
圖4 檢索結(jié)果頁(yè)
當(dāng)用戶選擇了與輸入示例圖片最為相似的視頻關(guān)鍵幀,系統(tǒng)將顯示第三個(gè)界面—視頻展示頁(yè),即包含用戶選擇的視頻關(guān)鍵幀的視頻片段。這個(gè)界面包含了與用戶輸入示例圖像相關(guān)的視頻信息,包括該段視頻的HDFS文件路徑,并且用戶可以直接從這個(gè)界面下載得到與輸入圖像相關(guān)的視頻片段,如圖5所示。
圖5 視頻展示頁(yè)
傳統(tǒng)的視頻檢索方法已經(jīng)不能滿足電力行業(yè)對(duì)電力視頻大數(shù)據(jù)檢索的需求。文中設(shè)計(jì)并實(shí)現(xiàn)的電力數(shù)據(jù)環(huán)境下的視頻檢索原型系統(tǒng),以Hadoop大數(shù)據(jù)平臺(tái)
為基礎(chǔ),充分利用HDFS分布式存儲(chǔ)以及MapReduce并行計(jì)算框架的特點(diǎn)完成檢索任務(wù)。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)能夠?qū)崿F(xiàn)電力視頻大數(shù)據(jù)的快速檢索,并且檢索質(zhì)量較高,能夠達(dá)到傳統(tǒng)檢索方法無法達(dá)到的效果。為了能更好地實(shí)現(xiàn)檢索系統(tǒng)的高效性、實(shí)時(shí)性,在以后的工作中,需要從Hadoop大數(shù)據(jù)平臺(tái)運(yùn)行機(jī)制出發(fā),重點(diǎn)解決如何更加有效地提高檢索效率的問題。
[1] 王 梅,朱信忠,趙建民,等.基于Hadoop的海量圖像檢索系統(tǒng)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013,23(1):204-208.
[2] 范 敏,徐勝才.基于Hadoop的海量醫(yī)學(xué)圖像檢索系統(tǒng)[J].計(jì)算機(jī)應(yīng)用,2013,33(12):3345-3349.
[3] 劉永勤,袁 衛(wèi).基于CortexM3自動(dòng)追蹤系統(tǒng)的實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2014,42(6):1068-1070.
[4] 王 燕,曹銀杰,郎豐法,等.基于Emgu CV的數(shù)字相機(jī)圖像采集[J].電子科技,2012,25(4):31-32.
[5] Bradski G,Kaehler A.學(xué)習(xí)OpenCV[M].于仕琪,劉瑞禎,譯.北京:科學(xué)出版社,2008.
[6] 萬川梅,張 莉.大數(shù)據(jù)存儲(chǔ)技術(shù)標(biāo)準(zhǔn)化的探討[J].數(shù)字技術(shù)與應(yīng)用,2014(1):222.
[7] Zhang J,Liu X L,Luo J W,et al.DIRS:distributed image retrieval system based on MapReduce[C]//Proceedings of the 5th international conference on pervasive computing and applications.Piscataway:IEEE,2010:93-98.
[8] Pal A,Agrawal P,Jain K,et al.A performance analysis of MapReduce task with large number of files dataset in big data using Hadoop[C]//2014 fourth international conference on communication systems and network technologies.[s.l.]:IEEE,2014:587-591.
[9] 張學(xué)亮,陳金勇,陳 勇.基于Hadoop云計(jì)算平臺(tái)的海量文本處理研究[J].無線電通信技術(shù),2014,40(1):54-57.
[10] 雷少帥.基于內(nèi)容的視頻檢索關(guān)鍵技術(shù)研究[D].太原:太原理工大學(xué),2012.
[11] Sze K W,Lam K M,Qiu G P.A new key frame representation for video segment retrieval[J].IEEE Transactions on Circuits and Systems for Video Technology,2005,15(9):1148-1155.
[12] 金松昌.基于HDFS的多用戶并行文件IO的設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2010.
[13] Lei Xiaohua,Jiang Xiuhua,Wang Caihong.Design and implementation of a real-time video stream analysis system based on FFMPEG[C]//2013 fourth world congress on software engineering.[s.l.]:IEEE,2013:212-216.
[14] 張建軍,王劍霞.淺談Lucene在號(hào)百搜索引擎系統(tǒng)中的集成[J].科技資訊,2012(21):12.
[15] 李永春,丁華福.Lucene的全文檢索的研究與應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010,20(2):12-15.
Design and Implementation of Distributed Retrieval System for Massive Power Video
FENG Ya-zhou,YUE Dong
(Institute of Advanced Technology,Nanjing University of Posts and Telecommunications,Nanjing 210023,China)
With the rapid development and gradually perfection of smart grids,massive power video is being produced all the time,and the power industries are also requested higher demand for video processing.Hadoop as a cloud computing platform,has great advantage of mass data storage and computing,high reliability and high expansibility,which provides a new research idea to solve the problem of massive power video retrieval.After introducing platform environment,it mainly focuses on the design and implementation of the whole system.Based on the Hadoop big data platform,the video files is stored in HDFS.The system decodes with FFmpeg and extracts key frames with MapReduce and OpenCV function library.At last,the system presents the retrieval result to users through the Web retrieval interface after the index of key frames based on Lucene.The system introduced can store and operate massive power video,realizing quick retrieval of that.
massive power video;video retrieval;Hadoop;OpenCV;Lucene
2015-11-10
2016-03-16
時(shí)間:2016-11-21
國(guó)家自然科學(xué)基金資助項(xiàng)目(51507084)
馮亞洲(1992-),男,碩士研究生,研究方向?yàn)殡娏Υ髷?shù)據(jù)的視頻檢索;岳 東,教授,博士生導(dǎo)師,長(zhǎng)江學(xué)者,研究方向?yàn)橹悄茈娋W(wǎng)大數(shù)據(jù)分析與協(xié)調(diào)控制、復(fù)雜系統(tǒng)與多智能體理論等。
http://www.cnki.net/kcms/detail/61.1450.TP.20161121.1633.014.html
TP302
A
1673-629X(2016)12-0186-04
10.3969/j.issn.1673-629X.2016.12.040