欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于對象姿態(tài)估計的方法和設(shè)備的制作方法

文檔序號:6374594閱讀:135來源:國知局
專利名稱:用于對象姿態(tài)估計的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域
在現(xiàn)今的許多工業(yè)設(shè)置中,使用機器人進行零件組裝和制造。這些機器人裝配有給予它們圖像的一個或多個照相機,例如,C⑶和CMOS。通常,對象(即,零件)包含在箱柜中。機器人必須識別箱柜中的對象/零件,使其能夠揀起對象/零件來組裝產(chǎn)品。然而,對象可能處于任意多種姿態(tài)(位置、方位、旋轉(zhuǎn))。所以,必須訓(xùn)練機器人來識別零件,而不管零件的姿態(tài)如何。本發(fā)明涉及根據(jù)二維(2D)圖像(例如,照相機圖像)估計三維(3D)對象的姿態(tài),使得機器人可以被訓(xùn)練成識別對象而不管從其上裝載的照相機看到的姿態(tài)如何。如在本領(lǐng)域公知的,機器人包括試圖根據(jù)照相機圖像標(biāo)識對象的軟件。因此,對于這樣的軟件而言,與機器人照相機捕獲的圖像相比具有對象圖像的魯棒且精確的數(shù)據(jù)庫是重要的。

發(fā)明內(nèi)容
本發(fā)明的一方面是用于根據(jù)輸入圖像估計對象的姿態(tài)并存儲對象姿態(tài)估計的方法和設(shè)備,包括:輸入包含對象的圖像;創(chuàng)建輸入圖像的二值掩碼;從輸入圖像的二值掩碼中提取單線組,每條單線表示輸入圖像中的對象的內(nèi)輪廓和外輪廓中的點;將單線組連接成被表示為雙線矩陣的網(wǎng)格;將兩個雙線矩陣進行比較,以產(chǎn)生一組候選姿態(tài);以及產(chǎn)生對象姿態(tài)估計,并存儲對象姿態(tài)估計。在本發(fā)明的實施例中,輸入對象的多幅圖像,每幅圖像包含的對象的視圖與多幅圖像中的其它每幅圖像的視圖不同。一方面包括使用對象的CAD模型來生成對象的多幅圖像中的每幅圖像的視圖。另一方面包括使用裝配有照相機的機器人來生成對象的多幅圖像中的每幅圖像的視圖。本發(fā)明的另一方面包括檢測輸入圖像中的對象并且計算對象的邊界框。另一方面包括提取對象的內(nèi)輪廓和外輪廓。在本發(fā)明的另一實施例中,通過將姿態(tài)估計建模為能量函數(shù)的優(yōu)化來精化對象姿態(tài)估計。在一個方面,本發(fā)明迭代地計算姿態(tài)估計以最小化能量函數(shù)的能量值。另一方面計算速度旋量(velocity screw)以迭代地計算姿態(tài)估計。另一方面使用諸如OpenGL、DirectX、光線追蹤等的繪制應(yīng)用程序編程接口(API)將對象的模型輪廓曲線投影到虛擬圖像中。在本發(fā)明的又一實施例中,通過如下步驟精化對象姿態(tài)估計:輸入處于估計姿態(tài)的對象的圖像、對象的模型和用于拍攝處于估計姿態(tài)的對象的圖像的照相機的參數(shù);使用照相機的參數(shù)和初始姿態(tài)參數(shù)來將對象的模型投影到對象的虛擬圖像中,以獲得二值掩碼圖像和圖像深度信息;使用二值掩碼圖像和圖像深度信息將初始姿態(tài)參數(shù)更新為新的姿態(tài)參數(shù),并且迭代地更新該新的姿態(tài)參數(shù)以最小化能量函數(shù)或者直到達(dá)到最大迭代次數(shù)。本發(fā)明的另一方面包括:使用成本函數(shù)計算對象內(nèi)部和外部的平均值;以及使用圖像深度信息、根據(jù)二值掩碼圖像和3D輪廓點計算對象的輪廓C。又一方面包括:針對輪廓點計算在X方向和Y方向上的梯度J);計算圖像雅克比矩陣;以及使用高斯牛頓法來計算梯度流和速度旋量。
本發(fā)明的另一方面包括使用速度旋量和給定步長(stepwise)來計算相對位移。通過參照結(jié)合附圖得到的以下描述和權(quán)利要求,其它目的和成就以及對本發(fā)明的更全面理解將變得明顯。


