![HALCON形狀匹配總結_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/5/cd5e38d9-bc3f-4fe3-b31f-8fda450ea824/cd5e38d9-bc3f-4fe3-b31f-8fda450ea8241.gif)
![HALCON形狀匹配總結_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/5/cd5e38d9-bc3f-4fe3-b31f-8fda450ea824/cd5e38d9-bc3f-4fe3-b31f-8fda450ea8242.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、HALCON形狀匹配總結Halcon有三種模板匹配方法:即Component-Based、Gray-Value-Based、Shaped_based,分別是基于組件(或成分、元素)的匹配,基于灰度值的匹配和基于形狀的匹配,此外還有變形匹配和三維模型匹配也是分屬于前面的大類本文只對形狀匹配做簡要說明和補充:Shape_Based匹配方法:上圖介紹的是形狀匹配做法的一般流程及模板制作的兩種方法。先要補充點知識:形狀匹配常見的有四種情況一般形狀匹配模板shape_model、線性變形匹配模板planar_deformable_model、局部可變形模板local_deformable_model、和
2、比例縮放模板Scale_model第一種是不支持投影變形的模板匹配,但是速度是最高的,第二種和第四種是支持投影變形的匹配,第三種則是支持局部變形的匹配。一般形狀匹配模板是最常用的,模板的形狀和大小一經制作完畢便不再改變,在查找模板的過程中,只會改變模板的方向和位置等來匹配目標圖像中的圖像。這個方法查找速度很快,但是當目標圖像中與模板對應的圖像存在比例放大縮小或是投影變形如傾斜等,均會影響查找結果。涉及到的算子通常為create_shape_model和find_shape_model線性變形匹配模板planar_deformable_model是指模板在行列方向上可以進行適當的縮放。行列方向上
3、可以分別獨立的進行一個適當的縮放變形來匹配。主要參數有行列方向查找縮放比例、圖像金字塔、行列方向匹配分數(指可接受的匹配分數,大于這個值就接受,小于它就舍棄)、設置超找的角度、已經超找結果后得到的位置和匹配分數線性變形匹配又分為兩種:帶標定的可變形模板匹配和不帶標定的可變形模板匹配。涉及到的算子有:不帶標定的模板:創(chuàng)建和查找模板算子create_planar_uncalib_deformable_model和find_planar_uncalib_deformable_model帶標定模板的匹配:先讀入攝像機內參和外參read_cam_par和read_pose創(chuàng)建和查找模板算子create_
4、planar_calib_deformable_model和find_planar_calib_deformable_model局部變形模板是指在一張圖上查找模板的時候,可以改變模板的尺寸,來查找圖像上具有局部變形的模板。例如包裝紙袋上圖案查找。參數和線性變形額差不多算子如下:create_local_deformable_model和find_local_deformable_model比例縮放末班匹配是介于一般形狀匹配和線性變形匹配之間的一種方法。它可以匹配放大或是縮小的模板,但是僅限于模板大小的縮放,即行列縮放因子一樣。這也是它和線性縮放最大的不同。涉及到的算子如下:create_sca
5、le_shape_model和find_scale_shape_modelHALCON形狀匹配LIntExportHerrorcreate_shape_model(constHobject&Template,/reduce_domain后的模板圖像HlongNumLevels,/金字塔的層數,可設為“auto”或010的整數DoubleAngleStart,/模板旋轉的起始角度DoubleAngleExtent,/模板旋轉角度范圍,>=0DoubleAngleStep,/旋轉角度的步長,>=0and<=pi/16constchar*Op
6、timization,/設置模板優(yōu)化和模板創(chuàng)建方法constchar*Metric,/匹配方法設置HlongContrast,/設置對比度HlongMinContrast,/設置最小對比度Hlong*ModelID)/輸出模板句柄進一步分析:NumLevels越大,找到匹配使用的時間就越小。另外必須保證最高層的圖像具有足夠的信息(至少四個點)??梢酝ㄟ^inspect_shape_model函數查看設置的結果。如果最高層金字塔的消息太少,算法內部會自動減少金字塔層數,如果最底層金字塔的信息太少,函數就會報錯。如果設為auto,算法會自動計算金字塔的層數,我們可以通過get_shape_model
7、_params函數查看金字塔的層數。如果金字塔的層數太大,模板不容易識別出來,這是需要將find_shape_model函數中MinScore和Greediness參數設置的低一些。如果金字塔層數太少找到模板的時間會增加。可以先使用inspect_shape_model函數的輸出結果來選擇一個較好的金字塔層數。參數AngleStart、AngleExtent定義了模板可能發(fā)生旋轉的范圍。注意模板在find_shape_model函數中只能找到這個范圍內的匹配。參數AngleStep定義了旋轉角度范圍內的步長。如果在find_shape_model函數中沒有指定亞像素精度這個參數指定的精度是可以
8、實現find_shape_mode函數中的角度的。參數AngleStep的選擇是基于目標的大小的,如果模板圖像太小不能產生許多不同離散角度的圖像,因此對于較小的模板圖像AngleStep應該設置的比較大。如果AngleExtent不是AngleStep的整數倍,將會相應的修改AngleStep。如果選擇completepregeneration,不同角度的模板圖像將會產生并保存在內存中。用來存儲模板的內存與旋轉角度的數目和模板圖像的的點數是成正比的。因此,如果AngleStep太小或是AngleExtent太大,將會出現該模型不再適合(虛擬)內存的情況。在任何情況下,模型是完全適合主存儲器的,
9、因為這避免了操作系統(tǒng)的內存分頁,使得尋找匹配模板的時間變短。由于find_shape_model函數中的角度可以使用亞像素精度,一個直徑小于200像素的模板可以選擇AngleStep>=1.如果選擇AngleStep='auto'(or0向后兼容),create_shape_model將會基于模板的大小自動定義一個合適的角度步長.自動計算出來的AngleStep可以使用get_shape_model_params函數查看。如果沒有選擇completepregeneration,該模型會在每一層金字塔上建立在一個參考的位置。這樣在find_shape_model函數
10、運行時,該模型必須轉化為不同的角度和尺度在運行時在。正因為如此,匹配該模型可能需要更多的時間。對于特別大的模板圖像,將參數Optimization設置為不同于none'的其他數值是非常有用的。如果0ptimization=none',所有的模型點將要存儲。在其他情況下,按照Optimization的數值會將模型的點數減少.如果模型點數變少了,必須在find_shape_model函數中將參數Greediness設為一個比較小的值,比如:0.7、0.8。對于比較小的模型,減少模型點數并不能提高搜索速度,因為這種情況下通常顯著更多的潛在情況的模型必須進行檢查。如果Optimizat
11、ion設置為'auto',create_shape_model自動確定模型的點數。Optimization的第二個值定義了模型是否進行預處理(pregeneratedcompletely),是通過選擇'pregeneration'或者'no_pregeneration'來設置的。如果不使用第二個值(例如:僅僅設置了第一個值),默認的是系統(tǒng)中的設置,是通過set_system(pregenerate_shape_models',)來設置的,對于默認值是(pregenerate_shape_models'=false'),模型
12、沒有進行預處理.模型的預處理設置通常會導致比較低的運行時間,因為模型不需要在運行時間時轉換。然而在這種情況下,內存的要求和創(chuàng)建模板所需要的時間是比較高的。還應該指出,不能指望這兩個模式返回完全相同的結果,因為在運行時變換一定會導致變換模型和預處理變換模型之間不同的內部數據。比如,如果模型沒有completelypregenerated,在find_shape_model函數中通常返回一個較低的scores,這可能需要將MinScore設置成一個較低的值。此外,在兩個模型中插值法獲得的位置可能略有不同。如果希望是最高精確度,應該使用最小二乘調整得到模型位置。參數Contras決定著模型點的對比度
13、。對比度是用來測量目標與背景之間和目標不同部分之間局部的灰度值差異。Contrast的選擇應該確保模板中的主要特征用于模型中。Contrast也可以是兩個數值,這時模板使用近似edges_image函數中滯后閾值的算法進行分割。這里第一個數值是比較低的閾值,第二個數值是比較高的閾值。Contrast也可以包含第三個,這個數值是在基于組件尺寸選擇重要模型組件時所設置的閾值,比如,比指定的最小尺寸的點數還少的組件將被抑制。這個最小尺寸的閾值會在每相鄰的金字塔層之間除以2。如果一個小的模型組件被抑制,但是不使用滯后閾值,然而在Contrast中必須指定三個數值,在這種情況下前兩個數值設置成相同的數值
14、。這個參數的設置可以在inspect_shape_model函數中查看效果。如果Contrast設置為'auto',create_shape_model將會自動確定三個上面描述的數值?;蛘邇H僅自動設置對比度(auto_contrast'),滯后閾值(auto_contrast_hyst')或是最小尺寸(auto_min_size')中一個。其他沒有自動設置的數值可以按照上面的格式再進行設置??梢栽试S各種組合,例如:如果設置auto_contrast','auto_min_size',對比度和最小尺寸自動確定;如果設置auto_mi
15、n_size',20,30,最小尺寸會自動設定,而滯后閾值被設為20和30。有時候可能對比度閾值自動設置的結果是不滿意的,例如,由于一些具體應用的原因當某一個模型組件是被包含或是被抑制時,或是目標包含幾種不同的對比度時,手動設置這些參數效果會更好。因此對比度閾值可以使用determine_shape_model_params函數自動確定,也可以在調用create_shape_model之前使用inspect_shape_mode函數檢查效果。MinContrast用來確定在執(zhí)行find_shape_model函數進行識別時模型的哪一個對比度必須存在,也就是說,這個參數將模型從噪聲圖像中
16、分離出來。因此一個好的選擇應該是在圖像中噪聲所引起的灰度變化范圍。例如,如果灰度浮動在10個灰度級內,MinContrast應該設置成10。如果模板和搜索圖像是多通道圖像,Metric參數設置成'ignore_color_polarity',在一個通道中的噪聲必須乘以通道個數的平方根再去設置MinContrast。例如,如果灰度值在一個通道的浮動范圍是10個灰度級,圖像是三通道的,那么MinContrast應該設置為17。很顯然,MinContrast必須小于Contrast。如果要在對比度較低的圖像中識別模板,MinContrast必須設置為一個相對較小的數值。如果要是模板即
17、使嚴重遮擋(occluded)也能識別出來,MinContrast應該設置成一個比噪聲引起的灰度浮動范圍略大的數值,這樣才能確保在find_shape_model函數中提取出模板準確的位置和旋轉角度。如果MinContrast設置為'auto',最小對比度會基于模板圖像中的噪聲自動定義。因此自動設定僅僅在搜索圖像和模板圖像噪聲近似時才可以使用。此外,在某些情況下為了遮擋的魯棒性,采用自動設定數值是比較好的。使用get_shape_model_params函數可以查詢自動計算的最小對比度。參數Metric定義了在圖像中匹配模板的條件。如果Metric二use_polarity
18、39;,圖像中的目標必須和模型具有一樣的對比度。例如,如果模型是一個亮的目標在一個暗的背景上,那么僅僅那些比背景亮的目標可以找到。如果Metric=ignore_global_polarity;在兩者對比度完全相反時也能找到目標。在上面的例子中,如果目標是比背景暗的也能將目標找到°find_shape_model函數的運行時間在這種情況下將會略微增加。如果Metric=ignore_local_polarity',即使局部對比度改變也能找到模型。例如,當目標包含一部分中等灰度,并且其中部分比較亮部分比較暗時,這種模式是非常有用的。由于這種模式下find_shape_model
19、函數的運行時間顯著增加,最好的方法是使用create_shape_model創(chuàng)建幾個反映目標可能的對比度變化的模型,同時使用find_shape_models去匹配他們。上面三個metrics僅僅適用于單通道圖像。如果是多通道圖像作為模板圖像或搜索圖像,僅僅第一個通道被使用。如果Metric='ignore_color_polarity',即使顏色對比度局部變化也能找到模型。例如,當目標的部分區(qū)域顏色發(fā)生變化(e.g.從紅到綠)的情況。如果不能提前知道目標在哪一個通道是可見的這種模式是非常有用的。在這種情況下find_shape_model函數的運行時間也會急劇增加。'
20、ignore_color_polarity'可以使用于具有任意通道數目的圖像中。如果使用于單通道圖像,他的效果和'ignoreocal_polarity'是完全相同的。當Metric=ignore_color_polarity'時,create_shape_model創(chuàng)建的模板通道數目和find_shape_model中的圖像通道數目可以是不同的。例如,可以使用綜合生成的單通道圖像創(chuàng)建模型。另外,這些通道不需要是經過光譜細分(像RGB圖像)的。這些通道還可以包括具有在不同方向照亮同一個目標所獲得的圖像。模型圖像Template的domain區(qū)域的重心是模板的初始
21、位置,可以在set_shape_model_origin函數中設置不同的初始位置。LIntExportHerrorfind_shape_model(constHobject&Image,/搜索圖像HlongModelID,/模板句柄DoubleAngleStart,/搜索時的起始角度DoubleAngleExtent,/搜索時的角度范圍,必須與創(chuàng)建模板時的有交集。DoubleMinScore,/輸出的匹配的質量系數Score都得大于該值HlongNumMatches,/定義要輸出的匹配的最大個數DoubleMaxOverlap,/當找到的目標存在重疊時,且重疊大于該值時選/擇一
22、個好的輸出constchar*SubPixel,/計算精度的設置,五種模式,多選2,3HlongNumLevels,/搜索時金字塔的層數DoubleGreediness,/貪婪度,搜索啟發(fā)式,一般都設為0.9,越高速度快/容易出現找不到的情況Halcon:HTuple*Row,/輸出匹配位置的行坐標Halcon:HTuple*Column,/輸出匹配位置的列坐標Halcon:HTuple*Angle,/輸出匹配角度Halcon:HTuple*進一步分析:Score)/輸出匹配質量注意Row、Column的坐標并不是模板在搜索圖像中的精確位置,因此不能直接使用他們。這些數值是為了創(chuàng)建變換矩陣被優(yōu)
23、化后的,你可以用這個矩陣的匹配結果完成各種任務,比如調整后續(xù)步驟的ROI。Score是一個0到1之間的數,是模板在搜索圖像中可見比例的近似測量。如果模板的一半被遮擋,該值就不能超過0.5。Image的domain定義了模型參考點的搜索區(qū)域,模型參考點是在create_shape_model中用來創(chuàng)建模型的圖像的domain區(qū)域的重心。不考慮使用函數set_shape_model_origin設置不同的初始位置。在圖像domain區(qū)域的這些點內搜索模型,其中模型完全屬于這幅圖像。這意味著如果模型超出圖像邊界,即使獲得的質量系數(SCOre)大于MinScore也不能找到模型。這種性能可以通過se
24、t_system(border_shape_models','true')改變,這樣那些超出圖像邊界,質量系數大于MinScore的模型也能找到。這時那些在圖像外面的點看作是被遮擋了,可以降低質量系數。在這種模式下搜索的時間將要增加。參數AngleStart和AngleExtent確定了模型搜索的旋轉角度,如果有必要,旋轉的范圍會被截取成為create_shape_model函數中給定的旋轉范圍。這意味著創(chuàng)建模型和搜索時的角度范圍必須真正的重疊。在搜索時的角度范圍不會改變?yōu)槟?*pi的。為了簡化介紹,在該段落剩下的部分所有角度都用度來表示,而在find_shape_mo
25、del函數中使用弧度來設置的。因此,如果創(chuàng)建模板時,AngleStart=-20°、AngleExtent=40°,在搜索模板函數find_shape_model中設置AngleStart=350°、AngleExtent=20°,盡管角度模360后是重疊的,還是會找不到模板的。為了找到模板,在這個例子中必須將AngleStart=350°改為AngleStart=-10°。參數MinScore定義模板匹配時至少有個什么樣的質量系數才算是在圖像中找到模板。MinScore設置的越大,搜索的就越快。如果模板在圖像中沒有被遮擋,MinSc
26、ore可以設置為0.8這么高甚至0.9。NumMatches定義了在圖像上找到模板的最大的個數。如果匹配時的質量系數大于MinScore的目標個數多于NumMatches,僅僅返回質量系數最好的NumMatches個目標位置。如果找的匹配目標不足NumMatches,那么就只返回找到的這幾個。參數MinScore優(yōu)于NumMatches。如果模型具有對稱性,會在搜索圖像的同一位置和不同角度上找到多個與目標匹配的區(qū)域。參數MaxOverlap是0到1之間的,定義了找到的兩個目標區(qū)域最多重疊的系數,以便于把他們作為兩個不同的目標區(qū)域分別返回。如果找到的兩個目標區(qū)域彼此重疊并且大于MaxOverla
27、p,僅僅返回效果最好的一個。重疊的計算方法是基于找到的目標區(qū)域的任意方向的最小外接矩形(看smallest_rectangle2)。如果MaxOverlap=0,找到的目標區(qū)域不能存在重疊,如果MaxOverlap=1,所有找到的目標區(qū)域都要返回。SubPixel確定找到的目標是否使用亞像素精度提取。如果SubPixel設置為'none'(或者'false'背景兼容),模型的位置僅僅是一個像素精度和在create_shape_model中定義的角度分辨率。如果SubPixel設置為'interpolation'(或'true'),位置和角度都是亞像素精度的。在這種模式下模型的位置是在質量系數函數中插
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國半導體用水溶性助焊劑行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025年全球及中國第一人稱視角射擊游戲行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025年全球及中國HDPE模制容器行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025年全球及中國茂金屬線型低密度聚乙烯樹脂行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 合同起草范本
- 汽車自駕租賃合同
- 房屋委托代管合同
- 2025贈與合同公證書
- 維修工聘用合同范本
- 收獲成長迎接新起點主題班會
- 2024年江西省南昌市南昌縣中考一模數學試題(含解析)
- 繪本的分鏡設計-分鏡的編排
- 查干淖爾一號井環(huán)評
- 體檢中心分析報告
- 人教版初中英語七八九全部單詞(打印版)
- 臺球運動中的理論力學
- 最高人民法院婚姻法司法解釋(二)的理解與適用
- 關于醫(yī)保應急預案
- 新人教版五年級上冊數學應用題大全doc
- 2022年版義務教育勞動課程標準學習培訓解讀課件筆記
- 2022年中國止血材料行業(yè)概覽:發(fā)展現狀對比分析研究報告(摘要版) -頭豹
評論
0/150
提交評論