本發(fā)明涉及分布式存儲(chǔ)技術(shù)領(lǐng)域,更具體地說(shuō),涉及一種基于Hadoop的圖像處理方法及系統(tǒng)。
背景技術(shù):
隨著技術(shù)的發(fā)展,在視頻監(jiān)控領(lǐng)域所產(chǎn)生的圖像越來(lái)越多,海量數(shù)據(jù)的產(chǎn)生對(duì)存儲(chǔ)及檢索造成了挑戰(zhàn)。目前,海量圖像的處理是通過(guò)傳統(tǒng)的集中存儲(chǔ)系統(tǒng),雖然集中型系統(tǒng)便于管理和易于操作,但其可擴(kuò)展性差、可靠性和安全性較低,且存儲(chǔ)速率低。因此,如何實(shí)現(xiàn)對(duì)大數(shù)據(jù)的處理,提高存儲(chǔ)速率是本領(lǐng)域技術(shù)人員需要解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種基于Hadoop的圖像處理方法及系統(tǒng),以實(shí)現(xiàn)對(duì)大數(shù)據(jù)的處理,提高存儲(chǔ)速率。
為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供了如下技術(shù)方案:
一種基于Hadoop的圖像處理方法,包括:
若檢測(cè)到本地緩存區(qū)中存在未上傳至分布式文件系統(tǒng)HDFS的圖像數(shù)據(jù),則調(diào)用數(shù)據(jù)流寫(xiě)入函數(shù)將未上傳的圖像數(shù)據(jù)以數(shù)據(jù)流的形式上傳至HDFS;
通過(guò)并行計(jì)算框架MapReduce確定所述未上傳的圖像數(shù)據(jù)的屬性信息,將所述屬性信息存入數(shù)據(jù)庫(kù)Hbase,并將所述未上傳的圖像數(shù)據(jù)存入硬件層。
其中,所述調(diào)用數(shù)據(jù)流寫(xiě)入函數(shù)將未上傳的圖像數(shù)據(jù)以數(shù)據(jù)流的形式上傳至HDFS之后,還包括:
所述HDFS調(diào)用文件刪除函數(shù),刪除本地緩存區(qū)中已上傳的圖像數(shù)據(jù)。
其中,本方案還包括:
通過(guò)所述MapReduce確定用戶(hù)觸發(fā)的檢索指令中攜帶的檢索特征信息,并將所述檢索特征信息與所述數(shù)據(jù)庫(kù)Hbase的屬性信息進(jìn)行匹配,并將匹配結(jié)果進(jìn)行顯示。
其中,將所述檢索特征信息與所述數(shù)據(jù)庫(kù)Hbase的屬性信息進(jìn)行匹配,并將匹配結(jié)果進(jìn)行顯示,包括:
將所述檢索特征信息與所述數(shù)據(jù)庫(kù)Hbase的屬性信息進(jìn)行匹配,得到與每個(gè)屬性信息對(duì)應(yīng)的匹配度,將匹配度最高的屬性信息作為匹配結(jié)果進(jìn)行顯示。
一種基于Hadoop的圖像處理系統(tǒng),包括:
分布式文件系統(tǒng)HDFS,用于檢測(cè)到本地緩存區(qū)中存在未上傳至HDFS的圖像數(shù)據(jù)時(shí),調(diào)用數(shù)據(jù)流寫(xiě)入函數(shù)將未上傳的圖像數(shù)據(jù)以數(shù)據(jù)流的形式上傳至HDFS;
并行計(jì)算框架MapReduce,用于確定所述未上傳的圖像數(shù)據(jù)的屬性信息;
數(shù)據(jù)庫(kù)Hbase,用于存儲(chǔ)所述屬性信息;
硬件層,用于存儲(chǔ)所述未上傳的圖像數(shù)據(jù)。
其中,所述HDFS還包括:
刪除模塊,用于將未上傳的圖像數(shù)據(jù)以數(shù)據(jù)流的形式上傳至HDFS之后,調(diào)用文件刪除函數(shù),刪除本地緩存區(qū)中已上傳的圖像數(shù)據(jù)。
其中,本方案還包括:
業(yè)務(wù)邏輯層,用于提取圖像數(shù)據(jù)的類(lèi)型信息,并將所述類(lèi)型信息添加至屬性信息,所述類(lèi)型信息包括視頻類(lèi)型信息或者圖片類(lèi)型信息。
其中,本方案還包括:
用戶(hù)接口層,用于接收用戶(hù)觸發(fā)的查詢(xún)指令;
所述MapReduce還包括:
檢索模塊,用于確定用戶(hù)觸發(fā)的檢索指令中攜帶的檢索特征信息,并將所述檢索特征信息與所述數(shù)據(jù)庫(kù)Hbase的屬性信息進(jìn)行匹配,并將匹配結(jié)果通過(guò)所述用戶(hù)接口層進(jìn)行顯示。
其中,所述檢索模塊將所述檢索特征信息與所述數(shù)據(jù)庫(kù)Hbase的屬性信息進(jìn)行匹配,得到與每個(gè)屬性信息對(duì)應(yīng)的匹配度,將匹配度最高的屬性信息作為匹配結(jié)果通過(guò)所述用戶(hù)接口層進(jìn)行顯示。
通過(guò)以上方案可知,本發(fā)明實(shí)施例提供的一種基于Hadoop的圖像處理方法及系統(tǒng),包括:若檢測(cè)到本地緩存區(qū)中存在未上傳至分布式文件系統(tǒng)HDFS的圖像數(shù)據(jù),則調(diào)用數(shù)據(jù)流寫(xiě)入函數(shù)將未上傳的圖像數(shù)據(jù)以數(shù)據(jù)流的形式上傳至HDFS;通過(guò)并行計(jì)算框架MapReduce確定所述未上傳的圖像數(shù)據(jù)的屬性信息,將所述屬性信息存入數(shù)據(jù)庫(kù)Hbase,并將所述未上傳的圖像數(shù)據(jù)存入硬件層;可見(jiàn),在本實(shí)施例中,通過(guò)采用Hadoop云計(jì)算平臺(tái)作為存儲(chǔ)以及檢索用的平臺(tái),將其部署在PC或服務(wù)器集群中,實(shí)現(xiàn)海量視頻數(shù)據(jù)的存儲(chǔ)、檢索、備份和恢復(fù)等統(tǒng)一管理,具有易管理、擴(kuò)展性高及可靠性高等優(yōu)點(diǎn),同時(shí)采用MapReduce算法實(shí)現(xiàn)視頻數(shù)據(jù)的檢索過(guò)程,大大提高系統(tǒng)的檢索性能。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例公開(kāi)的一種基于Hadoop的圖像處理方法流程示意圖;
圖2為本發(fā)明實(shí)施例公開(kāi)的視頻處理流程示意圖;
圖3為本發(fā)明實(shí)施例公開(kāi)的一種基于Hadoop的圖像處理系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例公開(kāi)了一種基于Hadoop的圖像處理方法及系統(tǒng),以實(shí)現(xiàn)對(duì)大數(shù)據(jù)的處理,提高存儲(chǔ)速率。
需要說(shuō)明的是,Hadoop為分布式系統(tǒng)基礎(chǔ)架構(gòu),將一個(gè)大型的計(jì)算任務(wù)分割成若干個(gè)子任務(wù),每個(gè)子任務(wù)由框架并行統(tǒng)一調(diào)度和管理。其包含多個(gè)組件:分布式文件系統(tǒng)HDFS,分布式的并行計(jì)算框架MapReduce,面向列的數(shù)據(jù)庫(kù)Hbase,以及Hive、ZooKeeper等組件。HDFS將數(shù)據(jù)按塊的形式儲(chǔ)存在集群的節(jié)點(diǎn)中,提供了存儲(chǔ)空間而且有很大的存儲(chǔ)容量和吞吐量。Map/Reduce和HDFS它能夠處理PB級(jí)的數(shù)據(jù)。開(kāi)發(fā)者可以充分利用其強(qiáng)大的功能來(lái)實(shí)現(xiàn)高速的存儲(chǔ)和運(yùn)算。
分布式存儲(chǔ)系統(tǒng)不同于傳統(tǒng)的集中存儲(chǔ)系統(tǒng),它是由多個(gè)分布在不同物理位置上且互相連接的設(shè)備共同組成的計(jì)算系統(tǒng),多個(gè)節(jié)點(diǎn)在整個(gè)系統(tǒng)的控制下協(xié)同地運(yùn)行和計(jì)算。而集中型系統(tǒng)雖然便于管理和易于操作,但其可擴(kuò)展性差、可靠性和安全性較低,而分布式系統(tǒng)一方面可以將計(jì)算工作分?jǐn)偟蕉鄠€(gè)不同的從屬節(jié)點(diǎn)上,從而降低單節(jié)點(diǎn)的負(fù)載壓力,同時(shí)具有高擴(kuò)展性和靈活性,另一方面將數(shù)據(jù)分散存儲(chǔ)在多臺(tái)獨(dú)立的設(shè)備上,提高了數(shù)據(jù)的安全性。
參見(jiàn)圖1,本發(fā)明實(shí)施例提供的一種基于Hadoop的圖像處理方法,包括:
S101、若檢測(cè)到本地緩存區(qū)中存在未上傳至分布式文件系統(tǒng)HDFS的圖像數(shù)據(jù),則調(diào)用數(shù)據(jù)流寫(xiě)入函數(shù)將未上傳的圖像數(shù)據(jù)以數(shù)據(jù)流的形式上傳至HDFS;
具體的,在本實(shí)施例中,本方案可以應(yīng)用于監(jiān)控設(shè)備,這樣監(jiān)控設(shè)備所產(chǎn)生的視頻數(shù)據(jù)及圖片數(shù)據(jù)均可以通過(guò)本方案所提供的圖像處理系統(tǒng)進(jìn)行存儲(chǔ)及檢索。需要說(shuō)明的是,本方案中的圖像數(shù)據(jù)包括視頻數(shù)據(jù)及圖片數(shù)據(jù)?,F(xiàn)以監(jiān)控設(shè)備產(chǎn)生視頻數(shù)據(jù)為例對(duì)本方案進(jìn)行說(shuō)明:
監(jiān)控設(shè)備產(chǎn)生視頻數(shù)據(jù)后,將視頻數(shù)據(jù)不斷地存儲(chǔ)到本地緩存區(qū),這里的本地緩存區(qū)可以為一個(gè)本地文件夾中,這個(gè)動(dòng)態(tài)變化的文件夾可以當(dāng)作一個(gè)文件“緩沖區(qū)”,這個(gè)緩沖區(qū)中的文件以流的形式與HDFS進(jìn)行數(shù)據(jù)的交互;然后調(diào)用HDFS中數(shù)據(jù)流寫(xiě)入函數(shù)以流的方式將“緩沖區(qū)”中的數(shù)據(jù)文件上傳到HDFS中,不斷地循環(huán)這一過(guò)程,直到“緩沖區(qū)”的所有文件都上傳到HDFS中。
S102、通過(guò)并行計(jì)算框架MapReduce確定所述未上傳的圖像數(shù)據(jù)的屬性信息,將所述屬性信息存入數(shù)據(jù)庫(kù)Hbase,并將所述未上傳的圖像數(shù)據(jù)存入硬件層。
具體的,參見(jiàn)圖2,本實(shí)施例提供的視頻處理流程示意圖;將監(jiān)控視頻設(shè)備產(chǎn)生的數(shù)據(jù)以數(shù)據(jù)流的形式寫(xiě)入HDFS中后,需要將與圖像數(shù)據(jù)相關(guān)的屬性信息寫(xiě)入到數(shù)據(jù)庫(kù)HBase的視頻表中,這里的屬性信息包括數(shù)據(jù)特征標(biāo)識(shí)信息、數(shù)據(jù)產(chǎn)生時(shí)間信息、數(shù)據(jù)存儲(chǔ)位置信息、數(shù)據(jù)大小信息等。
其中,所述調(diào)用數(shù)據(jù)流寫(xiě)入函數(shù)將未上傳的圖像數(shù)據(jù)以數(shù)據(jù)流的形式上傳至HDFS之后,還包括:
所述HDFS調(diào)用文件刪除函數(shù),刪除本地緩存區(qū)中已上傳的圖像數(shù)據(jù)。
需要說(shuō)明的是,可以設(shè)置每次將圖像數(shù)據(jù)上傳至本地緩存區(qū)中后,立刻將已上傳的數(shù)據(jù)刪除;也可以設(shè)置為待所有數(shù)據(jù)均上傳完成后,將本地緩沖區(qū)中的數(shù)據(jù)清空。
基于上述技術(shù)方案,本方案還包括:
通過(guò)所述MapReduce確定用戶(hù)觸發(fā)的檢索指令中攜帶的檢索特征信息,并將所述檢索特征信息與所述數(shù)據(jù)庫(kù)Hbase的屬性信息進(jìn)行匹配,并將匹配結(jié)果進(jìn)行顯示。
在本實(shí)施例中,若用戶(hù)需要對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行檢索,則通過(guò)客戶(hù)端發(fā)送檢索指令,檢索指令中攜帶檢索條件,即檢索特征信息,可以包括時(shí)間及檢索特征等,然后根據(jù)檢索條件與數(shù)據(jù)庫(kù)Hbase中存儲(chǔ)的屬性信息中數(shù)據(jù)特征標(biāo)識(shí)信息、數(shù)據(jù)產(chǎn)生時(shí)間信息進(jìn)行匹配,并將匹配結(jié)果顯示給用戶(hù),實(shí)現(xiàn)了對(duì)圖像數(shù)據(jù)的檢索。
其中,將所述檢索特征信息與所述數(shù)據(jù)庫(kù)Hbase的屬性信息進(jìn)行匹配,并將匹配結(jié)果進(jìn)行顯示,包括:
將所述檢索特征信息與所述數(shù)據(jù)庫(kù)Hbase的屬性信息進(jìn)行匹配,得到與每個(gè)屬性信息對(duì)應(yīng)的匹配度,將匹配度最高的屬性信息作為匹配結(jié)果進(jìn)行顯示。
具體的,對(duì)圖像數(shù)據(jù)進(jìn)行檢索時(shí),根據(jù)用戶(hù)提供的檢索條件與數(shù)據(jù)庫(kù)Hbase的屬性信息進(jìn)行匹配,會(huì)得出每個(gè)屬性信息的匹配度,也可以說(shuō)是相似度,根據(jù)匹配度的大小對(duì)屬性信息進(jìn)行降序排列,再向用戶(hù)發(fā)送匹配結(jié)果時(shí),可以?xún)H發(fā)送匹配度最高的屬性信息所對(duì)應(yīng)的圖像數(shù)據(jù),也可以選取匹配度較高的預(yù)定數(shù)量個(gè)屬性信息所對(duì)應(yīng)的圖像數(shù)據(jù),例如:顯示匹配度為前三的屬性信息所對(duì)應(yīng)的圖像數(shù)據(jù)。
下面對(duì)本發(fā)明實(shí)施例提供的圖像處理系統(tǒng)行介紹,下文描述的圖像處理系統(tǒng)與上文描述的圖像處理方法可以相互參照。
參見(jiàn)圖3,本發(fā)明實(shí)施例提供的一種基于Hadoop的圖像處理系統(tǒng),包括:
分布式文件系統(tǒng)HDFS100,用于檢測(cè)到本地緩存區(qū)中存在未上傳至HDFS的圖像數(shù)據(jù)時(shí),調(diào)用數(shù)據(jù)流寫(xiě)入函數(shù)將未上傳的圖像數(shù)據(jù)以數(shù)據(jù)流的形式上傳至HDFS;
其中,所述HDFS100還包括:
刪除模塊,用于將未上傳的圖像數(shù)據(jù)以數(shù)據(jù)流的形式上傳至HDFS之后,調(diào)用文件刪除函數(shù),刪除本地緩存區(qū)中已上傳的圖像數(shù)據(jù)。
并行計(jì)算框架MapReduce200,用于確定所述未上傳的圖像數(shù)據(jù)的屬性信息;
數(shù)據(jù)庫(kù)Hbase300,用于存儲(chǔ)所述屬性信息;
硬件層400,用于存儲(chǔ)所述未上傳的圖像數(shù)據(jù)。
基于上述技術(shù)方案,本方案還包括:
用戶(hù)接口層500,用于接收用戶(hù)觸發(fā)的查詢(xún)指令;
業(yè)務(wù)邏輯層600,用于提取圖像數(shù)據(jù)的類(lèi)型信息,并將所述類(lèi)型信息添加至屬性信息,所述類(lèi)型信息包括視頻類(lèi)型信息或者圖片類(lèi)型信息。
所述MapReduce還包括:
檢索模塊,用于確定用戶(hù)觸發(fā)的檢索指令中攜帶的檢索特征信息,并將所述檢索特征信息與所述數(shù)據(jù)庫(kù)Hbase的屬性信息進(jìn)行匹配,并將匹配結(jié)果通過(guò)所述用戶(hù)接口層進(jìn)行顯示。
其中,所述檢索模塊將所述檢索特征信息與所述數(shù)據(jù)庫(kù)Hbase的屬性信息進(jìn)行匹配,得到與每個(gè)屬性信息對(duì)應(yīng)的匹配度,將匹配度最高的屬性信息作為匹配結(jié)果通過(guò)所述用戶(hù)接口層進(jìn)行顯示。
具體的,本實(shí)施例提供的分布式存儲(chǔ)和檢索系統(tǒng)框架主要包括6個(gè)層次:
HDFS層,即本方案中的分布式文件系統(tǒng)HDFS100,為上層應(yīng)用提供分布式存儲(chǔ)與讀取功能;
分布式計(jì)算層,即本方案中的并行計(jì)算框架MapReduce200,主要解決海量視頻檢索中特征提取和檢索的分布式計(jì)算問(wèn)題;
HBase數(shù)據(jù)庫(kù)層,即本方案中的數(shù)據(jù)庫(kù)Hbase300,用來(lái)存儲(chǔ)海量視頻檢索系統(tǒng)中需要進(jìn)行實(shí)時(shí)訪(fǎng)問(wèn)的視頻屬性信息等海量的小文件,為海量數(shù)據(jù)提供實(shí)時(shí)地、快速地訪(fǎng)問(wèn)機(jī)制;
硬件層400主要提供了基于Hadoop的海量視頻的分布式存儲(chǔ)與檢索系統(tǒng)的底層服務(wù)器硬件以及操作系統(tǒng)等基礎(chǔ)環(huán)境的支持;
用戶(hù)接口層500的主要作用是提供用戶(hù)對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行查詢(xún)及檢索的操作請(qǐng)求信息,以及接受查詢(xún)的結(jié)果數(shù)據(jù);
業(yè)務(wù)邏輯層600的主要作用是實(shí)現(xiàn)系統(tǒng)中各個(gè)業(yè)務(wù)邏輯運(yùn)行,包括視頻的預(yù)處理、特征提取與視頻檢索等相關(guān)的操作,并實(shí)現(xiàn)與底層數(shù)據(jù)庫(kù)的讀寫(xiě)操作。
綜上可見(jiàn),本方案提供的基于Hadoop的海量視頻的分布式存儲(chǔ)與檢索系統(tǒng)可以有效地存儲(chǔ)和管理海量的圖像數(shù)據(jù),并具有以下優(yōu)點(diǎn):
1)可擴(kuò)展性,具有存儲(chǔ)和計(jì)算的可擴(kuò)展性;
2)安全可靠性,HDFS的備份恢復(fù)機(jī)制以及Map/Reduce的任務(wù)監(jiān)控機(jī)制保證了分布式處理的可靠性;
3)高效性,分布式文件系統(tǒng)可以進(jìn)行高效的數(shù)據(jù)交互和本地存儲(chǔ)、計(jì)算的處理模式,為高效的處理海量視頻數(shù)據(jù)做了基礎(chǔ)準(zhǔn)備;
4)經(jīng)濟(jì)性,其可以運(yùn)行在便宜得計(jì)算機(jī)上,不需要使用昂貴的服務(wù)器。
本說(shuō)明書(shū)中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見(jiàn)即可。
對(duì)所公開(kāi)的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專(zhuān)業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開(kāi)的原理和新穎特點(diǎn)相一致的最寬的范圍。