本發明屬圖像識別技術領域,具體涉及基于中心字典的遙感圖像識別方法。
背景技術:
遙感圖像識別的目的是使計算裝置能夠自動分析遙感圖像,按照遙感圖像的自然規律產生對應的類別標注,從而利用計算裝置代替人類勞動。它是模式識別和機器學習等領域的重要研究內容,在地貌測繪、遙感偵查、森林防火等實用領域也是不可或缺的技術。
基于編碼特征的識別方法是近年來的研究熱潮,取得了很多新成果和進展。編碼特征識別方法的必要技術特征是包含底層特征提取、字典學習、編碼特征提取步驟。
中國專利cn201310377651.8“基于視覺詞袋模型的遙感圖像目標識別方法”,選取各典型類別目標的遙感圖像構建訓練集,然后分別提取訓練集中各遙感圖像以及測試遙感圖像的視覺詞袋特征,最后利用視覺詞袋特征比較測試遙感圖像與訓練集中各遙感圖像之間的相似度,根據相似度的值判定測試遙感圖像是否為待識別目標。該技術方案特點是在編碼特征識別方法上,采取了相關性及冗余度分析去除視覺單詞碼本中不相關、弱相關以及冗余的視覺單詞。
中國專利cn201511002911.9“基于核函數匹配的空間金字塔物體識別方法”,首先提取物體圖像的ed-sift描述子,然后使用k-means++聚類算法將訓練樣本的ed-sift描述子聚類,獲得視覺詞典;引入空間金字塔,使用核函數匹配獲得訓練樣本和測試樣本的視覺單詞直方圖;最后對svm分類器進行訓練,再將測試樣本輸入svm分類器完成圖像識別。
中國專利cn201610369500.1“一種遙感景象的自動識別方法”,以特征提取濾波器對遙感景像圖像進行空間域濾波,綜合遙感景象圖像各尺度和角度層級的旋轉不變子描述子,形成遙感景象圖像的旋轉不變描述子,最后利用描述子訓練超限學習機分類器,用訓練所得的學習機自動識別遙感圖像景象類別。
weiweisong,dunweiwen,kewang,tongliu,mujunzang.satelliteimagesceneclassificationusingspatialinformation[c]//sixthinternationalconferenceongraphicandimageprocessing(icgip2014).internationalsocietyforopticsandphotonics,2015:94431k-94431k-5.公開了“使用稀疏編碼算法改進詞典學習、編碼特征提取步驟”。
上述技術方案尚存在一些缺點,主要體現在特征袋采用稀疏字典或k均值聚類字典需要對樣本進行線性組合計算,導致字典的圖像元素失真,識別精度不高。為此本發明公開了基于中心字典的遙感圖像識別方法,其技術特征在于包含建立遙感圖像的中心字典、使用中心字典對遙感圖像進行稀疏編碼特征提取兩個步驟,通過上述技術手段,克服了字典的圖像元素失真的問題,產生了識別準確率顯著提高的有利性。
技術實現要素:
本發明的目的是為了解決特征袋采用稀疏字典或k均值聚類字典需要對樣本進行線性組合計算,導致字典的圖像元素失真,識別精度不高的問題,而提供基于中心字典的遙感圖像識別方法。
基于中心字典的遙感圖像識別方法,它包括:在大量遙感圖像中挖掘信息和識別遙感圖像;所述的在大量遙感圖像中挖掘信息包括提取訓練集遙感圖像的底層特征、建立訓練集遙感圖像的中心字典、提取訓練集遙感圖像的編碼特征、執行邏輯正則回歸分類器訓練算法,所述的大量遙感圖像的數量m大于500;所述的識別遙感圖像包括提取待識別遙感圖像底層特征、利用中心字典提取待識別遙感圖像的編碼特征、執行邏輯回歸識別算法;
所述的在大量遙感圖像中挖掘信息為:
1.1提取訓練集遙感圖像的底層特征
輸入包含m幅圖像的遙感圖像的數據集,按照如下步驟執行:
1.1.1取包含大量遙感圖像的數據集中的第一幅圖像,按照rbg矩陣的格式讀入系統;
1.1.2將rgb矩陣歸一化為像素的方陣,p的取值為300到1000之間的整數;
1.1.3通過滑動網格方法,將方陣均勻劃分為n個有重疊的子塊;
1.1.4對每個子塊分別計算128維的sift描述符,存儲為一個三維結構體s,s的元素記為si,其中i表示存儲的數據對應于數據集中第i幅圖像,i的最大值是m,si格式為j行k列維度的矩陣,其中j表示存儲的數據對應于第j個有重疊的子塊,k表示存儲的數據對應于第k維的sift描述符;
1.1.5判斷當前輸入的圖像是否為大量遙感圖像的數據集中的最后一幅圖像;若是,則執行1.1.6步驟;若否,則取包含大量遙感圖像的數據集中的下一幅圖像,按照rbg矩陣的格式讀入系統,執行1.1.2、1.1.3、1.1.4、1.1.5步驟;
1.1.6將結構體s保存待用;
1.2建立訓練集遙感圖像的中心字典
1.2.1取提取訓練集遙感圖像的底層特征的步驟存儲的結構體s,令i從1到m循環,將結構體元素si依次取出按行首尾相接排成一個新矩陣s1;
1.2.2以500為聚類數,s1矩陣的所有行為聚類對象,執行k-means++聚類算法,將聚類算法生成的聚類中心向量存儲為矩陣p,p的每一行存儲一個聚類中心向量;
1.2.3取矩陣p為初始聚類中心,以s1矩陣的所有行為聚類對象,執行k-medoids聚類算法,k-medoids聚類算法得到的聚類中心存儲為行向量,行向量依次排列存儲為一個矩陣d,命名為中心字典d;
1.3提取訓練集遙感圖像的編碼特征
取提取訓練集遙感圖像的底層特征的步驟中得到的結構體s,取建立訓練集遙感圖像的中心字典的步驟中所得到的中心字典d,令i從1到m循環,每次循環執行一次1.3.2,循環結束后執行1.3.3;
1.3.1讀入s的元素si,依次取si的每一行記為向量a,每取一行執行一次1.3.2.1步驟,直至取完si中的所有行向量;
1.3.1.1計算a與矩陣d每一行的向量的歐氏距離,d中行向量與a歐式距離最小的行標號命名為a的碼字,a的碼字按照a在si中的對應行數排列為一條列向量命名為si的編碼特征fi;
1.3.2將fi按照i從1到m的順序按列排列為一個矩陣,記為圖像的特征矩陣f;
1.4執行邏輯正則回歸分類器訓練算法
以提取訓練集遙感圖像的編碼特征的步驟中得到的特征矩陣f為訓練樣本特征向量,以圖像已知的類別為類別標簽,利用liblinear軟件包執行邏輯正則回歸訓練算法,訓練參數采用默認值,得到訓練好的邏輯正則回歸分類器;
所述的識別遙感圖像為:
2.1提取待識別遙感圖像的底層特征
2.1.1取待識別的遙感圖像,按照rbg矩陣的格式讀入系統;
2.1.2將rgb矩陣歸一化為像素的方陣,p的取值與提取訓練集遙感圖像的底層特征的步驟的p相同;
2.1.3通過滑動網格方法,將方陣均勻劃分為n個有重疊的子塊;
2.1.4對2.1.3步驟生成的每個子塊分別計算128維的sift區域描述符,描述符存儲為一個矩陣t,t的維度為j行k列,j和k的取值與“提取訓練集遙感圖像的底層特征”步驟的j和k相同;
2.2利用中心字典提取待識別遙感圖像的編碼特征
取提取待識別遙感圖像的底層特征的步驟中得到的矩陣t,取建立訓練集遙感圖像的中心字典的步驟中所得到的中心字典d;依次取t的每一行記為b,計算b與矩陣d的每一行向量的歐氏距離,d中行向量與b歐式距離最小的行標號命名為b的碼字,b的碼字按照b在si中的對應行數排列為一條列向量命名為t的編碼特征;
2.3執行邏輯正則回歸識別算法
取執行邏輯正則回歸分類器訓練算法得到的訓練好的邏輯正則回歸分類器和利用中心字典提取待識別遙感圖像的編碼特征的步驟中得到的t的編碼特征,利用liblinear軟件包執行邏輯正則回歸分類算法,生成待識別遙感圖像的類別。
步驟1.1.3所述的n取值為50。
所述的提取訓練集遙感圖像的底層特征和提取待識別遙感圖像的底層特征均為使用matlab內建程序imread將訓練集遙感圖像依次讀入系統,存儲為rgb矩陣,將rgb矩陣歸一化為行列各300像素的方陣;使用labelme工具包對所有圖像進行sift描述符提取,設置參數為像素網格,中心間距設為11。
所述的訓練集遙感圖像中,每幅圖像的121個128維描述符存儲為121條維度128的行向量,行向量的組合記為矩陣t。
所述的基于中心字典的遙感圖像識別方法,使用的計算機為pc機,其軟件基于64位windows10操作系統和matlab2015a仿真環境。
本發明提供了基于中心字典的遙感圖像識別方法,它包括:在大量遙感圖像中挖掘信息和識別遙感圖像;所述的在大量遙感圖像中挖掘信息包括提取訓練集遙感圖像的底層特征、建立訓練集遙感圖像的中心字典、提取訓練集遙感圖像的編碼特征、執行邏輯正則回歸分類器訓練算法,所述的大量遙感圖像的數量m大于500;所述的識別遙感圖像的類別包括提取待識別遙感圖像底層特征、利用中心字典提取待識別遙感圖像的編碼特征、執行邏輯回歸識別算法。建立遙感圖像的中心字典,使用中心字典對遙感圖像進行稀疏編碼特征,使用裝置自動生成的中心字典對遙感圖像進行編碼,解決了特征袋采用稀疏字典或k均值聚類字典需要對樣本進行線性組合計算,導致字典的圖像元素失真的問題,產生了識別準確率顯著提高的有利性,顯著提高了識別精度。
附圖說明
圖1在大量遙感圖像中挖掘信息的流程圖;
圖2識別遙感圖像的類別的流程圖;
圖3使用個人計算機(pc機)進行仿真實現效果圖。
具體實施方式
實施例1基于中心字典的遙感圖像識別方法
基于中心字典的遙感圖像識別方法,它包括:包括兩大步驟:1、在大量遙感圖像中挖掘信息,識別遙感圖像的類別。
1、在大量遙感圖像中挖掘信息
參閱圖1,依次執行“提取訓練集遙感圖像的底層特征”、“建立訓練集遙感圖像的中心字典”、“提取訓練集遙感圖像的編碼特征”、“執行邏輯正則回歸分類器訓練算法”。
1.1提取訓練集遙感圖像的底層特征
輸入包含m幅圖像的遙感圖像的數據集,本步驟中大量遙感圖像的數據集要求遙感圖像的數量m大于500,所有遙感圖像要求標注了圖像類別;按照如下步驟執行:
1.1.1取包含大量遙感圖像的數據集中的第一幅圖像,按照rbg矩陣的格式讀入系統。
1.1.2將rgb矩陣歸一化為像素的方陣,p的取值為300到1000之間的整數。
1.1.3通過滑動網格方法,將方陣均勻劃分為n個有重疊的子塊,n的取值為50。
1.1.4對每個子塊分別計算128維的sift描述符,存儲為一個三維結構體s,s的元素記為si,其中i表示存儲的數據對應于數據集中第i幅圖像,i的最大值是m,si格式為j行k列維度的矩陣,其中j表示存儲的數據對應于第j個有重疊的子塊,k表示存儲的數據對應于第k維的sift描述符。
1.1.5判斷當前輸入的圖像是否為大量遙感圖像的數據集中的最后一幅圖像。若是,則執行1.1.6步驟;若否,則取包含大量遙感圖像的數據集中的下一幅圖像,按照rbg矩陣的格式讀入系統,執行1.1.2、1.1.3、1.1.4、1.1.5步驟。
1.1.6.將結構體s保存待用。
1.2建立訓練集遙感圖像的中心字典
利用本發明公開的一種遙感圖像的中心字典學習算法建立遙感圖像的中心字典,具體為:
1.2.1取“提取訓練集遙感圖像的底層特征”步驟存儲的結構體s,令i從1到m循環,將結構體元素si依次取出按行首尾相接排成一個新矩陣s1。
1.2.2以500為聚類數,s1矩陣的所有行為聚類對象,執行k-means++聚類算法,將聚類算法生成的聚類中心向量存儲為矩陣p,p的每一行存儲一個聚類中心向量。
1.2.3取矩陣p為初始聚類中心,以s1矩陣的所有行為聚類對象,執行k-medoids聚類算法,k-medoids聚類算法得到的聚類中心存儲為行向量,行向量依次排列存儲為一個矩陣d,命名為中心字典。
1.3提取訓練集遙感圖像的編碼特征
取“提取訓練集遙感圖像的底層特征”步驟中得到的結構體s,取“建立訓練集遙感圖像的中心字典”步驟中所得到的中心字典d,令i從1到m循環,每次循環執行一次1.3.2,循環結束后執行1.3.3。
1.3.1讀入s的元素si,依次取si的每一行記為向量a,每取一行執行一次1.3.2.1步驟,直至取完si中的所有行向量。
1.3.1.1計算a與矩陣d每一行的向量的歐氏距離,d中行向量與a歐式距離最小的行標號命名為a的碼字,a的碼字按照a在si中的對應行數排列為一條列向量命名為si的編碼特征fi。
1.3.2將fi按照i從1到m的順序按列排列為一個矩陣,記為圖像的特征矩陣f。
1.4執行邏輯正則回歸分類器訓練算法
以“提取訓練集遙感圖像的編碼特征”步驟中得到的特征矩陣f為訓練樣本特征向量,以圖像已知的類別為類別標簽,利用liblinear軟件包執行邏輯正則回歸訓練算法,訓練參數采用默認值,得到訓練好的邏輯正則回歸分類器。
2、識別遙感圖像的類別
參閱圖2,依次執行“提取待識別遙感圖像底層特征”,“利用中心字典提取待識別遙感圖像的編碼特征”,“執行邏輯回歸識別算法”。
2.1提取待識別遙感圖像的底層特征
2.1.1取待識別的遙感圖像,按照rbg矩陣的格式讀入系統。
2.1.2將rgb矩陣歸一化為像素的方陣,p的取值與“提取訓練集遙感圖像的底層特征”步驟的p相同。
2.1.3通過滑動網格方法,將方陣均勻劃分為n個有重疊的子塊,n的取值為50。
2.1.4對2.1.3步驟生成的每個子塊分別計算128維的sift區域描述符,描述符存儲為一個矩陣t,t的維度為j行k列,j和k的取值與“提取訓練集遙感圖像的底層特征”步驟的j和k相同。
2.2利用中心字典提取待識別遙感圖像的編碼特征
取“提取待識別遙感圖像的底層特征”步驟中得到的矩陣t,取“建立訓練集遙感圖像的中心字典”步驟中所得到的中心字典d。依次取t的每一行記為b,計算b與矩陣d的每一行向量的歐氏距離,d中行向量與b歐式距離最小的行標號命名為b的碼字,b的碼字按照b在si中的對應行數排列為一條列向量命名為t的編碼特征。
2.3執行邏輯正則回歸識別算法
取“執行邏輯正則回歸分類器訓練算法”得到的訓練好的邏輯正則回歸分類器和“利用中心字典提取待識別遙感圖像的編碼特征”步驟得到的t的編碼特征,利用liblinear軟件包執行邏輯正則回歸分類算法,生成待識別遙感圖像的類別。
實施例2使用個人計算機(pc機)進行仿真實現
本實施例使用個人計算機(pc機)進行仿真實現,其軟件基于64位windows10操作系統和matlab2015a仿真環境。采用的實施例為在谷歌地球軟件上隨機抽取的類別為機場、森林、高速路、工業區、雨林、港口、市區、停車場八類圖像,隨機選取的測試集、訓練集圖像數量分別如表1所示。
表1實施例的樣本數量
1.在大量遙感圖像中挖掘信息
1.1提取訓練集遙感圖像的底層特征
使用matlab內建程序imread將訓練集圖像依次讀入系統,存儲為rgb矩陣,將rgb矩陣歸一化為行列各300像素的方陣。使用labelme工具包對所有圖像進行sift描述符提取,設置參數為像素網格,中心間距設為11。根據該參數設置,每幅圖像被劃分為121個有重疊的子塊,并對每個子塊分別計算128維的sift描述符。計算得到的行向量存儲為一個三維結構體s,s的元素記為si,其中i表示存儲的數據對應于數據集中第i幅圖像,si格式為j行k列維度的矩陣,其中j表示存儲的數據對應于第j個有重疊的子塊,k表示存儲的數據對應于第k維的sift描述符。
所述內建程序imread使用方法可在matlab命令行中輸入helpimread得到。所述labelme工具包中提取sift描述符程序見論文:lazebniks,schmidc,poncej.beyondbagsoffeatures:spatialpyramidmatchingforrecognizingnaturalscenecategories[c]//computervisionandpatternrecognition,2006ieeecomputersocietyconferenceon.ieee,2006,2:2169-2178.
1.2建立訓練集遙感圖像的中心字典
利用本發明公開的一種遙感圖像的中心字典學習算法建立遙感圖像的中心字典,具體為
a.取“提取訓練集遙感圖像的底層特征”步驟存儲的結構體s,令i從1到m循環,將結構體元素si依次取出按行首尾相接排成一個新矩陣s1。
b.以500為聚類數,s1矩陣的所有行為聚類對象,執行k-means++聚類算法,將聚類算法生成的聚類中心向量存儲為矩陣p,p的每一行存儲一個聚類中心向量。取矩陣p為初始聚類中心,以s1矩陣的所有行為聚類對象,執行k-medoids聚類算法,k-medoids聚類算法得到的聚類中心存儲為行向量,行向量依次排列存儲為一個矩陣d,命名為中心字典。該步驟可以通過matlab內建函數kmedoids實施,所述內建程序使用方法可在matlab命令行中輸入helpkmedoids得到。
1.3提取訓練集遙感圖像的編碼特征
a.取“提取訓練集遙感圖像的底層特征”步驟中得到的結構體s,取“建立訓練集遙感圖像的中心字典”步驟中所得到的中心字典d,令i從1到m循環,每次循環執行一次b步驟,循環結束后執行d步驟。
b.讀入s的元素si,依次取si的每一行記為向量a,每取一行執行一次c步驟,直至取完si中的所有行向量。
c.計算a與矩陣d每一行的向量的歐氏距離,d中行向量與a歐式距離最小的行標號命名為a的碼字,a的碼字按照a在si中的對應行數排列為一條列向量命名為si的編碼特征fi。
d.將fi按照i從1到m的順序按列排列為一個矩陣,記為圖像的特征矩陣f。
1.4執行邏輯正則回歸分類器訓練算法
以“提取訓練集遙感圖像的編碼特征”步驟中得到的特征矩陣f為訓練樣本特征向量,以圖像已知的類別為類別標簽,利用liblinear軟件包執行邏輯正則回歸訓練算法,得到一個訓練好的邏輯正則回歸分類器。所述的liblinear軟件包及其使用說明書可見于:http://www.csie.ntu.edu.tw/~cjlin/liblinear/。
2.識別遙感圖像的類別
2.1提取待識別遙感圖像的底層特征
使用matlab內建程序imread將訓練集圖像依次讀入系統,存儲為rgb矩陣,將rgb矩陣歸一化為行列各300像素的方陣。使用labelme工具包對所有圖像進行sift灰度尺度強度區域描述符提取。每幅圖像的121個128維描述符存儲為121條維度128的行向量,行向量的組合記為矩陣t。此步驟的參數設置與“提取訓練集遙感圖像的底層特征”步驟相同。
2.2利用中心字典提取待識別遙感圖像的編碼特征
取“提取待識別遙感圖像的底層特征”步驟中得到的矩陣t,取“建立訓練集遙感圖像的中心字典”步驟中所得到的中心字典d。依次取t的每一行記為b,計算b與矩陣d的每一行向量的歐氏距離,d中行向量與b歐式距離最小的行標號命名為b的碼字,b的碼字按照b在si中的對應行數排列為一條列向量命名為t的編碼特征。
2.3執行邏輯正則回歸識別算法
取“執行邏輯正則回歸分類器訓練算法”得到的訓練好的邏輯正則回歸分類器和“利用中心字典提取待識別遙感圖像的編碼特征”步驟得到的t的編碼特征,利用liblinear軟件包執行邏輯正則回歸分類算法,生成待識別遙感圖像的類別。將所有待識別圖像的類別進行統計,并與標簽進行比對,得到的準確率混淆矩陣如圖3所示,平均準確率為86%。