日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

Halcon:模版匹配

發(fā)布時(shí)間:2023/12/10 ChatGpt 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Halcon:模版匹配 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一:函數(shù)介紹

1.創(chuàng)建模板

create_shape_model(Template?: :?NumLevels,?AngleStart,?AngleExtent,?AngleStep,?Optimization,?Metric,?Contrast,?MinContrast?:?ModelID)

Template?:模板圖像

NumLevels:圖像金字塔級(jí)數(shù),該值越小,模板匹配耗時(shí)越長(zhǎng),可設(shè)置自動(dòng)-‘Auto’,可使用get_shape_model_params來獲取模板所有參數(shù),包括級(jí)數(shù)。

AngleStart:模板起始角度。

AngleExtent:模板角度幅度,若目標(biāo)有旋轉(zhuǎn),模板需做不同角度。

AngleStep:角度步長(zhǎng),可設(shè)置自動(dòng)-‘Auto’。

注:若選擇預(yù)生產(chǎn)模式,不同角度的模板在創(chuàng)建模板時(shí)生成。否則在匹配find_shape_model時(shí)生成,這樣無疑會(huì)耗費(fèi)更長(zhǎng)的模板匹配時(shí)間。

Optimization:模板點(diǎn)儲(chǔ)存模式,設(shè)為’none’時(shí),全點(diǎn)儲(chǔ)存,若選擇點(diǎn)較少時(shí),匹配分值可能較低。當(dāng)設(shè)為’auto’時(shí),點(diǎn)數(shù)自動(dòng)減少。當(dāng)模板較小時(shí),較少點(diǎn)數(shù)并不會(huì)降低模板匹配時(shí)間,因?yàn)閷⒂懈嗟目赡艿膶?shí)例必須被檢查。所以當(dāng)模板較大時(shí),可較少點(diǎn)數(shù),用于提速。

Metric:圖像與模板中對(duì)比度差異不大時(shí),選擇'use_polarity';設(shè)為'ignore_global_polarity',只有對(duì)比度相反的對(duì)象才會(huì)被發(fā)現(xiàn),且模板與噪聲區(qū)分開來。在可提取完整模板信息的前提下,設(shè)置偏大,可減少噪聲提取。

ModelID:輸出創(chuàng)建模板ID。

?

2.查找模板

find_shape_model(Image?: :?ModelID,?AngleStart,?AngleExtent,?MinScore,?NumMatches,?MaxOverlap,?SubPixel,?NumLevels,?Greediness?:?Row,?Column,?Angle,?Score)

Image:搜索圖像

ModelID:模板ID

AngleStart:搜索起始角度

AngleExtent:搜索角度幅度。匹配時(shí),從圖像Image中搜索設(shè)定角度范圍內(nèi)的模板

MinScore:最小匹配分值,大于該分值才可被搜索到.參數(shù)MinScore定義模板匹配時(shí)至少有個(gè)什么樣的質(zhì)量系數(shù)才算是在圖像中找到模板。MinScore設(shè)置的越大,搜索的就越快。如果模板在圖像中沒有被遮擋,MinScore可以設(shè)置為0.8這么高甚至0.9。

NumMatches:匹配個(gè)數(shù)。若滿足匹配分值的結(jié)果個(gè)數(shù)大于該值NumMatches,則返回質(zhì)量系數(shù)最好的結(jié)果;若滿足匹配分值的結(jié)果個(gè)數(shù)小于等于該值NumMatches,則返回的所有滿足匹配分值的結(jié)果;設(shè)為0時(shí),返回所有滿足分值的結(jié)果。

MaxOverlap:如果模型具有對(duì)稱性,會(huì)在搜索圖像的同一位置和不同角度上找到多個(gè)與目標(biāo)匹配的區(qū)域。參數(shù)MaxOverlap是0到1之間的,定義了找到的兩個(gè)目標(biāo)區(qū)域最多重疊的系數(shù),以便于把他們作為兩個(gè)不同的目標(biāo)區(qū)域分別返回。如果找到的兩個(gè)目標(biāo)區(qū)域彼此重疊并且大于MaxOverlap,僅僅返回效果最好的一個(gè)。重疊的計(jì)算方法是基于找到的目標(biāo)區(qū)域的任意方向的最小外接矩形(看smallest_rectangle2)。如果MaxOverlap=0,?找到的目標(biāo)區(qū)域不能存在重疊,?如果MaxOverla p=1,所有找到的目標(biāo)區(qū)域都要返回。

SubPixel:精度控制,該參數(shù)的選擇影響定位結(jié)果參數(shù)(位置,角度,縮放比例)。精度越高速度越慢。None(不使用亞像素-100%)-'interpolation'(差值亞像素-100%-0.079)-'least_squares_high'(最小二乘亞像素-120%-0.025)-'least_squares_high'(最小二乘亞像素-131%-0.014)- 'least_squares_very_high'(最小二乘亞像素-142%-0.013),【方法(解釋-耗時(shí)-角度誤差)】

NumLevels:搜索時(shí)使用金字塔層數(shù).如果NumLevels=0,使用創(chuàng)建模板時(shí)金字塔的層數(shù)。

Greediness:用于控制定位加速。該值越大,速度越快,找丟模板的幾率也越大。推薦值0.7-0.9.

?

二、Shape-Based matching的基本流程

