create_shape_model(Template : : //reduce_domain后的模板圖像
1. NumLevels越大,找到匹配使用的時(shí)間就越小。另外必須保證最高層的圖像具有足夠的信息(至少四個(gè)點(diǎn))。可以通過(guò)inspect_shape_model函數(shù)查看設(shè)置的結(jié)果。如果最高層金字塔的消息太少,算法內(nèi)部會(huì)自動(dòng)減少金字塔層數(shù),如果最底層金字塔的信息太少,函數(shù)就會(huì)報(bào)錯(cuò)。如果設(shè)為auto,算法會(huì)自動(dòng)計(jì)算金字塔的層數(shù),我們可以通過(guò)get_shape_model_params函數(shù)查看金字塔的層數(shù)。如果金字塔的層數(shù)太大,模板不容易識(shí)別出來(lái),這是需要將find_shape_model函數(shù)中MinScore和Greediness參數(shù)設(shè)置的低一些。如果金字塔層數(shù)太少找到模板的時(shí)間會(huì)增加??梢韵仁褂?a >inspect_shape_model函數(shù)的輸出結(jié)果來(lái)選擇一個(gè)較好的金字塔層數(shù)。 2. 參數(shù)AngleStart、AngleExtent定義了模板可能發(fā)生旋轉(zhuǎn)的范圍。注意模板在find_shape_model函數(shù)中只能找到這個(gè)范圍內(nèi)的匹配。參數(shù)AngleStep定義了旋轉(zhuǎn)角度范圍內(nèi)的步長(zhǎng)。 如果在find_shape_model函數(shù)中沒(méi)有指定亞像素精度,這個(gè)參數(shù)指定的精度是可以實(shí)現(xiàn)find_shape_mode函數(shù)中的角度的。參數(shù)AngleStep的選擇是基于目標(biāo)的大小的,如果模板圖像太小不能產(chǎn)生許多不同離散角度的圖像,因此對(duì)于較小的模板圖像AngleStep應(yīng)該設(shè)置的比較大。如果AngleExtent不是AngleStep的整數(shù)倍, 將會(huì)相應(yīng)的修改AngleStep。 3. 對(duì)于特別大的模板圖像,將參數(shù)Optimization設(shè)置為不同于'none'的其他數(shù)值是非常有用的。如果Optimization= 'none', 所有的模型點(diǎn)將要存儲(chǔ)。在其他情況下, 按照Optimization的數(shù)值會(huì)將模型的點(diǎn)數(shù)減少. 如果模型點(diǎn)數(shù)變少了,必須在find_shape_model函數(shù)中將參數(shù)Greediness設(shè)為一個(gè)比較小的值, 比如:0.7、0.8。對(duì)于比較小的模型, 減少模型點(diǎn)數(shù)并不能提高搜索速度,因?yàn)檫@種情況下通常顯著更多的潛在情況的模型必須進(jìn)行檢查。如果Optimization設(shè)置為'auto', create_shape_model自動(dòng)確定模型的點(diǎn)數(shù)。 4. 參數(shù)Contras決定著模型點(diǎn)的對(duì)比度。對(duì)比度是用來(lái)測(cè)量目標(biāo)與背景之間和目標(biāo)不同部分之間局部的灰度值差異。Contrast的選擇應(yīng)該確保模板中的主要特征用于模型中。Contrast也可以是兩個(gè)數(shù)值,這時(shí)模板使用近似edges_image函數(shù)中滯后閾值的算法進(jìn)行分割。這里第一個(gè)數(shù)值是比較低的閾值,第二個(gè)數(shù)值是比較高的閾值。Contrast也可以包含第三個(gè),這個(gè)數(shù)值是在基于組件尺寸選擇重要模型組件時(shí)所設(shè)置的閾值,比如,比指定的最小尺寸的點(diǎn)數(shù)還少的組件將被抑制。這個(gè)最小尺寸的閾值會(huì)在每相鄰的金字塔層之間除以2。如果一個(gè)小的模型組件被抑制,但是不使用滯后閾值,然而在Contrast中必須指定三個(gè)數(shù)值,在這種情況下前兩個(gè)數(shù)值設(shè)置成相同的數(shù)值。這個(gè)參數(shù)的設(shè)置可以在inspect_shape_model函數(shù)中查看效果。如果Contrast設(shè)置為'auto',create_shape_model將會(huì)自動(dòng)確定三個(gè)上面描述的數(shù)值?;蛘邇H僅自動(dòng)設(shè)置對(duì)比度('auto_contrast'),滯后閾值('auto_contrast_hyst')或是最小尺寸('auto_min_size')中一個(gè)。其他沒(méi)有自動(dòng)設(shè)置的數(shù)值可以按照上面的格式再進(jìn)行設(shè)置??梢栽试S各種組合,例如:如果設(shè)置 ['auto_contrast','auto_min_size'],對(duì)比度和最小尺寸自動(dòng)確定;如果設(shè)置 ['auto_min_size',20,30],最小尺寸會(huì)自動(dòng)設(shè)定,而滯后閾值被設(shè)為20和30。有時(shí)候可能對(duì)比度閾值自動(dòng)設(shè)置的結(jié)果是不滿意的,例如,由于一些具體應(yīng)用的原因當(dāng)某一個(gè)模型組件是被包含或是被抑制時(shí),或是目標(biāo)包含幾種不同的對(duì)比度時(shí),手動(dòng)設(shè)置這些參數(shù)效果會(huì)更好。因此對(duì)比度閾值可以使用determine_shape_model_params函數(shù)自動(dòng)確定,也可以在調(diào)用create_shape_model之前使用inspect_shape_mode函數(shù)檢查效果。 5. 參數(shù)Metric定義了在圖像中匹配模板的條件。如果Metric= 'use_polarity',圖像中的目標(biāo)必須和模型具有一樣的對(duì)比度。例如,如果模型是一個(gè)亮的目標(biāo)在一個(gè)暗的背景上,那么僅僅那些比背景亮的目標(biāo)可以找到。如果Metric= 'ignore_global_polarity',在兩者對(duì)比度完全相反時(shí)也能找到目標(biāo)。在上面的例子中,如果目標(biāo)是比背景暗的也能將目標(biāo)找到。find_shape_model函數(shù)的運(yùn)行時(shí)間在這種情況下將會(huì)略微增加。如果Metric= 'ignore_local_polarity', 即使局部對(duì)比度改變也能找到模型。例如,當(dāng)目標(biāo)包含一部分中等灰度,并且其中部分比較亮部分比較暗時(shí),這種模式是非常有用的。由于這種模式下find_shape_model函數(shù)的運(yùn)行時(shí)間顯著增加,最好的方法是使用create_shape_model創(chuàng)建幾個(gè)反映目標(biāo)可能的對(duì)比度變化的模型,同時(shí)使用find_shape_models去匹配他們。上面三個(gè)metrics僅僅適用于單通道圖像。如果是多通道圖像作為模板圖像或搜索圖像,僅僅第一個(gè)通道被使用。如果Metric='ignore_color_polarity', 即使顏色對(duì)比度局部變化也能找到模型。例如,當(dāng)目標(biāo)的部分區(qū)域顏色發(fā)生變化(e.g.從紅到綠)的情況。如果不能提前知道目標(biāo)在哪一個(gè)通道是可見(jiàn)的這種模式是非常有用的。在這種情況下find_shape_model函數(shù)的運(yùn)行時(shí)間也會(huì)急劇增加。'ignore_color_polarity'可以使用于具有任意通道數(shù)目的圖像中。如果使用于單通道圖像,他的效果和'ignore_loc al_polarity'是完全相同的。 6. create_shape_model創(chuàng)建的模板通道數(shù)目和find_shape_model中的圖像通道數(shù)目可以是不同的。例如,可以使用綜合生成的單通道圖像創(chuàng)建模型。另外,這些通道不需要是經(jīng)過(guò)光譜細(xì)分(像RGB圖像)的。這些通道還可以包括具有在不同方向照亮同一個(gè)目標(biāo)所獲得的圖像。 7. 模型圖像Template的domain區(qū)域的重心是模板的初始位置,可以在set_shape_model_origin函數(shù)中設(shè)置不同的初始位置。 |
|
來(lái)自: jamfoot > 《Halcon學(xué)習(xí)》