專利名稱:基于gpu的圖像文本語義提取方法
技術領域:
本發(fā)明涉及一種基于GPU的圖像文本語義提取方法。
背景技術:
隨著網(wǎng)絡多媒體的豐富,網(wǎng)絡上每天產生大量的圖像數(shù)據(jù)和視頻信息,而圖像作為最基本的、最重要的多媒體信息形式之一,憑借其直觀、內容豐富、無語言限制的優(yōu)勢,已越來越廣泛的應用于各個領域。圖像搜索引擎通過收集、組織、索引網(wǎng)絡中的圖像,用戶通過輸入關鍵詞或者示例圖片,系統(tǒng)便以結果集的形式返回用戶感興趣的圖像。目前主流的商業(yè)圖像搜索引擎主要是基于文本的,基于文本的圖像檢索技術主要采用人工標注或從網(wǎng)頁中提取文本關鍵詞來實現(xiàn)文本對圖像的描述。圖像搜索系統(tǒng)中圖像文本語義提取就是一種從網(wǎng)頁中提取出圖像的文字性語義描述的方法,圖像文本語義提取的精度和效率直接影響到圖像搜索系統(tǒng)的后臺數(shù)據(jù)處理速度和更新周期。然而,目前的圖像文本語義提取方法主要存在效率和精度不可兼得的情況,同時, 圖像的文字性描述的精度不高,圖像搜索系統(tǒng)后臺數(shù)據(jù)更新的周期長。
發(fā)明內容
有鑒于此,本發(fā)明的目的在于提供一種基于GPU的圖像文本語義提取方法,其解決了現(xiàn)有圖像文本語義提取方法中存在的效率和精度不可兼得、圖像的文字性描述的精度不高、圖像搜索系統(tǒng)后臺數(shù)據(jù)更新的周期長的問題。一種基于GPU的圖像文本語義提取方法,包括以下步驟獲取網(wǎng)頁集合;根據(jù)網(wǎng)頁集合建立文檔對象模型集合,其包括多個文本節(jié)點、圖像鏈接節(jié)點;根據(jù)圖像鏈接節(jié)點的標簽確定圖像鏈接節(jié)點的集合以及圖像鏈接節(jié)點的數(shù)量;判斷圖像鏈接節(jié)點的數(shù)量是否為0 ;如果圖像鏈接節(jié)點的數(shù)量不為0,則取出一個圖像鏈接節(jié)點,并設置計數(shù)器i = 0 ;根據(jù)經驗規(guī)則查找圖像鏈接節(jié)點周圍是否存在文本節(jié)點;如果不存在文本節(jié)點,則設置計數(shù)器i = i + Ι ;判斷i是否等于4;若i等于4,則組合圖像鏈接節(jié)點與文本節(jié)點,以形成一主題塊;累加主題塊,以形成主題塊集合;判斷是否存在下一個圖像鏈接節(jié)點;若不存在下一個圖像鏈接節(jié)點,則轉換主題塊集合的存儲方式,以使其可被GPU 讀取;GPU對轉換后的主題快集合進行語義分析,以得到語義塊集合;GPU對語義塊集合進行處理,以得到所有圖像鏈接節(jié)點的語義描述信息。
本發(fā)明的方法還包括步驟如果圖像鏈接節(jié)點的數(shù)量為0,則轉換文本節(jié)點的存儲方式,以使其可被GPU讀??;GPU對轉換后的文本節(jié)點進行語義分析,以得到語義塊集合;GPU對語義塊集合進行處理,以得到所有文本節(jié)點的語義描述信息;GPU將語義描述信息傳送到CPU ;CPU輸出語義描述信息。本發(fā)明的方法還包括步驟如果存在文本節(jié)點,則組合圖像鏈接節(jié)點與文本節(jié)點,以形成一主題塊;累加主題塊,以形成主題塊集合;判斷是否存在下一個圖像鏈接節(jié)點;若不存在下一個圖像鏈接節(jié)點,則轉換主題塊集合的存儲方式,以使其可被GPU 讀??;GPU對轉換后的主題快集合進行語義分析,以得到語義塊集合;GPU對語義塊集合進行處理,以得到所有圖像鏈接節(jié)點的語義描述信息;GPU將語義描述信息傳送到CPU ;CPU輸出語義描述信息。本發(fā)明的方法還包括步驟若i不等于4,則跳轉根據(jù)經驗規(guī)則查找圖像鏈接節(jié)點周圍是否存在文本節(jié)點的步驟。本發(fā)明的方法還包括步驟若存在下一個圖像鏈接節(jié)點,則跳轉下一個圖像鏈接節(jié)點;跳轉取出一個圖像鏈接節(jié)點,并設置計數(shù)器i = 0的步驟。本發(fā)明的方法還包括步驟
GPU將語義描述信息傳送到CPU ;CPU輸出語義描述信息。根據(jù)經驗規(guī)則查找圖像鏈接節(jié)點周圍是否存在文本節(jié)點的步驟包括設置遍歷層數(shù)計數(shù)器等于0 ;判斷當前圖像鏈接節(jié)點是否為文本節(jié)點;如果圖像鏈接節(jié)點為文本節(jié)點,則存儲文本節(jié)點;判斷圖像鏈接節(jié)點是否只有一個子節(jié)點,如果只有一個子節(jié)點,則判斷子節(jié)點是否是文本節(jié)點;若子節(jié)點是文本節(jié)點,則存儲文本節(jié)點;判斷圖像鏈接節(jié)點是否是根節(jié)點,如果是根節(jié)點,則判斷根節(jié)點是否只有一個相關的子文檔對象模型;如果根節(jié)點只有一個相關的子文檔對象模型,則遍歷層數(shù)計數(shù)器加1 ;判斷遍歷層數(shù)計數(shù)器是否等于4 ;如果遍歷層數(shù)計數(shù)器等于4,則組合存儲的所有文本節(jié)點,以形成文本節(jié)點集合。根據(jù)經驗規(guī)則查找圖像鏈接節(jié)點周圍是否存在文本節(jié)點的步驟進一步包括如果圖像鏈接節(jié)點不是文本節(jié)點,則判斷圖像鏈接節(jié)點的子節(jié)點是否是文本節(jié)點或虛擬文本節(jié)點;若圖像鏈接節(jié)點的子節(jié)點是文本節(jié)點或虛擬文本節(jié)點,則組合存儲的所有文本節(jié)點,以形成文本節(jié)點集合;若圖像鏈接節(jié)點的子節(jié)點不是文本節(jié)點或虛擬文本節(jié)點,則判斷圖像鏈接節(jié)點的子節(jié)點是否包括換行節(jié)點;若圖像鏈接節(jié)點的子節(jié)點包括換行節(jié)點,則組合存儲的所有文本節(jié)點,以形成文本節(jié)點集合;若圖像鏈接節(jié)點的子節(jié)點不包括換行節(jié)點,則判斷圖像鏈接節(jié)點的子節(jié)點是否包括標簽為HR的節(jié)點;若圖像鏈接節(jié)點的子節(jié)點包括標簽為HR的節(jié)點,則組合存儲的所有文本節(jié)點,以形成文本節(jié)點集合;若圖像鏈接節(jié)點的子節(jié)點不包括標簽為HR的節(jié)點,則判斷圖像鏈接節(jié)點的背景色與其子節(jié)點的背景色是否相同;若圖像鏈接節(jié)點的背景色與其子節(jié)點的背景色相同,則組合存儲的所有文本節(jié)點,以形成文本節(jié)點集合;若圖像鏈接節(jié)點的背景色與其子節(jié)點的背景色不相同,則返回遍歷層數(shù)計數(shù)器加 1的步驟。根據(jù)經驗規(guī)則查找圖像鏈接節(jié)點周圍是否存在文本節(jié)點的步驟進一步包括若不是只有一個子節(jié)點,則返回判斷圖像鏈接節(jié)點的子節(jié)點是否是文本節(jié)點或虛擬文本節(jié)點的步驟;若子節(jié)點不是文本節(jié)點,則返回判斷圖像鏈接節(jié)點的子節(jié)點是否是文本節(jié)點或虛擬文本節(jié)點的步驟;若圖像鏈接節(jié)點不是根節(jié)點,則返回判斷圖像鏈接節(jié)點的子節(jié)點是否是文本節(jié)點或虛擬文本節(jié)點的步驟;如果根節(jié)點不是只有一個相關的子文檔對象模型,則返回判斷圖像鏈接節(jié)點的子節(jié)點是否是文本節(jié)點或虛擬文本節(jié)點的步驟。根據(jù)經驗規(guī)則查找圖像鏈接節(jié)點周圍是否存在文本節(jié)點的步驟進一步包括若遍歷層數(shù)計數(shù)器不等于4,則跳轉下一個圖像鏈接節(jié)點,并重復判斷當前圖像鏈接節(jié)點是否為文本節(jié)點的步驟。本發(fā)明的有益效果在于(1)精確性本發(fā)明針對網(wǎng)頁中存在多主題情況,通過經驗規(guī)則對網(wǎng)頁的不同主題進行分塊處理,和其他方法相比,可以更加完整并精確的獲得到圖像的結構化信息。(2)高效性本發(fā)明首先對網(wǎng)頁建立文檔對象模型,通過前序遍歷找到圖像鏈接節(jié)點,從圖像鏈接節(jié)點出發(fā)獲得圖像的主題塊,這樣避免對純文字性網(wǎng)頁的冗余解析。同時,通過把核心的耗時的步驟放到GPU上來執(zhí)行,可以大大提高算法的執(zhí)行效率。(3)可擴展和可移植性本發(fā)明針對GPU的編程特點設計基于GPU的并行編程框架,向上提供了一套接口,提高GPU并行編程的可擴展性。本發(fā)明通過配置文件來設置數(shù)據(jù)處理格式,使得可以應用于不同的信息檢索系統(tǒng)中,使得本算法具有很高的可移植性。
圖1為本發(fā)明基于GPU的圖像文本語義提取方法的流程圖。圖2為本發(fā)明根據(jù)經驗規(guī)則查找圖像鏈接節(jié)點周圍是否存在文本節(jié)點的步驟的細化流程圖。
具體實施例方式下面結合附圖對本發(fā)明進行進一步描述。如圖1所示,本發(fā)明基于GPU的圖像文本語義提取方法包括以下步驟(1)獲取網(wǎng)頁集合;(2)根據(jù)網(wǎng)頁集合建立文檔對象模型(document object model,簡稱DOM)集合, 其包括多個文本節(jié)點、圖像鏈接節(jié)點;(3)根據(jù)圖像鏈接節(jié)點的標簽確定圖像鏈接節(jié)點的集合以及圖像鏈接節(jié)點的數(shù)量;(4)判斷圖像鏈接節(jié)點的數(shù)量是否為0 ;如果不為0,則轉入步驟(5),如果為0,則轉入步驟(17);(5)取出一個圖像鏈接節(jié)點,并設置計數(shù)器i = 0 ;(6)根據(jù)經驗規(guī)則查找圖像鏈接節(jié)點周圍是否存在文本節(jié)點;如果不存在,則轉入步驟(7),如果存在,則轉入步驟(18);(7)設置計數(shù)器i = i+Ι ;(8)判斷i是否等于4 ;若i等于4,則轉入步驟(9),若i不等于4,則轉入步驟 (6);(9)組合圖像鏈接節(jié)點與文本節(jié)點,以形成一主題塊;(10)累加主題塊,以形成主題塊集合;(11)判斷是否存在下一個圖像鏈接節(jié)點,若不存在下一個圖像鏈接節(jié)點,則轉入步驟(12),若存在下一個圖像鏈接節(jié)點,則轉入步驟(19);(12)轉換主題塊集合的存儲方式,以使其可被GPU讀?。?13)GPU對轉換后的主題快集合進行語義分析,以得到語義塊集合;(14)GPU對語義塊集合進行處理,以得到所有圖像鏈接節(jié)點的語義描述信息;
(15) GPU將語義描述信息傳送到CPU ;(16) CPU輸出語義描述信息;(17)則轉換文本節(jié)點的存儲方式,以使其可被GPU讀取,然后轉到步驟(13);(18)組合圖像鏈接節(jié)點與文本節(jié)點,以形成一主題塊,然后轉到步驟(10);(19)跳轉下一個圖像鏈接節(jié)點,然后轉到步驟(5)。如圖2所示,圖1中的步驟(6)包括以下子步驟(6-1)設置遍歷層數(shù)計數(shù)器等于0 ;(6-2)判斷當前圖像鏈接節(jié)點是否為文本節(jié)點,如果當前圖像鏈接節(jié)點為文本節(jié)點,則轉入步驟(6-3),否則轉入步驟(6-12);(6-3)存儲文本節(jié)點;(6-4)判斷圖像鏈接節(jié)點是否只有一個子節(jié)點,如果圖像鏈接節(jié)點只有一個子節(jié)點,則轉入步驟(6-4),否則轉入步驟(6-12);(6-5)判斷子節(jié)點是否是文本節(jié)點,如果是則轉入步驟(6-6),否則轉入步驟 (6-12);(6-6)存儲文本節(jié)點;(6-7)判斷圖像鏈接節(jié)點是否是根節(jié)點,如果是,則轉入步驟(6-8),否則轉入步驟(6-12);(6-8)判斷根節(jié)點是否只有一個相關的子文檔對象模型,如果根節(jié)點只有一個相關的子文檔對象模型,則轉入步驟(6-9),否則轉入步驟(6-12);(6-9)遍歷層數(shù)計數(shù)器加1 ;(6-10)判斷遍歷層數(shù)計數(shù)器是否等于4,如果遍歷層數(shù)計數(shù)器等于4,則轉入步驟 (6-11),否則轉入步驟(6-16);(6-11)組合存儲的所有文本節(jié)點,以形成文本節(jié)點集合;(6-12)判斷圖像鏈接節(jié)點的子節(jié)點是否是文本節(jié)點或虛擬文本節(jié)點,如果是文本節(jié)點或虛擬文本節(jié)點,則返回步驟(6-11),否則轉入步驟(6-13);(6-13)判斷圖像鏈接節(jié)點的子節(jié)點是否包括換行節(jié)點,若包括換行節(jié)點,則返回步驟(6-11),否則轉入步驟(6-14);(6-14)判斷圖像鏈接節(jié)點的子節(jié)點是否包括標簽為HR的節(jié)點,若敖闊標簽為HR 的節(jié)點,則返回步驟(6-11),否則轉入步驟(6-15);(6-15)若圖像鏈接節(jié)點的子節(jié)點不包括標簽為HR的節(jié)點,則判斷圖像鏈接節(jié)點的背景色與其子節(jié)點的背景色是否相同,若相同,則返回步驟(6-11),否則返回步驟 (6-9);(6-16)跳轉下一個圖像鏈接節(jié)點,然后返回步驟(6-2)。以上,僅為本發(fā)明最佳的具體實現(xiàn)方式,本發(fā)明的實現(xiàn)方法并不局限于此,任何在本發(fā)明領域內不脫離本發(fā)明精神下的改變,都應涵蓋在本發(fā)明范圍內。
權利要求
1.一種基于GPU的圖像文本語義提取方法,其特征在于,包括以下步驟 獲取網(wǎng)頁集合;根據(jù)所述網(wǎng)頁集合建立文檔對象模型集合,其包括多個文本節(jié)點、圖像鏈接節(jié)點; 根據(jù)所述圖像鏈接節(jié)點的標簽確定所述圖像鏈接節(jié)點的集合以及所述圖像鏈接節(jié)點的數(shù)量;判斷所述圖像鏈接節(jié)點的數(shù)量是否為0 ;如果所述圖像鏈接節(jié)點的數(shù)量不為0,則取出一個圖像鏈接節(jié)點,并設置計數(shù)器i =0 ;根據(jù)經驗規(guī)則查找所述圖像鏈接節(jié)點周圍是否存在文本節(jié)點; 如果不存在文本節(jié)點,則設置計數(shù)器i = i+Ι ; 判斷i是否等于4 ;若i等于4,則組合所述圖像鏈接節(jié)點與所述文本節(jié)點,以形成一主題塊; 累加所述主題塊,以形成主題塊集合; 判斷是否存在下一個圖像鏈接節(jié)點;若不存在下一個圖像鏈接節(jié)點,則轉換所述主題塊集合的存儲方式,以使其可被GPU 讀取;GPU對所述轉換后的主題快集合進行語義分析,以得到語義塊集合;GPU對所述語義塊集合進行處理,以得到所有圖像鏈接節(jié)點的語義描述信息。
2.根據(jù)權利要求1所述的圖像文本語義提取方法,其特征在于,還包括步驟如果所述圖像鏈接節(jié)點的數(shù)量為0,則轉換所述文本節(jié)點的存儲方式,以使其可被GPU 讀取;GPU對所述轉換后的文本節(jié)點進行語義分析,以得到語義塊集合; GPU對所述語義塊集合進行處理,以得到所有文本節(jié)點的語義描述信息;GPU將所述語義描述信息傳送到CPU ;CPU輸出所述語義描述信息。
3.根據(jù)權利要求1所述的圖像文本語義提取方法,其特征在于,還包括步驟如果存在文本節(jié)點,則組合所述圖像鏈接節(jié)點與所述文本節(jié)點,以形成一主題塊; 累加所述主題塊,以形成主題塊集合; 判斷是否存在下一個圖像鏈接節(jié)點;若不存在下一個圖像鏈接節(jié)點,則轉換所述主題塊集合的存儲方式,以使其可被GPU 讀??;GPU對所述轉換后的主題快集合進行語義分析,以得到語義塊集合;GPU對所述語義塊集合進行處理,以得到所有圖像鏈接節(jié)點的語義描述信息;GPU將所述語義描述信息傳送到CPU ;CPU輸出所述語義描述信息。
4.根據(jù)權利要求1所述的圖像文本語義提取方法,其特征在于,還包括步驟若i不等于4,則跳轉所述根據(jù)經驗規(guī)則查找所述圖像鏈接節(jié)點周圍是否存在文本節(jié)點的步驟。
5.根據(jù)權利要求1所述的圖像文本語義提取方法,其特征在于,還包括步驟若存在下一個圖像鏈接節(jié)點,則跳轉下一個圖像鏈接節(jié)點; 跳轉所述取出一個圖像鏈接節(jié)點,并設置計數(shù)器i = 0的步驟。
6.根據(jù)權利要求1所述的圖像文本語義讀取方法,其特征在于,還包括步驟 GPU將所述語義描述信息傳送到CPU ;CPU輸出所述語義描述信息。
7.根據(jù)權利要求1所述的圖像文本語義讀取方法,其特征在于,所述根據(jù)經驗規(guī)則查找所述圖像鏈接節(jié)點周圍是否存在文本節(jié)點的步驟包括設置遍歷層數(shù)計數(shù)器等于0 ;判斷當前圖像鏈接節(jié)點是否為文本節(jié)點;如果所述圖像鏈接節(jié)點為文本節(jié)點,則存儲所述文本節(jié)點;判斷所述圖像鏈接節(jié)點是否只有一個子節(jié)點,如果只有一個子節(jié)點,則判斷所述子節(jié)點是否是文本節(jié)點;若所述子節(jié)點是文本節(jié)點,則存儲所述文本節(jié)點;判斷所述圖像鏈接節(jié)點是否是根節(jié)點,如果是根節(jié)點,則判斷所述根節(jié)點是否只有一個相關的子文檔對象模型;如果所述根節(jié)點只有一個相關的子文檔對象模型,則所述遍歷層數(shù)計數(shù)器加1 ; 判斷所述遍歷層數(shù)計數(shù)器是否等于4 ;如果所述遍歷層數(shù)計數(shù)器等于4,則組合存儲的所有文本節(jié)點,以形成文本節(jié)點集合。
8.根據(jù)權利要求7所述的圖像文本語義讀取方法,其特征在于,所述根據(jù)經驗規(guī)則查找所述圖像鏈接節(jié)點周圍是否存在文本節(jié)點的步驟進一步包括如果所述圖像鏈接節(jié)點不是文本節(jié)點,則判斷所述圖像鏈接節(jié)點的子節(jié)點是否是文本節(jié)點或虛擬文本節(jié)點;若所述圖像鏈接節(jié)點的子節(jié)點是文本節(jié)點或虛擬文本節(jié)點,則組合存儲的所有文本節(jié)點,以形成文本節(jié)點集合;若所述圖像鏈接節(jié)點的子節(jié)點不是文本節(jié)點或虛擬文本節(jié)點,則判斷所述圖像鏈接節(jié)點的子節(jié)點是否包括換行節(jié)點;若所述圖像鏈接節(jié)點的子節(jié)點包括換行節(jié)點,則組合存儲的所有文本節(jié)點,以形成文本節(jié)點集合;若所述圖像鏈接節(jié)點的子節(jié)點不包括換行節(jié)點,則判斷所述圖像鏈接節(jié)點的子節(jié)點是否包括標簽為HR的節(jié)點;若所述圖像鏈接節(jié)點的子節(jié)點包括標簽為HR的節(jié)點,則組合存儲的所有文本節(jié)點,以形成文本節(jié)點集合;若所述圖像鏈接節(jié)點的子節(jié)點不包括標簽為HR的節(jié)點,則判斷所述圖像鏈接節(jié)點的背景色與其子節(jié)點的背景色是否相同;若所述圖像鏈接節(jié)點的背景色與其子節(jié)點的背景色相同,則組合存儲的所有文本節(jié)點,以形成文本節(jié)點集合;若所述圖像鏈接節(jié)點的背景色與其子節(jié)點的背景色不相同,則返回所述遍歷層數(shù)計數(shù)器加1的步驟。
9.根據(jù)權利要求8所述的圖像文本語義讀取方法,其特征在于,所述根據(jù)經驗規(guī)則查找所述圖像鏈接節(jié)點周圍是否存在文本節(jié)點的步驟進一步包括若不是只有一個子節(jié)點,則返回所述判斷所述圖像鏈接節(jié)點的子節(jié)點是否是文本節(jié)點或虛擬文本節(jié)點的步驟;若所述子節(jié)點不是文本節(jié)點,則返回所述判斷所述圖像鏈接節(jié)點的子節(jié)點是否是文本節(jié)點或虛擬文本節(jié)點的步驟;若所述圖像鏈接節(jié)點不是根節(jié)點,則返回所述判斷所述圖像鏈接節(jié)點的子節(jié)點是否是文本節(jié)點或虛擬文本節(jié)點的步驟;如果所述根節(jié)點不是只有一個相關的子文檔對象模型,則返回所述判斷所述圖像鏈接節(jié)點的子節(jié)點是否是文本節(jié)點或虛擬文本節(jié)點的步驟。
10.根據(jù)權利要求8所述的圖像文本語義讀取方法,其特征在于,所述根據(jù)經驗規(guī)則查找所述圖像鏈接節(jié)點周圍是否存在文本節(jié)點的步驟進一步包括若所述遍歷層數(shù)計數(shù)器不等于4,則跳轉下一個圖像鏈接節(jié)點,并重復所述判斷當前圖像鏈接節(jié)點是否為文本節(jié)點的步驟。
全文摘要
一種基于GPU的圖像文本語義提取方法,包括以下步驟獲取網(wǎng)頁集合;根據(jù)網(wǎng)頁集合建立文檔對象模型集合,其包括多個文本節(jié)點、圖像鏈接節(jié)點;根據(jù)圖像鏈接節(jié)點的標簽確定圖像鏈接節(jié)點的集合以及圖像鏈接節(jié)點的數(shù)量;判斷圖像鏈接節(jié)點的數(shù)量是否為0;如果圖像鏈接節(jié)點的數(shù)量不為0,則取出一個圖像鏈接節(jié)點,并設置計數(shù)器i=0;根據(jù)經驗規(guī)則查找圖像鏈接節(jié)點周圍是否存在文本節(jié)點。本發(fā)明解決了現(xiàn)有圖像文本語義提取方法中存在的效率和精度不可兼得、圖像的文字性描述的精度不高、圖像搜索系統(tǒng)后臺數(shù)據(jù)更新的周期長的問題。
文檔編號G06F17/30GK102314513SQ20111027658
公開日2012年1月11日 申請日期2011年9月16日 優(yōu)先權日2011年9月16日
發(fā)明者江武, 鄧巍, 鄭然 , 金海 申請人:華中科技大學