???HALCON提供的基于形狀匹配的算法主要是針對(duì)感興趣的小區(qū)域來建立模板,對(duì)整個(gè)圖像建立模板也可以,但這樣除非是對(duì)象在整個(gè)圖像中所占比例很大,比如像視頻會(huì)議中人體上半身這樣的圖像,我在后面的視頻對(duì)象跟蹤實(shí)驗(yàn)中就是針對(duì)整個(gè)圖像的,這往往也是要犧牲匹配速度的,這個(gè)后面再講。基本流程是這樣的,如下所示:
????1. 首先確定出ROI的矩形區(qū)域,這里只需要確定矩形的左上點(diǎn)和右下點(diǎn)的坐標(biāo)即可,gen_rectangle1()這個(gè)函數(shù)就會(huì)幫助你生成一個(gè)矩形,利用area_center()找到這個(gè)矩形的中心;?
????2. 然后需要從圖像中獲取這個(gè)矩形區(qū)域的圖像,reduce_domain()會(huì)得到這個(gè)ROI;這之后就可以對(duì)這個(gè)矩形建立模板,而在建立模板之前,可以先對(duì)這個(gè)區(qū)域進(jìn)行一些處理,方便以后的建模,比如閾值分割,數(shù)學(xué)形態(tài)學(xué)的一些處理等等;

????3. 接下來就可以利用create_shape_model()來創(chuàng)建模板了,這個(gè)函數(shù)有許多參數(shù),其中金字塔的級(jí)數(shù)由Numlevels指定,值越大則找到物體的時(shí)間越少,AngleStart和AngleExtent決定可能的旋轉(zhuǎn)范圍,AngleStep指定角度范圍搜索的步長(zhǎng);這里需要提醒的是,在任何情況下,模板應(yīng)適合主內(nèi)存,搜索時(shí)間會(huì)縮短。對(duì)特別大的模板,用Optimization來減少模板點(diǎn)的數(shù)量是很有用的;MinConstrast將模板從圖像的噪聲中分離出來,如果灰度值的波動(dòng)范圍是10,則MinConstrast應(yīng)當(dāng)設(shè)為10;Metric參數(shù)決定模板識(shí)別的條件,如果設(shè)為’use_polarity’,則圖像中的物體和模板必須有相同的對(duì)比度;創(chuàng)建好模板后,這時(shí)還需要監(jiān)視模板,用inspect_shape_model()來完成,它檢查參數(shù)的適用性,還能幫助找到合適的參數(shù);另外,還需要獲得這個(gè)模板的輪廓,用于后面的匹配,get_shape_model_contours()則會(huì)很容易的幫我們找到模板的輪廓;


????4. 創(chuàng)建好模板后,就可以打開另一幅圖像,來進(jìn)行模板匹配了。這個(gè)過程也就是在新圖像中尋找與模板匹配的圖像部分,這部分的工作就由函數(shù)find_shape_model()來承擔(dān)了,它也擁有許多的參數(shù),這些參數(shù)都影響著尋找模板的速度和精度。這個(gè)的功能就是在一幅圖中找出最佳匹配的模板,返回一個(gè)模板實(shí)例的長(zhǎng)、寬和旋轉(zhuǎn)角度。其中參數(shù)SubPixel決定是否精確到亞像素級(jí),設(shè)為’interpolation’,則會(huì)精確到,這個(gè)模式不會(huì)占用太多時(shí)間,若需要更精確,則可設(shè)為’least_square’,’lease_square_high’,但這樣會(huì)增加額外的時(shí)間,因此,這需要在時(shí)間和精度上作個(gè)折中,需要和實(shí)際聯(lián)系起來。比較重要的兩個(gè)參數(shù)是MinSocre和Greediness,前一個(gè)用來分析模板的旋轉(zhuǎn)對(duì)稱和它們之間的相似度,值越大,則越相似,后一個(gè)是搜索貪婪度,這個(gè)值在很大程度上影響著搜索速度,若為0,則為啟發(fā)式搜索,很耗時(shí),若為1,則為不安全搜索,但最快。在大多數(shù)情況下,在能夠匹配的情況下,盡可能的增大其值。


????5. 找到之后,還需要對(duì)其進(jìn)行轉(zhuǎn)化,使之能夠顯示,這兩個(gè)函數(shù)vector_angle_to_rigid()和affine_trans_contour_xld()在這里就起這個(gè)作用。前一個(gè)是從一個(gè)點(diǎn)和角度計(jì)算一個(gè)剛體仿射變換,這個(gè)函數(shù)從匹配函數(shù)的結(jié)果中對(duì)構(gòu)造一個(gè)剛體仿射變換很有用,把參考圖像變?yōu)楫?dāng)前圖像。

?

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

在HALCON的說明資料里講到了這些參數(shù)的作用以及關(guān)系,在上面提到的文章中也作了介紹,這里主要是重復(fù)說明一下這些參數(shù)的作用,再強(qiáng)調(diào)一下它們影響匹配速度的程度;
? ? 在為了提高速度而設(shè)置參數(shù)之前,有必要找出那些在所有測(cè)試圖像中匹配成功的設(shè)置,這時(shí)需考慮以下情況:
????① 必須保證物體在圖像邊緣處截?cái)?#xff0c;也就是保證輪廓的清晰,這些可以通過形態(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è)匹配算法提出新的要求,所以需要不斷地去嘗試。

?

總結(jié)

以上是生活随笔為你收集整理的Halcon:模版匹配的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。