<var id="3oqca"><source id="3oqca"><font id="3oqca"></font></source></var><button id="3oqca"><acronym id="3oqca"></acronym></button>
    <th id="3oqca"></th>
    <tbody id="3oqca"><pre id="3oqca"></pre></tbody>
    <th id="3oqca"></th>
      1. <th id="3oqca"></th>

          技術頻道

          娓娓工業
          您現在的位置: 中國傳動網 > 技術頻道 > 技術百科 > 基于角點和三角形內間距的多工件檢測方法

          基于角點和三角形內間距的多工件檢測方法

          時間:2021-10-20 22:24:55來源:慎正 胡超

          導語:?針對堆疊條件下工件的視覺檢測問題,該文提出了一種基于角點特征信息的三角形內間距 (Triangular Centroid Distances,TCDs) 描述子。首先,對目標局部輪廓角點和方向進行檢測;然后,基于檢測到的角點和方向信息在模板輪廓上生成疑似輪廓段;最后,對目標輪廓和模板上的疑似輪廓段提取改進后的描述子特征矩陣,并計算目標輪廓矩陣與各疑似輪廓特征矩陣之間的距離,其中距離最小的疑似輪廓段即為目標輪廓段在模板輪廓段上的匹配結果。實驗結果表明, 在相同取樣點的情況下,所提出的算法不僅識別準確率優于傳統三角形內間距算法,而且計算效率也大幅提升。

           1 引 言

            隨著工業生產自動化水平的提高,對工件自動化檢測的需求也在不斷增長。機器視覺測量技術因具有非接觸、精度高、速度快的優點,被廣泛地運用于生產線上的工件測量中。由于工件物體本身具有的剛性和規則性,工件圖像的輪廓能有效地體現目標物體的特征。但工業現場的工件堆疊遮擋會導致提取的工件輪廓缺失和斷裂。因此,對局部工件輪廓進行檢測,已成為研究熱點。

            Ianni 等在 1996 年時將部分輪廓在模板輪廓上的匹配問題描述為一個組合優化問題,并使用基于模擬退火算法和遺傳算法的改進搜索算法對其進行求解。之后,van Kaick 等在此基礎上提出了基于蟻群算法的局部形狀匹配方法,對局部輪廓匹配的組合優化問題求解得到概率最優路徑,同時獲得最佳的匹配結果。此后,各種利用形狀特征描述子的局部輪廓匹配方法也被相繼提出。主要包括基于輪廓點區域分布直方圖的形狀上下文描述子 (Shape Context)、基于輪廓內距離的形狀上下文描述子 (Inner-Distance Shape Contex) 和融合了全局與局部輪廓信息的精確型高度函數描述子 (Exact Height Function 1)。王燕妮等在針對建筑輪廓的識別中,提出了基于各種矢量描述和輪廓局部特征的局部輪廓識別算法。該算法根據不同建筑的矢量信息,制定了任意形狀輪廓匹配相似度準則及映射函數,能有效解決局部輪廓的匹配問題。黃浩等提出了利用形狀描述子將各輪廓轉換為信號數據,訓練反向傳播神經網絡,對復雜的管道網絡圖像完成了識別。文獻利用物體的局部輪廓大多為開輪廓的特性,提出一種基于輪廓點內間距的特征描述子。該描述子有旋轉、尺度和平移不變性,而且具有很好的仿射不變性。Yang 等在 2018 年提出三角形內間距 (Triangular Centroid Distances,TCDs) 算子。TCDs 算子對于平移、旋轉、縮放,以及相當大的形狀變形都有可靠的不變性。孫國棟等對TCDs 描述子和 EHF1(Exact Height Function 1) 描述子進行融合,利用 EHF1 算子對輪廓全局信息與局部信息融合的優點, 提出新的 TCDs 描述子。但為了有效地描述輪廓,TCDs 描述子需要在輪廓處密集地取采樣點,在和模板輪廓匹配時,局部輪廓按采樣點次序依次在模板輪廓上滑動,并進行相似度計算。這存在算法匹配時計算時間過長,且要處理采樣點起點不變的問題。針對以上問題,本文根據工件輪廓的角點特性,使用角點數量對模板輪廓進行初步劃分,獲取模板圖像中的疑似輪廓段,再根據角點位置重新選取采樣點,解決采樣點的起點不變性。最后再將局部輪廓和模板的疑似輪廓進行匹配,完成局部輪廓的識別。結果表明,在相同取樣點的情況下,本文算法的識別率高于傳統 TCDs 算法,并且算法耗時減少了 86%。

            2 輪廓角點提取

            對于輪廓的角點提取,傳統方法是提取輪廓上每一點的曲率,而輪廓的角點一般是輪廓上曲率值極大的點,所以可以通過提取輪廓上的曲率極值點來提取輪廓圖像的角點。本文采用構建輪廓點前后三角形的方式計算輪廓曲線上每一點的曲率值。具體方法是,將輪廓上每一點和其前后一定距離的兩點組成一個三角形,計算每個前后三角形中輪廓點所在角的角度, 作為該點的曲率值。這種計算曲率值的方法用時短,對于輪廓的細小突起也能起到明顯的平滑作用。該算法的原理如圖 1 所示。

            如圖 1 所示,對于一段輪廓序列,序列上的每一個點 P 都能組成圖 1 中所示的 ΔP-PP+ 。如果記 P-P 距離為 b、PP+ 距離為 a、 P-P+ 距離為 c,那么∠ P-PP+ 的大小 α 便可以表示點 P 的曲率。由于角度的余弦值在[0, 180] 的范圍內單調遞減,故可用小圖.png 值來表示∠ P-PP+ 的大小。

            獲取每個輪廓點所組成三角形的 小圖.png后,便可獲得如圖2 所示局部輪廓的曲率值序列。其中,曲率值序列的局部極大值點便是該輪廓的角點。

          輪廓點曲率原理圖.png

            圖 1 輪廓點曲率原理圖

            3 三角形內間距描述子

            TCDs 描述子于 2018 年提出,能很好地描述二維形狀。該作者在文中還提出了局部輪廓和模板輪廓的匹配方法,其原理如圖 3 所示。

            首先,假設圖 3 中紅色段為總輪廓的局部輪廓段,記為輪廓 P,隨后計算輪廓 P 的質心 G, 在 P 上均勻地取 N 個采樣點,對于每個采樣點Pi 來說,都可以與其他采樣點P(j j ∈ [1,N] j ≠ i)和質心 G 組成 N - 1 個三角形,記為 ΔPiPPj 。接著計算出每個 ΔPiPPj 的質心,記為 gij。其次,對于采樣點 Pi,計算 Pi 與 gij 之間的歐氏距離,獲得一組長度為 N - 1 的特征向量,該特征向量就是采樣點 Pi 的 TCDs 特征向量,記為 li。最后,按照輪廓點的次序提取輪廓 P 上所有采樣點的 TCDs 特征向量,記為 L=(l1,…,ln)。至此,輪廓 P 的 TCDs 描述子提取完成。而對于局部輪廓和模板輪廓的匹配問題,首先根據輪廓 P 的長度,在模板輪廓上取相同長度的輪廓段;然后,在模板輪廓上滑動輪廓段,計算每次滑動后輪廓段的 TCDs 特征矩陣,并計算特征矩陣與 L 的相似度;最后,選取模板輪廓中相似度最大的輪廓段作為匹配結果。

            輪廓點曲率值序列.png

          圖 2 輪廓點曲率值序列

            4 融合角點信息的三角形內間距描述子

            一般 TCDs 描述子提取的采樣點是在輪廓段上均勻地采樣,同時為了準確地描述輪廓,采樣點的間距不能過大。而這樣的采樣方式將導致在模板輪廓匹配的過程中模板輪廓段滑動次數過多,計算量較大。此外,在計算 TCDs 描述子時,局部輪廓采樣點起始點的改變會造成特征矩陣的變化,故一般會對提取的特征矩陣的每一行進行離散傅里葉變換,然后忽略傅里葉變換后的相位信息,只使用系數的大小,保證了描述子的起點不變性。但這樣會導致提取 TCDs 描述子的時間變長,而且起點不變性主要運用在兩個完整封閉形狀的匹配,在局部輪廓的匹配中實用性不強。

          公式1.png  (1)

            TCDs 算法原理圖.png

          圖 3 TCDs 算法原理圖

            采樣點分布.png

          圖 4 采樣點分布

          工件的局部輪廓.png 

           圖 5 工件的局部輪廓

            本文提出使用角點特征對模板輪廓段進行篩選,然后使用角點坐標對采樣點進行鎖定,再對局部輪廓提取 TCDs 特征矩陣,減少了計算量和計算步驟,具體方法如下。

            首先對于一段長度為 n 的局部輪廓,記為 P={pi=(xi, yi),i=1,2, …,n}, 其中(xi,yi)為輪廓點在二維圖像中的坐標。再根據公式 (1),對 P 提取角點,假設輪廓 P 共有 N 個角點,將每一個角點在輪廓序列 P 的序列位置記為 kj, j ∈ [1,N] ,那么角點 Pkj 可以將輪廓分為 N + 1 段,記輪廓 P={p1…pk1…pkj…pkn…pn}。

            使用角點對輪廓進行分段,輪廓段在結構上體現出平滑、穩定的特性,因此對角點間的輪廓段均勻取采樣點,可有效地反映整體的輪廓特征。如公式 (2) 所示,對 N + 1 段輪廓段的每一段均勻分成 S 份,便可得到整個輪廓的采樣點,記為 L。采樣點的分布如圖 4 所示。

            公式2.png(2)

            之后根據采樣點集 L 獲得輪廓 P 的 TCDs 特征矩陣。首先提取輪廓 P 的質心 G(xG,yG) ,為了簡化計算量,使用采樣點的坐標來計算質心。計算公式如下:

            公式3.png(3)

            對每一個采樣點 li 來說,可以與質心 G 及剩下的 n-1 個采樣點組成 n-1 個三角形。記這 n-1 個三角形的質心為 gij 。

            模板輪廓疑似輪廓段.png

          圖 6 模板輪廓疑似輪廓段

            而采樣點 l i 與 g i j 在圖像中的距離,便是 l i 點此處的輪廓點特征,記為,其中 的計算公式如下:

           公式4.png (4)

            而對于整段輪廓 P,則可提取出 (n - 1)×n 大小的特征矩陣,記為 TCDsP。

            公式5.png(5)

            為了獲得輪廓描述子的比例不變性,對 TCDsP 矩陣的每一行除以該行的最大值,如公式 (6) 所示:

            特殊的輪廓段.png

          圖 7 特殊的輪廓段

            公式6.png(6)

            至此,TCDs 特征矩陣的提取基本完成。隨后根據局部輪廓的角點信息在模板輪廓上提取疑似的輪廓段。由于本文的描述子算法簡化了方向不變性,所以從一開始就要對局部輪廓進行方向上的判定。

            如圖 5 所示,對于圖像的局部輪廓來說,若以 A 為起點, 則輪廓序列的遍歷方向為逆時針;若以 B 為起點,則輪廓序列的遍歷方向為順時針?梢,不同的輪廓起點導致輪廓遍歷方向的不同。為了判定局部輪廓的序列方向,首先可以將局部輪廓視作一個封閉的圖像,以 A → B → A 或 B → A → B 方向對輪廓點的二維坐標求曲線積分。若求得的值為正,則輪廓方向為逆時針;求得的值為負,則輪廓方向為順時針。為了節省計算時間,本文算法不對所有的輪廓點進行計算,而只計算輪廓的角點。設序列 J=[ ji=(xi,yi),i=1,2,…,n],其中 j1 與 jn 分別表示局部輪廓的起點和末點,其他點為局部輪廓的角點,(x i , y i ) 為對應角點 j i 在圖像中的二維坐標。設參數 F 為:

           公式7.png (7)

            若 F > 0,則局部輪廓的遍歷方向為逆時針;若 F < 0, 則局部輪廓的遍歷方向為順時針;若 F = 0,則表示局部輪廓為一條直線。

            獲得局部輪廓的遍歷方向后,便可以按照局部輪廓的方向在模板輪廓上生成疑似輪廓段。記模板輪廓為 D、角點個數為M、局部輪廓 P、角點個數為 N,那么顯然 N ≤ M。這樣模板輪廓就能分成 M 組,每組包含 N 個角點的疑似輪廓段。圖5 所示的局部輪廓上有 4 個角點,記輪廓起點 A 與第 1 個角點的距離為 L1,輪廓末點 B 與最后 1 個角點的距離為 L2。在模板輪廓上選取任意角點為起點,并按照公式 (6) 確定的遍離方向,在模板輪廓上依次選取包含 4 個角點的輪廓段,并在輪廓段的第 1 個角點和最后 1 個角點處,分別在模板輪廓上順延 L1 與 L2 的距離,獲得模板輪廓的一個疑似輪廓段。然后依次按確定的遍歷方向移動起始的角點,獲得剩下的疑似輪廓段,組成該模板的疑似輪廓段集合,具體如圖 6 所示。

            相似零件的匹配結果.png

          圖 8 相似零件的匹配結果

            疑似輪廓段集合按照上文方法提取 TCDs 特征矩陣,并與局部輪廓 P 的 TCDs 特征矩陣計算差異度,其中差異度最小的輪廓段便是局部輪廓 P 與該模板輪廓的匹配結果。

            提取模板的疑似輪廓后,需要考慮一種特殊情況:當局部輪廓的 L1、L2 過長時,某些模板的疑似輪廓段的長度會超出整個模板輪廓的長度。如圖 7 所示,顯然這些疑似輪廓段不是最相似的。為了節省計算時間,本文直接計算疑似輪廓段的長度,若疑似輪廓段長度超出整個模板輪廓的長度,則可直接剔除。

            算法流程圖.png

          圖 9 算法流程圖

            由于已經對輪廓 P 和模板輪廓進行采樣方向的統一,采樣點的位置也經過角點進行鎖定,所以輪廓 P 的 TCDs 特征矩陣和每個模板的疑似輪廓段的大小、方向都一致。因此, 直接按順序計算每個輪廓段 TCDs 特征矩陣中每個采樣點的特征向量的余弦相似度,再將這些向量的余弦相似度取均值,就可以得到兩個輪廓段的 TCDs 特征矩陣相似度。設輪廓 P 的采樣點個數為 n,那么輪廓 P 的 TCDs 特征矩陣為: TCDsP=[TCDsp1…TCDspn]。設輪廓 C 為輪廓 P 的疑似輪廓段, 輪廓 C 的 TCDs 特征矩陣為:TCDsC=[TCDsc1…TCDscn]。其中, TCDspi 和 TCDsci 是長度為 n-1 的一維特征向量。兩者的相似度 Dist(P,C)為:

            公式8.png(8)

            由公式 (8) 可得,Dist(P,C)取值范圍為 [0, 1],其中取值越接近 0 表示越匹配,越接近 1 表示越不匹配。雖然 TCDs 描述子具有較好的尺度不變性,但實際工件檢測過程中存在許多相似形狀,因此不同尺寸的工件,使用 TCDs 描述子將難以區分,如圖 8 所示。

            圖 8(a) 中標紅輪廓段為待檢測的目標輪廓段,圖 8(b、a) 為兩個形狀類似但尺寸不同的模板輪廓匹配結果。其中,圖8(b) 為正確的匹配結果,但目標輪廓段與圖 8(c) 的匹配結果也非常相似。為了正確區分不同尺寸的工件,本文根據輪廓的長度特征對兩輪廓的計算公式加以修正。設輪廓 P 的長度為lP、輪廓 C 的長度為 lC,那么修正后的輪廓相似度為Dis(t P,C):

            公式9.png(9)

            其中,δ 為長度差異的控制系數,主要是為了控制長度差異對輪廓相似度的影響,一般 δ 的取值范圍在 [0, 1],主要體現形狀輪廓相似的優先性。經過多次實驗驗證,δ 取 0.1 時實驗效果最為理想。本文的算法流程如圖 9 所示。

            5 實驗結果

            本文從檢測速度和檢測精度兩方面來驗證檢測算法的性能。首先,選取 6 種形狀和大小不同的工件,每種工件取不同角度、不同視角下的輪廓圖各 11 張。每張工件圖中隨機選取6 段工件的局部輪廓,共提取出 600 張工件的局部輪廓樣本,并給每一個工件使用不同視角的 3 張圖片作為模板,取 3 張模板中相似度值最接近的輪廓段作為模板的匹配結果,具體流程如圖 10 所示。

           匹配流程圖.png 

          圖 10 匹配流程圖

           局部工件輪廓的匹配結果.png 

          圖 11 局部工件輪廓的匹配結果

            圖 11 為實驗匹配結果。其中,圖 11 第 1 列標紅的輪廓為待配結果,綠色框表示和待檢測輪廓最相似的工件輪廓。對于待檢測的部分輪廓,即便不是對應的正確工件,也能在相應的工件輪廓中找到最相似的疑似輪廓段,很好地體現了 TCDs 描述子對形狀的敏感性?梢,對于形狀相似但大小不同的工件局部輪廓,本文算法也能正確完成識別。

            圖 12 為本文算法在堆疊工件圖像的匹配結果。其中,不同顏色分別表示不同的識別結果。例如,工件輪廓標注為紫色, 那就說明該工件被識別為下方為紫色的模板工件,并在模板工件上給出匹配的輪廓段和相似度。

            在堆疊情況比較復雜時,如圖 13 所示被標紅的輪廓段為工件堆疊較為嚴重的區域,堆疊物體的輪廓線互相覆蓋,局部輪廓段的角點位置和個數被改變,造成該輪廓段不能識別或者識別錯誤的情況。在輪廓線影響不嚴重的區域,一般忽略重疊輪廓線的影響,將重疊輪廓段作為獨立的目標輪廓段進行匹配, 匹配結果如圖 14 所示。而對于堆疊物體的輪廓線影響較嚴重的圖片,本文算法很難識別提取出來的局部輪廓段,這是本文算法的不足之處。

            從公式 (2) 可知,對于一段待檢測的局部輪廓,本文算法的采樣點選取是通過對輪廓段進行角點分割,然后在角點分割段中均勻取樣。這樣的采樣方法能充分利用角點間輪廓段平滑的特性,少量取點也能很好地描述輪廓。角點輪廓段內不同采樣點個數對識別正確率的影響如圖 15 所示。

            從圖 15 可知,當每個角點間的采樣點數為 6 個時,識別率達到了較高值,且采樣點個數最少。因此本文算法對輪廓的采樣點個數為 (n + 1)×6(n 為局部輪廓上的角點個數 )。

            表 1 為不同局本輪廓匹配算法在單一模板的匹配時間,

          堆疊工件圖像的匹配結果.png

            圖 12 局部工件輪廓的匹配結果

           復雜的堆疊工件圖像.png

           圖 13 復雜的堆疊工件圖像

          復雜的堆疊工件圖像1.png

            圖 14 復雜的堆疊工件匹配結果

          采樣點個數對準確率的影響.png 

           圖 15 采樣點個數對準確率的影響

            由于本文算法的采樣點數量和輪廓內角點數量相關,而傳統TCDs 算法都為固定數目的采樣點,為了保證算法比較的公平性,TCDs 算法的采樣點數目限定為 (n + 1)×6 個。從表 1 可以看出,與傳統的 TCDs 輪廓匹配方法相比,本文算法的計算效率有明顯的提升。

            為了體現本文算法的識別精度,將傳統 TCDs 匹配算法、形狀上下文 (Shape Context) 匹配算法、基于 Shape Context 描述子的 BP(Back Propagation) 神經網絡算法和本文算法,在不同遮擋比例下的識別率進行計算。根據上文所提到的,由于本文算法是根據目標局部輪廓的角點個數來形成采樣點個數,所以 TCDs 匹配算法和 SC( 形狀上下文 ) 匹配算法的采樣點個數均為 (n + 1)×6 個,而 SC + BP 神經網絡算法則使用固定的采樣點個數進行網絡的訓練和識別,大小和本文算法的數量級相同。實驗對比結果如表 2 所示。從表 2 可知,

            本文算法在不同的局部輪廓比例的識別率均優于以上 3 種算法。在采樣點數量較少的情況下,本文算法根據輪廓角點位置的采樣方法對輪廓的描述精度有明顯的提升。

            6 結論

            本文針對工件被遮擋只能提取局部輪廓的問題,提出一種基于 TCDs 描述子的改進局部輪廓匹配算法。首先,利用局部輪廓的角點信息在模板輪廓上尋找到相對應的疑似輪廓,這大大縮短了傳統 TCDs 算法在模板匹配上滑動匹配的計算時間。其次,在描述子的采樣點上,根據輪廓的角點分布,在輪廓段的角點間均勻取樣,充分利用了角點間輪廓段平滑的特性,大大減少了采樣點的數量。而且,本文簡化了傳統 TCDs 算法解決起點不變性的步驟。最后,通過統一局部輪廓和模板輪廓的遍歷方向,保證了局部輪廓和模板輪廓中疑似輪廓方向的一致性。通過對工件局部輪廓和模板輪廓疑似輪廓段的相似度比較, 獲得局部輪廓在不同模板輪廓的匹配結果,實現局部工件輪廓的目標匹配。實驗結果表明,與傳統的 TCDs 算法相比,本文算法時間效率有明顯的提升。在不同的局部輪廓比例和少量采樣子的情況下,本文算法對局部輪廓的識別率均優于傳統算法。其中,當局部輪廓的比例為 60% 時,本文算法的識別率依然高于 90%。但本文算法也存在不足之處:當堆疊物體的輪廓線影響較嚴重時,由于局部輪廓段的角點信息被破壞,算法難以識別該局部輪廓。

           算法計算時間.png

           表 1 算法計算時間

           不同遮擋比例的識別率.png

           表 2 不同遮擋比例的識別率

                

           作者:慎正 1 胡超 2

            1 江西理工大學電氣工程與自動化學院

            2 浙大寧波理工學院信息科學與工程學院轉載自《集成技術》



          標簽: 機器視覺

          點贊

          分享到:

          上一篇:英威騰 Goodrive350-19 變頻...

          下一篇:微 / 納米機器人在生物醫學中...

          中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.kumys.net)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

          本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

          網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

          中國傳動網-工業自動化與智能制造的全媒體“互聯網+”創新服務平臺

          網站客服服務咨詢采購咨詢媒體合作

          Chuandong.com Copyright ?2005 - 2022 ,All Rights Reserved 版權所有 粵ICP備 14004826號 | 營業執照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號

          国语自产偷拍精品视频偷拍
          <var id="3oqca"><source id="3oqca"><font id="3oqca"></font></source></var><button id="3oqca"><acronym id="3oqca"></acronym></button>
            <th id="3oqca"></th>
            <tbody id="3oqca"><pre id="3oqca"></pre></tbody>
            <th id="3oqca"></th>
              1. <th id="3oqca"></th>