<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 機(jī)器視覺軟件 sherlock 在零件對(duì)準(zhǔn)方面的應(yīng)用

          機(jī)器視覺軟件 sherlock 在零件對(duì)準(zhǔn)方面的應(yīng)用

          ——
          作者:作者:西安春秋視訊技術(shù)有限責(zé)任公司 供稿 時(shí)間:2007-01-26 來源:《今日電子》 收藏

          概述

          在機(jī)器視覺檢測(cè)過程中,需要夾具對(duì)每一個(gè)被檢測(cè)零件進(jìn)行定位,保證光源照射到零件,讓相機(jī)能拍攝到被照射的零件,使位置傳感器能夠在同一位置進(jìn)行觸發(fā),防止零件發(fā)生晃動(dòng)或旋轉(zhuǎn)。當(dāng)每一個(gè)所要檢測(cè)的零件到達(dá)檢測(cè)區(qū)域時(shí),視覺系統(tǒng)就對(duì)它進(jìn)行檢測(cè)。但是在很多情況下,即使夾具特別精確,也不能保證不發(fā)生位置變化,零件不可能總是準(zhǔn)確定位在期望的位置,即零件不能重復(fù)地關(guān)于攝像機(jī)定位,如圖1所示。

          本文引用地址:http://www.ex-cimer.com/article/20797.htm

          在很多情況下,這種未對(duì)準(zhǔn)情況可以通過使用相關(guān)的測(cè)量方法進(jìn)行補(bǔ)償。例如,在sherlock軟件中可以得到零件的長(zhǎng)度,方法是使用線感興趣區(qū)域(peek)找到所要測(cè)量的端點(diǎn),然后使用距離公式計(jì)算兩個(gè)端點(diǎn)之間的距離。這樣,測(cè)量值將保持恒定,即使零件移動(dòng)了一點(diǎn)位置,只要它沒有移動(dòng)很遠(yuǎn),它的一個(gè)端點(diǎn)沒有移出相應(yīng)的線區(qū)域即可。

          然而在某些情況下,需要絕對(duì)對(duì)準(zhǔn)。如果使用理想模板,或者要測(cè)量一個(gè)小零件,不考慮零件位置的正常變化,過度擴(kuò)大感興趣區(qū)域,將不太可能保證魯棒性。在這些情況下,利用機(jī)器視覺軟件sherlock的定位點(diǎn)(landmark)就很容易解決零件不能對(duì)準(zhǔn)的問題。

          零件對(duì)準(zhǔn)的工作過程

          當(dāng)被檢測(cè)零件不在最初訓(xùn)練的位置時(shí),sherlock的零件對(duì)準(zhǔn)功能依靠定位點(diǎn)自動(dòng)找到所要檢測(cè)的位置。所有點(diǎn)的讀數(shù)都可以在讀數(shù)編輯對(duì)話框中標(biāo)記為定位點(diǎn)。通過指令返回定位點(diǎn)標(biāo)記的點(diǎn)的位置,然后根據(jù)定位點(diǎn)的位置對(duì)所要處理的感興趣區(qū)域進(jìn)行自動(dòng)定位。

          ● 零件只發(fā)生移動(dòng)時(shí)的對(duì)準(zhǔn)


          當(dāng)所檢測(cè)的零件只發(fā)生x方向或y方向的移動(dòng)時(shí),只需要一個(gè)定位點(diǎn)進(jìn)行定位就可以實(shí)現(xiàn)自動(dòng)對(duì)準(zhǔn),操作過程如下。

          (1)首先在所拍攝的合格零件圖像上選定一個(gè)點(diǎn)作為定位點(diǎn),如利用矩形感興趣區(qū)域的smartsearch分析算法對(duì)零件的某一特征部分進(jìn)行訓(xùn)練,將該特征的最佳點(diǎn)(best point)作為定位點(diǎn)。

          (2)將矩形感興趣區(qū)域的范圍拉大,使所檢測(cè)零件上與所訓(xùn)練的特征相應(yīng)的特征部分總在該感興趣區(qū)域范圍內(nèi)。

          (3)對(duì)需要檢測(cè)的區(qū)域進(jìn)行訓(xùn)練,添加相應(yīng)的程序。

          (4)運(yùn)行所做的檢測(cè)程序,當(dāng)零件位置發(fā)生移動(dòng)時(shí),所要檢測(cè)部位的感興趣區(qū)域就會(huì)根據(jù)定位點(diǎn),自動(dòng)精確地找到所要檢測(cè)部位進(jìn)行檢測(cè)。

          在圖2中,將十字架作為訓(xùn)練的模板,十字架的中心作為定位點(diǎn),需要檢測(cè)的位置為梳狀齒。當(dāng)零件發(fā)生移動(dòng)時(shí),感興趣區(qū)域b可以自動(dòng)找到所要檢測(cè)的位置。

          ● 零件既發(fā)生移動(dòng)又有旋轉(zhuǎn)時(shí)的對(duì)準(zhǔn)

          當(dāng)被檢測(cè)零件相對(duì)與訓(xùn)練模板在位置上既有x、y方向移動(dòng),又發(fā)生旋轉(zhuǎn)時(shí),一個(gè)定位點(diǎn)就不能找到所要檢測(cè)的位置。在sherlock中使用兩個(gè)定位點(diǎn)就能實(shí)現(xiàn)自動(dòng)對(duì)準(zhǔn)。其中,一個(gè)定位點(diǎn)計(jì)算移動(dòng)的信息,另一個(gè)計(jì)算旋轉(zhuǎn)的信息。操作過程如下。

          (1)在所拍攝的合格零件圖像上選定兩個(gè)可以被可靠定位的特征點(diǎn)作為定位點(diǎn)進(jìn)行訓(xùn)練。

          (2)訓(xùn)練完成后,分別將兩個(gè)特征點(diǎn)的感興趣區(qū)域拉大,使每一個(gè)特征點(diǎn)都在自己的感興趣區(qū)域范圍內(nèi)。

          (3)對(duì)需要檢測(cè)的區(qū)域進(jìn)行訓(xùn)練,添加相應(yīng)的程序。

          (4)運(yùn)行檢測(cè)程序,當(dāng)零件位置既發(fā)生移動(dòng),又發(fā)生旋轉(zhuǎn)時(shí),所要檢測(cè)部位的感興趣區(qū)域就會(huì)根據(jù)定位點(diǎn),自動(dòng)精確地找到所要檢測(cè)部位進(jìn)行檢測(cè)。

          零件位置發(fā)生旋轉(zhuǎn)時(shí),也可以使用三個(gè)定位點(diǎn)實(shí)現(xiàn)對(duì)準(zhǔn),假定第一點(diǎn)相對(duì)于零件來說是一個(gè)固定點(diǎn),隨后的兩點(diǎn)只被用來計(jì)算旋轉(zhuǎn)信息。記錄下點(diǎn)之間的原始角度,找出運(yùn)行時(shí)的新角度,通過新角度和原始角度之間的比較,計(jì)算出旋轉(zhuǎn)距離,從而實(shí)現(xiàn)零件對(duì)準(zhǔn)。

          ● 使用smart search360的結(jié)果來實(shí)現(xiàn)零件對(duì)準(zhǔn)

          sherlock軟件中的分析算法smart search360是一個(gè)模式識(shí)別的分析算法,該算法可識(shí)別旋轉(zhuǎn)的物體,也可以實(shí)現(xiàn)零部件對(duì)準(zhǔn)。smart search360的返回結(jié)果中有一個(gè)最佳點(diǎn)和一個(gè)最佳角度。使用點(diǎn)的轉(zhuǎn)換函數(shù)formula—align把該點(diǎn)和該角度轉(zhuǎn)換成兩個(gè)定位點(diǎn),從而實(shí)現(xiàn)零件對(duì)準(zhǔn)。



          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();