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