專利名稱:用于分析物體輪廓圖像的方法與圖像處理裝置 ,用于檢測(cè)物體的方法與圖像處理裝置 ...的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于分析輪廓圖像的方法。
本發(fā)明還涉及一種用于檢測(cè)圖像中物體的方法。
本發(fā)明還涉及一種用于分析物體輪廓圖像的圖像處理裝置。
本發(fā)明還涉及一種用于檢測(cè)圖像中物體的圖像處理裝置。
本發(fā)明還涉及一種包括一個(gè)或多個(gè)所述圖像處理裝置的工業(yè)視覺設(shè)備。
本發(fā)明還涉及一種包括一個(gè)或多個(gè)所述圖像處理裝置的智能相機(jī)。
本發(fā)明還涉及一種包括一個(gè)或多個(gè)所述圖像處理裝置的圖像顯示器。
本發(fā)明還涉及一種包括所述工業(yè)視覺設(shè)備的安全系統(tǒng)。
本發(fā)明還涉及一種計(jì)算機(jī)程序產(chǎn)品,包括使得處理器能夠執(zhí)行至少一種所述方法的代碼。
在現(xiàn)有技術(shù)中,存在分析圖像的方法,特別是為了檢測(cè)這些圖像中的物體的方法。例如在一個(gè)產(chǎn)品線中,必須將次品重路由到一個(gè)手工修復(fù)單元而不是繼續(xù)沿著主線前進(jìn),這必須通過(guò)分析相機(jī)捕獲的圖像來(lái)自動(dòng)地完成??梢酝ㄟ^(guò)將捕獲的圖像與一個(gè)灰度值像素模板進(jìn)行關(guān)聯(lián)來(lái)檢測(cè)物體。這些灰度值關(guān)聯(lián)方法的一個(gè)缺點(diǎn)在于它們常常由于例如光照效果特別是強(qiáng)光照射而產(chǎn)生不正確的結(jié)果。其它被設(shè)計(jì)用來(lái)克服這些問題的物體檢測(cè)方法基于物體輪廓來(lái)檢測(cè)物體。如果一個(gè)輪廓在形狀上充分地富有特征,并且足夠大的部分未被遮擋,那么這些方法工作良好。通常,通過(guò)應(yīng)用諸如邊緣檢測(cè)的操作,將捕獲的圖像轉(zhuǎn)換成一種輪廓圖像。所述輪廓接著可被變換成某種表示(例如通用變換輪廓曲率表示)并被分析。用于檢測(cè)輪廓的直接方法是使用一個(gè)匹配函數(shù)將假定落在被搜索物體的輪廓上的輪廓圖像的像素與模板輪廓窗口中的像素進(jìn)行匹配。如果輪廓圖像中的大量像素落在模板輪廓軌跡上,匹配函數(shù)產(chǎn)生一個(gè)高值,指示已經(jīng)發(fā)現(xiàn)一個(gè)模板輪廓。所有低于預(yù)定接受門限的值表面了在正被測(cè)試的輪廓圖像中當(dāng)前位置可能沒有期望類型之物體。
這些基于匹配物體輪廓的現(xiàn)有技術(shù)之物體檢測(cè)方法的一個(gè)缺點(diǎn)在于基本上對(duì)于輪廓圖像中的每個(gè)像素,都必須通過(guò)匹配來(lái)檢驗(yàn)每個(gè)模板的存在。即使僅僅搜索一個(gè)物體,但該物體可能例如以十個(gè)不同方向和十個(gè)不同比例出現(xiàn),這意味著對(duì)于輪廓圖像中的每個(gè)像素(在工業(yè)視覺應(yīng)用中,輪廓圖像可能包含例如4000×3000個(gè)像素),必須匹配成百上千個(gè)模板。如果匹配函數(shù)對(duì)模板與輪廓圖像中像素之差的絕對(duì)值進(jìn)行相加,并且模板輪廓窗口包含例如5000個(gè)有關(guān)的像素(這對(duì)于良好成像的物體輪廓是典型的,它占據(jù)了輪廓圖像的很大部分),這幾百個(gè)模板匹配每個(gè)都需要5000個(gè)減法操作。這使得基于輪廓匹配的物體檢測(cè)成為一種非常緩慢的方法,因此無(wú)法用于許多實(shí)時(shí)應(yīng)用。在今后,當(dāng)工業(yè)視覺系統(tǒng)變得很通用時(shí),例如用于機(jī)器人設(shè)備,其必須在典型家庭中眾多物體之間尋找路線,必須同時(shí)檢查幾個(gè)物體。
本發(fā)明的一個(gè)目的是提供一種用于物體檢測(cè)的分析輪廓圖像的方法,該方法相對(duì)較快。
這個(gè)目的得以實(shí)現(xiàn),是在于所述分析輪廓圖像的方法包括-指定一條由輪廓圖像中位置構(gòu)成的掃描路徑,每個(gè)位置對(duì)應(yīng)于一個(gè)感興趣區(qū);-構(gòu)造第一表格,該第一表格為所述輪廓圖像中每個(gè)非零值像素包含至少一個(gè)位置坐標(biāo);-構(gòu)造其表項(xiàng)與所述感興趣區(qū)之位置相對(duì)應(yīng)的第四表格,該第四表格為每條具有預(yù)定方向并穿越所述感興趣區(qū)的像素構(gòu)成的平行線包含至少一個(gè)所述第一表格中一個(gè)表項(xiàng)的索引,對(duì)于給定的一個(gè)掃描方向,該第一表格中的表項(xiàng)對(duì)應(yīng)于落在該平行線上并且處于所述感興趣區(qū)內(nèi)部的所述輪廓圖像之第一個(gè)非零像素;以及-構(gòu)造其表項(xiàng)與所述感興趣區(qū)之位置相對(duì)應(yīng)的第五表格,該第五表格為每條具有預(yù)定方向并穿越所述感興趣區(qū)的像素構(gòu)成的平行線包含至少一個(gè)關(guān)于所述第一表格中一個(gè)表項(xiàng)的索引,對(duì)于給定的一個(gè)掃描方向,該第一表格中的表項(xiàng)對(duì)應(yīng)于落在該平行線上并且處于所述感興趣區(qū)內(nèi)部的所述輪廓圖像之最后一個(gè)非零像素。
用于物體檢測(cè)的方法無(wú)法避免檢查整個(gè)輪廓圖像來(lái)判斷期望物體的存在。即使輪廓圖像的一小部分未被檢查,也可能發(fā)生這種情況期望的物體恰恰就在這部分中,因而所有執(zhí)行的操作都白執(zhí)行了。然而,所述方法可被優(yōu)化從而使得它執(zhí)行盡可能少的無(wú)關(guān)工作。本發(fā)明所基于的一個(gè)見解在于與模板輪廓上的像素?cái)?shù)量相比,如果一個(gè)區(qū)域沒有包含足夠多的像素,那么就可以避免更多高昂的匹配驗(yàn)證。此外,由于圖像的連續(xù)本質(zhì),有可能跳過(guò)許多匹配位置,因?yàn)榭赡苄枰S多行(或列)才能到達(dá)所需的像素?cái)?shù)量。然而,為分析輪廓圖像區(qū)域的精細(xì)結(jié)構(gòu)以及像素?cái)?shù)量會(huì)引入更加昂貴的操作,在按照本發(fā)明的方法中,優(yōu)選地,將這個(gè)操作量保持得較低。按照本發(fā)明的分析物體輪廓圖像之方法(該方法被設(shè)計(jì)用在物體檢測(cè)方法中),構(gòu)造了一種簡(jiǎn)單的表格數(shù)據(jù)結(jié)構(gòu),其允許對(duì)輪廓像素或一般地感興趣的像素進(jìn)行快速計(jì)數(shù)(例如,通過(guò)在輪廓圖像上進(jìn)行距離變換會(huì)產(chǎn)生更多像素)。
因此,在窗口中引入了一條掃描路徑,例如Z字形對(duì)角掃描,或沿著希爾伯特分形,或從上到下從左到右。所述掃描路徑使得基本上分析了在相應(yīng)感興趣區(qū)中的輪廓圖像中的所有像素位置。在只有相機(jī)捕獲之圖像的部分可能包含期望之物體的情況下,這部分可被稱為輪廓圖像。在第一表格中,所有非零(輪廓像素或一般地,感興趣的像素)像素被包含并被給與至少一個(gè)坐標(biāo)。注意不應(yīng)該賦予術(shù)語(yǔ)“非零”特別的重要性,因?yàn)檫@僅僅反映了按照本發(fā)明之方法的最直接實(shí)現(xiàn),使得該方法被更容易更清楚地描述。通常,非零應(yīng)當(dāng)被解讀為不等于一個(gè)預(yù)定第一值,以便覆蓋微小的修改,例如,其中向輪廓圖像的所有值添加了一個(gè)常數(shù)值,例如3。
例如,一個(gè)圖像被按行掃描(如在電視系統(tǒng)中),則存在關(guān)于所有像素的一個(gè)一維自然序,因此,假定考慮所有行(在本方法的一個(gè)實(shí)施例中,這是通過(guò)如果在一行中沒有非零像素則插入一個(gè)“非數(shù)字(NaN)”碼來(lái)實(shí)現(xiàn)的),一個(gè)x坐標(biāo)就足夠了(當(dāng)然,同樣可以使用y坐標(biāo),這對(duì)應(yīng)于輪廓圖像的90度旋轉(zhuǎn))。
對(duì)至少所有穿越感興趣區(qū)(對(duì)應(yīng)于用于匹配的模板輪廓窗口的大小)的平行線上的第一個(gè)以及最后一個(gè)非零像素建立索引表使得統(tǒng)計(jì)像素很容易。可以由45度向下傾斜的直線來(lái)構(gòu)成感興趣區(qū),例如,第一條直線僅僅穿越感興趣區(qū)1個(gè)像素,第二條直線2個(gè)像素,等。掃描方向例如可以從左上到右下。第一個(gè)遇到的非零像素可以例如是第五條直線上的第2個(gè),最后一個(gè)可以是第5個(gè)。通過(guò)使用第一表格中的索引而不是像素坐標(biāo),可以進(jìn)行快速統(tǒng)計(jì)。如果感興趣區(qū)被劃分成水平的行,這將更加容易理解。這樣第一個(gè)像素可以在一行的像素3上,最后一個(gè)像素在像素10上。僅僅從10中減去3并不會(huì)可靠地指示出該行上有8個(gè)非零像素,因?yàn)樵谥虚g可能有零像素。對(duì)第一表格(僅僅包含所有非零像素)中表項(xiàng)的索引相減的確可以給出該行上像素的數(shù)量。通過(guò)對(duì)所有行上的計(jì)數(shù)進(jìn)行相加,可以獲得感興趣區(qū)中像素的總體數(shù)量。第四和第五表格分別提供了第一個(gè)和最后一個(gè)像素,以便獲得所有穿越這些行的直線上的部分計(jì)數(shù)。在后文中,感興趣區(qū)的位置被解釋為其左上像素的(x,y)坐標(biāo),雖然可以由其它方式來(lái)定義,例如,中心像素的坐標(biāo)。
所述分析輪廓圖像之方法的實(shí)施例包括-指定由沿著一列向下并隨后跳到下一列的連續(xù)位置構(gòu)成的掃描路徑;-構(gòu)造第一表格,該第一表格為輪廓圖像中每個(gè)非零像素包含至少一個(gè)位置坐標(biāo);-構(gòu)造第四表格,該第四表格至少為穿越感興趣區(qū)的每條水平像素線包含一個(gè)第一表格中表項(xiàng)的索引,所述表項(xiàng)對(duì)應(yīng)于落在相應(yīng)水平線上并位于感興趣區(qū)內(nèi)部的輪廓圖像之最左側(cè)的非零像素;以及-構(gòu)造第五表格,該第五表格至少為穿越感興趣區(qū)的每條水平像素線包含一個(gè)第一表格中表項(xiàng)的索引,所述表項(xiàng)對(duì)應(yīng)于落在相應(yīng)水平線上并位于感興趣區(qū)內(nèi)部的輪廓圖像之最右側(cè)的非零像素。
正如上面已經(jīng)解釋的,以類似電視的方法來(lái)掃描輪廓圖像,例如在相鄰的列上向下掃描,是一個(gè)概念上簡(jiǎn)單的確保整個(gè)輪廓圖像被處理的方法。此外,表處理很簡(jiǎn)單。然而在有些應(yīng)用中,可能更希望其它掃描路徑,例如按行向右掃描圖像然后跳到下一行的開頭是與當(dāng)前的電視掃描標(biāo)準(zhǔn)兼容的,因此對(duì)于實(shí)時(shí)處理這種到達(dá)的電視信號(hào)是有利的。
所述分析輪廓圖像的方法的另一個(gè)實(shí)施例包括-構(gòu)造第二表格,該第二表格為輪廓圖像的基本上每條水平線包含一個(gè)第一表格中表項(xiàng)的索引,所述表項(xiàng)對(duì)應(yīng)于輪廓圖像在該水平線上最左側(cè)的非零像素;以及-構(gòu)造第三表格,該第三表格為輪廓圖像的基本上每條水平線包含一個(gè)第一表格中表項(xiàng)的索引,所述表項(xiàng)對(duì)應(yīng)于輪廓圖像在該水平線上最右側(cè)的非零像素;以及-在第一表格、第二表格和第三表格的基礎(chǔ)上構(gòu)造第四表格和第五表格。
如果如前所述沿著相鄰的列來(lái)執(zhí)行掃描,可以實(shí)現(xiàn)一個(gè)更加快速的優(yōu)化。不是為感興趣區(qū)的每個(gè)(垂直)位置計(jì)算一個(gè)新的第四和第五表格(在這些列僅僅包含位于當(dāng)前感興趣區(qū)中最左側(cè)和最右側(cè)的點(diǎn)的情況下),而是為每個(gè)相鄰的列掃描(即為當(dāng)前列位置上的所有行)計(jì)算一次第四和第五表格。此外,可以很容易地從為整個(gè)輪廓圖像的每一行包含最左側(cè)和最右側(cè)像素的第二和第三表格來(lái)獲得它們。
一種在輪廓圖像中檢測(cè)物體的方法如果還包括以下內(nèi)容,則能夠充分利用所述分析方法-基于第四和第五表格,為沿著掃描路徑的連續(xù)位置計(jì)算位于感興趣區(qū)內(nèi)的大量非零像素的計(jì)數(shù);以及-如果該計(jì)數(shù)大于或等于一個(gè)預(yù)定的像素?cái)?shù)量,利用感興趣區(qū)內(nèi)的像素和模板輪廓窗口中的像素作為參數(shù),計(jì)算一個(gè)匹配函數(shù)來(lái)獲得對(duì)模板輪廓與出現(xiàn)在感興趣區(qū)內(nèi)的輪廓圖像的像素之間的匹配的指示;或者-如果該計(jì)數(shù)小于預(yù)定的像素?cái)?shù)量,則沿著掃描路徑執(zhí)行一個(gè)到下一位置的跳轉(zhuǎn)。
如上面所解釋的,不需要考慮具有過(guò)少輪廓點(diǎn)的區(qū)域,即通過(guò)跳轉(zhuǎn)向一個(gè)相鄰位置可以避免昂貴的匹配。相鄰位置并不意味著沿著掃描路徑其坐標(biāo)變化必然為一的位置。它們?nèi)匀皇茄刂鴴呙杈€的位置,但可以向前跳轉(zhuǎn)3個(gè)坐標(biāo)。
借助一個(gè)在輪廓圖像中檢測(cè)物體的方法的實(shí)施例,可以實(shí)現(xiàn)進(jìn)一步的圖像處理速度增長(zhǎng),對(duì)于該實(shí)施例,要被檢驗(yàn)的模板輪廓是模板輪廓窗口中模板輪廓的一個(gè)幾何變換,包括
-在輪廓圖像中的一個(gè)位置為模板輪廓窗口中的一個(gè)像素獲取相應(yīng)的像素,該位置由模板輪廓窗口中該像素的位置以及所述幾何變換確定;以及-基于模板輪廓窗口中的像素與所述相應(yīng)像素之間的相似性來(lái)計(jì)算匹配函數(shù)。
只有輪廓的一個(gè)子集需要被檢驗(yàn),并且如果應(yīng)用需要可以作更加精細(xì)的匹配(例如為了獲得一個(gè)物體確切的朝向角度)。
所述檢測(cè)物體的方法可被直接應(yīng)用在例如從相機(jī)獲得的圖像上,通過(guò)在分析輪廓圖像之前對(duì)所述圖像進(jìn)行輪廓檢測(cè)而獲得輪廓圖像。
本發(fā)明的第二個(gè)目的是提供一種用于分析輪廓圖像以進(jìn)行物體檢測(cè)的相對(duì)較快的圖像處理裝置。
所述圖像處理裝置包括-第一單元,被安排用來(lái)在感興趣區(qū)的輪廓圖像內(nèi)的掃描路徑上指定一個(gè)位置;以及-第二單元,被安排用來(lái)構(gòu)造以下內(nèi)容并將其存儲(chǔ)在存儲(chǔ)器中a)第一表格,所述第一表格為輪廓圖像中每個(gè)非零值像素包含至少一個(gè)位置坐標(biāo),b)第四表格,所述第四表格為像素的穿過(guò)感興趣區(qū)的每條平行線至少包含第一表格中表項(xiàng)的索引,對(duì)于給定的一個(gè)掃描方向,該表項(xiàng)對(duì)應(yīng)于落在相應(yīng)平行線上并且位于感興趣區(qū)內(nèi)部的所述輪廓圖像第一個(gè)非零像素,以及c)第五表格,所述第五表格為像素的每條穿越感興趣區(qū)的平行線包含至少一個(gè)第一表格中表項(xiàng)的索引,對(duì)于給定的一個(gè)掃描方向,該表項(xiàng)對(duì)應(yīng)于落在相應(yīng)平行線上并且位于感興趣區(qū)內(nèi)部的所述輪廓圖像的最后一個(gè)非零像素。
這種圖像處理裝置可以被包括在用于檢測(cè)輪廓圖像中的物體的圖像處理裝置中,該裝置還包括-一個(gè)匹配單元,被安排用來(lái)以感興趣區(qū)中的像素以及模板輪廓窗口中的像素作為參數(shù)計(jì)算一個(gè)匹配函數(shù);以及-一個(gè)決策單元,被安排用來(lái)基于第四和第五表格計(jì)算感興趣區(qū)內(nèi)的多個(gè)非零像素的計(jì)數(shù),被安排用來(lái)在該計(jì)數(shù)小于預(yù)定的像素?cái)?shù)量的情況下指令第一單元沿著掃描路徑跳轉(zhuǎn)到下一個(gè)位置,并且在該計(jì)數(shù)大于或等于該預(yù)定的像素?cái)?shù)量的情況下指令匹配單元為當(dāng)前的感興趣區(qū)計(jì)算匹配函數(shù)。
或者圖像處理裝置可以被包括在工業(yè)視覺設(shè)備中,所述工業(yè)視覺設(shè)備還包括-一個(gè)輪廓生成單元,被安排用來(lái)從一個(gè)可從照相機(jī)接收的圖像生成輪廓圖像;以及-一個(gè)控制單元,被安排用來(lái)根據(jù)匹配函數(shù)之結(jié)果輸出信號(hào)。
或者圖像處理裝置可以被包括在智能相機(jī)中,所述智能相機(jī)還包括-一個(gè)輪廓生成單元,被安排用來(lái)從相機(jī)捕獲的圖像生成輪廓圖像;以及-一個(gè)圖像處理單元,被安排用來(lái)向由照相機(jī)捕獲的圖像的一個(gè)區(qū)域施加一種圖像變換,該區(qū)域是基于圖像處理裝置檢測(cè)到的物體而確定的。
或者圖像處理裝置可以被包括在圖像顯示器中,所述圖像顯示器還包括-一個(gè)輪廓生成單元,被安排用來(lái)從圖像顯示器接收的一個(gè)圖像生成輪廓圖像;以及-一個(gè)圖像處理單元,被安排用來(lái)向所接收?qǐng)D像的一個(gè)區(qū)域施加一種圖像變換,該區(qū)域是基于圖像處理裝置檢測(cè)到的物體而確定的。
通過(guò)后面描述的實(shí)現(xiàn)以及實(shí)施例,并且結(jié)合附圖,按照本發(fā)明的這些方法以及圖像處理裝置的這些以及其它方面將得到闡述并且變得很明顯。這些附圖僅僅作為非限制性的示例。
在附圖中圖1a示意性地顯示了一個(gè)簡(jiǎn)單化的輪廓圖像;圖1b示意性地顯示了按照本發(fā)明的感興趣像素的表格;圖2示意性地顯示了一個(gè)模板輪廓窗口;圖3a示意性地顯示了沿著輪廓圖像的感興趣區(qū)掃描;圖3b示意性地顯示了按照本發(fā)明的更多表格;圖3c示意性地顯示了圖3a所示的感興趣區(qū)位置的像素計(jì)數(shù);
圖4示意性地顯示了一個(gè)輪廓圖像,具有除了0和1以外的值;圖5示意性地顯示了當(dāng)匹配一個(gè)模板時(shí)用于在輪廓圖像中獲取相應(yīng)像素的偏移量,所述模板通過(guò)旋轉(zhuǎn)對(duì)應(yīng)于一個(gè)參考模板;圖6示意性地顯示了一個(gè)模板輪廓;以及圖7示意性地顯示了一個(gè)示例應(yīng)用中的圖像處理裝置。
圖1出于示例的目的顯示了一個(gè)簡(jiǎn)單化的輪廓圖像100,其中物體輪廓101的物體輪廓像素具有示范值1(顯示為黑色方塊),并且非輪廓像素具有零值(顯示為白色方塊)。
為了從一個(gè)灰度圖像(例如從相機(jī)獲得的圖像)獲得輪廓像素,通常應(yīng)用到該灰度圖像的第一個(gè)操作是邊緣檢測(cè)。現(xiàn)有技術(shù)中知名的一種典型的邊緣檢測(cè)器是Canny邊緣檢測(cè)器,它用如下邊緣檢測(cè)器內(nèi)核K(x)之離散矩陣版本對(duì)灰度圖像進(jìn)行卷積K(x)=d/dx(G(x))[方程1]X是水平方向的相對(duì)像素坐標(biāo),G是高斯平滑函數(shù)??梢詰?yīng)用其它典型的邊緣檢測(cè)濾波器,諸如例如Prewitt,Deriche,Kirsch,Marr,等等。方程1之內(nèi)核僅僅檢測(cè)水平方向的邊緣,但是在現(xiàn)有技術(shù)中存在大量的同時(shí)考慮垂直方向的技術(shù)(例如,結(jié)合水平與垂直邊緣檢測(cè)的結(jié)果,或使用對(duì)兩個(gè)方向都敏感的一個(gè)或一組內(nèi)核)。
用邊緣檢測(cè)內(nèi)核求卷積的灰度圖像之結(jié)果是一個(gè)第二灰度圖像,其中邊緣具有較大的像素灰度值(例如255)并且非邊緣(例如物體的光滑內(nèi)部)具有較小的像素灰度值(例如0)。典型的邊緣檢測(cè)的第二步驟要么是削波要么是找最大值。削波將所有高于一個(gè)預(yù)定值(例如128)的灰度值設(shè)置為1并將所有其它值設(shè)置為0。由于期望單像素寬度的輪廓,優(yōu)選的第二步驟是找最大值,它僅僅將第二灰度圖像中的邊緣凸起的最大值設(shè)置為1并將所有其它像素設(shè)置為0。
為了獲得用于分析之輪廓的其它步驟可以是邊緣鏈接,亂真邊緣修剪以及間隙閉合。最后,可以用特定模型來(lái)表示邊緣,例如使用直線構(gòu)成的多邊形,或者輪廓可以被表示為一個(gè)相對(duì)于沿著輪廓的弧度位置的切線的角度的函數(shù)。接著,輪廓可以被匹配,例如通過(guò)將圖像物體輪廓的曲率的特征與一個(gè)模型的特征進(jìn)行比較,所述模型與例如從訓(xùn)練階段獲得的待檢測(cè)物體的典型形狀相對(duì)應(yīng)。
物體輪廓也可以基于色彩信息、紋理信息等獲得,例如借助M.Mertens,H.Sahli以及J.Cornelis等人在“一種魯棒的非線性片斷邊緣發(fā)現(xiàn)器”(IEEE非線性信號(hào)與圖像處理研討會(huì)1997會(huì)議錄)一文中描述的邊緣檢測(cè)器。注意雖然按照本發(fā)明的方法是以一個(gè)2D的示例圖像進(jìn)行描述的,該方法也可以被應(yīng)用到一維、三維或高維(>3)圖像。
給定輪廓圖像100,現(xiàn)有技術(shù)中的典型輪廓匹配方法必須檢查輪廓圖像100中物體輪廓的像素是否與模板輪廓像素中的像素相匹配,所述模板輪廓具有一個(gè)想要在輪廓圖像100中發(fā)現(xiàn)的形狀。典型地,所述模板輪廓是期望輪廓的一個(gè)小的裁剪圖像,即,例如對(duì)于輪廓圖像100中的物體輪廓101,模板輪廓可以是一個(gè)4×4的窗口,包含了圖示的“倒U”形狀。
將這個(gè)4×4的窗口在輪廓圖像100的每個(gè)可能的位置上移動(dòng)(例如模板輪廓窗口最左側(cè)像素與輪廓圖像100的像素(x,y)重疊),并且計(jì)算一個(gè)匹配函數(shù),例如M(x,y)=Σi=0IΣj=0J[t(i,j)-p(x+i,y+j)]2/N]]>[方程2]其中i和j是輪廓模板窗口中的連續(xù)坐標(biāo),例如分別從0到I以及從0到J(在圖1的例子中I和J等于4),x和y是輪廓圖像100中的坐標(biāo),指示了進(jìn)行匹配的位置,t是輪廓模板窗口中位置(i,j)處的像素值,p是輪廓圖像100中的像素值,以及N是歸一化常數(shù)。可以使用其它匹配函數(shù),例如平均絕對(duì)差,或布爾匹配函數(shù),諸如M2(x,y)=Σi=0IΣj=0J[t(i,j)p(x+i,y+j)]/N]]>[方程3]其中如果模板和圖像在特定位置都具有值為1的像素,則乘法產(chǎn)生一個(gè)增加計(jì)數(shù)。
如果所有像素都匹配,那么匹配值M是最大值,即一個(gè)高值(如果適當(dāng)?shù)貧w一化,那么等于1),如果沒有像素匹配,那么為零,并且如果某些像素匹配,則取中間值。如果模板模式位于圖像輪廓附近,但沒有適當(dāng)?shù)貙?duì)齊,或者嘗試了與一個(gè)不同形狀的匹配,就會(huì)發(fā)生后一種情況。在一個(gè)實(shí)際的計(jì)算機(jī)視覺應(yīng)用中,通常由于成像的人工因素、噪聲等,輪廓圖像100并不在正確的位置包含所有的像素,典型發(fā)生的問題如下1)某些輪廓像素缺失2)存在額外的所謂亂真輪廓點(diǎn)3)輪廓點(diǎn)從理論位置輕微偏移,例如由于所使用的邊緣檢測(cè)器因此為了改進(jìn)匹配方法,通常使用一個(gè)光滑模板輪廓窗口200,如圖2所示。這種窗口在圍繞模板輪廓的外形上具有中間值(在0到1之間,或如果所有都被擴(kuò)展到8比特表示則在0到255之間),典型地,這些值從確切的理論模板輪廓位置處的最大值(例如1)向外單調(diào)遞減到零。
這種光滑模板輪廓窗口200可以通過(guò)向包含理論二元模板的輪廓窗口應(yīng)用一個(gè)距離變換而獲得。例如在圖2中,如果像素的曼哈頓距離|(i-a)|+|(j-b)|(其中a和b是離得最近的二元模板像素的坐標(biāo))為1,那么給它們一個(gè)最大值50%的值,如果它們到二元模板像素的距離為2,則給一個(gè)最大值20%的值。高斯形狀是一種好的可供使用的形狀。使用這樣一種光滑模板輪廓窗口200對(duì)于略微未對(duì)齊的輪廓像素(如上所述在點(diǎn)-3下)非常有利。匹配函數(shù)可以是方程2,或其它以實(shí)數(shù)或整數(shù)作為參數(shù)的匹配函數(shù)。使用具有除0和1以外的值的模板輪廓窗口可能有其它原因,例如,如果該模板模式化了一行中三像素(灰度=1)的線段(任一側(cè)上為零),那么匹配標(biāo)準(zhǔn)方程3僅僅檢查這種結(jié)構(gòu)的存在。如果在輪廓圖像100中有一條10像素的水平線,那么所述三像素的線段將在沿著圖像線的任何位置被發(fā)現(xiàn),即在10-2個(gè)連續(xù)位置。然而,在一個(gè)應(yīng)用中可能要求僅僅發(fā)現(xiàn)確切的三像素長(zhǎng)的直線,這可以例如通過(guò)在模板輪廓窗口200中三個(gè)1的線段之任一側(cè)放置-1而不是0來(lái)實(shí)現(xiàn),如果模板中-1值與圖像中的1值而不是0值匹配,那么匹配函數(shù)產(chǎn)生一個(gè)較低的值。
這種現(xiàn)有技術(shù)中基于輪廓匹配的物體檢測(cè)方法在它們的應(yīng)用中工作良好,但由于下面的事實(shí)使得它們?cè)谟?jì)算上非常昂貴必須檢查輪廓圖像100中所有像素位置來(lái)判斷特定輪廓(或許多可能的輪廓,例如,如果需要同時(shí)檢查多個(gè)物體或一個(gè)物體的旋轉(zhuǎn)版本)的存在,并且可能要借助一個(gè)復(fù)雜的匹配函數(shù)在模板輪廓窗口200的大量像素上作檢查。即使借助今天最快的計(jì)算機(jī)或甚至最強(qiáng)大的Ic,許多應(yīng)用仍然是不可行的,特別當(dāng)它們必須被實(shí)時(shí)完成時(shí)(例如為了在經(jīng)濟(jì)上可行,郵政分發(fā)中心的郵票自動(dòng)檢測(cè)需要每秒中處理幾封信件)以及對(duì)于大型的工業(yè)圖像(典型地大于720×576的電視圖像,例如10000×8000)。
借助按照本發(fā)明之基于輪廓的物體檢測(cè)方法,只需執(zhí)行盡可能少的操作——同時(shí)仍然保持完全檢測(cè)能力,必須在不引入過(guò)多額外的圖像分析操作的情況下實(shí)現(xiàn)物體檢測(cè),這再次增加了算法復(fù)雜性。
在所述物體檢測(cè)方法的一個(gè)優(yōu)選實(shí)施例中,作為第一個(gè)操作,對(duì)于整個(gè)輪廓圖像100,構(gòu)造了一個(gè)包含三張表的像素位置結(jié)構(gòu)110(圖1b),這些表給出了關(guān)于輪廓圖像100中感興趣像素的信息(在上面的例子中,從輪廓檢測(cè)中獲得的值為1的像素)-第一表格111,包含非零像素的x坐標(biāo);-第二表格113,包含輪廓圖像100中每行最左側(cè)像素在第一表格中位置的索引;-第三表格115,包含輪廓圖像100中每行最右側(cè)像素在第一表格中位置的索引。
因此,為了獲得第一表格,通常從左到右、從上到下掃描輪廓圖像100,直到遇到第一個(gè)像素。在圖1的例子中,這是在位置(10,11)的像素。其x坐標(biāo)10被寫到第一表格111的第一個(gè)位置(在例子中位索引0)。遇到的下一個(gè)像素在位置(11,11),導(dǎo)致在第一表格111的索引1處寫入數(shù)字11,以此類推。
隨后或并行地,對(duì)該圖像的所有行進(jìn)行分析來(lái)獲得最左側(cè)和左右側(cè)的像素。輪廓圖像100的第一行不包含非零像素,因此在第二表格113和第三表格115中沒有有效的像素索引可被寫入,因此寫入一個(gè)預(yù)定值,例如“非數(shù)字(NaN)”。最后到達(dá)第11行,物體輪廓101之最左側(cè)像素在位置(10,11)并且物體輪廓101的最右側(cè)像素在位置(13,11)。不是將x坐標(biāo)寫入第二和第三表格,而是將相應(yīng)像素的索引寫入。點(diǎn)(10,11)是第一表格111中的第一個(gè)點(diǎn),因此索引0被寫入第二表格113中的位置123。最右側(cè)的點(diǎn)是第四個(gè)點(diǎn),因此索引3被寫入第三表格115中的位置125。使用索引而不是坐標(biāo)導(dǎo)致如下優(yōu)點(diǎn)特定行中像素的數(shù)量可以通過(guò)將最右側(cè)索引與最左側(cè)索引相減而獲得。如果將x坐標(biāo)相減,則沒有考慮其中的零值。
隨后,使用模板輪廓窗口200來(lái)掃描輪廓圖像100,然而,在按照本發(fā)明的方法中,不是檢查輪廓圖像100中所有像素位置(x,y)以便通過(guò)計(jì)算匹配函數(shù)來(lái)判斷期望物體輪廓的存在,而僅僅使用匹配函數(shù)檢查有關(guān)的候選區(qū)域(可能產(chǎn)生匹配的區(qū)域,即那些通過(guò)預(yù)處理沒有作為不可能包含一個(gè)匹配而被明確排除的區(qū)域)。優(yōu)選地,掃描從左到右從上到下。因此,首先將模板輪廓窗口200定位于使得其最左側(cè)像素與輪廓窗口100的最左側(cè)像素重疊(實(shí)際上可以部分地從輪廓窗口100的外面開始掃描),并且輪廓窗口100的一個(gè)垂直部分,按照?qǐng)D2的例子為8列寬(沿著輪廓圖像100的整個(gè)高度),將經(jīng)歷匹配來(lái)檢查是否在如下位置存在期望的輪廓該位置對(duì)應(yīng)于模板輪廓窗口200之最左側(cè)角落在輪廓圖像100中的定位。
為了加速匹配,按照本發(fā)明的方法計(jì)算另外兩個(gè)像素位置結(jié)構(gòu)110的表格,一個(gè)第四表格311(見圖3b),以及一個(gè)第五表格313。第四表格311包含最左側(cè)像素(不是在整個(gè)輪廓圖像100中,而是在垂直部分301中的最左側(cè)像素)在第一表格111中的位置的索引。類似地,第五表格313包含垂直部分301中最右側(cè)像素在第一表格111中的位置的索引。由于在圖3a的例子中,只有單個(gè)輪廓,并且它完全落在示范性的垂直部分301內(nèi),對(duì)于輪廓窗口100上的這個(gè)水平掃描位置,第二和第三表格恰恰包含了分別與第四和第五表格相同的值。如果在掃描期間,垂直部分301的右邊界305被定位在物體輪廓的中間(即5個(gè)輪廓像素在右邊并且5個(gè)在左邊),對(duì)于這個(gè)垂直部分301,第四表格311與圖3b所示的相同,而第五表格為{NaN,...,NaN,1,4,6,8,NaN,NaN,NaN),因?yàn)樵诘?1行上,最右側(cè)像素是所遇到的第二個(gè)像素,并且在接下來(lái)的行中,最右側(cè)像素的索引是最左側(cè)像素的索引,因?yàn)榇怪辈糠?01在這些行上僅僅包含單個(gè)輪廓像素。
可以從給出整個(gè)圖像中重要像素信息的表格,例如第一表格111,很容易地構(gòu)造出第四表格311和第五表格313。給定垂直部分301之左邊界307的x坐標(biāo)XL作為第一表格中具有比XL大的最小x值的像素的索引,可以找到垂直部分301的特定行上最左側(cè)的像素。類似地,最右側(cè)像素是如下像素,其索引具有小于垂直部分301的右邊界305之x坐標(biāo)XR的最大x值。
然而,通過(guò)使用第二和第三表格,可以更快地為第四和第五表格發(fā)現(xiàn)適當(dāng)?shù)乃饕<?,例如?duì)于第12行,第二表格113中最左側(cè)像素索引(對(duì)于整個(gè)輪廓圖像100)是索引4。因此,垂直部分301內(nèi)的最左側(cè)像素只能有等于或大于4的索引,并且類似地,通過(guò)在第三表格115中查看第12行的索引,它不能具有大于第12行在整個(gè)輪廓圖像100中最右側(cè)像素的索引,其等于5。因而不需要檢查第一表格的所有表項(xiàng),而是最多檢查與第12行上或所感興趣的其它行上的輪廓像素一樣多的表項(xiàng)。使用沿著輪廓圖像的列向下的掃描路徑306的另外一個(gè)優(yōu)點(diǎn)在于可以對(duì)于每個(gè)向下的掃描僅僅計(jì)算一次第四和第五表格,而不是對(duì)感興趣區(qū)303的每個(gè)位置計(jì)算一次。
按照本發(fā)明的物體檢測(cè)方法的速度增加部分來(lái)自于跳過(guò)在輪廓圖像100中的某些區(qū)域中進(jìn)行匹配的可能性,這些區(qū)域是通過(guò)分析像素位置結(jié)構(gòu)110的表格內(nèi)容而確定的。借助第四表格311和第五表格313中的索引,通過(guò)簡(jiǎn)單地對(duì)兩個(gè)索引相減,就可以計(jì)算出每行的像素?cái)?shù)量,例如對(duì)于第11行,第五表格313給出了最右側(cè)像素的一個(gè)索引3,而第四表格311給出了最左側(cè)像素的一個(gè)索引0,從而得到垂直部分301中在第11行上的像素總數(shù)等于4。因此,通過(guò)對(duì)垂直部分301內(nèi)每一行位于感興趣區(qū)303內(nèi)的像素?cái)?shù)量進(jìn)行相加,就可以獲得感興趣區(qū)303(模板輪廓窗口200在輪廓圖像101中的當(dāng)前位置,對(duì)于該位置計(jì)算匹配函數(shù))內(nèi)存在的像素總數(shù)。如果在輪廓圖像100中對(duì)應(yīng)于感興趣區(qū)303的部分存在一個(gè)物體輪廓與模板輪廓相匹配,那么應(yīng)該在感興趣區(qū)303內(nèi)存在輪廓模板所需像素總數(shù)的很大百分比,例如對(duì)于圖6中的模板,如果允許20%未檢測(cè)到的像素點(diǎn),那么至少應(yīng)該在感興趣區(qū)303中存在32的80%即26個(gè)像素。該百分比典型地表示為預(yù)定的像素?cái)?shù)量,可以基于仍然指示輪廓匹配的最小匹配函數(shù)值來(lái)確定,并且這個(gè)最小匹配函數(shù)值再次依賴于以下條件,諸如圖像中的噪聲數(shù)量,將被識(shí)別的模板輪廓的數(shù)量與形狀差異,最大允許的遮斷百分比,等等??梢允褂脠D像處理中其它典型的理論分析來(lái)獲得預(yù)定的像素?cái)?shù)量。通過(guò)假定所需百分比等于100%來(lái)簡(jiǎn)化對(duì)于算法的解釋,借助圖6的錯(cuò)綜復(fù)雜的物體輪廓解釋了按照本發(fā)明的物體檢測(cè)方法的速度提高原因。輪廓圖像100中的這個(gè)輪廓,以及相應(yīng)地其模板的主導(dǎo)部分(在二元模板中所有等于1的像素,在經(jīng)過(guò)距離變換的光滑模板中通常具有最高灰度值的像素),由4×8的像素構(gòu)成。假定對(duì)于感興趣區(qū)303的特定垂直位置yR,只有8個(gè)像素位于感興趣區(qū)303內(nèi)。這意味著有一個(gè)3×8像素的不足額。加速垂直掃描整個(gè)垂直部分301的第一規(guī)則說(shuō)明由于在垂直部分301內(nèi)每一行最多有8個(gè)額外的像素,感興趣區(qū)303必須被向下移動(dòng)至少三行(最好情況)。當(dāng)然,觀察模板輪廓600的形狀,這些額外的24個(gè)像素必須落在特定直線上。簡(jiǎn)單地,輪廓圖像100中三個(gè)8像素的行將不會(huì)匹配圖6的輪廓600。因此,可以更加智能地計(jì)算出那些可以跳過(guò)計(jì)算匹配函數(shù)的行的數(shù)量。在最好的情況,輪廓600第一行601的8個(gè)像素都存在于位于位置yR的感興趣區(qū)303的末行,并且在感興趣區(qū)303的下面輪廓600的其余部分(如果這些點(diǎn)以其它方式放置,匹配函數(shù)計(jì)算將指示出輪廓圖像100中的物體輪廓不是期望的模板輪廓600)。由于該模式延續(xù)到第一行601下面的6行,感興趣區(qū)303必須跳轉(zhuǎn)6行來(lái)完全地與該模式重疊,將第一行601與感興趣區(qū)303的第一行對(duì)齊。
籠統(tǒng)地,有兩種策略-要么對(duì)于感興趣區(qū)303的每個(gè)垂直位置yR執(zhí)行一次感興趣區(qū)303內(nèi)像素總數(shù)的計(jì)數(shù)320,之后,如果該計(jì)數(shù)大于或等于待匹配模板的預(yù)定像素?cái)?shù)量,那么就計(jì)算匹配函數(shù);-或者根據(jù)對(duì)于感興趣區(qū)303的當(dāng)前垂直位置yR的當(dāng)前計(jì)數(shù)與預(yù)定像素?cái)?shù)量之間的差異(考慮垂直部分301的寬度和/或模板輪廓的形狀),同時(shí)跳過(guò)許多行。
對(duì)于第一個(gè)策略,對(duì)于垂直位置yR來(lái)說(shuō),感興趣區(qū)303中總的像素之計(jì)數(shù)可以從緊鄰其上的垂直位置yR-1的計(jì)數(shù)快速獲得,通過(guò)添加新行的計(jì)數(shù),并且減去感興趣區(qū)303上一個(gè)位置中最高行的計(jì)數(shù)C(yR)=C(yR-1)+CL(yR+H-1)-CL(yR-1) [方程4]其中C指示了對(duì)于其左上像素(例如yR)之特定位置的整個(gè)感興趣區(qū)303中的總體計(jì)數(shù),CL指示了對(duì)于單個(gè)行的計(jì)數(shù),并且H是感興趣區(qū)303的高度,即模板輪廓窗口200(600)的高度。
當(dāng)然,如果有許多亂真輪廓像素,該計(jì)數(shù)可能超過(guò)預(yù)定的像素?cái)?shù)量,即使感興趣區(qū)303內(nèi)的部分輪廓圖像100中沒有像素落在模板輪廓位置。但是所有區(qū)域包含小的亂真輪廓,明顯屬于與使用模板輪廓待檢測(cè)的物體不同的物體,并且輪廓圖像100的大量空白區(qū)域被跳過(guò),而不是為它們計(jì)算昂貴的匹配函數(shù)。
類似的推理導(dǎo)致跳過(guò)大量的列,例如在圖3a中,前8列根本不包含任何像素,在完成第一垂直部分301之后,感興趣區(qū)303開始掃描下面的8列??傮w上,建議跳過(guò)的列數(shù)取決于當(dāng)前垂直部分每行中像素的數(shù)量,例如上面的行可能不包含像素,而下面的行可能包含像素,因此對(duì)于感興趣區(qū)303特定位置的總體計(jì)數(shù)可能例如為4。這些像素可能位于對(duì)應(yīng)于輪廓600窗口之第一列603的正確模式中,建議跳轉(zhuǎn)7列而不是8列。實(shí)際跳轉(zhuǎn)的列數(shù)是對(duì)感興趣區(qū)303每個(gè)垂直位置yR建議的跳轉(zhuǎn)列數(shù)的最小值(最壞情況所有不是明顯地不匹配的位置必須在剩余掃描過(guò)程中被檢驗(yàn))。但是當(dāng)然,在輪廓圖像100之頂部的那些由于較小的水平列跳轉(zhuǎn)而必須被重新處理的空白區(qū)域,由于垂直跳躍將被快速地穿越。
雖然使用5個(gè)表格的變種特別快速,仍可以建立等價(jià)的像素位置結(jié)構(gòu)110,例如代替前三個(gè)表格,可以建立包括感興趣像素的(x,y)元組的單個(gè)(第六)表格,其中(x,y)元組被對(duì)應(yīng)于輪廓圖像100之連續(xù)行的連續(xù)組填充,即連續(xù)的y值。為了獲得如上所述的第四和第五表格,可以使用一種二元搜索標(biāo)準(zhǔn),直到第六表格中具有期望的行值y的一個(gè)元組被發(fā)現(xiàn)。接著可以為垂直部分301中最左側(cè)和最右側(cè)像素發(fā)現(xiàn)正確的索引,通過(guò)在第六表格中在索引增加或減小的方向移動(dòng),直到例如遇到具有大于XL的最小x值的元組。
取代如上所解釋的二元圖像,輪廓圖像100可以包含不等于0或1的值,例如0.5,如圖4所示。對(duì)于應(yīng)用這種輪廓圖像,可能有幾個(gè)原因,例如-輪廓圖像作為兩種不同的邊緣檢測(cè)操作的結(jié)果被獲得,值1指示兩種邊緣檢測(cè)器同意在該特定像素位置存在輪廓,0.5指示只有兩個(gè)邊緣檢測(cè)器之一檢測(cè)到邊緣的存在;或者-通過(guò)向二元輪廓圖像100應(yīng)用距離變換而獲得圖像,如上所述。
在某些應(yīng)用中,后一個(gè)例子很有用。對(duì)于輪廓圖像100中所有高于特定門限值的像素值計(jì)算匹配函數(shù),門限值例如為0.2或0。所述門限確定了一個(gè)像素是否是感興趣的。模板可以是二元的或具有多個(gè)值。從存儲(chǔ)的觀點(diǎn)看,二元模板是有利的,因?yàn)槿绻仨毚鎯?chǔ)并檢查許多不同的模板(例如單個(gè)物體形狀的旋轉(zhuǎn)或縮放版本)的話,如果模板輪廓窗口200的像素值是正數(shù)或?qū)崝?shù)而不是二元值,那么小的存儲(chǔ)器可能不夠用。此外,在操作數(shù)量的分布上存在差異,這也可被有利的使用。例如,如果待匹配的模板是一個(gè)兩像素的線段,那么在二元模板的情況中,對(duì)于每個(gè)評(píng)估位置只需執(zhí)行兩個(gè)像素比較(盡管利用在輪廓圖像100上的距離變換,通常需要檢驗(yàn)更多位置),而對(duì)于一個(gè)距離變換模板,需要執(zhí)行更多幾次比較。兩個(gè)選項(xiàng)——模板距離變換或輪廓圖像——中哪個(gè)更加經(jīng)濟(jì)取決于模板的形狀以及輪廓圖像100的物體內(nèi)容,即取決于感興趣區(qū)303的期望的跳轉(zhuǎn)。在動(dòng)態(tài)決策算法的情況中還可以實(shí)現(xiàn)加速。
通過(guò)利用處理器架構(gòu)的屬性(諸如MMX的單指令多數(shù)據(jù))可以獲得增加的處理速度。不是使用與模板輪廓窗口200一樣寬的感興趣區(qū)303,感興趣區(qū)303例如要寬8個(gè)像素。接著對(duì)于一個(gè)匹配模板可以并行地檢查8列。在這個(gè)例子中最小的水平跳轉(zhuǎn)為8列。
在具有不同尺寸、旋轉(zhuǎn)或者輕微透視變換的輪廓圖像必須進(jìn)行匹配的情況下,一個(gè)輪廓模板匹配策略通常與多個(gè)模板輪廓窗口200進(jìn)行匹配,所述模板輪廓窗口對(duì)于特定尺寸、旋轉(zhuǎn)等的每個(gè)不同組合包含一個(gè)模板。這意味著必須存儲(chǔ)大量的模板,需要很大的存儲(chǔ)器,并且這些模板中的每個(gè)都需要進(jìn)行匹配。按照本發(fā)明的這個(gè)實(shí)施例,為了有效地匹配那些通過(guò)幾何變換(例如旋轉(zhuǎn))而相關(guān)的輪廓,只需存儲(chǔ)所有這些模板的一個(gè)子集。圖5顯示了用于旋轉(zhuǎn)的這種原則的一個(gè)例子。如果為每一度方向變化存儲(chǔ)一個(gè)模板,大多數(shù)模板并不是那么地不同,只有在極端的情況,模板輪廓窗口200的值才會(huì)顯著的變化。因此,例如對(duì)于每個(gè)相對(duì)于參考方向的10度的倍數(shù)的旋轉(zhuǎn),只有一個(gè)模板輪廓窗口200。中間方向——例如9度——的模板503可以這樣被匹配通過(guò)將鄰居模板輪廓501(具有低于中間方向的最高方向角的那個(gè)模板,例如圖5中的0度)的像素值與輪廓圖像100中的像素進(jìn)行比較,這些值不是在鄰居模板輪廓501上這些像素值的相同位置,而是在偏移量(dx,dy)上,這可以從所述變換計(jì)算得到。通過(guò)察看模板輪廓窗口200而不是輪廓圖像100中的偏移量位置,可以獲得一個(gè)類似的結(jié)果,但是在這種情況中,通常模板輪廓窗口200被做的更大,并有可能使用距離變換而生成,所述距離變換為較大的距離引入了非零像素值。例如,指示圖5的例子中輪廓圖像100中哪些像素匹配的偏移量(dx,dy)為dx=r[cos(α+β)-cos(α)]dy=r[sin(α+β)-sin(α)] [方程5]其中r是到旋轉(zhuǎn)原點(diǎn)的距離,α是相對(duì)于模板輪廓窗口200中像素垂線的角度,β是中間方向與鄰居模板輪廓501的方向之間的方向差。對(duì)于不同模板,可以提前計(jì)算出偏移量并存儲(chǔ)在查看表中。通過(guò)距離變換來(lái)補(bǔ)償重疊誤差,即與要匹配形狀的相似性有一個(gè)折中。由于對(duì)于二次采樣方向(所有幾何變形的二次采樣集)的匹配已經(jīng)粗略地指示了更加精細(xì)的方向、尺寸等是什么,因此還存在速度增益。以這種方式可以使用快速搜索技術(shù)。
在其它實(shí)施例中,通常在例如使用高斯濾波進(jìn)行第一次濾波后,可以在二次采樣的輪廓圖像100上進(jìn)行匹配。或者,在縮放空間中可以使用分層匹配。精細(xì)或多步驟匹配策略也是可行的。例如,由于小的鉤孔或凹槽的存在,物體會(huì)不相同。在第一步驟中,物體被局部化,并在第二步驟中,在期望的位置檢驗(yàn)鉤孔的存在。
圖7顯示了一個(gè)用于分析物體輪廓圖像100的圖像處理裝置731。第一單元721被安排來(lái)在輪廓圖像100中感興趣區(qū)303的掃描路徑306上指定位置(xR,yR),例如如上所述,第一單元可以產(chǎn)生沿著輪廓圖像100的列的連續(xù)位置。它被安排將這個(gè)位置信息(或者如同在上面的例子中,至少是當(dāng)前要被掃描的列的y坐標(biāo))發(fā)送給第二單元723。第二單元被安排用來(lái)構(gòu)造第一表格111,第四表格311,第五表格313,并且如果需要,在與上面描述的一個(gè)方法相對(duì)應(yīng)的一個(gè)特定實(shí)現(xiàn)中,還有第二表格113和第三表格115。第二單元723被連接到存儲(chǔ)器715并被安排在這個(gè)存儲(chǔ)器715中存儲(chǔ)這些表格。所述存儲(chǔ)器典型地是一個(gè)存儲(chǔ)器芯片,但也可以是可拆卸的存儲(chǔ)器,諸如磁盤或通過(guò)網(wǎng)絡(luò)連接的遠(yuǎn)程裝置中的存儲(chǔ)器,以便生成的表格可以被單獨(dú)的圖像處理裝置用于其它處理。
用于物體檢測(cè)的圖像處理裝置732還可以包括一個(gè)匹配單元727,所述單元被安排以上面描述的感興趣區(qū)303中的變?cè)袼匾约澳0遢喞翱?00中的像素作為參數(shù)來(lái)計(jì)算匹配函數(shù),并且能夠訪問存儲(chǔ)器來(lái)存儲(chǔ)匹配結(jié)果。決策單元725被安排能夠訪問沿著掃描路徑306的當(dāng)前位置或當(dāng)前感興趣區(qū)303,并且能夠訪問存儲(chǔ)器725中的表格。決策單元725被安排通過(guò)一種或多種上面描述的方法來(lái)計(jì)算感興趣區(qū)303內(nèi)非零像素?cái)?shù)量的計(jì)數(shù)320。根據(jù)計(jì)數(shù)值,它被安排用來(lái)指令第一單元721跳轉(zhuǎn)到掃描路徑306的下一個(gè)位置,例如下面的1個(gè)或多個(gè)像素,或指令匹配單元727為感興趣區(qū)303的當(dāng)前位置計(jì)算匹配函數(shù)。
輪廓生成單元711被安排用來(lái)從灰度像素、彩色像素或以數(shù)學(xué)方法或其它方法生成的圖像中生成輪廓圖像100。在一個(gè)典型的應(yīng)用中,所述圖像是從相機(jī)701接收到的。
一個(gè)控制單元被安排用來(lái)基于由圖像處理裝置732獲得的物體輪廓匹配結(jié)果計(jì)算其它函數(shù),并且得出至少一個(gè)信號(hào)S。這個(gè)信號(hào)S可被輸出到例如一個(gè)機(jī)器人,指令該機(jī)器人拾取檢測(cè)到的物體。在一個(gè)安全系統(tǒng)中,檢測(cè)到的物體可以例如是車輛執(zhí)照牌,并且所述信號(hào)可以被輸出到柵欄或報(bào)警器。
所有處理部件,例如圖像處理裝置731,可以作為硬件實(shí)現(xiàn),例如一個(gè)ASIC,F(xiàn)PGA,或?qū)S秒娐钒?,或者運(yùn)行在專用或通用處理器上例如一臺(tái)個(gè)人計(jì)算機(jī)內(nèi)的軟件。所顯示的單元可被實(shí)現(xiàn)在多個(gè)或單個(gè)物理裝置上。
圖7顯示的一個(gè)示例應(yīng)用是產(chǎn)品線監(jiān)視。物體703,704沿著傳輸帶705前進(jìn)。圖像處理裝置732可能例如正在檢查一個(gè)部件是否被干凈地焊接在一個(gè)電路板上?;蛘?,從包裝上識(shí)別物體。
圖像處理裝置732還可以被集成在智能相機(jī)中,它被安排用來(lái)應(yīng)用變換,諸如基于所檢測(cè)到的物體的色彩校正或鏡頭變形校正,例如僅僅針對(duì)于該物體的校正。另一個(gè)應(yīng)用是包括這種智能相機(jī)的遠(yuǎn)程控制,如在EP申請(qǐng)02079816.1中所公開的。
一種更加與消費(fèi)者相關(guān)的設(shè)備是電視或具有顯示器的計(jì)算機(jī),它能夠處理接收到的圖像,例如圖標(biāo)或字幕可被變換成電視信號(hào)。
對(duì)于計(jì)算機(jī)程序產(chǎn)品,應(yīng)當(dāng)理解指令集合的任何物理實(shí)現(xiàn)使得通用或?qū)I(yè)處理器在一系列向處理器中加載指令的步驟之后,執(zhí)行發(fā)明的任何特殊功能。特別地,計(jì)算機(jī)程序產(chǎn)品可以被實(shí)現(xiàn)為諸如磁盤或磁帶的載體上的數(shù)據(jù),存儲(chǔ)器中的數(shù)據(jù),通過(guò)有線或無(wú)線網(wǎng)絡(luò)連接傳輸?shù)臄?shù)據(jù),或紙上的程序代碼。除了程序代碼,該程序所需的特征數(shù)據(jù)也可以被實(shí)現(xiàn)為計(jì)算機(jī)程序產(chǎn)品。
應(yīng)當(dāng)注意,上述實(shí)施例是為了舉例說(shuō)明而不是限制本發(fā)明。除了權(quán)利要求中所作的本發(fā)明之元素的組合外,這些元素的其它組合也是可行的。這些元素的任何組合可以被實(shí)現(xiàn)成單個(gè)專用元素。
權(quán)利要求中括號(hào)之間的任何參考符號(hào)不是為了限制權(quán)利要求?!鞍ā币辉~不排除存在沒有列在權(quán)利要求中的元素或方面。一個(gè)元素之前的詞“一個(gè)”不排除存在多個(gè)這種元素。
本發(fā)明可以通過(guò)硬件或運(yùn)行在處理器上的軟件的方式來(lái)實(shí)現(xiàn)。
權(quán)利要求
1.一種分析輪廓圖像(100)的方法,包括-指定一條由輪廓圖像(100)中的位置(xR,yR)構(gòu)成的掃描路徑(306),每個(gè)位置對(duì)應(yīng)于一個(gè)感興趣區(qū)(303);-構(gòu)造第一表格(111),所述第一表格為輪廓圖像(100)中每個(gè)非零像素包含至少一個(gè)位置坐標(biāo)(x);-構(gòu)造其表項(xiàng)與感興趣區(qū)(303)的位置相對(duì)應(yīng)的第四表格(311),所述第四表格為每條具有預(yù)定的方向并穿過(guò)感興趣區(qū)(303)的由像素構(gòu)成的平行線至少包含第一表格(111)中表項(xiàng)(121)的索引(312),對(duì)于給定的一個(gè)掃描方向,所述第一表格(111)中的表項(xiàng)(121)對(duì)應(yīng)于落在所述平行線上并且在感興趣區(qū)(303)內(nèi)部的輪廓圖像(100)的第一個(gè)非零像素;-構(gòu)造其表項(xiàng)與感興趣區(qū)(303)的位置相對(duì)應(yīng)的第五表格(313),所述第五表格為每條具有預(yù)定的方向并穿過(guò)感興趣區(qū)(303)的由像素構(gòu)成的平行線至少包含第一表格(111)中表項(xiàng)(121)的索引(312),對(duì)于給定的一個(gè)掃描方向,所述第一表格(111)中的表項(xiàng)(121)對(duì)應(yīng)于落在所述平行線上并且在感興趣區(qū)(303)內(nèi)部的輪廓圖像(100)的最后一個(gè)非零像素。
2.權(quán)利要求1所述的分析輪廓圖像(100)的方法,包括-指定由沿著一列向下并隨后跳向下一列的連續(xù)位置(xR,yR)構(gòu)成的掃描路徑(306);-構(gòu)造第一表格(111),所述第一表格為輪廓圖像(100)中的每個(gè)非零像素包含至少一個(gè)位置坐標(biāo)(x);-構(gòu)造第四表格(311),所述第四表格至少為每條由像素構(gòu)成的穿過(guò)感興趣區(qū)(303)的水平線包含第一表格(111)中表項(xiàng)(121)的索引(312),所述表項(xiàng)(121)對(duì)應(yīng)于落在所述水平線上并且在感興趣區(qū)(303)內(nèi)部的輪廓圖像(100)的最左側(cè)非零像素;-構(gòu)造第五表格(313),所述第五表格至少為每條由像素構(gòu)成的穿過(guò)感興趣區(qū)(303)的水平線包含第一表格(111)中表項(xiàng)(121)的索引(314),所述表項(xiàng)(121)對(duì)應(yīng)于落在相應(yīng)水平線上并且在感興趣區(qū)(303)內(nèi)部的輪廓圖像(100)的最右側(cè)非零像素。
3.權(quán)利要求2所述的分析輪廓圖像(100)的方法,包括-構(gòu)造第二表格(113),所述第二表格為輪廓圖像(100)的基本上每條水平線包含一個(gè)第一表格(111)中表項(xiàng)(121)的索引(123),所述表項(xiàng)(121)對(duì)應(yīng)于輪廓圖像(100)的相應(yīng)水平線上最左側(cè)非零像素;-構(gòu)造第三表格(115),所述第三表格為輪廓圖像(100)的基本上每條水平線包含一個(gè)第一表格(111)中表項(xiàng)(121)的索引(125),所述表項(xiàng)(121)對(duì)應(yīng)于輪廓圖像(100)的相應(yīng)水平線上最右側(cè)非零像素;-基于第一表格(111)、第二表格(113)和第三表格(115)構(gòu)造第四表格(311)和第五表格(311)。
4.權(quán)利要求1,2,3其中之一所述在輪廓圖像(100)中檢測(cè)物體的方法,進(jìn)而包括-基于第四表格(311)和第五表格(313),為沿著掃描路徑(306)的連續(xù)位置計(jì)算位于感興趣區(qū)(303)內(nèi)的非零像素?cái)?shù)量的計(jì)數(shù)(320);-如果該計(jì)數(shù)(320)大于或等于預(yù)定的像素?cái)?shù)量,使用感興趣區(qū)(303)中的像素以及模板輪廓窗口(200)中的像素作為參數(shù)計(jì)算一個(gè)匹配函數(shù),以獲得對(duì)模板輪廓與存在于感興趣區(qū)(303)中的輪廓圖像(100)的像素之間的匹配的指示;-如果該計(jì)數(shù)(320)小于預(yù)定的像素?cái)?shù)量,執(zhí)行到沿著掃描路徑(306)的另一個(gè)位置的跳轉(zhuǎn)。
5.權(quán)利要求4所述的在輪廓圖像(100)中檢測(cè)物體的方法,對(duì)于該方法,待檢驗(yàn)的模板輪廓是模板輪廓窗口(200)中模板輪廓的幾何變換,該方法包括-在輪廓圖像中的一個(gè)位置(x’,y’)為模板輪廓窗口(200)中的一個(gè)像素獲取相應(yīng)的像素,所述位置由模板輪廓窗口(200)中的該像素的位置(x,y)以及所述幾何變換確定;并且-基于模板輪廓窗口(200)中的像素與對(duì)應(yīng)的像素之間的相似性,計(jì)算匹配函數(shù)。
6.權(quán)利要求1,2,3,4,5其中之一所述的在圖像中檢測(cè)物體的方法,還包括-向該圖像應(yīng)用輪廓檢測(cè)來(lái)獲得輪廓圖像(100)。
7.一種用于分析輪廓圖像(100)的圖像處理裝置(731),包括-第一單元(721),被用來(lái)在輪廓圖像(100)中掃描路徑(306)上指定感興趣區(qū)(303)的位置(xR,yR);-第二單元(723),被用來(lái)構(gòu)造并在存儲(chǔ)器(715)中存儲(chǔ)如下內(nèi)容a)第一表格(111),所述第一表格(111)為輪廓圖像(100)中每個(gè)非零像素包含至少一個(gè)位置坐標(biāo)(x);b)第四表格(311),所述第四表格(311)為像素的每條穿過(guò)感興趣區(qū)(303)的平行線至少包含第一表格(111)中表項(xiàng)(121)的索引(312),對(duì)于給定的一個(gè)掃描方向,所述表項(xiàng)(121)對(duì)應(yīng)于落在相應(yīng)平行線上并且在感興趣區(qū)(303)內(nèi)部的輪廓圖像(100)的第一個(gè)非零像素;以及c)第五表格(313),所述第五表格為像素的每條穿過(guò)感興趣區(qū)(303)的平行線至少包含第一表格(111)中表項(xiàng)(121)的索引(314),對(duì)于給定的一個(gè)掃描方向,所述表項(xiàng)(121)對(duì)應(yīng)于落在相應(yīng)平行線上并且在感興趣區(qū)(303)內(nèi)部的輪廓圖像(100)的最后一個(gè)非零像素。
8.一種用于在輪廓圖像(100)中檢測(cè)物體的圖像處理裝置(732),包括權(quán)利要求7所述的圖像處理裝置(731),還包括-一個(gè)匹配單元(727),被用來(lái)以感興趣區(qū)(303)中的像素和模板輪廓窗口(200)中的像素作為參數(shù)計(jì)算匹配函數(shù);以及-一個(gè)決策單元(725),被用來(lái)基于第四表格(311)和第五表格(313)計(jì)算感興趣區(qū)(303)內(nèi)的多個(gè)非零像素的計(jì)數(shù)(320),如果該計(jì)數(shù)(320)小于預(yù)定的像素?cái)?shù)量,則該決策單元(725)被用來(lái)指令第一單元(721)沿著掃描路徑(306)跳向下一個(gè)位置,并且如果該計(jì)數(shù)(320)大于或等于預(yù)定的像素?cái)?shù)量,則該決策單元(725)被用來(lái)指令匹配單元(727)為當(dāng)前感興趣區(qū)(303)計(jì)算匹配函數(shù)。
9.一種工業(yè)視覺設(shè)備(700),包括權(quán)利要求7所述的圖像處理裝置(731)或權(quán)利要求8所述的圖像處理裝置(732),還包括-輪廓生成單元(711),被用來(lái)從一個(gè)可從照相機(jī)(701)中接收的圖像生成輪廓圖像(100);以及-控制單元(150),被用來(lái)根據(jù)匹配函數(shù)的結(jié)果輸出一個(gè)信號(hào)(S)。
10.一種智能相機(jī),包括權(quán)利要求7所述的圖像處理裝置(731)或權(quán)利要求8所述的圖像處理裝置(732),并且還包括-輪廓生成單元,被用來(lái)從照相機(jī)(701)所捕獲的圖像生成輪廓圖像(100);以及-圖像處理單元,被用來(lái)向被照相機(jī)捕獲的圖像的一個(gè)區(qū)域施加圖像變換,所述圖像區(qū)域是基于圖像處理裝置(731)檢測(cè)到的物體而確定的。
11.一種圖像顯示器,包括權(quán)利要求7所述的圖像處理裝置(731)或權(quán)利要求8所述的圖像處理裝置(732),并且還包括-輪廓生成單元,被用來(lái)從一個(gè)由圖像顯示器接收到的圖像生成輪廓圖像(100);以及-圖像處理單元,被用來(lái)向接收到的圖像的一個(gè)區(qū)域施加圖像變換,所述圖像區(qū)域是基于圖像處理裝置(731)檢測(cè)到的物體而確定的。
12.一種安全系統(tǒng),包括權(quán)利要求9所述的工業(yè)視覺設(shè)備(700)。
13.一種計(jì)算機(jī)程序產(chǎn)品,包括使得一個(gè)處理器能夠執(zhí)行方法1到6其中之一的程序代碼。
全文摘要
分析物體輪廓圖像(100)的方法可用于基于輪廓匹配的快速物體檢測(cè),包括指定一條由輪廓圖像(100)中感興趣區(qū)(303)的位置(xR,yR)構(gòu)成的掃描路徑(306),以便充分地處理輪廓圖像(100)的所有像素;構(gòu)造第一表格(111),該第一表格為所述輪廓圖像(100)中每個(gè)非零像素包含至少一個(gè)位置坐標(biāo)(x);構(gòu)造與所述感興趣區(qū)(303)之位置相對(duì)應(yīng)的第四表格(311),該第四表格為穿越所述感興趣區(qū)(303)的每條像素構(gòu)成的平行線至少包含關(guān)于所述第一表格(111)中一個(gè)表項(xiàng)(121)的索引(312),給定一個(gè)掃描方向,該表項(xiàng)對(duì)應(yīng)于落在相應(yīng)平行線上并且處于所述感興趣區(qū)(303)內(nèi)部的所述輪廓圖像(100)的第一個(gè)非零像素;并且構(gòu)造與所述感興趣區(qū)(303)之位置相對(duì)應(yīng)的第五表格(313),該第五表格為穿越所述感興趣區(qū)(303)的每條像素構(gòu)成的平行線至少包含關(guān)于所述第一表格(111)中一個(gè)表項(xiàng)(121)的索引(314),對(duì)于給定的一個(gè)掃描方向,該表項(xiàng)對(duì)應(yīng)于落在相應(yīng)平行線上并且處于所述感興趣區(qū)(303)內(nèi)部的所述輪廓圖像(100)的最后一個(gè)非零像素。
文檔編號(hào)G06K9/50GK1867928SQ200480030320
公開日2006年11月22日 申請(qǐng)日期2004年10月12日 優(yōu)先權(quán)日2003年10月17日
發(fā)明者A·J·M·范利爾, H·劉, C·尼科勒斯庫(kù), M·B·范利尤文 申請(qǐng)人:皇家飛利浦電子股份有限公司