本發(fā)明涉及一種以構(gòu)成對象物的圖像的特征點為模型圖案,對該模型圖案與從輸入數(shù)據(jù)提取出的特征點的一致度進(jìn)行評價,由此檢測出映現(xiàn)在檢測圖像上的對象物的圖像的位置的裝置。
背景技術(shù):
通常,在使用圖像處理裝置從通過視覺傳感器拍攝到的輸入數(shù)據(jù)中檢測出特定的對象物的圖像的情況下,進(jìn)行表示對象物的基準(zhǔn)信息(通常,稱為模型圖案、模板等)與通過視覺傳感器拍攝到的輸入數(shù)據(jù)之間的特征點的匹配,在一致度超過預(yù)定的水平時判斷為對象物的檢測成功。
例如,在視覺傳感器為攝像頭且輸入數(shù)據(jù)為濃淡圖像的情況下,作為在進(jìn)行這種匹配時使用的特征點之一存在邊緣點。邊緣點為圖像上的亮度變化大的點。通常,對象物的圖像的輪廓部分的亮度變化大,因此在很多情況下作為表示對象物的輪廓線形狀的特征點而利用邊緣點。將從包含應(yīng)檢測的對象物的圖像中提取出的邊緣點群作為模型圖案而進(jìn)行存儲,根據(jù)從通過視覺傳感器拍攝到的圖像提取出的邊緣點群與模型圖案的邊緣點群的一致度來檢測對象物。例如,作為這種方法已知廣義霍夫(hough)變換等。
另外,映現(xiàn)在圖像中的對象物的圖像的輪廓線的形狀具有偏差。該偏差例如存在以下原因。
·對象物形狀的個體差
·較大的視差
這里所指的視差是指,在對象物為立體或?qū)ο笪锏睦饩€的角為圓的情況下由于對象物與視覺傳感器的相對位置發(fā)生變化而映現(xiàn)在圖像中的輪廓線的位置關(guān)系發(fā)生偏離。
即使在對象物的輪廓線中產(chǎn)生這種的偏差,也期望能夠正確地檢測出對象物。但是,實際上,有時使用于模型圖案的示教的對象物的個體或其圖像本身還由于偏差而產(chǎn)生偏差,在很多情況下也不能說是最佳匹配。在這種情況下,無法進(jìn)行期待的檢測。例如,如果是某種偏差則即使偏差很大也能夠進(jìn)行檢測,但是對于其它種類的偏差,稍微有差別則無法進(jìn)行檢測。因此,在應(yīng)用上述方法之后要求生成與可產(chǎn)生的偏差相應(yīng)的最佳的模型圖案。
在日本專利第5080416號公報中,在從輸入圖像中檢測出與模型匹配的對象物時,累計針對匹配的評分的模型的各特征量的貢獻(xiàn)度。公開了根據(jù)該貢獻(xiàn)度來刪除不需要的特征量的方法。專利第5080416號公報所公開的方法為根據(jù)實際檢測時的匹配信息來修正模型的方法,但是檢測對象物的形狀的個體差大的部分的貢獻(xiàn)度降低,從而有可能不需要地刪除該部分的模型特征量。另外,在該方法中,無法將模型圖案的形狀修正為最佳匹配。
在日本特開2015-7972號公報中公開了對模型圖像進(jìn)行旋轉(zhuǎn)、放大和縮小、變形、照明的變化、圖像噪聲等各種變動而生成多個變動圖像的方法。從該變動圖像中提取出圖案的特征量而生成特征量的分布。利用該分布,能夠生成魯棒的模型。
在日本特開2015-7972號公報所記載的方法中通過人工方法進(jìn)行變動,而無法使由實際檢測對象物的個體差、環(huán)境引起的偏差反映于模型。
在日本專利第4843415號公報中公開了以下方法:從相同視點多次拍攝相同對象物,對多個圖像中的各個圖像進(jìn)行檢測而計算出檢測出的輪廓線的平均位置,由此使檢測位置精度高精度化。該方法用于減輕相同對象物的測量誤差的影響,而無法減輕多個檢測對象物的偏差的影響。
在日本特開平7-37085號公報中公開了以下方法:從學(xué)習(xí)用圖像中將與初始基準(zhǔn)圖案匹配的區(qū)域作為局部圖像而切出,以像素值單位對切出的多個局部圖像進(jìn)行平均化,由此生成新基準(zhǔn)圖案。通過以像素單位進(jìn)行平均化而能夠去除由噪聲引起的偏差。但是,在該方法中,在由于個體差、視差的影響而產(chǎn)生邊緣位置偏差的情況下,平均化的圖像的亮度梯度變小,從而有可能無法準(zhǔn)確地提取出邊緣。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于,即使映現(xiàn)在圖像中的對象物的圖像的輪廓線的形狀產(chǎn)生偏差也能夠正確地進(jìn)行檢測。
本申請的圖像處理裝置根據(jù)表示對象物的形狀的多個第一特征點的集合即模型圖案,在通過視覺傳感器拍攝到的輸入數(shù)據(jù)中檢測出上述對象物的圖像,該圖像處理裝置具備:對象物檢測部,其針對拍攝對象物得到的一個至多個輸入數(shù)據(jù)中的各個輸入數(shù)據(jù),進(jìn)行從該輸入數(shù)據(jù)提取出的多個第二特征點與構(gòu)成上述模型圖案的多個第一特征點的匹配而檢測出上述對象物的一個至多個圖像;對應(yīng)點選擇部,其針對根據(jù)上述一個至多個輸入數(shù)據(jù)檢測出的一個至多個對象物的圖像中的各個圖像,從構(gòu)成該圖像的多個第二特征點中選擇出與構(gòu)成上述模型圖案的上述多個第一特征點對應(yīng)的第二特征點,將該第二特征點作為對應(yīng)點而與該第一特征點關(guān)聯(lián)起來進(jìn)行存儲;以及模型圖案修正部,其針對構(gòu)成上述模型圖案的多個第一特征點中的各個第一特征點,計算出與該第一特征點相關(guān)聯(lián)的上述多個對應(yīng)點的預(yù)定的物理量的統(tǒng)計量,根據(jù)計算出的上述預(yù)定的物理量的統(tǒng)計量來修正該第一特征點。
附圖說明
通過參照以下附圖,能夠更加明確本發(fā)明。
圖1是表示設(shè)置于視覺傳感器控制裝置的圖像處理裝置的結(jié)構(gòu)的框圖。
圖2是表示實施方式的通過具有圖像處理裝置的視覺傳感器控制裝置和視覺傳感器來檢測對象物的位置的情況的結(jié)構(gòu)例的圖。
圖3是表示在通過由機器人控制裝置控制的機器人的手來操縱作業(yè)臺上的對象物的情況下,通過搭載于視覺傳感器控制裝置的實施方式的圖像處理裝置對設(shè)置于機器人的手下的視覺傳感器的圖像進(jìn)行處理而檢測對象物,并將檢測出的對象物的位置信息提供給機器人控制裝置的結(jié)構(gòu)例的圖。
圖4是表示第一實施方式的處理的流程圖。
圖5是表示圖像處理部進(jìn)行的模型圖案的生成過程的流程圖。
圖6是說明計算第一特征點的位置與第二特征點的位置的距離的方法例的圖。
圖7是表示第二實施方式的處理的流程圖。
圖8是說明選擇特征點候選的處理的圖。
圖9是說明從特征點候選中刪除重復(fù)的部分的處理的圖。
圖10是表示第三實施方式的處理的流程圖。
圖11是表示對象物的模型圖案的示例的圖。
圖12是表示拍攝到的圖像中的模型圖案指定區(qū)域的示例的圖。
圖13是表示存儲在模型圖案存儲部中的對應(yīng)點的數(shù)據(jù)形式的圖。
圖14是說明計算誤差向量的方法的圖。
圖15是說明根據(jù)統(tǒng)計量來修正模型圖案的第一特征點的方法的圖。
圖16是表示存儲在模型圖案存儲部中的判斷指標(biāo)的形式的圖。
圖17是表示存儲在模型圖案存儲部中的第一特征點的數(shù)據(jù)形式的圖。
圖18是表示誤差向量的數(shù)據(jù)存儲形式的圖。
圖19是表示第四實施方式的處理的流程圖。
具體實施方式
以下,參照附圖說明本發(fā)明的第一至第三實施方式(以下,有時將共同部分的說明簡稱為實施方式)。然而,可理解為本發(fā)明并不限定于附圖或以下說明的實施方式。
在實施方式的說明中,如下那樣使用標(biāo)記。為了明確說明,首先說明標(biāo)記。
NP:構(gòu)成模型圖案的第一特征點的數(shù)量
P_i:模型圖案的第i個第一特征點(i為1至NP)
NI:輸入圖像的數(shù)量
I_j:第j個輸入圖像(j為1至NI)
NQ_j:從第j個輸入圖像I_j提取出的第二特征點的數(shù)量
Q_jk:從第j個輸入圖像I_j提取出的第k個第二特征點(k為1至NQ_j)
NT_j:從第j個輸入圖像I_j檢測出的對象物的圖像的數(shù)量
T_jg:從第j個輸入圖像I_j檢測出的第g個對象物的圖像(g為1至NT_j)
NT:從所有輸入圖像檢測出的對象物的圖像的總數(shù)(NT=ΣNT_j)
NO_jg:從第j個輸入圖像I_j提取出的第二特征點Q_jk中的、構(gòu)成對象物的圖像T_jg的特征點的數(shù)量(NO_jg<NQ_j)
O_jgn:從第j個輸入圖像I_j提取出的第二特征點Q_jk中的、構(gòu)成對象物的圖像T_jg的特征點以外的特征點的第n個特征點(非對應(yīng)點)(n為1至NO_jg)
NO_i:判斷為與模型圖案的第i個特征點P_i對應(yīng)的對應(yīng)點的數(shù)量(NO_i<=NT)
O_im:與模型圖案的第i個特征點P_i對應(yīng)的第m個對應(yīng)點(m為1至NO_i)
NC:特征點候選的數(shù)量
C_h:第h個特征點候選(h為1至NC個)
NO_h:判斷為與特征點候選C_h對應(yīng)的對應(yīng)點的數(shù)量(NO_h<NT)
O_hp:與特征點候選C_h對應(yīng)的第p個對應(yīng)點(p為1至NO_h)
圖2是表示實施方式的通過具有圖像處理裝置的視覺傳感器控制裝置和視覺傳感器來檢測對象物的位置的情況的結(jié)構(gòu)例的圖。
如圖2所示,將視覺傳感器10固定設(shè)置于能夠拍攝對象物1的位置,將對象物1載置于作業(yè)臺2。視覺傳感器10既可以是拍攝濃淡圖像、彩色圖像的攝像頭,也可以是能夠獲取距離圖像、三維點群的立體攝像頭、三維傳感器。三維點群既可以是對象物的輪廓線上的點群,也可以是對象物的面上的點群。
在本實施方式中,作為視覺傳感器10使用攝像頭,以視覺傳感器10輸出濃淡圖像為例進(jìn)行說明。攝像頭例如為具有CCD(Charge Coupled Device:電荷耦合元件)等攝像元件的電子攝像頭,是具備通過拍攝在攝像面(CCD陣列面上)上檢測二維圖像的功能的公知的受光設(shè)備。此外,以下將攝像面中的二維坐標(biāo)系稱為圖像坐標(biāo)系。
圖3是表示在通過由機器人控制裝置13控制的機器人11的手12來操縱作業(yè)臺2上的對象物1的情況下,通過搭載于視覺傳感器控制裝置20的實施方式的圖像處理裝置對設(shè)置于機器人11的手下的視覺傳感器10的圖像進(jìn)行處理而檢測出對象物1,并將檢測出的對象物1的位置信息提供給機器人控制裝置13的結(jié)構(gòu)例的圖。如圖3所示,視覺傳感器10也可以設(shè)置于機器人11的手下等可動部。
圖1是表示設(shè)置于視覺傳感器控制裝置的圖像處理裝置的結(jié)構(gòu)的框圖。
如圖1所示,圖像處理裝置21具有圖像處理部22、模型圖案存儲部26以及檢測結(jié)果存儲部27。在圖像處理裝置21上連接有視覺傳感器10、操作盤31、顯示裝置32等。圖像處理部22包括對象物檢測部23、對應(yīng)點選擇部24以及模型圖案修正部25。模型圖案存儲部26存儲所示教的模型圖案。檢測結(jié)果存儲部27用于存儲使用示教的模型圖案根據(jù)輸入數(shù)據(jù)檢測出對象物的檢測結(jié)果。在具有CPU、ROM、RAM等的計算機上通過軟件來實現(xiàn)圖像處理裝置21所包含的各部分。在后述的第一至第三實施方式中,通過軟件實現(xiàn)的處理內(nèi)容不同。
視覺傳感器10通過通信電纜連接于圖像處理裝置21。視覺傳感器10將拍攝到的圖像數(shù)據(jù)提供給圖像處理裝置21。操作盤31通過通信電纜連接于圖像處理裝置21。操作盤31使用于通過圖像處理裝置21設(shè)定檢測對象物1所需的視覺傳感器10。顯示裝置32通過通信電纜連接于圖像處理裝置21。在顯示裝置32中顯示通過視覺傳感器10拍攝到的圖像、通過操作盤31設(shè)定的設(shè)定內(nèi)容。此外,視覺傳感器10、操作盤31以及顯示裝置32也可以與圖像處理裝置21成一體。
圖4是表示第一實施方式的圖像處理裝置21的處理的流程圖。
使用圖4說明在第一實施方式中由圖像處理部22執(zhí)行的處理內(nèi)容。
在步驟S101中,圖像處理部22生成模型圖案,將所生成的模型圖案存儲到模型圖案存儲部26中。
本實施方式中的模型圖案由多個特征點構(gòu)成。作為特征點能夠使用各種要素,但是在本實施方式中將邊緣點用作特征點。邊緣點為圖像中亮度梯度大的點,能夠用作用于獲取對象物1的輪廓形狀。提取邊緣點的方法記載于“コンピュータビジョン”(共立出版)2007.1等,是公知的,因此在此省略說明。
作為邊緣點的物理量,有該邊緣點的位置、亮度梯度方向、亮度梯度的大小等。將邊緣點的亮度梯度的方向定義為特征點的姿勢時,能夠與位置對應(yīng)地定義特征點的位置姿勢。在本實施方式中,作為特征點的物理量而存儲邊緣點的物理量,即邊緣點的位置、姿勢(亮度梯度的方向)、亮度梯度的大小。
圖11是表示對象物1的模型圖案的示例的圖。如圖11所示,對象物1的模型圖案由多個第一特征點P_i(i=1~NP)構(gòu)成。
構(gòu)成模型圖案的第一特征點P_i的位置姿勢也可以用任意形式表示,但是作為一例可舉出對模型圖案定義坐標(biāo)系100(以下,稱為模型圖案坐標(biāo)系100),并用從模型圖案坐標(biāo)系100觀察到的位置向量、方向向量等來表現(xiàn)構(gòu)成模型圖案的特征點的位置t_Pi(i=1~NP)、姿勢v_Pi(i=1~NP)的方法。
也可以任意地定義模型圖案坐標(biāo)系100的原點。例如,既可以從構(gòu)成模型圖案的第一特征點中選擇任意1點,將該點定義為原點,也可以將構(gòu)成模型圖案的所有特征點的重心定位為原點。
也可以任意地定義模型圖案坐標(biāo)系100的姿勢(軸方向)。例如。既可以在進(jìn)行模型圖案的生成的圖像中以圖像坐標(biāo)系與模型圖案坐標(biāo)系100變得平行的方式進(jìn)行定義,也可以從構(gòu)成模型圖案的特征點中選擇任意2點并以其一方朝向另一方的方向成為X軸方向的方式進(jìn)行定義。
在模型圖案存儲部26中例如以如圖17的形式(包括位置、姿勢、亮度梯度的大小)存儲構(gòu)成模型圖案的第一特征點P_i。
圖5是表示圖像處理部22進(jìn)行的模型圖案的生成過程的流程圖。
在步驟S201中,將想要作為模型圖案而示教的對象物1配置于視覺傳感器(攝像頭)10的視場內(nèi)而拍攝對象物1的圖像。此時的攝像頭10與對象物1的位置關(guān)系期望變得與檢測對象物1時相同。
在通過步驟S202拍攝到的圖像中,將映照了對象物1的區(qū)域以矩形、圓形來指定為模型圖案指定區(qū)域。
圖12是表示拍攝到的圖像中的模型圖案指定區(qū)域的示例的圖。
在圖12中,在拍攝到的圖像中定義圖像坐標(biāo)系210,其中以包含對象物1的圖像1A的方式指定模型圖案指定區(qū)域(在此為矩形區(qū)域)220。模型圖案指定區(qū)域220既可以由圖像處理部22接收使用者一邊通過顯示裝置32觀察圖像一邊通過操作盤31輸入的指示而設(shè)定,也可以由圖像處理部22將圖像中的亮度梯度大的部分求出為圖像1A的輪廓,并以在內(nèi)部包含圖像1A的方式自動地指定。
在步驟S203中,在模型圖案指定區(qū)域220的范圍內(nèi)將邊緣點作為特征點而提取,求出邊緣點的位置、姿勢(亮度梯度的方向)、亮度梯度的大小等物理量。另外,在指定的區(qū)域內(nèi)定義模型圖案坐標(biāo)系100,將邊緣點的位置、姿勢從在圖像坐標(biāo)系210中表現(xiàn)的值變換為在模型圖案坐標(biāo)系100中表現(xiàn)的值。
在步驟S204中,將提取出的邊緣點的物理量作為構(gòu)成模型圖案的第一特征點P_i而存儲到模型圖案存儲部26中。
在本實施方式中,作為特征點而使用了邊緣點,但是在本實施方式中可使用的特征點并不限定于邊緣點,例如也可以使用如SIFT那樣的特征點。從圖像中提取SIFT特征點的方法記載于“Object Recognition from Local Scale-Invariant Features”,David G.Lowe,Proc.Of the International Conference on Computer Vision,Corfu(Sept.1999)等,這是公知的。
另外,也可以不是從對象物1的圖像中提取邊緣點、SIFT特征點等而設(shè)為構(gòu)成模型圖案的第一特征點,而是以與映現(xiàn)在圖像中的對象物的輪廓線一致的方式配置線段、矩形、圓等幾何圖形來生成模型圖案。在該情況下,在構(gòu)成輪廓線的幾何圖形上以適當(dāng)?shù)拈g隔來設(shè)置特征點即可。
并且,還能夠根據(jù)CAD數(shù)據(jù)等來生成模型圖案。如果是二維CAD數(shù)據(jù),則能夠通過與使用幾何圖形的方法相同的方法來生成模型圖案。如果是三維CAD數(shù)據(jù),則在圖像上投影用CAD數(shù)據(jù)表現(xiàn)的對象物的形狀,從投影的圖像中提取特征點而設(shè)為第一特征點即可。例如,能夠通過以下那樣的處理進(jìn)行變換。
1.在攝像頭的攝像面上定義設(shè)置原點的局部坐標(biāo)系。
2.預(yù)先校準(zhǔn)攝像頭。由此,能夠?qū)⒂镁植孔鴺?biāo)系表現(xiàn)的三維點變換為攝像頭圖像上的二維點。
3.在局部坐標(biāo)系中虛擬地配置作為CAD數(shù)據(jù)而表現(xiàn)的對象物。在局部坐標(biāo)系中表現(xiàn)配置的CAD數(shù)據(jù)。將攝像頭與對象物的相對關(guān)系設(shè)為與實際進(jìn)行對象物的檢測時的相對關(guān)系大體相同。
4.從輪廓線以預(yù)定的間隔來獲取輪廓線上的三維點群。如果需要則從CAD數(shù)據(jù)中指定作為模型圖案而使用的輪廓線。
5.將三維點群投影于攝像頭圖像上,求出圖像坐標(biāo)系上的二維點群。如果在CAD數(shù)據(jù)上指定明暗的朝向,則還能夠附加亮度梯度的方向。在此,明暗的朝向是指,表示以輪廓線為邊界的兩個區(qū)域中哪個區(qū)域更明亮。
6.將求出的圖像坐標(biāo)系上的二維點群變換為用模型圖案坐標(biāo)系來表現(xiàn),作為第一特征點而存儲到模型圖案存儲部中。
返回至步驟S102,準(zhǔn)備包含對象物1的圖像1A的一個至多個輸入圖像I_j(j=1~NI)。映現(xiàn)在輸入圖像I_j中的對象物1的圖像1A期望包含在檢測中成為問題的偏差。例如,如果對象物1的個體差成為問題,則準(zhǔn)備多個具有個體差的對象物1,優(yōu)選將分別拍攝這些對象物1而得的圖像設(shè)為輸入圖像。如果由放置對象物1的位置不同而外觀不同成為問題,則優(yōu)選將在攝像頭視場內(nèi)的各個位置、朝向上放置對象物而拍攝到的圖像設(shè)為輸入圖像。也可以大量地保存實際在生產(chǎn)線上拍攝到的對象物1的圖像,并將該圖像設(shè)為輸入圖像。實際在生產(chǎn)線上拍攝到的圖像包含要考慮的各種偏差,因此優(yōu)選使用。也可以在一個輸入圖像上映現(xiàn)多個對象物。
在步驟S103中,對各個輸入圖像I_j(j=1~NI)進(jìn)行對象物1的圖像1A(以下,有時簡稱為對象物1)的檢測。
首先,從輸入圖像I_j中提取第二特征點。通過與生成模型圖案時提取第一特征點的方法相同的方法來提取第二特征點即可。在本實施方式中,從輸入圖像中提取邊緣點而設(shè)為第二特征點。為了便于說明,將從輸入圖像I_j提取出的NQ_j個第二特征點設(shè)為Q_jk(k=1~NQ_j)。將第二特征點Q_jk與輸入圖像I_j關(guān)聯(lián)起來存儲到檢測結(jié)果存儲部27中。在該時間點,用圖像坐標(biāo)系210來表現(xiàn)第二特征點Q_jk的位置、姿勢。
接著,對從輸入圖像I_j提取出的第二特征點Q_jk與構(gòu)成模型圖案的第一特征點P_i進(jìn)行匹配并進(jìn)行對象物1的檢測。檢測對象物的方法有各種方法,但是,例如作為公知的方法而能夠利用記載于“Generalizing the Hough Transform to Detect Arbitrary Shapes”,D.H.Ballard,Pattern Recognition Vol.13,No.2,pp.111-122,1981的廣義霍夫變換、記載于“Random samp leconsensus:a paradigm for model fitting with applications to image analysis and automated cartography”,Martin A.Fischler,et al.,Communications of the Association for Computing Machinery Vol.24 No.6 Pages 381-395,March 1980的RANSAC、記載于“A method for Registration for 3-D Shapes”,Paul J.Best,et al.,IEEE Transactions on Pattern Analysis and Machine Intelligence,Vol.14,No.2,February 1992的ICP算法等。
進(jìn)行檢測的結(jié)果是,設(shè)為從輸入圖像I_j檢測出NT_j個對象物的圖像。另外,將檢測出的圖像設(shè)為T_jg(g=1~NT_j)、將圖T_jg的檢測位置設(shè)為R_Tjg。檢測位置R_Tjg為表示從圖像坐標(biāo)系210觀察到的對象物的圖像T_jg的位置姿勢,即使模型圖案重疊于圖像T_jg時的從圖像坐標(biāo)系210觀察到的模型圖案坐標(biāo)系100的位置姿勢的齊次變換矩陣(homogeneous transformation matrix),用以下式表示。
例如,在對象物不會相對于攝像頭的光軸傾斜,作為映現(xiàn)于圖像的對象物的圖像的移動僅考慮全等變換(congruent transformation)的情況下,a00~a12如以下所示。
a00=cosθ
a01=-sinθ
a02=X
a10=sinθ
a11=cosθ
a12=y(tǒng)
其中,(x、y)為圖像上的位置,θ為圖像上的旋轉(zhuǎn)移動量。
另外,對象物不會相對于攝像頭的光軸傾斜,但是在對象物與攝像頭的距離不固定的情況下,根據(jù)距離不同而映現(xiàn)于圖像的對象物的圖像大小發(fā)生變化,因此作為映現(xiàn)于圖像的對象物的圖像的移動而成為相似變換。在該情況下,a00~a12如以下所示。
a00=s·cosθ
a01=-s·sinθ
a02=X
a10=s·sinθ
a11=s·cosθ
a12=y(tǒng)
其中,s為示教的模型圖案的大小與對象物的圖像T_jg的大小之比。
對各個輸入圖像I_j(j=1~NI)進(jìn)行相同的處理,設(shè)為總計檢測出NT個圖像。此外,總計的個數(shù)NT用下式來表示。
將檢測位置R_Tjg與輸入圖像I_j關(guān)聯(lián)起來存儲到檢測結(jié)果存儲部27中。
在步驟S104中,根據(jù)從各輸入圖像I_j(j=1~NI)檢測出的對象物的圖像T_jg(j=1~NI、g=1~NT_j)的檢測位置R_Tjg,將從輸入圖像I_j提取出的第二特征點Q_jk(j=1~NI,k=1~NQ_j)中的、與構(gòu)成模型圖案的第一特征點P_i對應(yīng)的特征點作為對應(yīng)點而進(jìn)行選擇。
為了便于說明,分別用齊次變換矩陣R_Pi來表示構(gòu)成模型圖案的第一特征點P_i的位置姿勢。R_Pi能夠如下記述。
b00=vx_Pi
b01=-vy_Pi
b02=tx_Pi
b10=vy_Pi
b11=vx_Pi
b12=ty_Pi
其中,t_Pi=(tx_Pi,ty_Pi)為模型圖案坐標(biāo)系中的P_i的位置,v_Pi=(vx_Pi,Vy_Pi)為模型圖案坐標(biāo)系中的P_i的姿勢。
此外,還能夠用角度r_Pi來表現(xiàn)P_i的姿勢而并非向量。v_Pi使用r_Pi而能夠表現(xiàn)為v_Pi=(vx_Pi,vy_Pi)=(cos r_Pi,sin r_Pi)。
同樣地,從輸入圖像I_j提取出的第二特征點_Q_jk的位置姿勢也用齊次變換矩陣R_Qjk來表示。
在此,需要注意的是,構(gòu)成模型圖案的第一特征點P_i的位置姿勢R_Pi用模型圖案坐標(biāo)系來表現(xiàn),從輸入圖像I_j提取出的第二特征點Q_jk的位置姿勢R_Qjk用圖像坐標(biāo)系來表現(xiàn)。因此,能夠明確兩者的關(guān)系。
將使模型圖案重疊于映現(xiàn)在圖像I_j中的對象物的圖像T_jg時的、從圖像坐標(biāo)系觀察的第一特征點P_i的位置姿勢設(shè)為R_Pi’時,R_Pi’使用從模型圖案坐標(biāo)系觀察的第一特征點P_i的位置姿勢R_Pi和從圖像坐標(biāo)系觀察的圖像T_jg的檢測位置R_Tjg來如下那樣進(jìn)行表示。
R_Pi’=R_Tjg·R_Pi (1)
同樣地,將使模型圖案重疊于對象物的圖像T_jg時的、從模型圖案坐標(biāo)系觀察的第二特征點Q_jk的位置姿勢設(shè)為R_Qjk’時,R_Qjk’使用從圖像坐標(biāo)系觀察的Q_jk的位置姿勢R_Qjk和從圖像坐標(biāo)系觀察的圖像T_jg的檢測位置R_Tjg來如下那樣進(jìn)行表示。
R_Qjk’=R_Tjg-1·R_Qjk (2)
此外,為了后文中的說明,將從圖像坐標(biāo)系觀察的P_i的位置設(shè)為t_Pi’、將從圖像坐標(biāo)系觀察的P_i的姿勢設(shè)為v_Pi’、將從圖像坐標(biāo)系觀察的Q_jk的位置設(shè)為t_Qjk、將從圖像坐標(biāo)系觀察的Q_jk的姿勢設(shè)為v_Qjk、將從模型圖案坐標(biāo)系觀察的Q_jk的位置設(shè)為t_Qjk’、將從模型圖案坐標(biāo)系觀察的Q_jk的姿勢設(shè)為v_Qjk’。
根據(jù)上述情況,通過以下過程來進(jìn)行構(gòu)成模型圖案的第一特征點P_i和從輸入圖像I_j提取出的第二特征點Q_jk(j=1~NI,k=1~NQ_j)的對應(yīng)。
1.根據(jù)從輸入圖像I_j檢測出的對象物的圖像T_jg的檢測位置R_Tjg,將構(gòu)成模型圖案的第一特征點P_i的位置姿勢R_Pi通過式(1)變換為從圖像坐標(biāo)系觀察的位置姿勢R_Pi’。
2.針對各個第一特征點P_i,從第二特征點Q_jk中搜索最近的部分。在搜索中能夠使用以下方法。
(a)計算第一特征點的位置姿勢R_Pi’與所有第二特征點的位置姿勢R_Qjk的距離,選擇距離最近的第二特征點Q_jk。
(b)在與輸入圖像I_j的像素數(shù)相同的要素數(shù)的二維排列中,將第二特征點的位置姿勢R_Qjk存儲于與該位置的像素對應(yīng)的二維排列的要素,二維地搜索與二維排列的第一特征點的唯一姿勢R_Pi對應(yīng)的像素附近,選擇最初發(fā)現(xiàn)的第二特征點Q_jk。
3.評價所選擇的第二特征點Q_jk作為該第一特征點P_i的對應(yīng)點是否適當(dāng)。例如,計算第一特征點P_i的位置姿勢R_Pi’與第二特征點Q_jk的位置姿勢R_Qjk的距離,如果距離為閾值以下,則設(shè)為所選擇的第二特征點Q_jk作為該第一特征點P_i的對應(yīng)點而適當(dāng)。
并且,還一并評價第一特征點P_i與第二特征點Q_jk的姿勢、亮度梯度的大小等物理量的差,也可以在它們?yōu)殚撝狄韵禄蜷撝狄陨蠒r判斷為所選擇的第二特征點Q_jk作為該第一特征點P_i的對應(yīng)點而適當(dāng)。
4.在判斷為所選擇的第二特征點Q_jk作為該第一特征點P_i的對應(yīng)點而適當(dāng)?shù)那闆r下,將所選擇的第二特征點Q_jk設(shè)為該第一特征點P_i的對應(yīng)點O_im而與P_i關(guān)聯(lián)起來存儲到檢測結(jié)果存儲部27中。將從對應(yīng)點O_im的圖像坐標(biāo)系觀察的位置姿勢設(shè)為R_Oim時,R_Oim=R_Qjk,這是從圖像坐標(biāo)系觀察的位置姿勢,因此變換為從模型圖案坐標(biāo)系觀察的位置姿勢R_Oim’并存儲。R_Oim’能夠用式(2)如下那樣計算。
第一特征點P_i的位置t_Pi’與第二特征點Q_jk的位置t_Qjk的距離可以使用2點間的直線距離,但是也可以使用通過以下說明的圖6示出的計算方法計算得到的值。
1.將通過第一特征點P_i的位置t_Pi’并與第一特征點P_i的姿勢v_Pi’平行的直線設(shè)為L2。
2.將通過第二特征點Q_jk的位置t_Qjk并與第二特征點Q_jk的姿勢v_Qjk正交的直線設(shè)為L1。
3.計算L1與L2的交點T以及與第一特征點P_i的位置t_Pi’之間的距離d_gi。在該情況下,距離d_gi成為帶符號的距離。
當(dāng)這樣計算距離時,忽視與第一特征點P_i的亮度梯度的方向正交的方向的偏離。
分別對從輸入圖像I_j(j=1~NI)檢測出的NT個檢測位置R_Tjg(j=1~NI、g=1~NQ_j)進(jìn)行上述處理,由此設(shè)為發(fā)現(xiàn)了NO_i個判斷為與模型圖案的第i個特征點P_i對應(yīng)的對應(yīng)點。另外,將與模型圖案的第i個特征點P_i對應(yīng)的第m個對應(yīng)點設(shè)為O_im(m=1~NO_i)。此外,從輸入圖像I_j檢測出的對象物的圖像的總數(shù)為NT,因此為NO_i<=NT。得到的對應(yīng)點按照如圖13的方式被存儲到模型圖案存儲部26中。
此外,在本實施方式中,對NT個檢測位置R_Tjg(j=1~NI、g=1~NQ_j)進(jìn)行對應(yīng)點的選擇,但是不一定必須對所有檢測位置進(jìn)行。例如,如果明顯地混入了不適當(dāng)?shù)臋z測位置,則期望排除這些不適當(dāng)?shù)臋z測位置。例如,能夠用以下方法進(jìn)行排除。
作為排除方法的一例,在模型圖案示教時和進(jìn)行檢測時對檢測位置附近的亮度值進(jìn)行比較,若亮度值有較大不同,則作為不適當(dāng)而進(jìn)行排除。說明該排除處理。
1.設(shè)定用于測量亮度值的區(qū)域。將該區(qū)域稱為測量區(qū)域。測量區(qū)域既可以是模型圖案內(nèi)部也可以是外部。測量區(qū)域的形狀并沒有限制,在此設(shè)為矩形,存儲從模型圖案坐標(biāo)系觀察的矩形的位置和大小。另外,在對模型圖案進(jìn)行示教的圖像中,計算出測量區(qū)域內(nèi)的亮度值的統(tǒng)計量,一并進(jìn)行存儲。統(tǒng)計量考慮亮度值的平均、分散、最大值、最小值等。
2.計算與檢測結(jié)果T_jg的檢測位置R_Tjg對應(yīng)的測量區(qū)域的位置R_C’。
將測量區(qū)域的矩形的位置姿勢設(shè)為R_C時,R_C’能夠根據(jù)R_C和R_Tjg并通過以下式計算出。
R_C’=R_Tjg·R_C
3.計算以R_C’規(guī)定的矩形區(qū)域內(nèi)的、輸入圖像I_j的亮度值的統(tǒng)計量。
4.如果模型圖案的測量區(qū)域的亮度值的統(tǒng)計量與檢測結(jié)果T_jg的測量區(qū)域的亮度值的統(tǒng)計量的差在閾值以上,則作為其檢測結(jié)果為不適當(dāng)而進(jìn)行排除。
分別對檢測結(jié)果T_jg(g=1~NT_j)進(jìn)行上述2~4的處理。
用于判斷是否排除的物理量并不限定于亮度值。例如,既可以使用測量區(qū)域內(nèi)的亮度梯度的大小,也可以使用色相、彩度。如果能夠發(fā)揮與此類似的效果的物理量的統(tǒng)計量,則當(dāng)然并不限定于在此例舉的統(tǒng)計量。
作為其它排除方法,使用者也能夠以手動方式排除不適當(dāng)?shù)臋z測結(jié)果。將檢測結(jié)果顯示在顯示裝置32中,使用者通過目視觀察來進(jìn)行確認(rèn),不使用判斷為不適當(dāng)?shù)臋z測結(jié)果。對每個檢測結(jié)果T_jg(g=1~NT_j)進(jìn)行上述處理(檢測結(jié)果的適當(dāng)性的確認(rèn))。
通過排除不適當(dāng)?shù)臋z測結(jié)果,能夠防止這種檢測結(jié)果在以后的步驟中計算統(tǒng)計量時帶來不良影響。
在步驟S105中,根據(jù)判斷為與模型圖案的第i個第一特征點P_i對應(yīng)的NO_i個對應(yīng)點O_im(m=1~NO_i)的物理量來計算出與第一特征點P_i對應(yīng)的對應(yīng)點的物理量的統(tǒng)計量。
以下,作為統(tǒng)計量的一例,說明求出特征點的位置的平均誤差向量的方法。
(a)獲取存儲在檢測結(jié)果存儲部27中的、與第一特征點P_i對應(yīng)的NO_i個對應(yīng)點_O_im的從模型圖案坐標(biāo)系觀察的位置姿勢R_Oim’。
(b)接著,如圖14所示,針對NO_i個對應(yīng)點O_im的每個對應(yīng)點O_im,計算從對應(yīng)點O_im的位置姿勢R_Oim’的位置成分t_Oim’減去第一特征點P_i的位置姿勢R_Pi的位置成分t_Pi而得到的誤差向量V_im。得到NO_i個誤差向量V_im。得到的誤差向量以如圖18那樣的方式被存儲到模型圖案存儲部26中。
(c)通過對NO_i個誤差向量V_im進(jìn)行加法運算,并除以NO_i來計算平均誤差向量V_i,作為第一特征點P_i的統(tǒng)計量而與特征點P_i相關(guān)聯(lián)地存儲到模型圖案存儲部26中。此外,V_i用以下式表示。
在上述例中,將針對第一特征點P_i的所有誤差向量V_im存儲到模型圖案存儲部之后求出平均,但是也可以對誤差向量V_im逐個相加而最后其總和除以NO_i,由此求出平均誤差向量V_i。
另外,平均誤差向量也可以通過其它方法求出。例如,也可以求出將NO_i個誤差向量設(shè)為概率變量的概率分布,將概率最高的部位的向量設(shè)為平均誤差向量。圖像為二維,因此能夠通過推定二維概率分布來計算出平均誤差向量。作為概率分布,能夠使用正態(tài)分布、混合正態(tài)分布等。
也可以在計算平均誤差向量之前去除異常值。通過去除異常值,能夠防止由于錯誤的對應(yīng)點而平均誤差向量的位置精度變差。異常值例如能夠通過以下方法來去除。
首先,求出將誤差向量設(shè)為概率變量的概率分布。針對求出的概率分布,求出能夠求得各誤差向量的概率。該概率低于閾值的部分被作為異常值而去除。
在去除異常值之后再次重新求出概率分布等來求出平均誤差向量即可。
對構(gòu)成模型圖案的每個第一特征點P_i進(jìn)行上述處理。
在步驟S106中,根據(jù)求出的統(tǒng)計量(平均誤差向量V_i)來修正模型圖案的第一特征點P_i。具體地,如圖15所示,通過t_Pi加上平均誤差向量V_i而得到的值t_Pi+V_i來更換特征點P_i的位置t_Pi即可。由此,模型圖案的特征點P_i(i=1~NP)所形成的形狀成為映現(xiàn)在圖像I_j(j=1~NI)的NT個圖像T_jg(j=1~NI、g=1~NT_j)的平均的形狀。
在步驟S105中作為統(tǒng)計量而計算出什么量,此外,在步驟S106中如何修正模型圖案并不限定于上述方法。例如,也可以設(shè)為以下結(jié)構(gòu)。
1.通過圖6的方法,計算第一特征點P_i與對應(yīng)點O_im的距離d_im。d_im為帶符號的距離。特征點P_i的對應(yīng)點為NO_i個,因此對各特征點P_i計算NO_i個的距離d_im。
2.用以下式求出NO_i個距離d_im的平均值d_i。以求出的距離的平均值d_i為統(tǒng)計量,與特征點P_i關(guān)聯(lián)起來存儲到模型圖案存儲部中。平均值d_i用下式來表示。
d_i=(∑d_im)/NO_i
3.對第一特征點P_i的姿勢v_Pi乘以d_i而設(shè)為平均誤差向量V_i。
V_i=d_i·v_Pi
對特征點P_i的位置t_Pi加上計算出的平均誤差向量V_i。
在這樣設(shè)置的情況下,特征點P_i的位置t_Pi僅在亮度梯度的方向上被修正。
并且,也能夠與模型圖案的第一特征點P_i的位置t_Pi同樣地修正特征點P_i的姿勢v_Pi。例如,也可以通過uv_Oi=(∑v_Oim)/|∑v_Oim|求出第一特征點P_i的對應(yīng)點O_im的姿勢向量v_Oim的平均向量uv_Oi,通過uv_Oi置換第一特征點P_i的姿勢向量v_Pi。
或者,能夠?qū)⑻卣鼽cP_i的姿勢向量變換為角度r_Pi=arctan(vx_Pi/vy_Pi),將同樣地變換后的對應(yīng)點O_im的姿勢的角度設(shè)為r_Oim’,通過r_Oim’-r_Pi求出角度的差r_im。但是,r_im變換為由-π成為π的值。通過對差的平均值r_i=(Σr_im)/(NO_i)加上特征點的姿勢的角度r_Pi,能夠修正特征點P_i的姿勢。
通過這樣修正模型圖案來得到以下效果。
1.從拍攝某一對象物而得到的圖像生成的模型圖案反映了對象物的某一個體的形狀,因此并非對所有個體最佳。通過使用該方法,能夠?qū)ο笪锏钠骄螤钤O(shè)為模型圖案。并且,不僅是由對象物的固體引起的形狀差異,也有時根據(jù)放置對象物的位置、攝像頭的位置不同而對象物的外觀不同。還能夠包括這種外觀的不同在內(nèi)使模型圖案平均化。
2.根據(jù)表示對象物的形狀的CAD數(shù)據(jù)生成的模型圖案為對象物的理想形狀,但是由于制造誤差,并非按照尺寸生成。另外,在將通過CAD數(shù)據(jù)的坐標(biāo)系表現(xiàn)的模型圖案變換為圖像的坐標(biāo)系時也產(chǎn)生誤差。能夠與實際檢測出的對象物的形狀對應(yīng)地使這種模型圖案優(yōu)化。在組合線段、矩形、圓形等圖形而直接對模型圖案的輪廓線進(jìn)行示教的情況下也相同。
以上,說明了第一實施方式。接著,說明第二實施方式。
在第二實施方式中,針對未與模型圖案的第一特征點對應(yīng)的第二特征點,也求出該對應(yīng)點的物理量的統(tǒng)計量,根據(jù)求出的統(tǒng)計量來重新追加模型圖案的第一特征點。
圖7是表示第二實施方式的處理的流程圖。
步驟S301~S303與第一實施方式的S101~S103相同。通過實施S301~S303,與S103的結(jié)束階段同樣地,從輸入圖像I_j中檢測出NT_j個的對象物的圖像。另外,將檢測出的圖像T_jg(g=1~NT_j)的檢測位置設(shè)為R_Tjg。
在步驟S304中,通過對應(yīng)點選擇部24來選擇與構(gòu)成模型圖案的第一特征點對應(yīng)的對應(yīng)點。S304的處理基本上與第一實施方式的S104的處理相同,但是進(jìn)一步進(jìn)行以下的點不同。
如圖8所示,根據(jù)從輸入圖像I_j檢測出的對象物的圖像T_jg的位置姿勢R_Tjg,將從輸入圖像I_j提取出的第二特征點Q_jk(j=1~NI,k=1~NQ_j)中的、將判斷為與構(gòu)成模型圖案的第一特征點P_i(i=1~NP)對應(yīng)的點以外的點(在圖8中用虛線包圍的點)作為對象物的圖像T_jg的非對應(yīng)點O_jgn(n=1~NO_jg),與對象物的圖像T_jg關(guān)聯(lián)起來存儲到檢測結(jié)果存儲部27中。其中,NO_jg為NQ_j以下的值。
在步驟S305中,通過對應(yīng)點選擇部24按照以下過程來選擇特征點候選,并存儲到模型圖案存儲部26中。
針對存儲在檢測結(jié)果存儲部27中的、每個對象物的圖像T_jg的非對應(yīng)點O_jgn(n=1~NO_jg),根據(jù)從圖像坐標(biāo)系觀察的O_jgn的位置姿勢R_Ojgn和對象物的圖像T_jg的位置姿勢R_Tjg,通過上述式(2)計算出從模型圖案坐標(biāo)系觀察的非對應(yīng)點O_jgn的位置姿勢R_Ojgn’。核對R_Ojgn’是否在模型圖案指定區(qū)域的內(nèi)側(cè),如果在區(qū)域外則將該O_jgn從對象物的圖像T_jg的非對應(yīng)點排除。在此使用的模型圖案指定區(qū)域也可以重新指定與用于生成模型圖案的區(qū)域不同的區(qū)域。
將剩下的非對應(yīng)點作為特征點候選C_h而與對象物的圖像T_jg關(guān)聯(lián)起來進(jìn)行存儲。
此外,在作為特征點候選而追加時,也可以使用非對應(yīng)點O_jgn的物理量而進(jìn)一步縮小。例如,也可以不將亮度梯度的大小小于閾值的非對應(yīng)點作為特征點候選而追加。
對從各輸入圖像I_j(j=1~NI)檢測出的每個對象物的圖像T_jg(j=1~NI,g=1~NT_j)進(jìn)行步驟S304和S305的處理。首先,特征點候選C_h為0個,但是在每次進(jìn)行S304和S305的處理時特征點候選被追加到C_h,最終得到NC個特征點候選C_h(h=1~NC)。
在步驟S306中,根據(jù)對象物的圖像的位置姿勢R_Tjg(j=1~NI、g=1~NT_j),選擇從輸入圖像I_j提取出的第二特征點Q_jk(j=1~NI,k=1~NQ_j)中的、與特征點候選C_h(h=1~NC)對應(yīng)的對應(yīng)點O_hp(p=1~NO_h)。
該處理基本上與第一實施方式的S104的處理相同,但是選擇針對特征點候選C_h的對應(yīng)點而不選擇針對第一特征點P_i的對應(yīng)點這一點不同。針對在追加該特征點候選C_h時使用的對象物的圖像T_jg不需要選擇對應(yīng)點,因此NO_h成為NT-1以下的值。
通過對從輸入圖像I_j檢測出的每個對象物的圖像T_jg進(jìn)行S306的處理,在各特征點候選C_h中分別發(fā)現(xiàn)NO_h個對應(yīng)點O_hp(p=1~NO_h)。
在步驟S307中,針對每個特征點候選C_h,計算對應(yīng)點O_hp(p=1~NO_h)的物理量的統(tǒng)計量。在此,在與某一特征點候選C_h對應(yīng)的對應(yīng)點的數(shù)量為NO_h個的情況下,針對使用于對應(yīng)點的選擇的對象物的圖像的總數(shù)為NT個,計算其特征點出現(xiàn)于對象物的圖像中的比例(NO_h+1)/NT而設(shè)為統(tǒng)計量。
統(tǒng)計量并不限定于本例,例如也可以計算出如下的統(tǒng)計量。
·特征點候選C_h與對應(yīng)點O_hp之間的、位置的誤差、亮度梯度的方向的誤差、距離的平均、分散、概率分布
為了計算與位置姿勢有關(guān)的統(tǒng)計量,需要將對應(yīng)點O_hp的位置姿勢R_Ohp變換為從模型圖案坐標(biāo)系觀察的位置姿勢R_Ohp’。該變換使用上述式(2)。
·對應(yīng)點O_hp的亮度梯度的大小的平均、分散、概率分布
·發(fā)現(xiàn)對應(yīng)點的個數(shù)NO_h
在步驟S308中,針對每個特征點候選C_h(h=1~NC),根據(jù)計算出的統(tǒng)計量,判斷作為特征點對模型圖案進(jìn)行追加是否適當(dāng)。
例如,在與某一特征點候選C_h對應(yīng)的對應(yīng)點的數(shù)量為NO_h個的情況下,使用于對應(yīng)點的選擇的對象物的圖像的總數(shù)為NT個,因此其特征點出現(xiàn)于對象物的圖像中的比例成為(NO_h+1)/NT。在特征點出現(xiàn)于對象物的圖像中的比例小于預(yù)定的閾值的情況下,不能說是該特征點候選頻繁出現(xiàn)于對象物的圖像中,因此可考慮為作為特征點對模型圖案進(jìn)行追加并不適當(dāng)。
在使用其它統(tǒng)計量,例如位置、姿勢的分散的情況下,在與某一特征點候選C_h對應(yīng)的對應(yīng)點O_hp(p=1~NO_h)的位置、姿勢的分散大于預(yù)定的閾值時,可以說該特征點候選并非是穩(wěn)定地出現(xiàn)于對象物的圖像中的特征點,因此能夠考慮為作為第一特征點對模型圖案進(jìn)行追加并不適當(dāng)。
在步驟S309中,將各特征點候選C_h(h=1~NC)中的、在S308中判斷為適當(dāng)?shù)奶卣鼽c候選C_h的物理量用與該特征點候選C_h對應(yīng)的對應(yīng)點O_hp(p=1~NO_h)的物理量的統(tǒng)計量來替換。例如,將特征點候選C_h的位置、姿勢、亮度梯度的大小等用對應(yīng)點O_hp(p=1~NO_h)的位置、姿勢、亮度梯度的平均值來替換。
通過到此為止的處理,將從模型圖案坐標(biāo)系觀察而位置姿勢相同的點分別作為其它特征點候選而追加。在步驟S310中,從特征點候選C_h(h=1~NC)中刪除重復(fù)的點。
例如,如圖9所示,將模型圖案坐標(biāo)系的二維空間以一個像素單位來分割為塊B,以在各塊中僅保留一個特征點候選的方式刪除特征點候選。作為削除的基準(zhǔn),可考慮各種方法,例如既可以保留發(fā)現(xiàn)的對應(yīng)點多的特征點候選,也可以保留亮度梯度的大小平均值高的特征點候選,或者也可以對它們進(jìn)行組合。另外,也可以考慮附近像素的第一特征點、特征點候選的關(guān)聯(lián)方法而保留適當(dāng)性最高的特征點候選。例如,如果附近像素之間保留的特征點候選的亮度梯度的方向有較大不同,則有可能哪一個特征點候選不正確。在存在特征點候選的所有塊中進(jìn)行該處理。
在步驟S311中,將在到此為止的處理中未刪除的特征點候選C_h(h=1~NC)作為第一特征點而追加到模型圖案并存儲到模型圖案存儲部26中。
第二實施方式并不限定于上述過程而考慮各種方式。
例如,在上述S304中,將與任何第一特征點P_i均不對應(yīng)的第二特征點Q_jk選擇為非對應(yīng)點O_jgn,但是不僅是第一特征點P_i,還與已經(jīng)追加的特征點候選C_h進(jìn)行比較,在與第一特征點P_i對應(yīng)的情況下選擇為P_i的特征點的對應(yīng)點,在與特征點候選C_h對應(yīng)的情況下選擇為C_h的對應(yīng)點,在與第一特征點P_i和特征點候選C_h均不對應(yīng)的情況下選擇為非對應(yīng)點O_jgn。由此,不將與作為特征點候選C_h而已經(jīng)追加的第二特征點重復(fù)的可能性高的第二特征點Q_jk作為特征點候選C_h而追加。
根據(jù)第二實施方式,不存在于最初生成的模型圖案,但是能夠?qū)⒎€(wěn)定地頻繁出現(xiàn)于對象物的圖像中的第二特征點自動地追加到模型圖案。由此,起到以下效果。
最初生成的模型圖案僅由從映現(xiàn)在一個圖像中的對象物的圖像之一提取出的特征點構(gòu)成,但是當(dāng)由于光的加減、噪聲等的影響而存在并不在清楚的亮度梯度的狀態(tài)下映現(xiàn)的部分時,并不能夠從對象物整體提取特征點。因而,通過第二實施方式的方法,通過追加不包含在原模型圖案內(nèi)但在多個對象物的圖像中出現(xiàn)的特征點,能夠補充原模型圖案所欠缺的部分。由此,能夠提高檢測的正確性與魯棒(Robust)性。
接著,說明第三實施方式。
在第三實施方式中,根據(jù)與模型圖案的特征點對應(yīng)的對應(yīng)點的物理量的統(tǒng)計量,對構(gòu)成模型圖案的第一特征點追加判斷指標(biāo),在對象物檢測部23中利用判斷指標(biāo)來提高檢測的可靠性。
圖10是表示第三實施方式的處理的流程圖。
步驟S401~S404與第一實施方式的S101~S104相同。與S104的結(jié)束階段同樣地,設(shè)為發(fā)現(xiàn)NO_i個判斷為與模型圖案的第i個特征點P_i對應(yīng)的對應(yīng)點。另外,將與模型圖案的第i個特征點P_i對應(yīng)的第m個對應(yīng)點設(shè)為O_im(m為1至NO_i)。
在步驟S405中,計算出與第一特征點P_i對應(yīng)的NO_i個對應(yīng)點O_im的物理量的統(tǒng)計量。例如,計算出如下的統(tǒng)計量。能夠與第二實施方式的S307同樣地計算出統(tǒng)計量。
1.計算第一特征點P_i與對應(yīng)點O_im的距離d_im的標(biāo)準(zhǔn)偏差。假設(shè)距離d_im(m=1~NO_i)隨著正態(tài)分布而產(chǎn)生偏差時,能夠通過公知的方法來計算距離d_im的標(biāo)準(zhǔn)偏差σd。
2.計算亮度梯度的大小的平均和標(biāo)準(zhǔn)偏差。假設(shè)對應(yīng)點O_im保持的亮度梯度的大小隨著正態(tài)分布而產(chǎn)生偏差時,能夠根據(jù)對應(yīng)點O_im(m=1~NO_i)的亮度梯度來計算平均μα、標(biāo)準(zhǔn)偏差σα。
3.計算亮度梯度的大小的概率分布。亮度梯度的大小隨著混合正態(tài)分布而產(chǎn)生偏差。如下那樣表示將對應(yīng)點O_im(m=1~NO_i)的亮度梯度的大小設(shè)為概率變量的混合正態(tài)分布p(x)。
能夠通過公知的方法來求出上述式的參數(shù)πb、μαb、σαb(b=1~NB)。
在步驟S406中,根據(jù)計算出的統(tǒng)計量來求出判斷指標(biāo)W_i。使用在S405中計算出的統(tǒng)計量,分別求出如下的判斷指標(biāo)。
(a)根據(jù)距離d_im的標(biāo)準(zhǔn)偏差σd來計算距離的允許范圍。如果距離為3σd以上或-3σd以下,則設(shè)為不一致的判斷指標(biāo)。具有較大的σd的第一特征點由于檢測對象物的第二特征點的位置產(chǎn)生偏差,因此允許較大偏差,具有較小的σd的第一特征點僅允許較小偏差。
(b)使用亮度梯度的大小的平均μα和標(biāo)準(zhǔn)偏差σα,僅允許亮度梯度的大小為μα-2σα至μ+2σα為止的第二特征點。
(c)使用亮度梯度的大小的概率分布p(x),將能夠取得某一亮度梯度的大小的概率是否為固定值以上設(shè)為判斷指標(biāo)。如果能夠取得某一亮度梯度的大小的概率大于某閾值p_min則設(shè)為允許。在該情況下,判斷指標(biāo)中保持規(guī)定混合正態(tài)分布的參數(shù)πb、μαb、σαb(b=1~NB)和閾值p_min。
在步驟S407中,將求出的判斷指標(biāo)W_i與第一特征點P_i關(guān)聯(lián)起來存儲到模型圖案存儲部26。也可以將統(tǒng)計量本身作為判斷指標(biāo)而存儲,而不是根據(jù)統(tǒng)計量求出的閾值。
對模型圖案的各個特征點P_i(i=1~NP)實施步驟S404~S407的處理。將判斷指標(biāo)例如以如圖16的形式與模型圖案的特征點P_i關(guān)聯(lián)起來存儲到模型圖案存儲部26。
在步驟S408中,通過對象物檢測部23使用存儲在模型圖案存儲部26中的判斷指標(biāo)來檢測出對象物。
在對象物檢測部23中利用判斷指標(biāo)的一個方法是,在求出對象物的圖像T_x之后,計算針對各個對象物的圖像的一致度,排除其一致度低的對象物的圖像T_x。以下,說明該方法。
1.拍攝新圖像Inew。
2.從圖像Inew檢測出對象物。在檢測中,與S103同樣地使用任意的方法。由此,求出NTX個對象物的圖像T_x(x=1~NTX)。對所有對象物的圖像T_x實施以下的3~6的處理。
3.根據(jù)從圖像Inew檢測出的對象物的圖像T_x的位置姿勢R_Tx_,選擇出從圖像Inew提取出的第二特征點Qnew_k(k=1~NQ)中與構(gòu)成模型圖案的第一特征點P_i對應(yīng)的第二特征點。
4.確認(rèn)所選擇的第二特征點作為第一特征點P_i的對應(yīng)點是否適當(dāng)。在此使用與P_i相關(guān)聯(lián)的判斷指標(biāo)。例如,在第二特征點的亮度梯度的大小為β時,β在μα-2σα至μα+2σα(關(guān)于μ、α、σ的定義請參照S408)之間則設(shè)為適當(dāng)。適當(dāng)?shù)膶?yīng)點作為P_i的對應(yīng)點O_i而存儲到檢測結(jié)果存儲部27。
5.通過對所有特征點P_i(i=1~NP)進(jìn)行上述的3~4的處理,由此能夠選擇出NO個對應(yīng)點。
6.通過使用構(gòu)成模型圖案的第一特征點的數(shù)量NP和發(fā)現(xiàn)的對應(yīng)點的數(shù)量NO來求出NO/NP,由此能夠以0.0至1.0之間的值來表現(xiàn)模型圖案與圖像T_x的一致度。
或者,作為S_i而計算某一第一特征點P_i與其對應(yīng)點O_i的分別的一致度,也可以將ΣS_i/NP設(shè)為模型圖案與圖像T_x的一致度。能夠使用第一特征點P_i的物理量和對應(yīng)點O_i的物理量來求出個別的一致度S_i。例如,將第一特征點P_i的物理量與對應(yīng)點O_i的距離設(shè)為d_i時,定義某一常數(shù)d_max,能夠如下那樣求出S_i。其中,將|d_i|設(shè)為d_max以下的值。
S_i=1-|d_i|/d_max
7.如果計算出的模型圖案與圖像T_x的一致度小于預(yù)先決定的閾值Smin,則將該對象物的圖像T_x從檢測結(jié)果排除。
在對象物檢測部中使用判斷指標(biāo)的方法并不限定于此。例如,在ICP算法中也存在選擇用于構(gòu)成模型圖案的第一特征點的對應(yīng)點的步驟。在選擇該對應(yīng)點的步驟中,能夠使用判斷指標(biāo)來決定第一特征點與第二特征點的一致/不一致。
由此,在對象物檢測部中,能夠使用更準(zhǔn)確地判斷的對應(yīng)點來進(jìn)行檢測。
根據(jù)第三實施方式,為了對模型圖案的每個第一特征點檢測出對象物而設(shè)置最佳的判斷指標(biāo),能夠?qū)⒃撆袛嘀笜?biāo)使用于對象物的檢測。由此,起到以下效果。
根據(jù)模型圖案的第一特征點的部位不同,例如有時位置的偏差變大或變小。在位置的偏差小的情況下,具有該偏差以上的距離的第二特征點不是適當(dāng)?shù)膶?yīng)點的可能性高。不將這種第二特征點用作對應(yīng)點,能夠防止錯誤對應(yīng)。對應(yīng)點的錯誤對應(yīng)有時對檢測精度帶來不良影響或引起錯誤檢測。并且,在位置的偏差大的情況下,如果僅允許較小的偏差,則不能發(fā)現(xiàn)與該第一特征點對應(yīng)的對應(yīng)點的可能性高。由此,有時一致度下降而不能發(fā)現(xiàn)對象物。通過防止這些不良影響,能夠提高檢測結(jié)果的精度、魯棒性。
存儲在模型圖案存儲部26中的判斷指標(biāo)還能夠使用于第一實施方式等的對應(yīng)點選擇部。例如,在對應(yīng)點選擇部中,在評價第二特征點Q_jk作為第一特征點P_i的對應(yīng)點是否適當(dāng)?shù)牟襟E中,能夠使用判斷指標(biāo)來評價適當(dāng)性。
1.設(shè)為通過第三實施方式對模型圖案的每個特征點P_i(i=1~NP)設(shè)置判斷指標(biāo)。在此,將判斷指標(biāo)設(shè)為第一特征點與第二特征點的距離di是否在-3σd至3σd的范圍內(nèi)。
2.在對應(yīng)點選擇部中,評價第一特征點P_i與第二特征點Q_jk的距離di是否在-3σd至3σd的范圍內(nèi),如果在這范圍內(nèi)則判斷為適當(dāng),如果不在這范圍外則判斷為不適當(dāng)。
3.僅將判斷為適當(dāng)?shù)牡诙卣鼽cQ_jk作為對應(yīng)點而進(jìn)行以后的處理。
由此,能夠使用更準(zhǔn)確地判斷的對應(yīng)點來計算預(yù)定的物理量的統(tǒng)計量。
在第一至第三實施方式中,假設(shè)視覺傳感器為攝像頭,來自視覺傳感器的輸入數(shù)據(jù)為圖像的情況來進(jìn)行了說明,但是本申請的發(fā)明還能夠應(yīng)用于視覺傳感器為三維傳感器的情況。
三維傳感器存在如光切斷法那樣測量對象物的面上的三維點的傳感器以及如立體法那樣測量對象物的輪廓線上的三維點的傳感器。
能夠?qū)⒂扇S傳感器輸出的構(gòu)成三維點群的各個三維點直接使用于本申請的發(fā)明的構(gòu)成模型圖案的第一特征點。與第一實施方式同樣地,將所指定的區(qū)域內(nèi)的三維點作為第一特征點而生產(chǎn)模型圖案即可。
還能夠從表示對象物的形狀的CAD數(shù)據(jù)中獲取模型的三維點群。既可以從CAD數(shù)據(jù)以一定間隔獲取面上的三維點,也可以以一定間隔獲取輪廓線上的三維點。
在構(gòu)成輸入數(shù)據(jù)的三維點為對象物的面上的點的情況下,作為各特征點的物理量,除了特征點的位置以外也能夠使用法線的朝向。三維點群中的法線的計算方法的一例在“Estimating Surface Normals in Noisy Point Cloud Data”,Niloy J.Mitra,etal.,SCG’03Proceedings of nineteenth annual symposium on Computationa lgeometry,322-328頁,2003等中是公知的。
在構(gòu)成輸入數(shù)據(jù)的三維點為對象物的輪廓線上的點的情況下,作為各特征點的物理量,能夠使用連結(jié)輪廓線上相鄰的特征點的方向向量。
法線的朝向、方向向量能夠用作特征點的姿勢。
并且,在三維傳感器與三維點一起輸出亮度信息、顏色信息的情況下,能夠附加作為特征點的物理量的亮度信息、顏色信息。當(dāng)然,如果使用附近的三維點的亮度,則作為特征點的物理量還能夠計算出亮度梯度。
三維點群的特征點也可以是記載于“Unique Signatures of Histograms for Local Surface Description”,Federico Tombari,etal.,Computer Vision,ECCV 2010,Part III.LNCS 6313,pp.356-369,2010的SHOT等其它方式的特征點。
即使輸入數(shù)據(jù)為三維點群,也能夠檢測出對象物,求出其位置姿勢。例如,存在“Object recognition in 3D scenes with occlusions and clutter by Hough voting”,Federico Tombari,et al.,IEEE 2010Fourth Pacific-Rim Symposium on Image and Video Technology那樣的方法。
另外,即使輸入數(shù)據(jù)為三維點群,也能夠使用ICP算法。當(dāng)然,從三維點群中檢測出對象物的方法并不限定于此。
如果輸入數(shù)據(jù)為面上的三維點群,則在對應(yīng)點選擇部中,通過如下方法來求出第一特征點P_i的位置R_Pi與從第二特征點Q_jk的模型圖案坐標(biāo)系觀察的位置R_Qjk’的距離。
·單純地求出R_Pi與R_Qjk’這2點之間的距離。
·求出第一特征點P_i的法線與從第二特征點Q_jk的附近點群得到的平面之間的交點,計算該交點與第一特征點的距離。
在第一至第三實施方式中,說明了模型圖案由多個特征點構(gòu)成的情況,但是構(gòu)成模型圖案的特征點必須是多個。在模型圖案由單一的特征點構(gòu)成的情況下,沒有如第一實施方式那樣調(diào)整特征點的位置的意義。調(diào)整模型圖案的位置是由于變更了特征點之間的相對位置關(guān)系。但是,在特征點的追加、判斷指標(biāo)的變更中即使是單一的特征點也有意義。例如,有可能在一個特征點中發(fā)現(xiàn)了多個檢測結(jié)果。在這種情況下,如第二實施方式那樣追加匹配的特征點或如第三實施方式那樣變更判斷指標(biāo)來使模型圖案最佳化,由此能夠進(jìn)一步限定檢測結(jié)果。但是,在一個特征點中檢測結(jié)果的候選變得過多而實際上存在成為問題的可能性。例如,在作為特征點而使用邊緣點的情況下,在一個特征點中會發(fā)現(xiàn)多個要匹配的檢測結(jié)果。但是,在SIFT等特征點中要匹配的特征點有可能減少一定程度。
在第一至第三實施方式中,首先生產(chǎn)模型圖案之后,例如通過圖3示出的機器人裝置的檢測動作來進(jìn)行輸入圖像的指定和對象物的檢測。由此,能夠根據(jù)通過實際動作得到的圖像對最初設(shè)定的模型圖案進(jìn)行修正。在該情況下,直到設(shè)定模型圖案之后的預(yù)定次數(shù)為止,將對象物的檢測中的匹配范圍擴大,將一定程度的誤差范圍的對象物設(shè)為對象物。在進(jìn)行該預(yù)定次數(shù)的處理時進(jìn)行模型圖案的修正,將模型圖案修正為更適合于實際對象物的圖案。然后,在經(jīng)過預(yù)定次數(shù)之后,根據(jù)修正后的模型圖案,縮小匹配范圍等能夠提高進(jìn)行正確判斷的概率等。當(dāng)然,有時還根據(jù)對象物的實際狀況來相反地擴大匹配范圍。
在根據(jù)伴隨上述實際動作的圖像來進(jìn)行模型圖案的修正的情況下,也可以將機器人裝置根據(jù)圖像處理裝置的檢測結(jié)果進(jìn)行的動作的好壞的結(jié)果反映于模型圖案的修正處理。在接著要說明的第四實施方式的圖像處理裝置中,將根據(jù)圖像處理裝置的檢測結(jié)果進(jìn)行的動作的好壞的結(jié)果反映于模型圖案的修正處理。
圖19是表示第四實施方式的圖像處理裝置的處理的流程圖。
在第四實施方式的圖像處理裝置中,僅在基于機器人裝置的圖像處理裝置的檢測結(jié)果的動作成功的情況下,將此時的對象物的圖像反映于模型圖案的修正,不需要將動作失敗時的對象物的圖像反映于模型圖案的修正。
步驟S501的模型圖案的生產(chǎn)與其它實施方式相同。
步驟S502的圖像的輸入和步驟S503的對象物的檢測也與其它實施方式相同,對利用圖像處理裝置的檢測結(jié)果的每個動作進(jìn)行。
在步驟S504中,進(jìn)行基于步驟S503的對象物的檢測結(jié)果的動作。該動作的結(jié)果是,決定動作的好壞(是否成功),在動作失敗的情況下,例如假設(shè)為對象物的檢測結(jié)果存在問題。
在步驟S505中判斷檢測結(jié)果的好壞,在好的情況下(動作成功的情況下)前進(jìn)到步驟S506,在壞的情況下(動作失敗的情況下)返回至步驟S507。
在步驟S506中,進(jìn)行在第一實施方式的S104至S106、第二實施方式的S304至S311或第三實施方式的S404至S407中進(jìn)行的模型圖案的修正處理而返回至S502。
在步驟S507中,在進(jìn)行預(yù)先決定的檢測不良(動作失敗)的情況下的應(yīng)對動作,例如去除動作失敗的對象物,或記錄其圖像等動作之后,返回至步驟S502。
以上,說明了本發(fā)明的實施方式,但是當(dāng)然能夠進(jìn)行各種變形例。
根據(jù)本申請的發(fā)明,即使在對象物的特征點的物理量中產(chǎn)生偏差,也能夠正確地檢測出對象物。