<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

       

      我們都知道,HDevelop中,在菜單欄“助手”中,可以通過“Matching”助手輔助模板匹配的建模等操作。

       

      基于形狀”的模板匹配, 主要有三種類型:find_shape_model、find_scaled_shape_model、find_aniso_shape_model。

      那么這三種類型有什么區(qū)別呢?我用一張圖來說明。

       

       

      說明:find_shape_model指的是行列方向均無縮放的模板匹配,find_scaled_shape_model指的是行列等比例縮放的模板匹配,find_aniso_shape_model指的是行列不等比例縮放各向異性縮放)的模板匹配。

       

       

      上面三個(gè)算子一般如何根據(jù)實(shí)際情況選擇呢?

       

      ① 在實(shí)際的視覺項(xiàng)目中,一般工件的大小是基本相同的。如果只有一個(gè)相機(jī),那么可以直接用find_shape_model來做模板匹配;

       

      ② 如果有多個(gè)工站、多個(gè)相機(jī),并且用的還是同款相機(jī)、同款遠(yuǎn)心鏡頭的話,由于遠(yuǎn)心鏡頭只有一個(gè)固定的對(duì)焦距離,因此兩個(gè)工位中的工件在圖中的大小是一樣大的。此時(shí)還是可以用find_shape_model來做模板匹配;

       

      ③ 如果有多個(gè)工站、多個(gè)相機(jī),但是用的是普通鏡頭的話,由于普通鏡頭的對(duì)焦距離是不固定的,因此視野的放大倍率也不固定,此時(shí)兩個(gè)工位中的工件在圖中的大小是不一樣的。此時(shí)適合用find_scaled_shape_model來做模板匹配;

       

      ④ find_aniso_shape_model的應(yīng)用場(chǎng)景較少,很少用于精細(xì)的模板匹配定位檢測(cè)。在運(yùn)動(dòng)速度不固定的線掃項(xiàng)目中,可能會(huì)用到這個(gè)算子。因?yàn)榫€掃平臺(tái)速度變化時(shí),待測(cè)工件圖像的長(zhǎng)寬比經(jīng)常會(huì)發(fā)生變化,此時(shí)用find_aniso_shape_model就比較合適。一般來說,這個(gè)算子的執(zhí)行時(shí)間是三個(gè)里面最長(zhǎng)的,因?yàn)樗凶畲蟮牟淮_定性

       

      find_aniso_shape_model的應(yīng)用場(chǎng)景有限,因此我不討論它。從上面的分析可以看出:find_scaled_shape_model是完全可以涵蓋find_shape_model的功能的,因此下文以find_scaled_shape_model算子來展開分析。

       

      以下圖為例:

       

      測(cè)試的軟硬件環(huán)境為:Windows 10、Intel Xeon E5-2630 v3   2.40GHz、Halcon 17.12。

       

      該圖的建模區(qū)域,以及初始參數(shù)設(shè)置如下圖所示:

       

      另外,最小分?jǐn)?shù)為0.3,匹配的最大數(shù)為1。除此之外的所有參數(shù)均使用默認(rèn)值。

       

       

      一鍵生成的代碼精簡(jiǎn)后如下:

       1 set_system ('border_shape_models', 'false')
       2 read_image (Image, 'C:/Users/02/Desktop/形狀模板匹配/接口.png')
       3 gen_rectangle1 (ModelRegion, 92, 80, 339, 731)
       4 reduce_domain (Image, ModelRegion, TemplateImage)
       5 * 
       6 create_scaled_shape_model (TemplateImage, 4, rad(0), rad(360), rad(0.3386), 0.97, 1.03, 0.0059, ['point_reduction_high','no_pregeneration'], 'use_polarity', [60,80,10], 5, ModelID)
       7 *
       8 get_shape_model_contours (ModelContours, ModelID, 1)
       9 * 
      10 * Matching 02: Get the reference position
      11 area_center (ModelRegion, ModelRegionArea, RefRow, RefColumn)
      12 vector_angle_to_rigid (0, 0, 0, RefRow, RefColumn, 0, HomMat2D)
      13 affine_trans_contour_xld (ModelContours, TransContours, HomMat2D)
      14 * 
      15 * Matching 02: Display the model contours
      16 dev_display (Image)
      17 dev_set_color ('green')
      18 dev_set_draw ('margin')
      19 dev_display (ModelRegion)
      20 dev_display (TransContours)
      21 
      22 *開始匹配(這里簡(jiǎn)單起見,匹配的就是建模圖像本身)
      23 find_scaled_shape_model (Image, ModelID, rad(0), rad(360), 0.97, 1.03, 0.3, 1, 0.5, 'least_squares', [4,1], 0.75, Row, Column, Angle, Scale, Score)
      24 
      25 dev_display (Image)
      26 for I := 0 to |Score| - 1 by 1
      27     hom_mat2d_identity (HomMat2D)
      28     hom_mat2d_scale (HomMat2D, Scale[I], Scale[I], 0, 0, HomMat2D)
      29     hom_mat2d_rotate (HomMat2D, Angle[I], 0, 0, HomMat2D)
      30     hom_mat2d_translate (HomMat2D, Row[I], Column[I], HomMat2D)
      31     affine_trans_contour_xld (ModelContours, TransContours, HomMat2D)
      32     dev_set_color ('green')
      33     dev_display (TransContours)
      34 endfor
      35 
      36 clear_shape_model (ModelID)

       

      一般來說,我們不太在意建模算子create_scaled_shape_model的速度,因?yàn)槟P臀募话闶翘崆皽?zhǔn)備好保存在本地的。建模快一點(diǎn)慢一點(diǎn),問題不大。但是建模中,也有幾個(gè)參數(shù)對(duì)查找模板的速度有較大影響的,它們是:

       

      設(shè)置合適的對(duì)比度,設(shè)置較大的“最小組件尺寸”,可以確保模板輪廓XLD不會(huì)過于復(fù)雜。過于復(fù)雜的XLD是會(huì)影響后面的模板查找速度的。

       

       

      find_scaled_shape_model語句中,對(duì)查找速度有明顯影響的算子,我已經(jīng)標(biāo)紅了,如下:

      find_scaled_shape_model (Image, ModelID, rad(0), rad(360), 0.97, 1.03, 0.3, 1, 0.5, 'least_squares', [4,1], 0.75, Row, Column, Angle, Scale, Score) 

       

      上面6個(gè)參數(shù)的參數(shù)名和含義如下:

      AngleStart(rad(0)): 搜索時(shí)的起始角度。

      AngleExtent(rad(360)):搜索時(shí)的角度范圍。

      ScaleMin(0.97):行列的最小縮放比例。

      ScaleMax(1.03):行列的最大縮放比例。

      NumLevels(4):搜索時(shí)金字塔的層數(shù)。

      Greediness(0.75):貪婪系數(shù),啟發(fā)式搜索,默認(rèn)值0.75,越高速度越快,但容易出現(xiàn)找不到的情況。這個(gè)值我們一般不改它。

       

      ① 在我電腦上,上面find_scaled_shape_model 算子的查找時(shí)間為:25毫秒

       

      ② find_scaled_shape_model (Image, ModelID, rad(0), rad(360), 0.97, 1.03, 0.3, 1, 0.5, 'least_squares', [3,1], 0.75, Row, Column, Angle, Scale, Score) 

      將金字塔層級(jí)由“4”改成“3”,查找時(shí)間為:83毫秒。(金字塔層級(jí)一般不會(huì)設(shè)置為“1”或者“2”,因?yàn)榇藭r(shí)查找會(huì)特別慢,經(jīng)常超過1秒鐘。如果圖像較大,該值一般最小設(shè)置為“4”

      將金字塔層級(jí)由“4”改成“7”,查找時(shí)間為:25毫秒。(主要是這張圖比較小,當(dāng)金字塔層級(jí)大于4以后,再增加,并不能顯著減少查找時(shí)間)

       

      值得說明的是:使用較小的金字塔層級(jí),模板匹配的成功率會(huì)大大增加。(但是時(shí)間會(huì)增加)

       

      另外,NumLevels可以包含第二個(gè)值,該值確定跟蹤找到的匹配項(xiàng)的最低金字塔級(jí)別。因此,NumLevels值[4,2]表示匹配從第4個(gè)金字塔級(jí)別開始,并跟蹤匹配到第2個(gè)金字塔級(jí)別(最低的金字塔級(jí)別由值1表示)。該機(jī)制可用于減少匹配的運(yùn)行時(shí)間。

      然而,應(yīng)當(dāng)注意,一般在該模式下提取的姿態(tài)參數(shù)的精度低于在正常模式中的精度,在正常模式中,匹配被跟蹤到最低金字塔級(jí)別(本人注:即級(jí)別1)。因此,如果需要高精度,則子像素應(yīng)至少設(shè)置為“l(fā)east_squares”。

      如果要使用的最低金字塔級(jí)別選擇得太大,則可能會(huì)發(fā)生無法實(shí)現(xiàn)所需精度的情況,或者由于模型在較高金字塔級(jí)別上不夠具體而可能會(huì)找到錯(cuò)誤的模型實(shí)例。在這種情況下,要使用的最低金字塔級(jí)別(我自己的理解:這里指的應(yīng)該是NumLevels的第二個(gè)值)必須設(shè)置為較小的值。 (上面三段話翻譯自find_scaled_shape_model 的幫助文檔)

       

      可以得出結(jié)論,一般來說,NumLevels := [4, 2],查找速度應(yīng)該會(huì)略快于NumLevels := [4, 1]和NumLevels := [4]。

      NumLevels 的第二個(gè)值還可以為負(fù)數(shù)(通常針對(duì)邊緣模糊的圖像的匹配定位),具體參考find_scaled_shape_model 的幫助文檔或find_shape_mode參數(shù)詳解及時(shí)長(zhǎng)優(yōu)化

       

      ③ find_scaled_shape_model (Image, ModelID, rad(0), rad(360), 1.0, 1.0, 0.3, 1, 0.5, 'least_squares', [4,1], 0.75, Row, Column, Angle, Scale, Score) 

      將行列最小、最大縮放比例均改為1.0,此時(shí)等效于使用find_shape_model算子(查找時(shí)間也幾乎一樣)。此時(shí)查找時(shí)間為:14毫秒

       

      實(shí)測(cè)可以發(fā)現(xiàn),ScaleMin、ScaleMax這兩個(gè)參數(shù)越接近1,查找所需的時(shí)間越短。其實(shí)也很好理解,當(dāng)縮放比例變化范圍較大時(shí),準(zhǔn)確的模板匹配需要進(jìn)行更多的嘗試,自然會(huì)需要更長(zhǎng)的計(jì)算時(shí)間。

       

      ④ find_scaled_shape_model (Image, ModelID, rad(-10), rad(20), 0.97, 1.03, 0.3, 1, 0.5, 'least_squares', [4,1], 0.75, Row, Column, Angle, Scale, Score) 

      將搜索的起始角度設(shè)置為rad(-10), 角度范圍設(shè)置為rad(20),即 [rad(-10), rad(10)] ,此時(shí)查找時(shí)間為:6毫秒

      可見選擇合適的搜索起始角度和角度范圍,可以大幅度提高查找速度。

       

      實(shí)驗(yàn)總結(jié):如果想減少模板查找時(shí)間,需要?jiǎng)?chuàng)建輪廓XLD不那么復(fù)雜的模板,需要設(shè)置較小的角度范圍,需要設(shè)置盡可能小的行列縮放比例,需要設(shè)置盡可能大的金字塔層級(jí)。

      但是,金字塔層級(jí)不宜設(shè)置過大,金字塔層級(jí)太大時(shí),很容易查找模板失敗。

       

       

      另外,還有兩篇文章對(duì)模板匹配有一些經(jīng)驗(yàn)總結(jié),我貼過來:

      http://www.rzrgm.cn/bile/p/8528843.html

       

      https://blog.csdn.net/ABC13222880223/article/details/94437545

       

       

      基于形狀匹配的參數(shù)關(guān)系與優(yōu)化

       

      這里主要是重復(fù)說明一下這些參數(shù)的作用,再強(qiáng)調(diào)一下它們影響匹配速度的程度;在為了提高速度而設(shè)置參數(shù)之前,有必要找出那些在所有測(cè)試圖像中匹配成功的設(shè)置,這時(shí)需考慮以下情況:

       

      ① 必須保證物體在圖像邊緣處截?cái)啵簿褪潜WC輪廓的清晰,這些可以通過形態(tài)學(xué)的一些方法來處理;

      ② 如果Greediness值設(shè)的太高,就找不到其中一些可見物體,這時(shí)最后將其設(shè)為0來執(zhí)行完全搜索;

      ③ 物體是否有封閉區(qū)域,如果要求物體在任何狀態(tài)下都能被識(shí)別,則應(yīng)減小MinScore值;

      ④ 判斷在金字塔最高級(jí)上的匹配是否失敗,可以通過find_shape_model()減小NumLevels值來測(cè)試;

      ⑤ 物體是否具有較低的對(duì)比度,如果要求物體在任何狀態(tài)下都能被識(shí)別,則應(yīng)減小MinContrast值;

      ⑥ 判斷是否全局地或者局部地轉(zhuǎn)化對(duì)比度極性,如果需要在任何狀態(tài)下都能被識(shí)別,則應(yīng)給參數(shù)Metric設(shè)置一個(gè)合適的值;

      ⑦ 物體是否與物體的其他實(shí)例重疊,如果需要在任何狀態(tài)下都能識(shí)別物體,則應(yīng)增加MaxOverlap值;

      ⑧ 判斷是否在相同物體上找到多個(gè)匹配值,如果物體幾乎是對(duì)稱的,則需要控制旋轉(zhuǎn)范圍。

       

       

      如何加快搜索匹配,需要在這些參數(shù)中進(jìn)行合理的搭配,有以下方法可以參考:

       

      ① 只要匹配成功,則盡可能增加參數(shù)MinScore的值;

      ② 增加Greediness值直到匹配失敗,同時(shí)在需要時(shí)減小MinScore值;

      ③ 如果有可能,在創(chuàng)建模板時(shí)使用一個(gè)大的NumLevels,即將圖像多分幾個(gè)金字塔級(jí);

      ④ 限定允許的旋轉(zhuǎn)范圍和大小范圍,在調(diào)用find_shape_model()時(shí)調(diào)整相應(yīng)的參數(shù);

      ⑤ 盡量限定搜索ROI的區(qū)域。

       

      除上面介紹的以外,在保證能夠匹配的情況下,盡可能的增大Greediness的值,因?yàn)樵诤竺娴膶?shí)驗(yàn)中,用模板匹配進(jìn)行視頻對(duì)象跟蹤的過程中,這個(gè)值在很大程度上影響到匹配的速度。

      當(dāng)然這些方法都需要跟實(shí)際聯(lián)系起來,不同圖像在匹配過程中也會(huì)有不同的匹配效果,在具體到某些應(yīng)用,不同的硬件設(shè)施也會(huì)對(duì)這個(gè)匹配算法提出新的要求,所以需要不斷地去嘗試。

       

      posted on 2019-09-09 16:17  xh6300  閱讀(7246)  評(píng)論(5)    收藏  舉報(bào)
      主站蜘蛛池模板: 成人午夜在线观看日韩| 69精品无人区国产一区| 国产精品国产三级国产专业| 国产一区二区三区小说| 精品超清无码视频在线观看| 亚洲日韩乱码中文无码蜜桃| 亚洲日本精品一区二区| 国产suv精品一区二区883| 亚洲国产成人无码影片在线播放| 成人区人妻精品一区二蜜臀| yy111111在线尤物| 国产av一区二区不卡| 婷婷综合缴情亚洲| 人人妻人人添人人爽日韩欧美| 色噜噜亚洲男人的天堂| 少妇无码av无码专区| 无遮无挡爽爽免费视频| 人人妻人人澡人人爽曰本| 黄色A级国产免费大片视频| 精品无码一区在线观看| 亚洲爆乳WWW无码专区| 石河子市| 自拍偷区亚洲综合第二区| 日韩中文字幕有码av| 黑人巨茎大战欧美白妇| 中文字幕一区二区三区精华液| 亚洲日本欧美日韩中文字幕| 97在线视频人妻无码| 无码人妻出轨黑人中文字幕| 亚洲欧美日韩综合久久久| 成人免费毛片aaaaaa片| 国产精品蜜臀av在线一区| 午夜福利精品国产二区| 亚洲欧美v国产一区二区| 亚洲综合网国产精品一区| 99久久婷婷国产综合精品青草漫画| 久久国产免费观看精品3| 国产人妻高清国产拍精品| 国产精品亚洲аv无码播放| 成人午夜在线观看日韩| 少妇尿尿一区二区在线免费|