本發明涉及計算機視覺與機器學習技術領域,特別涉及一種多量化深度二值特征學習方法及裝置。
背景技術:
視覺識別是計算機視覺領域的基本問題,能夠廣泛應用于多種視覺應用當中,例如人臉識別,物體識別,景物識別以及紋理識別等。作為一個經典的模式識別問題,視覺識別的主要步驟可以分為:特征提取和特征匹配。特征表示的目標是為每一張圖片得到一個特征向量,使得同類圖片的特征向量具有更強的相似性,而特征匹配則依據圖片特征的相似性度量來識別圖片的種類。由于自然環境下的物體光照、姿態、背景、視角和遮擋的差異較大,導致同一類物體之間的相似性小,不同物體之間的相似性可能較大,因此得到精確、高效的特征向量是視覺識別技術中最為關鍵的環節。
圖像的特征提取主要分為兩個方法:基于手工特征提取方法和基于特征學習方法。詞袋模型是手工提取特征的代表性方法,主要有如下步驟:1)對圖像提取關鍵點或關鍵區域;2)對關鍵點或關鍵區域提取局部特征描述符;3)為詞袋模型建立字典;4)對局部特征描述符進行池化并提取直方圖特征。其中,關鍵點或關鍵區域的提取以及提取特征描述符是視覺計算領域中的傳統問題,由于局部不變特征對圖像中的遮擋,尺度,光照等干擾因素具有較好的適應性,因此在近年來局部不變特征逐漸替代了全局特征而成為圖像表征的主流方法,它們也成為了詞袋模型中最為重要的兩個環節。關鍵點或關鍵區域的提取能夠找到圖像中關鍵的穩定區域,這些局部區域隨著圖像的變化具有一定的穩定性和可重復性。而提取特征描述符則為找到的關鍵點或關鍵區域提供了具有高效魯棒的描述。圖像局部不變特征檢測方法一般分為角點檢測子、斑點檢測子、區域檢測子。基于特征學習的方法通過對訓練集的學習,總結數據集蘊含的規律,學習視覺特征。
目前,深度學習的方法在視覺識別領域取得了極為出色的成果。隨著互聯網時代的快速發展,視覺感知領域已經進入了大數據時代,大數據一方面是數量上的大,另一方面是維度的大。深度學習方法能更好地利用視覺大數據學習出高效的視覺特征,因其不但關注了全局特征,更是利用了圖像識別領域非常重要的局部特征,將局部特征抽取的算法融入到了神經網絡中,從而有效完成視覺目標的特征表達。
雖然深度學習在視覺識別中取得了極佳的效果,但是目前深度學習的計算代價較大,在實際應用中存在瓶頸。二值特征學習技術具有計算、儲存、匹配速度快的特點,深度二值特征學習在花費較低運算代價的同時獲得較高的描述力,能夠具備精確、高效的特點,滿足實際應用需求。例如,deepbit通過非監督的方式學習深度二值特征,在多個數據集上取得了出色的識別率。然而,現有的二值特征學習方法均使用符號函數進行二值化,從而會導致較大的量化損失。
技術實現要素:
本發明旨在至少在一定程度上解決相關技術中的技術問題之一。
為此,本發明的一個目的在于提出一種多量化深度二值特征學習方法,該方法可以提高學習的精確性,并且提高學習效率。
本發明的另一個目的在于提出一種多量化深度二值特征學習裝置。
為達到上述目的,本發明一方面實施例提出了一種多量化深度二值特征學習方法,包括以下步驟:提取圖像的深度實值特征;通過k個自編碼網絡對所述圖像的深度實值特征進行多量化,以得到量化結果;根據所述量化結果對所述圖像的深度實值特征進行二值編碼,以得到圖像的二值特征。
本發明實施例的多量化深度二值特征學習方法,通過使用多量化進行二值化,并且利用k自編碼網絡來實施基于多量化的二值化,有效解決二值化帶來的量化誤差問題,提高了學習的精確性,并且提高了學習效率,更加高效簡單,更好地滿足實際應用需求。
另外,根據本發明上述實施例的多量化深度二值特征學習方法還可以具有以下附加的技術特征:
進一步地,在本發明的一個實施例中,所述提取圖像的深度實值特征,進一步包括:將原始的輸入圖像前傳入深度卷積神經網絡,以在網絡的最后層全連接后得到每一張圖像的深度實值特征;將所述每一張圖像的深度實值特征傳入降維的全連階層,以得到低維實值特征。
進一步地,在本發明的一個實施例中,整體的損失函數為:
其中,j為待優化目標,x為所求實值特征,
進一步地,在本發明的一個實施例中,所述通過k個自編碼網絡對所述圖像的深度實值特征進行多量化,進一步包括:通過k個自編碼器對所述圖像的深度實值特征分別進行重構,其中,令每個訓練樣本屬于重構誤差最小的編碼器;根據第一項損失函數和第二項損失函數,對于每個自編碼器,使用屬于該自編碼器的全部樣本對其進行訓練,以迭代多步后,對于每個樣本使用重構誤差最小的編碼器的編號作為該樣本的量化結果;利用第三項損失函數和所述第二項損失函數用所有樣本預處理的全連接層,并且反復迭代訓練,直到最大迭代次數。
進一步地,在本發明的一個實施例中,所述根據所述量化結果對所述圖像的深度實值特征進行二值編碼,進一步包括:對于所述深度實值特征的每一位,將該位賦值為使得該位重構誤差最小的自編碼器的二進制編號。
為達到上述目的,本發明另一方面實施例提出了一種多量化深度二值特征學習裝置,包括:提取模塊,用于提取圖像的深度實值特征;多量化模塊,用于通過k個自編碼網絡對所述圖像的深度實值特征進行多量化,以得到量化結果;編碼模塊,用于根據所述量化結果對所述圖像的深度實值特征進行二值編碼,以得到圖像的二值特征。
本發明實施例的多量化深度二值特征學習裝置,通過使用多量化進行二值化,并且利用k自編碼網絡來實施基于多量化的二值化,有效解決二值化帶來的量化誤差問題,提高了學習的精確性,并且提高了學習效率,更加高效簡單,更好地滿足實際應用需求。
另外,根據本發明上述實施例的多量化深度二值特征學習裝置還可以具有以下附加的技術特征:
進一步地,在本發明的一個實施例中,所述提取模塊具體用于將原始的輸入圖像前傳入深度卷積神經網絡,以在網絡的最后層全連接后得到每一張圖像的深度實值特征,并且將所述每一張圖像的深度實值特征傳入降維的全連階層,以得到低維實值特征。
進一步地,在本發明的一個實施例中,整體的損失函數為:
其中,j為待優化目標,x為所求實值特征,
進一步地,在本發明的一個實施例中,所述多量化模塊還用于通過k個自編碼器對所述圖像的深度實值特征分別進行重構,其中,令每個訓練樣本屬于重構誤差最小的編碼器,并且根據第一項損失函數和第二項損失函數,對于每個自編碼器,使用屬于該自編碼器的全部樣本對其進行訓練,以迭代多步后,對于每個樣本使用重構誤差最小的編碼器的編號作為該樣本的量化結果,以及利用第三項損失函數和所述第二項損失函數用所有樣本預處理的全連接層,并且反復迭代訓練,直到最大迭代次數。
進一步地,在本發明的一個實施例中,所述編碼模塊還用于對于所述深度實值特征的每一位,將該位賦值為使得該位重構誤差最小的自編碼器的二進制編號。
本發明附加的方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發明的實踐了解到。
附圖說明
本發明上述的和/或附加的方面和優點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1為根據本發明實施例的多量化深度二值特征學習方法的流程圖;
圖2為根據本發明一個實施例的多量化深度二值特征學習方法的流程圖;
圖3為根據本發明一個具體實施例的多量化深度二值特征學習方法的流程圖;
圖4為根據本發明實施例的多量化深度二值特征學習裝置的結構示意圖。
具體實施方式
下面詳細描述本發明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,旨在用于解釋本發明,而不能理解為對本發明的限制。
下面參照附圖描述根據本發明實施例提出的多量化深度二值特征學習方法及裝置,首先將參照附圖描述根據本發明實施例提出的多量化深度二值特征學習方法。
圖1是本發明實施例的多量化深度二值特征學習方法的流程圖。
如圖1所示,該多量化深度二值特征學習方法包括以下步驟:
在步驟s101中,提取圖像的深度實值特征。
其中,在本發明的一個實施例中,提取圖像的深度實值特征,進一步包括:將原始的輸入圖像前傳入深度卷積神經網絡,以在網絡的最后層全連接后得到每一張圖像的深度實值特征;將每一張圖像的深度實值特征傳入降維的全連階層,以得到低維實值特征。
例如,將原始的輸入圖像前傳入深度卷積神經網絡,在網絡的最后層全連接后得到每一張圖像的4096維的深度實值特征,再將該4096維特征傳入降維的全連接層,得到低維實值特征,作為圖像預處理的結果。
需要說明的是,由于采用了vgg網絡,所以得到4096維的深度實值特征,但本領域技術人員應當理解的是,任意的深度網絡都可以通過類似方法提取二值特征,在此不作具體限制。
可以理解的是,如圖2所示,首先,本發明實施例將預處理后的圖像實值特征輸入并聯的k個自編碼器,以用輸入的每一個實值特征在優化損失函數的目標下訓練使得整個特征重構誤差最小的自編碼器。
在步驟s102中,通過k個自編碼網絡對圖像的深度實值特征進行多量化,以得到量化結果。
其中,在本發明的一個實施例中,整體的損失函數為:
其中,j為待優化目標,x為所求實值特征,
進一步地,在本發明的一個實施例中,通過k個自編碼網絡對圖像的深度實值特征進行多量化,進一步包括:通過k個自編碼器對圖像的深度實值特征分別進行重構,其中,令每個訓練樣本屬于重構誤差最小的編碼器;根據第一項損失函數和第二項損失函數,對于每個自編碼器,使用屬于該自編碼器的全部樣本對其進行訓練,以迭代多步后,對于每個樣本使用重構誤差最小的編碼器的編號作為該樣本的量化結果;利用第三項損失函數和第二項損失函數用所有樣本預處理的全連接層,并且反復迭代訓練,直到最大迭代次數。
具體而言,如圖3所示,由于本發明實施例是基于非監督學習的特征提取方法,所以引入損失函數來對網絡進行訓練。本發明實施例用k個自編碼網絡對于實值特征進行多量化,并以此作為二值化的依據。該多量化方法應具有如下性質:
1、重構誤差最小
用自編碼器對預處理的實值特征進行重構。自編碼器最短的層提取的特征,是原始特征降維到子空間的結果。若通過自編碼器最短層的特征重構預處理實值特征產生的誤差越小,則在該子空間投影能保留原始數據越多的信息。
2、防止過擬合
由于樣本的數量有限,需要避免讓網絡只學習到樣本的局部特征,本發明引入防止網絡過擬合的懲罰項,讓系數保持稀疏,防止過擬合出現。
3、預處理實值特征方差最大
增大方差有助于提高數據所含信息量。本發明希望預處理過程中的降維能夠盡可能多的保存原始高維數據中的信息量,所以引入約束使得預處理特征的方差最大。
綜上所述,整體的損失函數為:
其中,j為待優化目標,x為所求實值特征,
進一步地,本發明實施例采用兩步迭代的方式訓練基于k自編碼網絡的多量化:
步驟1,用k個自編碼器對預處理的實值特征分別進行重構,對于每一個訓練樣本,令其屬于重構誤差最小的自編碼器;
步驟2,根據第1項和第2項損失函數,對于每一個自編碼器,使用屬于該自編碼器的全部樣本對其進行訓練。迭代多步后,對于每個樣本使用重構誤差最小的自編碼器的編號作為該樣本的量化結果。因為每一個自編碼器是該樣本在其不同子空間的一個投影,對于重構誤差最小的自編碼器,樣本在其投影的子空間具有最大信息。將其量化為該自編碼器代表的這一類,能夠最大限度地減小量化損失。
最后,再利用第3項和第2項損失函數用所有樣本訓練預處理的全連接層,盡可能減少預處理過程中原始信息的損失。反復迭代上述兩階段訓練,直到達到最大迭代次數。
在步驟s103中,根據量化結果對圖像的深度實值特征進行二值編碼,以得到圖像的二值特征。
其中,在本發明的一個實施例中,根據量化結果對圖像的深度實值特征進行二值編碼,進一步包括:對于深度實值特征的每一位,將該位賦值為使得該位重構誤差最小的自編碼器的二進制編號。
可以理解的是,如圖1所示,網絡訓練完成后,對于輸入的測試樣本,將其實值特征的每一位編碼為使得該位重構誤差最小的自編碼器二進制編號,最終得到圖像的二值特征。即言,在得到量化結果后對預處理的實值特征進行二值編碼,并且對于實值特征的每一位,將該位賦值為使得該位重構誤差最小的自編碼器的二進制編號,最終得到圖像的二值特征。
在本發明的實施例中,為了避免傳統二值特征提取技術中用符號函數對圖像實值特征進行二值化帶來的較大的量化誤差,本發明實施例用k個自編碼網絡對圖像實值特征在子空間的投影進行多量化,并用此多量化結果作為二值化的依據。
具體地,本發明實施例的關鍵點一,利用多量化技術進行精細的二值化,使用符號函數或手工定義閾值的方式對實值函數進行二值化,忽略了數據集的信息,導致量化損失較大;多量化通過將數據集進行聚類的方式,能夠實現數據適應的精細二值化過程;關鍵點二,利用k自編碼網絡進行多量化;使用k個自編碼網絡進行多量化的方法,通過兩步迭代的方式訓練自編碼器的參數,并得到最終的量化結果;關鍵點3,使用多量化深度二值特征提取的框架,使用深度網絡進行實值特征學習并使用多量化網絡進行二值化,實現多量化深度二值特征學習。
根據本發明實施例提出的多量化深度二值特征學習方法,首先對于圖片使用深度網絡提取實值特征,并且為了進行精細的二值化過程,采用了基于k自編碼網絡的多量化方法,對實值特征進行二值化,最小化該步驟帶來的二值損失,以及為了得到更為精確的二值特征,使用統一的優化函數對整個網絡的參數進行訓練學習,最終對于每一張圖片能夠得到其精確、高效的多量化深度二值特征,其中,通過使用多量化進行二值化,并且利用k自編碼網絡來實施基于多量化的二值化,有效解決二值化帶來的量化誤差問題,提高了學習的精確性,并且提高了學習效率,更加高效簡單,更好地滿足實際應用需求。
其次參照附圖描述根據本發明實施例提出的多量化深度二值特征學習裝置。
圖4是本發明實施例的多量化深度二值特征學習裝置的結構示意圖。
如圖4所示,該多量化深度二值特征學習裝置10包括:提取模塊100、多量化模塊200和編碼模塊300。
其中,提取模塊100用于提取圖像的深度實值特征。多量化模塊200用于通過k個自編碼網絡對圖像的深度實值特征進行多量化,以得到量化結果。編碼模塊300用于根據量化結果對圖像的深度實值特征進行二值編碼,以得到圖像的二值特征。本發明實施例的裝置10可以有效解決二值化帶來的量化誤差問題,提高了學習的精確性,并且提高了學習效率,更加高效簡單,更好地滿足實際應用需求。
進一步地,在本發明的一個實施例中,提取模塊100具體用于將原始的輸入圖像前傳入深度卷積神經網絡,以在網絡的最后層全連接后得到每一張圖像的深度實值特征,并且將每一張圖像的深度實值特征傳入降維的全連階層,以得到低維實值特征。
進一步地,在本發明的一個實施例中,整體的損失函數為:
其中,j為待優化目標,x為所求實值特征,
進一步地,在本發明的一個實施例中,多量化模塊200還用于通過k個自編碼器對圖像的深度實值特征分別進行重構,其中,令每個訓練樣本屬于重構誤差最小的編碼器,并且根據第一項損失函數和第二項損失函數,對于每個自編碼器,使用屬于該自編碼器的全部樣本對其進行訓練,以迭代多步后,對于每個樣本使用重構誤差最小的編碼器的編號作為該樣本的量化結果,以及利用第三項損失函數和第二項損失函數用所有樣本預處理的全連接層,并且反復迭代訓練,直到最大迭代次數。
進一步地,在本發明的一個實施例中,編碼模塊300還用于對于深度實值特征的每一位,將該位賦值為使得該位重構誤差最小的自編碼器的二進制編號。
需要說明的是,前述對多量化深度二值特征學習方法實施例的解釋說明也適用于該實施例的多量化深度二值特征學習裝置,此處不再贅述。
根據本發明實施例提出的多量化深度二值特征學習裝置,首先對于圖片使用深度網絡提取實值特征,并且為了進行精細的二值化過程,采用了基于k自編碼網絡的多量化方法,對實值特征進行二值化,最小化該步驟帶來的二值損失,以及為了得到更為精確的二值特征,使用統一的優化函數對整個網絡的參數進行訓練學習,最終對于每一張圖片能夠得到其精確、高效的多量化深度二值特征,其中,通過使用多量化進行二值化,并且利用k自編碼網絡來實施基于多量化的二值化,有效解決二值化帶來的量化誤差問題,提高了學習的精確性,并且提高了學習效率,更加高效簡單,更好地滿足實際應用需求。
在本發明的描述中,需要理解的是,術語“中心”、“縱向”、“橫向”、“長度”、“寬度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底”“內”、“外”、“順時針”、“逆時針”、“軸向”、“徑向”、“周向”等指示的方位或位置關系為基于附圖所示的方位或位置關系,僅是為了便于描述本發明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構造和操作,因此不能理解為對本發明的限制。
此外,術語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特征的數量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括至少一個該特征。在本發明的描述中,“多個”的含義是至少兩個,例如兩個,三個等,除非另有明確具體的限定。
在本發明中,除非另有明確的規定和限定,術語“安裝”、“相連”、“連接”、“固定”等術語應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或成一體;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內部的連通或兩個元件的相互作用關系,除非另有明確的限定。對于本領域的普通技術人員而言,可以根據具體情況理解上述術語在本發明中的具體含義。
在本發明中,除非另有明確的規定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接觸,或第一和第二特征通過中間媒介間接接觸。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或僅僅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或僅僅表示第一特征水平高度小于第二特征。
在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本發明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不必須針對的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結合。此外,在不相互矛盾的情況下,本領域的技術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特征進行結合和組合。
盡管上面已經示出和描述了本發明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發明的限制,本領域的普通技術人員在本發明的范圍內可以對上述實施例進行變化、修改、替換和變型。