技術領域
本發明涉及用于圖像處理中的基于邊緣的檢測的方法和系統。
背景技術:
下面的描述包括在理解本發明中可以是有用的信息。這不是承認此處提供的任意信息是現有技術或與當前要求保護的發明有關,或者具體或隱式引用的任意公開是現有技術。
在圖像處理技術中已經存在許多最近的進展來識別對象。一個相當古老的示例包括使用尺度不變特征變換(SIFT;于2000年3月6日提交的Lowe題為“Method and Apparatus for Identifying Scale Invariant Features in an Image and Use of the Same for Locating an Object in an Image”的美國專利號6,711,293)。通過使用從圖像數據得出的基于SIFT的描述符來查找與已知對象有關的內容信息可以在圖像數據內識別對象,其中根據描述符空間該內容信息已經被編索引。識別對象的額外示例包括共同擁有的美國專利號7,016,532、8,224,077、8,224,078、和8,218,873。
這種傳統圖像處理和目標識別技術針對識別很好理解的、特定的對象(例如,人臉、指紋、條形碼等)是相當合適的。然而,當應用到缺乏用于識別的足夠特征的通用對象(例如,標志、杯子或馬克杯等)時,它們往往失敗。此外,由于過度的計算資源需求,所以邊緣檢測的已知方法不適合用于消費級產品中,特別是當邊緣被用于對象識別、對象分類、對象跟蹤或其他類型的對象圖像數據分析時。進一步地,由已知技術生成的誤判(false positive)數量致使該技術在消費者對準確性具有很高的期望的市場中不可用。一種可以幫助對以圖像數據表示的對象進行分類的方法可能利用與對象的明顯邊緣有關的信息。
一些努力已被指向識別邊緣并且在識別對象中使用來量化它們。一個示例包括由Damen等人描述、題為“Real-Time Learning&Detection of 3D Textureless Objects:A Scalable Approach”,2012的技術。Damen使用線段檢測器和Canny邊緣圖來描述以識別圖像數據中的邊緣線。該邊緣線被用于形成邊緣線的群集,其可以被用于搜索相關對象。不幸的是,因為用于識別邊緣和處理邊緣的時間不適合于嵌入式裝置上的幀速率視頻(例如,大于20fps),所以Damen方法不適合于在資源有限的嵌入式系統(例如手機等)中使用。進一步地,Damen方法生成大量的誤判,其不適合于在要求高精度的消費市場中使用。
在對圖像數據進行分析以識別對象幾何特征的方面已經取得了一些進展,如由Medioni等人,Copyright 2000,Elsevier Science B.V.,ISBN 0 444 50353 6由“A computational Framework for Segmentation and Grouping”描述的。Medioni使用從圖像數據得出的張量場來識別由圖像數據表示的對象的幾何性質。幾何性質然后被用于識別圖像數據內的形狀,其中形狀可以被認為更好地符合人類會如何感知該形狀。雖然對識別形狀的存在有用,Medioni未能提供洞察如何解決與高消費需求有關的問題。例如,用于Medioni方法的張量算法是非常計算密集型的。
有趣的是,Medioni基于張量的方法提供了表示幾何結構的感知重要性的顯著性測量(saliency measure)。然而,當確定幾何結構時,顯著性測量僅在內部使用。還有待領會的是,可以超過僅僅幾何特征的識別而利用顯著性測量。如下面由申請人的工作描述的,除了其他度量,顯著性也可以被用于提供哪個邊緣被感知為最重要于起作用的指示,從而減少計算時間并減少誤判。
此處所有公開都通過引用的方式被并入,在相同的程度上猶如每個個別公開或專利申請具體地和各自地被指示出以通過引用的方式被并入。其中通過引用方式并入的引用中的術語的定義或使用與此處提供的術語的定義不一致或相反,此處提供的術語的定義適用并且在引用中的該術語的定義不適用。
因此,仍然需要能夠快速減少誤判的改進的基于邊緣的識別系統。
技術實現要素:
本發明的主題提供了一種裝置、系統和方法,其中一個或多個計算裝置可以作為圖像處理系統運行來識別在圖像數據中表示的邊緣并且使用識別出的邊緣來以減少誤判的方式識別對象或將對象進行分類。
本發明的主題的一個方面包括使能裝置或系統基于圖像數據而采取行動的方法。公開的方法包括獲得具有感興趣對象的數字表示的圖像數據。對一種優選地由圖像處理裝置(例如,平板電腦、智能電話、信息亭、增強或虛擬現實眼鏡等)執行的圖像識別系統進行編程以執行該方法。該方法進一步包括分析該圖像數據以生成邊緣的集合。例如,該方法可以包括通過在與該對象有關的圖像數據的至少一部分上執行共圓算法的實現來生成邊緣的收集。在更多的實施例中,收集中的邊緣可以包括指示出從感知角度與邊緣相關聯的“邊緣性(edged-ness)”的感知測量(例如,顯著性、平滑度、長度等)。
從邊緣的收集,圖像識別系統可以部分基于感知測量而選擇候選邊緣集合。這些候選邊緣集合表示可能的起點,從該起點,圖像處理裝置可以構建基于邊緣的描述符。因此,該方法可以針對候選集合中的邊緣從圖像數據構建像素級邊緣線。該方法然后從該邊緣線得出多個基于邊緣的描述符,其中該描述符表示邊緣線的群集。一旦該群集或它們對應的描述符正在識別,它們就可以被用于配置裝置或圖像識別系統以基于多個基于邊緣的描述符中的一個或多個描述符而采取行動。例如,根據相關聯的基于邊緣的描述符,該行動可以包括與內容數據庫中的對象有關的索引內容(例如,數據庫、文件系統、溢出樹、k-d樹等)以使得該內容可以在以后被檢索。另一個示例行動包括使用基于邊緣的描述符來針對與該對象有關的內容而查詢內容數據庫。
本發明的主題的另一個方面包括識別與對象有關的內容的方法。公開的方法包括獲得圖像數據,其經由內容識別引擎表示對象。然后,圖像識別系統從圖像數據中得出至少一個基于邊緣的描述符。該方法通過生成與圖像數據的一部分有關的尺度度量而繼續,其中基于至少一個基于邊緣的描述符而確定圖像數據的該部分。
基于得出的基于邊緣的描述符,該方法進一步使用所述至少一個基于邊緣的描述符根據基于邊緣的描述符空間,繼續從存儲了被編索引的內容信息的內容數據庫獲得內容候選集。在優選的實施例中,內容信息包括尺度信息。然后,圖像識別系統可以進一步通過由將結果集中的內容信息的尺度信息與尺度度量進行比較而過濾內容候選集來生成內容結果集。一旦生成了內容結果集,圖像識別系統就可以使能裝置基于內容結果集而采取行動。
本發明的主題的另一個方面包括存儲與對象有關的內容的方法。公開的方法包括獲得經由圖像識別系統表示對象的圖像數據。然后圖像識別系統從圖像數據得出至少一個基于邊緣的描述符。一旦得出基于邊緣的描述符,圖像識別系統就可以生成與圖像數據的一部分有關的尺度度量。
優選的是基于至少一個基于邊緣的描述符來確定圖像數據的該部分。該方法通過使用至少一個基于邊緣的描述符來存儲與內容數據庫中的對象有關的內容信息而繼續。在內容數據庫中,根據基于邊緣的描述符空間對內容信息進行編索引。在優選的實施例中,內容信息包括與尺度度量有關的尺度信息。
本發明主題的各種對象、特征、方面和優點將從下面優選實施例的詳細描述以及其中相同數字表示相同組件的附圖數字而變得更加顯而易見。
附圖說明
圖1示出了基于邊緣的識別生態系統。
圖2示出了一些實施例的圖像預處理模塊的詳細信息。
圖3示出了一些實施例的邊緣處理模塊的詳細信息。
圖4示出了一些實施例的圖像匹配模塊的詳細信息。
圖5示出了一些實施例的在基于邊緣的識別系統中識別對象的過程。
具體實施方式
貫穿下面的討論,將對于服務器、服務、接口、引擎、模塊、客戶端、節點、門戶、平臺或其他從計算裝置形成的系統進行很多的引用。應該領會的是,這些術語的使用被視為表示具有被配置為執行存儲在計算機可讀的有形的、非暫時性的介質上(例如,硬盤驅動器、固態硬盤、RAM、閃速存儲器、ROM等)的軟件指令的至少一個處理器(例如ASIC、FPGA、DSP、x86、ARM、ColdFire、GPU、多核處理器等)的一個或多個計算裝置。例如,服務器可以包括一個或多個計算機以滿足描述的角色、職責或功能的方式作為網絡服務器、數據庫服務器或其他類型的計算機服務器而運行。應該進一步領會到公開的基于計算機的算法、過程、方法或其他類型的指令集可以被實施為包括存儲了致使處理器執行公開的步驟的指令的非暫時性的、有形的計算機可讀介質的計算機程序產品。各種服務器、系統、數據庫或接口可以使用標準化的協議或算法(可能基于HTTP、HTTPS、AES、公私密鑰交換、網絡服務API,已知的金融交易協議或其他電子信息交換方法)進行數據交換。數據交換可以在分組交換網絡、電路交換網絡、互聯網、LAN、WAN、VPN或其他類型的網絡上進行。
如在此處的描述中使用的并且貫穿附屬的權利要求,當系統、引擎或者模塊被描述為配置為執行函數集時,“配置為”或“編程為”的含義被限定為由軟件指令集編程的一個或多個處理器來執行函數集。
應該領會到,公開的對象識別系統提供了很多有益的技術效果。例如,當特征較少的對象在數字表示中出現時,一些實施例的對象識別系統通過分析對象的輪廓而使能它們的準確和有效的識別。具體地,對象識別系統使用一種新穎的和改進的技術–共圓算法–來在數字表示中驗證邊緣。
下面的討論提供了本發明主題的許多示例性實施例。雖然每個實施例表示發明的元件的單個組合,但本發明的主題被認為包括公開的元件的所有可能的組合。因此,如果一個實施例包括元件A、B和C,并且第二個實施例包括元件B和D,那么本發明的主題也被認為包括A、B、C或D的剩余組合,即使沒有明確地公開也是如此。
如此處使用的,并且除非上下文另有規定,術語“耦接至”旨在包括直接耦接(其中彼此耦接的兩個元件彼此接觸)和間接耦接(其中至少一個額外元件位于兩個元件之間)這二者。因此,術語“耦接至”和“與…耦接”同義地使用。
在一些實施例中,用于描述和要求本發明主題的某些實施例的表示成分、性質數量的數字(例如濃度、反應條件等)要被理解為在某些情況下由術語“關于”修改。因此,在一些實施例中,在書面說明和附屬權利要求中闡述的數值參數是近似值,其可以基于試圖由特定的實施例獲得的所期性質而變化。在一些實施例中,數值參數應該按照報告的有效數字的數量并通過應用普通的四舍五入的技術來解釋。盡管闡述了本發明主題的一些實施例的廣泛的范圍的數值范圍和參數是近似的,但是在具體的示例中闡述的數值被盡可能準確地報告。本發明主題的一些實施例中呈現的數值可能包含必然地由它們的相應測試測量中發現標準偏差導致的一定的誤差。
如在此處的描述中使用的并且貫穿附屬的權利要求,除非上下文另有明確規定,“一”、“一個”和“這個”的含義包括多個引用。此外,如在此處的描述中使用的,除非上下文另有明確規定,“在…之中”的含義包括“在…之中”和“在…上”。
除非上下文規定相反,此處闡述的所有范圍應被解釋為包括它們的端點并且開放式范圍應被解釋為只包括商業實用價值。此處的值的范圍的列舉僅僅旨在作為單獨地指代落入范圍內的每個單獨的值的速記方法。除非此處另有規定,范圍內的每個單獨的值被并入說明書猶如其在此單獨地列舉。類似地,除非上下文規定相反,所有值的列表應被視為包括中間值。
除非此處另有規定或除非明確地與上下文互相矛盾,此處描述的所有方法可以以任意合適的順序執行。除非被要求,任意和所有的示例的使用或相對于此處的某些實施例提供的示范性語言(例如,“諸如”)僅僅旨在更好地闡明本發明的主題,并且不構成對本發明主題的保護范圍的限制。在說明書中的任何語言都不應被解釋為指示出對本發明主題的實踐必不可少的任意非要求的元件。
可選元素的分組或此處公開的本發明的主題的實施例將不被解釋為局限性。可以各自地或與本組的其他成員或此處發現的其他元素的任意組合指代并要求每個組成員。出于方便和/或專利性的原因,分組的一個或多個成員可以被包括在分組中或從分組中刪除。當任意這樣的包括或刪除出現時,說明書在此被視為包括如修改那樣的分組,從而實現在附屬權利要求中使用的所有Markush分組的書面描述。
公開的本發明的主題的焦點是使能計算系統的建設或配置以操作超出了人類能力的大量的數字數據。雖然數字數據表示現實世界的對象,但是應該領會的是數字數據是真實世界的一個或多個數字模型的表示,而不是現實世界的對象本身。通過實例化在計算裝置的存儲器中的這種數字模型,計算裝置能夠以這樣一種方式管理數字數據或模型:其可以向計算裝置的用戶提供實用工具,用戶會缺乏這樣的工具。
詞匯表
貫穿討論的剩余部分使用了下面的術語。這些術語的含義是為了清晰的目的而呈現,并且不應該被解釋為限制本發明的主題。
“邊緣像素(edgel)”表示以下數據結構對象,其包括位置信息(例如,圖像數據中的x,y坐標等)、方向信息(例如,法向量)和形狀信息(例如,與邊緣像素相關聯的邊緣的類型;曲線,曲面等)的。
“邊緣(edge)”表示以下數據結構對象,其定義沿著圖像中的像素的一段曲線,其中曲線包括端點。曲線可以組成一連串邊緣像素。
“邊緣線(edgelet)”表示以下數據結構對象,其表示以邊緣像素為中心的短線段,其中線段具有方向(例如,法向量)和長度。邊緣線的長度可以為單個像素,但也可以具有多個像素的長度,或多個邊緣線。
邊緣識別
邊緣檢測的使用可以通過(1)生成一個或多個基于邊緣的描述符并(2)將這種描述符和鏈接到對象內容或信息的已知描述符進行比較來幫助識別缺乏可識別特征(例如,紋理、圖案、色彩方案、標志、文字、條形碼、二維碼等)的通用對象。下面與邊緣識別有關的討論利用一些已知的哲學技術作為基礎,并介紹了新的概念以產生改進的基于邊緣的圖像處理能力。更具體地,公開的方法利用如由Medioni等人.Copyright 2000,Elsevier Science B.V.,ISBN0 444 50353 6在“A computational Framework for Segmentation and Grouping”中描述的圖像數據的基于張量的分析的哲學方法;以及如Damen等人中描述的、題為“Real-Time Learning&Detection of 3D Textureless Objects:A Scalable Approach”,2012的邊緣線群集生成。通過關注如下面描述的共圓,下面公開的方法背離公開的基于張量的討論,其導致反映邊緣的感知質量的一個或多個感知測量。
應該領會到,公開的技術是針對使用基于邊緣的描述符來識別圖像數據(例如,靜止圖像、實時圖像數據、視頻圖像、視頻幀等)中的對象,同時還減少誤判。本發明主題的兩個方面包括攝取對象數據以使得對應的對象可以被識別為已知對象,并從圖像數據得出基于邊緣的描述符以基于攝取的對象信息而將對象識別為已知對象。
圖1是圖像數據采集和識別生態系統100的總體示意圖。生態系統100包括圖像捕獲裝置105以及與裝置105耦接的圖像識別系統110。應該領會到,各種發明元件的角色或職責可以跨一個或多個適當配置的計算裝置部署或分布。例如,該裝置105可以包括圖像識別系統110。可選地,該裝置105可以包含一個或多個小的應用程序,其配置裝置105以在網絡(例如,互聯網、手機網、WAN、VPN,LAN、Wi-Fi Direct、DLNA、對等網絡、Ad hoc、網格等)上與圖像識別系統110耦接。
裝置105可以包括手機、游戲機、數碼相機、電器、安全攝像頭、移動數字裝置、信息亭、GPS、醫療成像裝置或生物識別裝置,其具有光學傳感器以獲取描述了一個或多個對象(例如玩具、服裝、汽車、工具、樹、動物、組織、器官、建筑等)的場景106的圖像數據(例如靜止圖像數據、實時圖像數據、視頻圖像數據等)。裝置105可以進一步包括可以檢測裝置105的光學傳感器的運動或方向的一個或多個其他傳感器(例如全球定位系統(GPS)傳感器、機械傳感器、加速度傳感器、速度傳感器、近程傳感器、振動傳感器或其他傳感器)。
該裝置105還可以包括使能裝置105與其他計算裝置交換數據的一個或多個通信接口。該通信接口可以包括有線或無線接口和短程或遠程接口。有線接口可以包括接口例如以太網、USB、HDMI、RS-232或者甚至專有接口。無線接口可以包括接口例如WiGIG、無線USB、UWB、Wi-Fi、蜂窩、IrDA或其他無線接口。
由裝置105獲取的場景106的圖像數據在圖像識別系統110中處理以提取場景106中的對象的基于邊緣的描述符并且基于場景106中的對象的基于邊緣的描述符將該對象與內容數據庫145中存儲的先驗已知候選對象進行匹配。圖像識別系統110包括一個或多個圖像預處理模塊115、邊緣處理模塊125、圖像匹配模塊135。在優選的實施例中,圖像識別系統110還包括描述符數據庫140、內容數據庫145和模型圖像數據庫150中的至少一個。然而,還可以預期的是,描述符數據庫140、內容數據庫145和模型圖像數據庫150中的至少一個是第三方數據庫,并且可以在網絡上與圖像識別系統110耦接。
在優選的實施例中,在圖像識別系統110中依次處理對象106的圖像數據。在本實施例中,在圖像預處理模塊115中預處理對象106的圖像數據以生成后處理的圖像數據120。后處理的圖像數據120然后在邊緣處理模塊125中處理以生成圖像數據106中的對象的基于邊緣的描述符130。生成的基于邊緣的描述符130被存儲在描述符數據庫140中。
基于從圖像數據106得出的對象的基于邊緣的描述符130,從內容數據庫145中選擇具有對應于基于邊緣的描述符130的特征的多個候選對象。在多個候選對象當中,經由圖像匹配模塊135中的一個或多個過濾過程而移除誤判對象以識別一個或多個對象155。在這個示例中,圖像識別系統110從數字數據106識別出野餐傘155a和毯子155b。
圖2示出了圖像預處理模塊115對圖像數據執行的示例過程。對圖像數據執行的過程或濾波器可以使能圖像識別系統110從圖像數據中更準確地和有效地得出邊緣和與邊緣相關的信息。在這個示例中,對圖像預處理模塊115進行編程以對圖像數據205執行(a)Gaussian濾波器115a和(b)Sobel濾波器115b的實現。雖然只有Gaussian濾波器和Sobel濾波器在這個示例子被示出,但是可以預期的是,其他平滑、模糊或遮光濾波器可以由圖像預處理模塊115使用。在這個優選的實施例中,Gaussian濾波器115a的實現首先被施加到原始圖像數據205以模糊圖像來創建模糊圖像215。這樣的模糊降低了圖像噪聲并且減少了原始圖像數據205中的詳細信息。因此,將Gaussian濾波器115a施加到圖像數據205具有減少微弱或孤立邊緣的檢測的效果。
對圖像預處理模塊115進行編程以進行對模糊圖像215執行Sobel濾波器115b的實現的步驟。Sobel濾波器115b對模糊圖像215使用空間梯度測量來強調對應于邊緣的高空間頻率的區域。如圖所示,在施加Sobel濾波器115b后產生的圖像220具有所有潛在的邊緣加重。
由于在圖像中的強邊緣變得更加明顯,所以對一些實施例的圖像預處理模塊115進行編程以對強調邊緣的圖像220執行檢測邊緣像素的步驟。如上面提到的,邊緣像素是以下數據結構,其表示在圖像220上的、被檢測為邊緣的部分的像素。圖像預處理模塊115的不同實施例使用不同算法來對圖像220檢測邊緣像素。在一些實施例中,圖像預處理模塊115使用邊緣檢測器115c來對圖像220執行Canny邊緣檢測算法的實現以生成邊緣像素。使用Canny邊緣檢測算法的實現,邊緣檢測器115c減少(或抑制)邊緣以使得僅保留邊緣著重的圖像220中的強邊緣(即沒有連接到強邊緣的弱邊緣和邊緣被過濾掉)。例如,不在8個連接的鄰域像素內具有強邊緣像素的任意邊緣像素從邊緣像素中移除。
結果,檢測到像素級的邊緣像素的列表。圖2示出了在圖像220的部分224中檢測到的邊緣像素。在這個示例中,圖像220的部分224包括了傘223的一段。圖像部分224在圖像中被放大以用于說明的目的。如圖所示,圖像部分224示出了傘223的清晰的輪廓。對一些實施例的邊緣檢測器115c進行編程來執行從像素230a、230b、230c,230d和230e檢測邊緣像素235的步驟。可以預期的是,在收集235中的每個邊緣像素對應于圖像220上的像素。優選地,每個邊緣像素235可以為一個像素的長度。然而,可以預期的是,每個邊緣像素235包括多個像素的長度。
一旦檢測到邊緣像素的收集,就對圖像識別系統110進行編程以執行基于邊緣像素的收集而使用邊緣處理模塊125來構建基于邊緣的描述符的步驟。圖3示出了通過6個步驟–步驟310、320、330、340、350和360來基于邊緣像素的收集構建基于邊緣的描述符的過程。在第一步310中,邊緣處理模塊125對邊緣像素的收集執行共圓算法的實現。共圓算法利用邊緣像素的共圓來確定哪個邊緣像素駐留在同一個邊緣上,并且生成一個或多個邊緣。共圓試圖確定具有半徑的曲線(例如,圓、圓的一部分等)是否可能適合至少一些邊緣像素。為了確定共圓,邊緣處理模塊125針對邊緣像素的收集中的每個邊緣像素而計算張量場(例如,棒張量、球張量等)。邊緣像素的張量場表示邊緣像素的來源、大小和方向。一旦計算了邊緣像素的張量場,邊緣處理模塊125就使用張量場作為共圓評分來連接兩個鄰域邊緣像素。當連接了兩個鄰域邊緣像素(例如邊緣像素A和邊緣像素B)時,曲線可以被計算為邊緣像素A和邊緣像素B的兩個張量場之間的距離以及在邊緣像素A處的密切圓的切線與穿過邊緣像素A和邊緣像素B的線之間的角度的函數。
應該領會到,幾乎是直線的邊緣可以被認為是具有低曲率的曲線或具有非常大的半徑的圓,而非常彎曲的邊緣(具有尖角)可以被認為是具有高曲率的曲線或具有非常小的半徑的圓。因此,邊緣處理模塊125生成邊緣的收集,其中每個邊緣表示曲線。應該領會到,共圓算法可以應用于整個圖像或圖像的所選部分,其可能與感興趣對象相關。值得引起注意的是,每個邊緣可以進一步包括感知測量,其可以被認為指示出人們可能會感知邊緣具有的“邊緣性”。示例感知測量包括曲線的長度、曲線的平滑度測量、曲線的曲率、曲線的交點、曲線的結合或指示出一個人可以如何感知邊緣的平等的其他測量中的一個或多個。
因此,一旦確定了曲線,邊緣處理模塊125就可以通過評估落在相同曲線上的邊緣像素的數量來確定該曲線是否可以被視為是好的邊緣。對至少一些質量測量(例如,χ2匹配、閾值等),如果多個邊緣像素也落在曲線上,則曲線被視為好的邊緣。在這個示例中,存在十七個邊緣像素301a至304b已從圖像識別。使用邊緣像素的這個收集,邊緣處理模塊125識別曲線307和曲線308。曲線307看起來與邊緣像素301a、301b、301c、301d、301e、301f、301g、301h重疊,并且曲線308看起來與邊緣像素303a、303b、303c、303d、303e重疊。同時,與較小數量的邊緣像素重疊的其他曲線也可以被識別。例如,邊緣像素302a和邊緣像素302b可以在第三條曲線(未示出)上,并且邊緣像素304a和邊緣像素304b可以在第四條曲線(未示出)上。然而,并不是所有好的邊緣都為同等質量或顯著性。因此,在第二步320中,一些實施例的邊緣處理模塊125從邊緣的收集在選擇邊緣的子集(可能是適當的子集)作為候選邊緣。
在一些實施例中,邊緣處理模塊125基于一個或多個標準來選擇候選邊緣,該一個或多個標準包括感知測量、邊緣或其相關聯曲線的長度、重疊邊緣像素的數量、圖像中的位置、深度信息(例如,參見于2011年12月20日提交的McKinnon題為“Depth Estimate Determination,Systems and Methods”的共同擁有的美國專利申請公開2012/0163672)、裝置位置信息(例如GPS、三角測量、RSS等)或其他可用信息。特別值得注意的是,更優選的實施例利用感知測量來確定哪些邊緣是最感興趣的以作為候選邊緣。例如,具有長度大于30像素和高平滑度的所有邊緣可以被視為候選邊緣。在這個示例中,邊緣處理模塊125選擇曲線307和308作為候選邊緣,這是因為它們超過閾值重疊邊緣像素的數量。
當選擇了候選邊緣的適當子集時,邊緣處理模塊125可以構建邊緣線的集合,可能在像素級處從候選邊緣當中構建。第三步330提供了從步驟310和步驟320從候選邊緣307和候選邊緣308以及從邊緣像素301a至邊緣像素304b來構建邊緣線的集合的示例。應該領會到,每個邊緣線可以對應于像素級的邊緣像素。然而,一個邊緣線可以表示多于一個邊緣像素,也許每兩個邊緣像素、每三個邊緣像素或邊緣的其它分段。例如,從候選邊緣307,分別地,邊緣處理模塊125構建對應于邊緣像素301a、301b、301c、301d、301e、301f、301g、301h的邊緣線331a、331b、331c、331d、331e、331f、331g、331h。類似地,從選定的邊緣308,分別地,邊緣處理模塊125構建對應于邊緣像素303a、303b、303c、303e、303d、303e的邊緣線333a、333b、333c、333d、333e。在一些實施例中,當前實現中的每個邊緣線表示大約10到15像素。然而,還可以預期的是,其他像素長度(例如,1像素、3像素、5像素、7像素、20像素、30像素等)可以被用于構建一個邊緣線。
一旦構建了來自候選邊緣的邊緣線的集合,就對邊緣處理模塊125進行編程以在第四步340中執行構建一個或多個邊緣線的群集(constellation)的步驟。應該領會到,邊緣線的群集可以通過調整可調參數(例如向量的角、在群集中的所期邊緣線的數量或其他因素)來生成。在優選的實施例中,對邊緣處理模塊125進行編程以執行從邊緣線的集合構建具有四個射線的五個邊緣線的群集,其中所述射線分別在45、90、90和45度角處從一個邊緣線投射到另一個邊緣線。如本示例中示出的,邊緣處理模塊125已經使用五個邊緣線331a、333a、331c、331g和333e構建了群集(如由作為連接邊緣線的射線的線指示出的)。第一條射線341a連接邊緣線331a和333a。第二條射線341b連接邊緣線333a和331c。第三條射線341c連接邊緣線331c和331g,并且第四條射線341d連接邊緣線331g和333e。
在第五步350中,對邊緣處理模塊125進行編程以執行從邊緣線的群集得出基于邊緣的描述符的步驟。在優選實施例中,對邊緣處理模塊125進行編程以執行針對邊緣線的每個群集構建基于邊緣的描述符的步驟。每個基于邊緣的描述符是用于存儲對應群集的屬性和特征的數據結構。在一些實施例中,邊緣處理模塊125可以包括每個基于邊緣的描述符中的不變元素或維度(例如,射線的長度、兩條射線之間的角、投影射線的長度之間的比率、法向量等)。因此,在具有五個邊緣線的群集的情況中,基于邊緣的描述符可以包括七個不變元素或維度:三個長度不變維度和四個方向不變維度。
在優選的實施例中,維度可以由從一個邊緣線投射到另一個邊緣線的四個投射射線的比率來確定。例如,在步驟340中構建的邊緣線的群集中,邊緣處理模塊125可以確定四條射線d1 351a、d2 351b、d3 351c和d4 351d的長度。然后三個長度不變維度可以具有基于(d2 351b/d1 351a)、(d3 351c/d2 351b)、和(d3 351c/d4 351d)的比率的值。
還對一些實施例的邊緣處理模塊125進行編程以執行確定兩個射線對352a、352b和352c之間的角的步驟,并且包括它們作為基于邊緣的描述符的部分。此外,邊緣處理模塊125可以確定群集中的五個邊緣線的方向(例如,法向量等),然后,方向不變維度可以具有基于群集中的每個邊緣線的法向量的比較的值。例如,該值可以為群集中的相鄰邊緣線的法向量的點積,例如
基于長度不變維度和方向不變維度,對邊緣處理模塊125進行編程以在第六步360中執行構建基于邊緣的描述符361的步驟。在優選的實施例中,基于邊緣的描述符361包括具有長度不變維度(d2 351b/d1 351a)、(d3 351c/d2 351b)和(d3 351c/d4 351d)以及方向不變維度的值的向量。在其它實施例中,基于邊緣的描述符361可以進一步包括在群集中的射線341a、341b、341c和341d之間的角352a、352b和352c的信息。在一些實施例中,該值可以被歸一化或按比例縮放到無符號的字節以使得向量的每個成員將具有0至255的值,使得描述符將具有緊湊形式。
在一些實施例中,基于邊緣的描述符361進一步包括超過了群集的方向不變維度和長度不變維度的額外信息。例如,基于邊緣的描述符361可以包括表示相對于原始圖像上的一個或多個邊緣的梯度方向的維度,從其得出邊緣線的對應群集。0的字節值可以指示出如由邊緣表示的感興趣對象具有深色內飾并且由淺色包圍,而255的值可以指示出感興趣對象具有淺色內飾并且由深色包圍。
然而可以集成到基于邊緣的描述符361或單獨作為元數據處理的另一個可能的信息包括關于與已知對象相關聯的原始攝取的圖像數據的尺度信息。典型地,因為大多數圖像描述符試圖完全地尺度不變,所以這樣的尺度信息是可以避免的。然而,針對一般對象,一些相對的尺度信息在識別事件期間可以是誤判的強鑒別器。在這個實施例中,與群集的維度有關的相對尺度信息可以被保留,同時還提供尺度不變性。
預期的尺度信息可以被生成作為關于與感興趣對象有關的圖像數據的部分的尺度度量并且基于相關聯的基于邊緣的描述符361。例如,邊緣處理模塊125可以在圖像中生成感興趣對象周圍的邊界框,其中邊界具有以像素測量的高度(h)和寬度(w)。可以基于群集的幾何形狀、其他類型的圖像描述符(例如,SIFT、BRISK、FREAK等)或其他參數而生成邊界框。尺度度量的一個示例可以包括與邊界框和描述符的群集有關的長度的比率。回到上面的射線長度的描述,尺度度量可以由S=(d1 351a+d2 351b+d3 351c+d4 351d)/(h+w)表示。這個度量為相對于捕獲圖像數據不變的尺度,但保留與感興趣對象相關聯的相對尺度信息。一旦這樣的尺度度量信息是可用的,圖像處理裝置就可以減少通過消除缺乏具有類似于尺度度量的值的尺度信息的已知基于邊緣的描述符而生成的誤判。
一旦在邊緣處理模塊125中生成基于邊緣的描述符,就對圖像匹配模塊135進行編程以執行將得出的基于邊緣的描述符與已知對象匹配的步驟。圖4更詳細地示出了將得出的基于邊緣的描述符與已知對象匹配的過程。如前所述,對一些實施例的圖像匹配模塊135進行編程以執行在該匹配過程中的步驟。可以預期的是,對邊緣處理模塊125進行編程來執行從原始圖像中的目標對象得出多于一個的基于邊緣的描述符的步驟(例如,可能超過5個、超過10個、超過100個、超過1000個基于邊緣的描述符)。在這個示例中,為了清晰和簡單的目的,圖像匹配模塊135僅從邊緣處理模塊125獲得三個基于邊緣的描述符361a、361b和361c。這些描述符361a、361b和361c可以由邊緣處理模塊125從相同的圖像數據或相關的圖像數據得出。
在一些實施例中,描述符數據庫140存儲已知的描述符(例如,描述符362a、362b、362c等)。這些描述符可以從訓練圖像數據或先前已經由圖像識別系統110處理的圖像數據得出。這些描述符中的每個描述符都與對象相關聯。如圖所示,描述362a、362b和362c分別與對象402a、403a和404a相關聯。在優選的實施例中,可能隨著其他感知度量或非邊緣的屬性(例如,顯著性度量、尺度度量等),基于邊緣的描述符361a、361b和361c也可以被用于構建或更新描述符數據庫140。在一些實施例中,圖像匹配模塊135包括描述符數據庫140。還可以預期的是,圖像匹配模塊135經由網絡與描述符數據庫140通信地耦接。
在一個實施例中,圖像匹配模塊135進一步包括內容數據庫145。內容數據庫145包括與它們的描述符相關聯的一個或多個內容對象。在一些實施例中,由它們的屬性中的一個或多個(例如,類型、特征、年齡、大小等)對內容對象進行分組。例如,內容對象402a、402b和402c基于它們的大小而分在一組401a中。在另一個示例中,內容對象403a、403b和403c基于它們的地理位置而分在一組401b中。在又一示例中,內容對象404a、404b和404c基于它們的整體形狀而分在一組401c中。
圖像匹配模塊135使用已知的目標對象匹配并索引描述符數據庫140中的已知的基于邊緣的描述符。在一些實施例中,該描述符數據庫140可以包括根據樹形結構組織已知的基于邊緣的描述符的樹形結構(例如k-d樹、溢出樹等)。這樣的方法在其中測試圖像未能生成已知的基于邊緣的描述符的精確匹配的領域中是有利的。例如,k-d樹可以被用于匹配內容對象,其中存在可能與基于邊緣的描述符匹配的大量的內容對象。k-d樹從樹的根(第一級)開始,其中該數據在閾值處被分為兩個葉節點。圖像匹配模塊135根據基于邊緣的描述符和其他非邊緣屬性(例如,尺度信息、梯度信息、其他幾何信息等)進行了兩個分割數據之間的比較,并作出決定,哪個第一葉節點下降。與第一葉節點相關聯的數據成為基于邊緣的描述符的最近鄰的第一候選。然而,最近鄰的第一候選可能不是真正的基于邊緣的描述符的最近鄰。因此,通常需要進一步地搜索多個葉節點以找到真正的最近鄰,其被視為最適合查詢的。在一些實施例中,圖像匹配模塊135可以限制每次查詢可以搜索的節點的數量。使用k-d樹來匹配內容對象的更多細節可以在由Silpa Anan等人于2008年發表的題為“Optimized KD-trees for fast image descriptor matching”的公開中找到,將其全部內容并入本文中。
在其他實施例中,描述符數據庫140可以利用其他類型的匹配協議。例如,描述符數據庫140可以執行k-最近鄰(kNN)算法的實現以基于邊緣的描述符和其他信息(例如,尺度信息、梯度信息、其他幾何信息等)匹配已知對象。在沒有先驗或廣義的學習過程的情況下,kNN算法對匹配候選對象是有用的,這是因為由kNN算法進行的分類基于每個查詢點的最近鄰的多數投票而執行,而不是任意先驗假設。使用kNN算法的更多細節可以在由Seiji Hotta于2008年發表的題為“Manifold matching for High-Dimensional Pattern Recognition”的公開中找到,將其全部內容并入本文中。
在這個例子中,基于輸入基于邊緣的描述符361a,圖像匹配模塊135在描述符數據庫140內發現描述符362a為最近的已知描述符,其對應于內容對象402a。類似地,基于輸入基于邊緣的描述符361b,圖像匹配模塊135在描述符數據庫140內發現描述符362b為最近的已知描述符,其對應于內容對象403a。再次,基于輸入基于邊緣的描述符361c,圖像匹配模塊135在描述符數據庫140內發現描述符362c為最近的已知描述符,其對應于內容對象404a。已被確定為與輸入基于邊緣的描述符匹配的對象被分組為候選對象組410。
在一些實施例中,代替選擇對應于最近的已知描述符的對象的是,在候選對象組410中的對象可以通過隨機選擇分組410a、401b和401c內的匹配仿射假設的對象而生成。例如,圖像匹配模塊135可以施加隨機抽樣一致(RANSAC)以到達候選集。
進一步對圖像匹配模塊135進行編程來基于圖像數據(即,識別誤判)而執行消除或過濾被視為不相關的或不正確的候選對象組410內的對象的步驟。
在一種方法下,圖像匹配模塊135首先經由幾何約束濾波器420從候選對象組410移除離群值。在一些實施例中,分組410中的每個候選對象包括幾何約束集合(例如,尺寸、維度、維度當中的比例等)。因此,圖像匹配模塊135執行幾何約束濾波器420的實現以通過識別與基于邊緣的描述符相關聯的圖像數據中的對齊邊緣來移除誤判,并且確定圖像中的邊緣是否符合與每個候選對象相關聯的約束集合。如果對齊邊緣未能滿足與候選對象相關聯的約束的大多數或全部(例如,80%、90%等),則將由圖像匹配模塊135從分組410中移除這樣的候選對象。由于大多數的圖像數據是二維的,所以一些實施例的圖像匹配模塊135使用針對二維對象的單應性幾何以及針對三維對象的投影矩陣來做出這樣的決定。在一些實施例中,已知對象的額外幾何信息可以與它們的描述符聯系在一起,并使能圖像匹配模塊135來找到查詢圖像和數據庫圖像之間的幾何約束。這樣的方法可以包括執行交互式最近點(ICP)算法的實現。合適的算法是由Besl等人于1992年2月在關于模式分析與機器智能的IEEE會刊中題為“A Method for Registration of 3-D Shapes”公開,將其全部內容并入本文中。
在一些實施例中,通過其他各種技術可以進一步降低誤判。如前面所討論的,感知度量或尺度度量可以被用于進一步過濾結果集。此外,圖像匹配模塊135可以對基于邊緣的描述符和已知的描述符執行一個或多個相似性濾波器的實現以生成配對的描述符的分組,其中每個分組可以被限定為滿足一個相似性幾何約束。每個分組可以具有多個配對,并且每個配對可能具有來自測試圖像的一個基于邊緣的描述符和來自訓練圖像的已知的基于邊緣的描述符。示例相似性過濾可以包括Hough變換。
一旦結果集從幾何約束濾波器420獲得,就對圖像匹配模塊135進行編程來通過執行驗證濾波器430的實現而執行進一步降低誤判并驗證剩余的最近鄰內的正確匹配的步驟。
在一些實施例中,驗證濾波器430使用凸殼來驗證候選對象。凸殼是限制由其來自圖像數據或候選對象的邊緣限定的目標對象的形狀(例如,邊緣)的邊界框。它可以被用于通過將從測試圖像數據得出的凸殼與候選對象(例如,候選對象的建模圖像)的凸殼進行比較來消除誤判。如果測試圖像凸殼(At)的面積與建模圖像(Am)的面積的比率接近于一,那么可能存在好的匹配(At/Am≤1)。自然地,可能需要施加仿射變換以使用模型圖像來校正測試圖像。
在更有趣的實施例中,驗證濾波器430也使用歸一化相關系數(NCC)驗證方法來進一步消除誤報。NCC驗證使用它們的NCC排名評分來對候選對象進行排名。模型圖像和測試圖像之間的歸一化相關系數將被用作排名評分,其表示它們之間的全局相似性。更高的NCC排名評分(通常介于0和1之間),模型圖像與測試圖像更可能匹配。在一些實施例中,測試圖像是扭曲的測試圖像,其基于由匹配器得出并存儲在匹配列表中的變換矩陣而被轉換為模型圖像。
在一些實施例中,相對于使用描述符數據庫140以用于識別目的,該描述符數據庫140可以使用基于k-d樹的方案而作為基于網絡的服務(例如,IaaS、PaaS、SaaS等)被植入,其中存儲器和處理資源是可用的。進一步地,可能基于溢出樹,描述符數據庫140可以作為存儲器中的模塊被植入,以用在低資源的嵌入式裝置(例如,手機、智能手機、平板電腦、電器、信息亭等)中。無論描述符數據庫140的形式,消費者或其他用戶都可以利用描述符數據庫140來基于從圖像數據實時得出的一個基于邊緣的描述符而識別或分類通用對象。
圖5呈現了用于根據基于邊緣的描述符來識別圖像的過程500。如由步驟505中表示的,該過程開始于由圖像捕獲裝置接收場景或一個或多個對象(圖像數據)的數字表示。一旦獲得了圖像數據,就在步驟510中在圖像預處理模塊中處理圖像數據。優選地,在步驟511中首先使用Gaussian濾波器來模糊圖像數據,并且然后在步驟512中使用Sobel濾波器來加重在圖像數據中的邊緣。在步驟515中強調的邊緣在Canny邊緣檢測器中被進一步處理來檢測像素級邊緣像素。
一旦檢測到邊緣像素,在步驟520中可以由邊緣像素的共圓來確定邊緣。在優選的實施例中,邊緣像素的共圓由以下兩個步驟確定:1)在步驟521中預先計算邊緣像素的張量場,以及2)在步驟522中通過使用預先計算的張量場作為共圓評分來連接兩個鄰近的邊緣像素。步驟520的過程可以生成許多邊緣,其包括具有高“邊緣性”的邊緣和低“邊緣性”的邊緣。因此,在步驟525中,該方法通過選擇適當的邊緣的子集而繼續,其與其他邊緣相比具有高“邊緣性”。
從選出的邊緣子集,過程500通過確定邊緣的邊緣線并且在步驟530中通過放置在邊緣線之間連接的一個或多個射線來構建邊緣線的群集而繼續。一旦構建了邊緣線的群集,在步驟535中基于邊緣的描述符可以從邊緣線的群集得出。如上所述,基于邊緣的描述符可以包括長度不變維度和方向不變維度中的至少一個。
在下一步中,步驟540,基于邊緣的描述符可以被用于與候選圖像匹配。首先,在步驟541中將基于邊緣的描述符與具有相關聯的對象圖像的已知描述符進行比較以使用k-d樹、溢出樹、kNN方法或任意其他合適的分類方法來找到最近鄰。一旦發現了最近鄰的已知描述符,在步驟542中與最近鄰的已知描述符相關聯的對象被識別出并且被分組為圖像候選。
基于邊緣的描述符的圖像識別的最后步驟是在步驟545中從圖像候選的分組移除或減少誤判并在步驟550中驗證圖像對象。在步驟545中,在候選圖像的分組中的誤判圖像候選被過濾掉。在這個過程中,如在步驟546和步驟547中描述的,兩種方法中的至少一種可以被使用。在步驟546中,通過使用幾何約束信息可以在候選對象當中確定離群值。在步驟547中,如果已知的描述符與存儲在模型圖像數據庫中的模型圖像相關聯,則可以將該模型圖像與候選對象進行比較。最后,在步驟550中,該方法由通過使用利用凸殼來確定對象的整體形狀或色彩NCC來驗證圖像以對過濾的候選圖像進行排名而繼續。
在不背離此處本發明的概念的情況下,應該對本領域的那些技術人員顯而易見的是,除了那些已經描述的,更多的修改是可能的。因此,除非在附屬權利要求的精神中,本發明的主題是不受限制的。此外,在解釋說明書和權利要求這二者中,所有術語應該以最廣泛的可能的方式與上下文一致而被解釋。特別地,術語“包括”、“包含”應該被解釋為以非排他性的方式指代元件、組件或步驟,指示出引用的元件、組件或步驟可以是存在的、或被利用、或與沒有明確引用的其他元件、組件或步驟結合。其中說明書權利要求是指從包括A、B、C…和N的分組選擇的東西的至少一個,文本應該被解釋為只需要來自分組的一個元素,而不是A加N,或B加N等。