在附圖中,類似的附圖標(biāo)記是指類似的部分。圖1是利用本發(fā)明的對象處理裝置和系統(tǒng)的通用框圖;圖2是本發(fā)明的通用方法的流程圖;圖3是圖2所示的方法的對象提取階段的流程圖;圖4示出針孔照相機模型中的立體投影;圖5示出OpenGL投影和歸一化裝置坐標(biāo)(NDC);圖6(a)_(d)示出投影模型曲線相對于對象的邊界的位置的全部四種可能情況;以及圖7示出照相機運動的構(gòu)圖。
具體實施例方式在以下詳細(xì)描述中,參照通過圖示示出本發(fā)明的示例實施例的附圖。在附圖中,類似附圖標(biāo)記在幾幅視圖中描述基本上類似的部件。充分詳細(xì)地描述這些實施例,以使得本領(lǐng)域技術(shù)人員能夠?qū)嵺`本發(fā)明。在不背離本發(fā)明的范圍的情況下,可以利用其它實施例以及可以作出結(jié)構(gòu)、邏輯和電氣改變。此外,應(yīng)理解,本發(fā)明的各種實施例盡管不同,但不一定相互排斥。例如,一個實施例中所描述的特定特征、結(jié)構(gòu)或特性可以包括在其它實施例中。因此,以下詳細(xì)描述不是以限制意義作出的,并且本發(fā)明的范圍僅由所附權(quán)利要求以及這樣的權(quán)利要求賦予權(quán)利的等同方案的全范圍限定。通常,示例性實施例涉及用于檢驗圖像(尤其是一個或多個對象的數(shù)字圖像)的方法、裝置和計算機可讀介質(zhì)。對圖像進行檢驗以估計以2D圖像表示的相應(yīng)3D對象的姿態(tài)(位置和方位)。示例實施例創(chuàng)建圖像的二值掩碼,并且從二值掩碼中提取單線組。每條單線將表示對象的內(nèi)輪廓和外輪廓中的點。該單線組連接成被表示為雙線矩陣的網(wǎng)格。對兩個雙線矩陣進行比較以產(chǎn)生一組候選姿態(tài)。然后,產(chǎn)生對象姿態(tài)估計并且將其存儲以供后續(xù)使用,例如在用于機器人零件組裝的視覺系統(tǒng)中。圖1中示出示例對象處理裝置100的示意性表示。對象處理裝置100經(jīng)由中間接口 102與主機計算機150交換數(shù)據(jù)。也可以存儲應(yīng)用程序和對象處理裝置驅(qū)動程序以對主機計算機150進行訪問。當(dāng)從例如應(yīng)用程序接收到圖像檢索命令時,對象處理裝置驅(qū)動程序控制命令數(shù)據(jù)到適合于對象處理裝置100的格式的轉(zhuǎn)換,并且將轉(zhuǎn)換后的命令數(shù)據(jù)發(fā)送到對象處理裝置100。驅(qū)動程序還接收并解釋來自對象處理裝置100的各種信號和數(shù)據(jù),并且經(jīng)由主機計算機150將所需信息提供給用戶。當(dāng)主機計算機150發(fā)送數(shù)據(jù)時,接口 102接收數(shù)據(jù)并將其存儲在RAM104的接收緩沖器形成部中??梢岳缤ㄟ^尋址將RAM 104分成多個扇區(qū),并且將多個扇區(qū)分配作為不同緩沖器,諸如接收緩沖器或發(fā)送緩沖器。也可以通過對象處理裝置100從捕獲機構(gòu)112、閃存EEPROM 110或ROM 108獲得諸如數(shù)字圖像數(shù)據(jù)的數(shù)據(jù)。捕獲機構(gòu)11可以是例如照相機,并且通過拍攝一個或多個對象(諸如,在制造和/或組裝諸如打印機的裝置中所使用的零件)來生成數(shù)字圖像。照相機112可以由例如機器人116或人來控制,或者可以由例如計算機150來自動控制。然后,可以將對象的數(shù)字圖像存儲在RAM 104的接收緩沖器或發(fā)送緩沖器中。例如,處理器106使用存儲在R0M108上或在閃存EEPR0M110上的計算機可執(zhí)行指令,來執(zhí)行例如某一功能或一組功能,諸如方法200 (圖2)。本文中稍后將更詳細(xì)描述方法200。在RAM104的接收緩沖器中的數(shù)據(jù)是例如數(shù)字圖像的情況下,處理器106可以對數(shù)字圖像實施方法300的方法動作,以提取數(shù)字圖像中的特征并基于所提取的特征進一步分析圖像。然后,在將圖像顯示在例如顯示器114 (諸如,IXD顯示器)上或者傳送到主機計算機150以在打印機162上打印、利用投影儀164投影圖像或?qū)⑵浯鎯υ诶缬脖P160上之前,可以對數(shù)字圖像執(zhí)行成像過程中的進一步處理。可以使用承載或存儲有計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)的非暫態(tài)計算機可讀介質(zhì)來執(zhí)行本文中所公開的示例方法200及其變型。這樣的計算機可讀介質(zhì)可以是可以由通用或?qū)S糜嬎銠C的處理器訪問的任何可用介質(zhì)。作為示例但不作為限制,這樣的計算機可讀介質(zhì)可以包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲器、磁盤存儲器或其它磁存儲裝置、或者可以用于以計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)的形式承載或存儲程序代碼并且可以由通用計算機或?qū)S糜嬎銠C訪問的任何介質(zhì)。上述介質(zhì)的組合還應(yīng)該包括在計算機可讀介質(zhì)的范圍內(nèi)。計算機可執(zhí)行指令例如包括使通用計算機或?qū)S糜嬎銠C的處理器執(zhí)行某一功能或一組功能的指令和數(shù)據(jù)。盡管本文中以方法動作專用的語言描述主題,但是應(yīng)該理解,所附權(quán)利要求中所限定的主題不一定限于本文中所述的具體動作。而是,披露本文中所述的具體動作作為實現(xiàn)權(quán)利要求的示例形式。專用計算機的示例包括圖像處理裝置,諸如數(shù)字照相機(其示例包括但不限于總部設(shè)于日本長野撖訪的精工愛普生(Seiko Epson)公司制造的Epson R-Dl數(shù)字照相機)、數(shù)字?jǐn)z像機、投影儀、打印機、掃描儀、復(fù)印機、便攜式圖片瀏覽器(其示例包括但不限于SeikoEpson公司制造的Epson P-3000或P-5000便攜式圖片瀏覽器)、或者便攜式電影播放器、或者其組合(諸如,打印機/掃描儀/復(fù)印機組合(其示例包括但不限于Seiko Epson公司制造的 Epson Stylus Photo RX580、RX595 或 RX680、Epson Stylus CX4400、CX7400、CX8400或CX9400Fax、以及Epson Acillaser CXlINF)或者打印機/掃描儀組合(其示例包括但不限于全部由 Seiko Epson 公司制造的 Epson TM-J9000、TM-J9100、TM-J7000、TM-J7100 和TM-H6000 III)或數(shù)字照相機/攝像機組合)。輸入圖像規(guī)格參照圖2,方法200中的第一步驟是輸入圖像(步驟210)。所輸入的圖像可以由機器人116操作照相機(捕獲機構(gòu))112生成。如果輸入的圖像包括一個對象,則該對象優(yōu)選地應(yīng)該占據(jù)圖像面積的至少10%。如果在場景中存在多于一個對象,則關(guān)注的對象優(yōu)選地應(yīng)該比圖像(場景)中的任何其它對象大至少兩倍。輸入的圖像還可以是例如存儲在RAM104或硬盤160中的對象的CAD模型。在優(yōu)選實施例中,如以下所述,輸入并分析對象的多幅圖像。多幅圖像中的每幅圖像優(yōu)選地包括與其它圖像中的每幅圖像中所示出的視圖不同的、對象的視圖??梢允褂肅AD模型和/或機器人116操作照相機來生成這多幅圖像。
對象定位和提取本發(fā)明的對象定位(步驟212)和對象提取(步驟214)階段檢測存在于圖像或場景中的對象并計算其邊界框。對象提取階段還提取對象的輪廓(內(nèi)輪廓和外輪廓兩者)。圖3中更詳細(xì)地示出了這些步驟/階段。通常,這些步驟處理單通道圖像310 (圖3),該單通道圖像在素色背景上包括一個或更多個對象。這些步驟基本上發(fā)現(xiàn)了圖像中的活動區(qū)域,并且因此,對背景中的偽像敏感。輸入圖像中的對象優(yōu)選地是單色的且具有背景與對象之間的最小對比度。對于背景的顏色或不同對象的顏色不存在其它限制。一些對象可以比背景深,而一些對象可以比背景亮。對象可以具有類似或不同的顏色?;顒佑嬎?圖3,步驟312)在活動計算步驟期間,將圖像310劃分成大小為SXS的塊。S是像素數(shù)量。作為示例,S是8,但可以根據(jù)特定環(huán)境選擇不同的值。該配置參數(shù)S在本文中被稱為ACTIVITY.SCALE。然后,該步驟計算每個塊的標(biāo)準(zhǔn)偏差和平均強度,并且返回兩個矩陣作為輸出,標(biāo)準(zhǔn)(std)和平均(ave)。有效區(qū)域選擇(步驟314)在該步驟中,本發(fā)明將矩陣Std的元素與閾值進行比較,并且標(biāo)識超過閾值的那些元素,其中,可以針對特定環(huán)境選擇該閾值。例如,其可以是顏色閾值。如果使用8位表示色深度,則閾值將被設(shè)置為2與255之間的某點。如應(yīng)理解的,有效區(qū)域選擇步驟標(biāo)識對應(yīng)于與素色背景形成對比的彩色對象的像素塊。將被標(biāo)識為超過所選的活動閾值的元素輸入到活動地圖。區(qū)域分析(步驟316)區(qū)域分析步驟316對在前一步驟314中所產(chǎn)生的活動地圖執(zhí)行斑點(blob)分析。在該步驟中所使用的參數(shù)是由OBJECTS.SIZE.MIN (默認(rèn)值是0.001)和OBJECTS.SIZE.MAX(默認(rèn)值是0.1)控制的尺寸,以及候選區(qū)域的數(shù)量OBJECTS.COUNT (默認(rèn)值是8)。首先,將尺寸限值除以ACTIVITY.SCALE的平方,以便將這些配置參數(shù)從像素轉(zhuǎn)換為塊。區(qū)域分析步驟返回每個對象的邊界框以及其一階和二階平均數(shù)及面積。在區(qū)域分析步驟期間,給予每個區(qū)域索引。區(qū)域的索引從一開始但不一定是連續(xù)的。也就是說,存在缺失的索引值,這些缺失的索引值對應(yīng)于與尺寸約束不匹配的區(qū)域。索引地圖承載有分配給每個塊的索引。該地圖被稱為邊界地圖。邊界地圖中被給予非零索引的任何塊是邊界塊。剩余的塊是背景或表示對象的內(nèi)部。在下文中所述的步驟320中檢測內(nèi)部塊。閾值計算(步驟318)閾值計算步驟318確定用于將每個區(qū)域的邊界塊的內(nèi)容分成前景和背景的最佳閾值。通過針對每個區(qū)域單獨完成的以下階段來實現(xiàn)該過程。這里,I是落入?yún)^(qū)域的一個邊界塊中的全部點的集合。1.針對I的內(nèi)容產(chǎn)生256格(bin)直方圖。2.將t計算為I的平均值。3.1利用值t作為閾值,并產(chǎn)生I+和Γ。4.將t+計算為I+的平均值。
5.將t_計算為Γ的平均值。6.將 t* 計算為(t++0 /2。7.如果t與之間的差小于一,則返回t作為閾值,否則,設(shè)置t=t*且轉(zhuǎn)到3。在后續(xù)步驟中使用在該階段所算出的閾值(0SMX_THRESH0LD)。閾值計算步驟318還確定對象是否比背景深或者背景是否比對象深。該確定基于檢查在每個對象的邊界框的邊界處的像素以及確定超過閾值的像素數(shù)量。如果該數(shù)量超過所計數(shù)的總像素數(shù)量的一半,則確定該對象比背景深。在后續(xù)步驟中使用該信息0SMX_INVERSE。例如,如果對象比背景深,則可以將0SMX_INVERSE設(shè)置為1,而如果對象比背景淡,則將0SMX_INVERSE設(shè)置為O。內(nèi)部檢測(320)內(nèi)部檢測步驟320使用邊界地圖并構(gòu)建內(nèi)部地圖。該過程開始于全零內(nèi)部地圖,并且對于每個區(qū)域,針對其邊界框中的每個塊執(zhí)行以下操作。1.如果該塊不在邊界地圖內(nèi),并且如果該塊的平均值超過或小于(取決于如何設(shè)置0E_INVERSE ) 0E_THRESH0LD,以及如果該塊在邊界地圖中具有至少一個4鄰點(4-connected neighbors),則在內(nèi)部地圖中標(biāo)記該塊。邊界封閉(步驟322)邊界地圖可以不包圍內(nèi)部地圖。結(jié)果,根據(jù)對象提取階段的特性,如下描述的,在所提取的對象內(nèi)可能出現(xiàn)不想要的“凹痕”,為了解決該問題,邊界封閉步驟322通過在每個區(qū)域的邊界框內(nèi)執(zhí)行以下操作來封閉每個區(qū)域的邊界地圖,1.如果塊不在邊界地圖或內(nèi)部地圖內(nèi)以及如果該塊在內(nèi)部地圖中具有至少一個4鄰點,則在邊界地圖中標(biāo)記該塊。對象提取(步驟324 )對象提取步驟324基于邊界地圖和內(nèi)部地圖提取對象。在每個對象的自身邊界框內(nèi),該過程對每個對象執(zhí)行以下操作。1.如果在內(nèi)部地圖中標(biāo)記了該塊,則將與該塊對應(yīng)的全部像素設(shè)置為屬于對象。2.如果在邊界地圖中了標(biāo)記該塊,則在該塊的平均值超過或低于(取決于如何設(shè)置0E_INVERSE) 0E_THRESH0LD的情況下,將與該塊對應(yīng)的全部像素設(shè)置為屬于對象。雙線創(chuàng)建(圖2,步驟216)雙線創(chuàng)建是本發(fā)明的最后的步驟,在該步驟中,使用實際圖像。在該階段后,對雙線矩陣以及其它特征點和向量進行工作。雙線創(chuàng)建包括以下分別描述的輪廓追蹤、單線檢測和雙線創(chuàng)建三個子塊。輪廓追蹤輪廓追蹤是追蹤通過對象提取階段返回的全部輪廓的過程。在單線檢測過程中使用在該階段收集的信息。在本發(fā)明中可以使用任何已知的輪廓追蹤算法,其不限于特定算法??衫玫妮喞粉櫵惴ǖ氖纠ň匦巫粉櫋⒛栢徲?、徑向掃描。在優(yōu)選實施例中,使用了 Theo Pavlidis 算法。單線檢測該階段取決于兩個參數(shù)TRACE_WIND0W和SINGLET_DISTANCE,可以針對特定環(huán)境選擇這兩個參數(shù)。這兩個參數(shù)的默認(rèn)值都是12個像素。對于比TRACE_WIND0W的兩倍長的全部輪廓,針對輪廓上的每個點執(zhí)行以下過程:1.求在輪廓上的點周圍的TRACE_WIND0W個點的平均X和Y坐標(biāo)。2.將輪廓上的點連接到向左偏移TRACE_WIND0W和向右偏移TRACE_WIND0W的兩個點。3.求兩個角度;將它們稱為輸入角和輸出角。4.求表不輸入角和輸出角的兩個向量的內(nèi)積。改變該內(nèi)積的符號并且將其稱為曲率。5.如果該點在其周圍的SINGLET_DISTANCE個點中具有最高曲率,則將該點標(biāo)記為單線。6.存儲每條單線的X和Y坐標(biāo)、以及輸入角和輸出角及與它們對應(yīng)的曲率。雙線創(chuàng)建雙線創(chuàng)建是將所檢測到的單線組合成雙線的過程。創(chuàng)建雙線的處理包括以下步驟:1.產(chǎn)生矩陣D,其中,其(i,j)元素包括第i條單線與第j條單線之間的距離。2.將D中小于最小閾值或超過最大閾值的全部元素改變?yōu)镹AN (非數(shù)字,表示未被初始化的變量的標(biāo)識符)。計算最小閾值和最大閾值作為分別與圖像的最小維度相乘的DISTANCE.MIN (默認(rèn)值為 0.01)和 DISTANCE.MAX (默認(rèn)值是 0.25)。3.產(chǎn)生全部為零的Sxl陣列并且將其稱為deg。deg(s)將包括連接到第s條單線的數(shù)個單線。4.掃描D,直到其僅包含NAN為止,或者當(dāng)指定單線的最大數(shù)量并達(dá)到最大值時掃描D。5.尋找D的最小元素。將其稱為(sl, s2)。deg (si)和deg (s2)都遞增。如果deg(sl)或deg(s2)大于最大度DEGREE(默認(rèn)值為10),則將對應(yīng)于單線的行和列中的全部元素設(shè)置為MN。例如,如果deg(sl)大于DEGREE,則對于全部s,將D (s,sl)和D(sl,s)設(shè)置為MN。6.對于對(sl,s2),計算將它們連接在一起的角度以及連接它們的線的長度,將它們分別稱為角度和距離。從兩條單線的臨時副本的輸入角和輸出角中減去某一角度?,F(xiàn)在,雙線將被表示為〈角度,距離,sl.1n-coming, sl.0ut-going, s2.1n-coming,s2.0ut-going>。7.返回雙線矩陣。雙線比較(圖2,步驟218)雙線比較是將兩個雙線矩陣中的各項進行比較并且產(chǎn)生匹配列表(因此產(chǎn)生候選姿態(tài)第一列表)的處理。假設(shè)兩個雙線矩陣是Dl和D2,則如下執(zhí)行處理:1.對于Dl中的任意雙線dl和D2中的d2,確定是否全部滿足這些條件,I dl.sl.1n-coming-d2.sl.1n-coming I < THRESHOLD,I dl.sl.0ut-going-d2.sl.0ut-going I < THRESHOLD,I dl.s2.1n-coming-d2.s2.1n-coming I < THRESHOLD,I dl.s2.0ut-going-d2.s2.0ut-going I < THRESHOLD。這里,THRESHOLD由配置變量 DUPLETS.THRESHOLD 確定。
如果滿足這些條件,則將候選姿態(tài)(dl.1ength/d2.length, dl.angle_d2.angle)添加到候選列表。此外,注意兩條單線和兩條雙線的X坐標(biāo)和Y坐標(biāo)。將該候選標(biāo)記為“直的”。2.類似地,確定是否滿足這些條件,I dl.sl.1n-coming-d2.s2.1n-coming I < THRESHOLD,I dl.sl.0ut-going-d2.s2.0ut-going I < THRESHOLD,I dl.s2.1n-coming-d2.sl.1n-coming I < THRESHOLD,I dl.s2.0ut-going-d2.sl.0ut-going I < THRESHOLD。在該情況下,除了將被記錄為dl.angle-d2.angle-pi的角度外,將類似的候選姿態(tài)添加到列表中。將該候選標(biāo)記為“反向的”。3.將候選列表傳遞至接下來描述的聚類階段。候選聚類(圖2,步驟220 )候選聚類是接收通過雙線比較所產(chǎn)生的姿態(tài)候選并估計每一個均由候選的大集合表示的有限數(shù)量的姿態(tài)的處理。該過程包括兩個階段,如下描述的比例-角度聚類以及X-Y聚類。比例-角度聚類該階段的目的在于基于通過雙線比較所產(chǎn)生的候選姿態(tài)而產(chǎn)生候選(比例,角度)對的列表。假設(shè)S和A是帶有候選比例和角度的兩個lxN。如下完成比例-角度聚類過程,1.通過計算值S的底BASE對數(shù)來產(chǎn)生S_L。2.單獨地產(chǎn)生A和S_L的直方圖。每個直方圖將包括BINS格。A的直方圖將覆蓋-pi到pi的范圍。將SCALE.MIN和SCALE.MAX(二者都以BASE為底)的范圍內(nèi)分析S L。3.如果任一直方圖上的點高于其右側(cè)的D個點且高于或等于其左側(cè)的D個點,則將該點標(biāo)記為“峰”。4.針對每個直方圖獨立地選擇Cl個最高峰。5.將各比例候選與各角度候選相交,并且產(chǎn)生比例-角度候選的列表。將該列表傳遞至X-Y聚類階段。對于每個比例-角度候選,也發(fā)送產(chǎn)生該對的匹配雙線中的單線的位置。6.計算每個比例-角度候選的置信度作為雙線匹配的對數(shù),其表示除以兩個雙線矩陣中的雙線的最小數(shù)量后的對數(shù)。7.如果比例-角度候選的數(shù)量超過C2,則選取具有最高置信度的C2。X-Y 聚類比例-角度聚類階段的輸出是(比例,角度)候選的集合。X-Y聚類階段是針對每個(比例,角度)候選如下將翻譯信息添加到候選的處理。1.修改該候選的單線位置,使得軸系統(tǒng)的中心移動至圖像的中心。將對兩個雙線矩陣單獨地執(zhí)行該處理。2.將查詢單線位置旋轉(zhuǎn)一角度。3.按比例縮放查詢單線。4.針對查詢與參考之間的單線位置,單獨地求X與Y之差。將這些稱為dx和dy陣列。5.在該階段,dx-dy對可以經(jīng)歷與對于比例-角度對執(zhí)行的算法類似的二維聚類算法,或者可以如下進行更快的操作。6.單獨地求dx與dy的平均值,并且將該信息附于比例-角度對,從而產(chǎn)生姿態(tài)候選(角度,比例,dx, dy,置信度)。該姿態(tài)候選的置信度將保持等于比例-角度對的置信度。7.如果配置參數(shù)需要,則如下所述,執(zhí)行重疊檢驗。8.取與置信度的最高值對應(yīng)的C2個候選,并且將它們報告給下一個階段。重疊考慮 重疊考慮僅在OVERLAP非負(fù)的情況下起作用。如下進行重疊考慮:1.根據(jù)(角度,比例,dx,dy,置信度)信息變換參考邊界框。找到覆蓋旋轉(zhuǎn)、縮放和移位后的邊界框的最小矩形。2.找到覆蓋修改后的參考邊界框和查詢邊界框這兩者的最小矩形。將該矩形的面積稱為A。3.如果min (Al,A2)/A小于OVERLAP,則將該候選標(biāo)記為不適合的。這里,Al和A2是修改后的參考邊界框和查詢邊界框的面積。4.從該列表中排除標(biāo)記為不適合的候選。輪廓-雙線數(shù)據(jù)庫(圖2,222)輪廓-雙線數(shù)據(jù)庫(⑶DB)文件包括雙線矩陣的列表,每一個均附帶仰角和方位角。為了生成⑶DB文件,上述算法將對訓(xùn)練圖像執(zhí)行雙線創(chuàng)建(圖2,224),并且將所得到的雙線矩陣存儲在CDDB222中,每個雙線矩陣均附帶有仰角-方位角表征。這些樣本被稱為視圖。⑶DB文件實際上附帶有包括關(guān)于訓(xùn)練圖像的細(xì)節(jié)的文件。這些細(xì)節(jié)對于產(chǎn)生不同的顯象是必須的,而對于算法的常規(guī)操作而言是不必要的。當(dāng)進行查詢時,針對數(shù)據(jù)庫中的每幅視圖重復(fù)過程。算法的最終輸出是具有最高對應(yīng)置信度值的候選的數(shù)量⑶DBC.SEARCH.CANDIDATES.TOTAL。然后,將已產(chǎn)生每個候選的視圖的角度表征附加于每個候選,因而產(chǎn)生姿態(tài)的(仰角,方位角,角度,比例,dx,dy,置信度)表征。上述的對象檢測步驟的結(jié)果是姿態(tài)的這些表征,其是姿態(tài)估計并且存儲在存儲器(例如,RAM104或硬盤160)中。然后,在組裝產(chǎn)品時,在機器人對象/零件進行識別時使用這些姿態(tài)估計。輸出顯象可以產(chǎn)生不同的顯象。這些顯象中的兩種顯象是模型視圖和覆蓋圖。模型視圖是被修改為反映比例、角度和平移的匹配訓(xùn)練圖像的圖像。覆蓋圖是模型視圖在查詢圖像上
的覆蓋圖。對象模型規(guī)格當(dāng)前,訓(xùn)練過程需要表示如利用不同參數(shù)控制的處于不同姿態(tài)的關(guān)注對象的圖像。用于產(chǎn)生這些圖像的實際且更方便的方法是通過樣本模擬器228,樣本模擬器228是產(chǎn)生對象的3D視圖的三維可視化工具。配置實用程序(圖2,230)如上所述,本發(fā)明的方法的不同部分使用不同的配置參數(shù)。在以上描述中給出了這些參數(shù)的一些示例性(默認(rèn))值。然而,用戶可以將這些值設(shè)置成適合特定環(huán)境。配置實用程序是發(fā)現(xiàn)這些參數(shù)的適當(dāng)值并使用從用戶直觀輸入的最小值來相應(yīng)地設(shè)置它們的交互工具。以下章節(jié)描述本發(fā)明的如下方面:尤其在對象的圖像是照相機圖像的情況下,精化對象的姿態(tài)估計。本發(fā)明的姿態(tài)精化被建模為對準(zhǔn)問題。以關(guān)注對象的3D模型(B卩,機器人必須標(biāo)識并拾取的部分)以及用于對對象成像的照相機112的照相機參數(shù)開始。目的在于發(fā)現(xiàn)應(yīng)用于模型的3D (歐幾里得,6個自由度)變換,使得其與圖像中的關(guān)注對象一致。結(jié)果,作為成本函數(shù)的交互優(yōu)化問題,實現(xiàn)姿態(tài)精化。除了對象前景覆蓋成本外,成本函數(shù)還可以涉及圖像匹配成本,其與局部特征點或邊界特征點對準(zhǔn)或匹配。為了更好理解該算法,將在定義成本函數(shù)和松弛方案前導(dǎo)出照相機投影模型、OpenGL虛擬照相機模型和圖像雅克比矩陣。照相機投影模型本發(fā)明的照相機投影模型基于針孔照相機模型。針孔照相機是最簡單且理想的照相機功能模型。針孔照相機具有極小的孔,在面向孔的照相機表面上形成倒像之前光通過該孔進入。如圖4所示,立體投影是三維對象到二維圖像平面上的投影。實際上,必須使用透鏡來將圖像聚焦到照相機的焦平面上。焦平面是與圖像平面平行的一個特定平面。假設(shè)針孔照相機坐標(biāo)與世界坐標(biāo)對準(zhǔn),則簡單的幾何表示:
權(quán)利要求
1.一種用于根據(jù)輸入圖像估計對象的姿態(tài)并存儲對象姿態(tài)估計的方法,包括: 輸入包含對象的圖像; 創(chuàng)建所輸入圖像的二值掩碼; 從所述輸入圖像的所述二值掩碼中提取單線組,每條單線表示所述輸入圖像中的所述對象的內(nèi)輪廓和外輪廓中的點; 將所述單線組連接成被表示為雙線矩陣的網(wǎng)格; 將兩個雙線矩陣進行比較,以產(chǎn)生一組候選姿態(tài);以及 產(chǎn)生對象姿態(tài)估計,并存儲所述對象姿態(tài)估計。
2.根據(jù)權(quán)利要求1所述的用于估計對象的姿態(tài)的方法,還包括:輸入所述對象的多幅圖像,每幅圖像包含的所述對象的視圖與所述多幅圖像中的其它每幅圖像中的視圖不同。
3.根據(jù)權(quán)利要求2所述的用于估計對象的姿態(tài)的方法,還包括:使用所述對象的CAD模型來生成所述對象的多幅圖像中的每幅圖像中的視圖。
4.根據(jù)權(quán)利要求2所述的用于估計對象的姿態(tài)的方法,還包括:使用裝配有照相機的機器人來生成所述對象的多幅圖像中的每幅圖像中的視圖。
5.根據(jù)權(quán)利要求1所述的用于估計對象的姿態(tài)的方法,還包括:檢測所述輸入圖像中的對象并且計算所述對象的邊界框。
6.根據(jù)權(quán)利要求1所述的用于估計對象的姿態(tài)的方法,還包括:提取所述對象的內(nèi)輪廓和外輪廓。
7.根據(jù)權(quán)利要求1所述的用于估計對象的姿態(tài)的方法,還包括:通過將所述姿態(tài)估計建模為能量函數(shù)的優(yōu)化來精化所述對象姿態(tài)估計。
8.根據(jù)權(quán)利要求7所述的用于估計對象的姿態(tài)的方法,還包括:迭代地計算姿態(tài)估計以最小化所述能量函數(shù)的能量值。
9.根據(jù)權(quán)利要求8所述的用于估計對象的姿態(tài)的方法,還包括:計算速度旋量以迭代地計算姿態(tài)估計。
10.根據(jù)權(quán)利要求7所述的用于估計對象的姿態(tài)的方法,還包括:使用繪制應(yīng)用編程接口 API將所述對象的模型輪廓曲線投影到虛擬圖像中。
11.一種用于根據(jù)輸入圖像估計對象的姿態(tài)并存儲對象姿態(tài)估計的設(shè)備,包括: 處理器,其執(zhí)行以下處理: 接收包含對象的輸入圖像; 創(chuàng)建所述輸入圖像 的二值掩碼; 從所述輸入圖像的二值掩碼中提取單線組,每條單線表示所述輸入圖像中的所述對象的內(nèi)輪廓和外輪廓中的點; 將所述單線組連接成被表示為雙線矩陣的網(wǎng)格; 將兩個雙線矩陣進行比較,以產(chǎn)生一組候選姿態(tài);以及 產(chǎn)生對象姿態(tài)估計;以及 存儲器,其存儲所述對象姿態(tài)估計。
12.根據(jù)權(quán)利要求11所述的用于估計對象的姿態(tài)的設(shè)備,其中,所述處理器接收所述對象的多幅圖像,每幅圖像包含的所述對象的視圖與所述多幅圖像中的其它每幅圖像中的視圖不同。
13.根據(jù)權(quán)利要求12所述的用于估計對象的姿態(tài)的設(shè)備,還包括存儲所述對象的CAD模型的存儲裝置,并且所述處理器使用所述對象的CAD模型來生成所述對象的多幅圖像中的每幅圖像中的視圖。
14.根據(jù)權(quán)利要求12所述的用于估計對象的姿態(tài)的設(shè)備,還包括裝配有照相機的機器人,所述照相機生成所述對象的多幅圖像中的每幅圖像中的視圖。
15.一種用于精化對象的估計姿態(tài)的方法,包括: 輸入處于估計姿態(tài)的對象的圖像、所述對象的模型和照相機的參數(shù),其中所述照相機用于拍攝處于所述估計姿態(tài)的所述對象的圖像; 使用所述照相機的參數(shù)和初始姿態(tài)參數(shù)來將所述對象的模型投影到所述對象的虛擬圖像中,以獲得二值掩碼圖像和圖像深度信息; 使用所述二值掩碼圖像和所述圖像深度信息來將所述初始姿態(tài)參數(shù)更新為新的姿態(tài)參數(shù),并且迭代地更新所述新的姿態(tài)參數(shù)以最小化能量函數(shù)或者直到達(dá)到最大迭代次數(shù)。
16.根據(jù)權(quán)利要求15所述的用于精化對象的估計姿態(tài)的方法,還包括: 使用成本函數(shù)計算所述對象內(nèi)部和外部的平均值;以及 使用所述圖像深度信息、根據(jù)所述二值掩碼圖像和3D輪廓點計算所述對象的輪廓C。
17.根據(jù)權(quán)利要求16所述的用于精化對象的估計姿態(tài)的方法,還包括: 計算所述輪廓點在X方向和I方向上的梯度少); 計算圖像雅克比矩陣;以及 使用高斯牛頓法來計算梯度流和`速度旋量。
18.根據(jù)權(quán)利要求17所述的用于精化對象的估計姿態(tài)的方法,還包括: 使用速度旋量和給定步長來計算相對位移。
19.根據(jù)權(quán)利要求15所述的用于精化對象的估計姿態(tài)的方法,其中,處于估計姿態(tài)的對象的圖像通過以下步驟形成: 輸入包含對象的圖像; 創(chuàng)建所輸入圖像的二值掩碼; 從所述輸入圖像的二值掩碼中提取單線組,每條單線表示所述輸入圖像中的所述對象的內(nèi)輪廓和外輪廓中的點; 將所述單線組連接成被表示為雙線矩陣的網(wǎng)格; 將兩個雙線矩陣進行比較,以產(chǎn)生一組候選姿態(tài);以及 產(chǎn)生對象姿態(tài)估計。
20.一種或多種有形的、非暫態(tài)計算機可讀介質(zhì),所述計算機可讀介質(zhì)上具有計算機可讀指令,當(dāng)通過處理器執(zhí)行所述計算機可讀指令時,依據(jù)權(quán)利要求1所述的方法來根據(jù)輸入圖像估計對象的姿態(tài)。
全文摘要
本發(fā)明提供用于對象姿態(tài)估計的方法和設(shè)備,根據(jù)輸入圖像估計對象姿態(tài)并存儲對象姿態(tài)估計輸入包含對象的圖像;創(chuàng)建輸入圖像的二值掩碼;從輸入圖像的二值掩碼中提取單線組,表示輸入圖像中的對象的內(nèi)、外輪廓中的點;將單線組連接成被表示為雙線矩陣的網(wǎng)格;將兩個雙線矩陣比較以產(chǎn)生一組候選姿態(tài);產(chǎn)生對象姿態(tài)估計并存儲對象姿態(tài)估計。所估計的對象的姿態(tài)如下精化輸入處于估計姿態(tài)的對象的圖像、對象的模型和用于拍攝處于估計姿態(tài)的對象的圖像的照相機的參數(shù);使用照相機的參數(shù)和初始姿態(tài)參數(shù)將對象的模型投影到對象的虛擬圖像中,以獲得二值掩碼圖像和圖像深度信息;使用二值掩碼圖像和圖像深度信息將初始姿態(tài)參數(shù)更新為新的姿態(tài)參數(shù)。
文檔編號G06K9/46GK103150544SQ20121027966
公開日2013年6月12日 申請日期2012年8月7日 優(yōu)先權(quán)日2011年8月30日
發(fā)明者阿拉什·阿巴德普爾, 符國益, 伊沃·莫拉韋克 申請人:精工愛普生株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
玉溪市| 芦溪县| 黄骅市| 成都市| 临西县| 正阳县| 临邑县| 秦皇岛市| 图木舒克市| 志丹县| 永年县| 上蔡县| 正定县| 远安县| 德钦县| 女性| 历史| 瑞安市| 库尔勒市| 承德市| 岳普湖县| 库车县| 嵩明县| 将乐县| 黄浦区| 隆尧县| 黄冈市| 庆阳市| 徐州市| 莱州市| 弥渡县| 雷州市| 息烽县| 定州市| 类乌齐县| 黔江区| 周至县| 通州区| 紫云| 涞源县| 保定市|