1. 程式人生 > >基於PC的機器視覺系統設計

基於PC的機器視覺系統設計

         
      在決定一個機器視覺系統的需求及應用時,很多因素需要考慮。機器視覺(或稱為自動可視檢測系統)一般包含了大量部件,這些部件直接影響系統的效能。為了獲得這些子系統的優越效能,並無縫將他們接合在你的生產線上,最好花一些時間來學習視覺系統的組成、應用、以及正確的規劃的重要性。

      機器視覺的應用在對精度和可靠性都很高的重複性檢測任務中,機器視覺廣泛應用在這些生產流程中。一些常見的任務:
      在食物包裝中檢測資料程式碼;
      自動檢測部件用於正確的安裝;
     為機器人的撿起(pick)和放置(place)動作提供嚮導;
      在製藥中效驗藥品的顏色;
      讀取部件的條形碼、以及在產品上的標識;還有更多更多。
      基於PC的機器視覺系統的基本組成 由於機器視覺應用非常廣泛,在不同的系統裡使用不同的部件,但是,我們可以將這些部件分成如下幾類(見圖1)。

通常的機器視覺系統的主要組成:

      1. 攝像頭和光學部件 – 這一類通常含有一個或多個攝像頭和鏡頭(光學部件),用於拍攝被檢測的物體。根據應用,攝像頭可以基於如下標準,黑白RS-170/CCIR、複合彩色(Y/C),RGB彩色,非標準黑白(可變掃描),步進掃描(progressive-scan)或線掃描。


      2. 燈光 – 燈光用於照亮部件,以便從攝像頭中拍攝到更好的影象,燈光系統可以在不同形狀、尺寸和亮度。一般的燈光形式是高頻熒光燈、LED、白熾燈和石英滷(quartz-halogen)光纖。


      3. 部件感測器 – 通常以光柵或感測器的形式出現。當這個感測器感知到部件靠近,它會給出一個觸發訊號。當部件處於正確位置時,這個感測器告訴機器視覺系統去採集影象。


      4. 影象採集卡 – 也稱為視訊抓取卡,這個部件通常是一張插在PC上的卡。這張採集卡的作用將攝像頭與PC連線起來。它從攝像頭中獲得資料(模擬訊號或數字訊號),然後轉換成PC能處理的資訊。它同時可以提供控制攝像頭引數(例如觸發、曝光時間、快門速度等等)的訊號。影象採集卡形式很多,支援不同型別的攝像頭,不同的計算機匯流排。


      5. PC平臺 – 計算機是機器視覺的關鍵組成部分。應用在檢測方面,通常使用Pentium III或更高的CPU。一般來講,計算機的速度越快,視覺系統處理每一張圖片的時間就越短。由於在製造現場中,經常有振動、灰塵、熱輻射等等,所以一般需要工業級的計算機。


      6. 檢測軟體 – 機器視覺軟體用於建立和執行程式、處理採集回來的影象資料、以及作出“通過/失敗(PASS/FAIL)”決定。機器視覺有多種形式(C語言庫、 ActiveX控制元件、點選程式設計環境等等),可以是單一功能(例如設計只用來檢測LCD或BGA、對齊任務等等),也可以是多功能(例如設計一個套件,包含計量、條形碼閱讀、機器人導航、現場驗證等等)。


      7. 數字I/O和網路連線 – 一旦系統完成這個檢測部分,這部分必須能與外界通訊,例如需要控制生產流程、將“通過/失敗(PASS/FAIL)”的資訊送給資料庫。通常,使用一張數字I/O板卡和(或)一張網絡卡來實現機器視覺系統與外界系統和資料庫的通訊。


      配置一個基於PC的機器視覺系統認真的計劃和注意細節能幫助你確保你的檢測系統符合你的應用需求。如下是你必需考慮的幾點: 確定你的目標 – 這可能是最重要的一步 棗決定在這個檢測任務中你需要實現什麼,檢測任務通常分為如下幾類:


      1. 測量或計量


      2. 讀取字元或編碼(條形碼)資訊。


      3. 檢測物體的狀態


      4. 認知和識別特殊的特性模式識別
      5. 將物體與模板進行對比或匹配


      6. 為機器或機器人導航檢測流程可以包含只有一個操作或包含多個與檢測任務相關的任務。


      為了確認你的任務,首先你應該明確為了最大限度檢測部件你需要做的測試,也就是你能考慮到會出現的缺陷。為了明確什麼哪個才是最重要的,最好做一張評估表,列出“必須做”和“可以做”的測試。一旦主要的對測試標準滿意,隨後可以將更多的測試加進去來改善檢測過程,一定要記住,新增測試的同時也會增加檢測的時間。 確定你需要的速度 – 系統檢測每一個部件需要多少時間?這個不只是由PC的速度決定,還受生產流水線速度的影響。很多機器視覺包含了時鐘/計時器,所以檢測操作的每一步所需要的時間都可以準確測量,從這些資料,我們就可以修改我們的程式以滿足時間上的要求。通常,一個基於PC的機器視覺系統每一秒可以檢測20-25個部件,與檢測部件的多少和處理程式以及計算機的速度有密切關係。


       聰明地選擇你的硬體 – 一套機器視覺系統的效能與它的部件密切相關。在選擇的過程中,有很多捷徑特別在光學成像上可能很大程度降低系統的效率。如下是在選擇部件時你必須緊記的幾個基本原則。


       1. 攝像頭 攝像頭的選擇與應用的需求直接相關,通常考慮三點:


       a)黑白還是彩色;


       b)部件/目標的運動;


       c)影象解析度。


      在檢測應用中大部分使用黑白攝像頭,因為黑白影象能提供90%可視資料,並且比彩色便宜。彩色攝像頭主要用於一些需要分析彩色影象的場合裡。根據部件在檢測時是否移動,決定我們選擇標準隔行掃描攝像頭還是逐行掃描攝像頭。另外,影象的解析度必須足夠高,以提供檢測任務需要的足夠的資料。最後,攝像頭必須質量好和可以避免工業現場中的振動、灰塵和熱的影響。


      2. 光學部件和照明這個至關重要的因素往往被人所忽略。當你使用一個很差的光學部件或照明,就算你使用最好的機器視覺系統,它表現出的效能甚至比不上一個配上良好光學部件和適當照明的低能力系統。光學部件的目標是產生最好和最大可用面積的影象,並且提供最好的影象解析度。照明的目標是照亮需要測量或檢測的部分的關鍵特徵。通常,照明系統的設計由如下因素決定:顏色、紋理、尺寸、外形、反射率等等。


      3. 影象採集卡雖然影象採集卡只是完整的機器視覺系統的一個部件,但是它扮演一個非常重要的角色。影象採集卡直接決定了攝像頭的介面:黑白、彩色、模擬、數字等等。使用模擬輸入的影象採集卡,目標是儘量不變地將攝像頭採集的影象轉換為數字資料。使用不正確的影象採集卡可能得到錯誤的資料。工業用的影象採集卡通常用於檢測任務,多媒體採集卡由於它通過自動增益控制、邊緣增強和顏色增強電路來更改影象資料,所以不用在這個領域裡。使用數字輸入的影象採集卡的目標是將攝像頭輸出的數字影象資料轉換並輸送到PC中作處理。考慮各種變化:人類的眼睛和大腦可以在不同的條件下識別目標,但是機器視覺系統就不是這樣多才多藝了,它只能按程式編寫的任務來工作。瞭解你的系統能看到什麼和不能看到什麼能幫助你避免失敗(例如將好的部件認為是壞的)或其它檢測錯誤。一般要考慮的包括部件顏色、周圍光線、焦點、部件的位置和方向和背景顏色的大變化。


      4.正確選擇軟體:機器視覺軟體是檢測系統中的智慧部分,也是最核心的部分。軟體的選擇決定了你編寫除錯檢測程式的時間、檢測操作的效能等等。這篇部落格將市面上常見的機器視覺軟體都進行了總結,大家可以根據自己的需求來選擇。http://blog.sina.com.cn/s/blog_73621a320102vybd.html      


      5. 通訊和記錄資料:機器視覺系統的總的目標是通過區分好和壞的部件來實現質量檢測。為了實現這一功能,這個系統需要與生產流水線通訊,這樣才可以在發現壞的部件是做某種動作。通常這些動作是通過數字I/O板,這些板與製造流水線中的PLC相連,這樣壞的部件就可以跟好的部件分離。例外,機器視覺系統可以與網路連線,這樣就可以將資料傳送給資料庫,用於記錄資料以及讓質量控制員分析為什麼會出現廢品。在這一步認真考慮將有助於將機器視覺系統無縫與生產流水線結合起來。需要考慮的問題是:

      1. 使用了什麼型別的PLC,它的介面如何?
      2. 需要什麼型別的訊號?
      3. 現在使用或必須使用什麼型別的網路?
      4. 在網路上傳送的檔案格式是什麼?通常使用RS-232埠與資料庫通訊,來實現對資料的紀錄。

      為以後做準備:當你為機器視覺系統選擇部件時,時刻記住未來的生產所需和有可能發生的變動。這些將直接影響你的機器視覺軟硬體是否容易更改來滿足以後新的任務。提前的準備將不僅僅節約你的時間,而且通過在將來重用現有的檢測任務可以降低整個系統的價格。機器視覺系統的效能由最差的部分決定(就像一個木桶的容量由最短的一個木塊決定),精度則由它能獲取的資訊決定。花時間和精力合理配置系統就可以建造一個零故障和有彈性的視覺檢測系統。