国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于機器視覺缺陷檢測可重構系統(tǒng)的設計與實現(xiàn)

2018-12-15 07:05:36郭永平劉淑娟
電子設計工程 2018年23期
關鍵詞:圖像處理機器閾值

郭永平,劉淑娟

(1.寶雞文理學院計算機學院,陜西寶雞721016;2.寶雞文理學院圖書館,陜西寶雞721016)

基于機器視覺的產品缺陷檢測系統(tǒng)是使用計算機攝取圖像模擬人的視覺功能用來處理真實物體的圖像。通過分析圖像獲得所需信息,進而控制機器運動裝置,實現(xiàn)產品質量檢測的應用系統(tǒng)。一個完整的基于機器視覺的缺陷檢測系統(tǒng)是由光學系統(tǒng)、圖像采集單元、圖像處理單元、執(zhí)行機構及人機界面等眾多功能模塊共同組成,所有功能模塊相輔相成,缺一不可。如果將光學系統(tǒng)和圖像采集模塊比作人體的眼睛,下位機分揀等執(zhí)行機構比作手臂,那么以數(shù)字圖像技術為主體的軟件處理模塊就是系統(tǒng)的大腦,是分析和指揮系統(tǒng),是開發(fā)缺陷檢測系統(tǒng)的核心[1-2]。

缺陷檢測軟件處理模塊首先將被攝取目標轉換成圖像信號,傳送給專用的圖像處理系統(tǒng),根據(jù)像素分布和亮度、顏色等信息,轉變成數(shù)字化信號;再由圖像系統(tǒng)對這些信號進行各種運算來抽取目標的特征,進而根據(jù)判別的結果來控制現(xiàn)場的設備動作[3]。近年來,隨著中國工業(yè)4.0版本的推出,智能制造風生水起,引發(fā)了一場技術和產業(yè)革命,基于機器視覺的各種系統(tǒng)廣泛的應用在測量、運動控制、物流篩選、農產品優(yōu)選等各個領域,工業(yè)生產過程中的質量檢測尤為廣泛[4]。

但對位于制造業(yè)末端的零部件制造中小代工企業(yè)來說,如何檢測多種規(guī)格不同、形狀各異的零件,降低基于機器視覺的產品缺陷檢測系統(tǒng)的使用成本,是破解自動檢測系統(tǒng)在這些企業(yè)普及的關鍵。在檢測系統(tǒng)中由于檢測標的物的形狀、運動過程、照明和檢驗要求不同,尚未有具備通用能力的單一算法,不同的標的物圖像處理過程基本是一事一議,不同的標的物都需要開發(fā)處理過程不同檢測處理模塊[5]。中小代工企業(yè)的產品是根據(jù)客戶訂單,生產多種規(guī)格不同、形狀各異的零件,不同的產品需要進行相應的投資改造,使用成本過高。為此,本文提出了機器視覺系統(tǒng)中軟件一種新的設計方案,通過軟件配置組合不同的圖像處理算法,完成多種零部件的缺陷檢測,降低開發(fā)成本和使用成本。

1 需求分析

1.1 缺陷檢測過程

缺陷檢測系統(tǒng)的軟件模塊是據(jù)外媒觸發(fā)信號進行圖像采集,繼而完成圖像的畸形校正,增強、分割、提取分析、測量,融合處理判定,將判定結果傳送至下位機,由下位機執(zhí)行分揀。一個典型的檢測執(zhí)行過程如圖1所示。

圖1 機器視覺程序整體執(zhí)行流程圖

1.2 軟件模塊功能需求

軟件模塊包括參數(shù)設置、圖像處理與特征提取、綜合判定和人機交互等功能模塊[2]。

1.2.1 參數(shù)設置

為了保障程序高效、準確地執(zhí)行檢測任務,設置相關的相機參數(shù)、閾值及為了減少運算量而進行的劃分感興趣區(qū)域(Region Of Interest,ROI)設置。

1.2.2 圖像處理與特征提取

根據(jù)選定的算法、閾值等參數(shù),進行圖像校正,增強、分割、特征提取、測量等過程[6-8]。

1.2.3 綜合判定

融合各部位的處理結果進行判定,將處理指令傳送至下位機進行分揀操作。

1.2.4 人機交互

進行檢測監(jiān)控和檢測結果的統(tǒng)計分析等內容。

1.3 當前主流缺陷檢測模塊的設計方法

目前市場上缺陷檢測系統(tǒng)的軟件模塊大部分是針對某一檢測標的進行的定制化開發(fā)。功能上包括設置模塊和檢測模塊兩部分,前者完成相機標定,相機參數(shù)設置、ROI及各種閾值設置等[9-12];后者執(zhí)行根據(jù)閾值設置和選定算法進行圖像分析處理,完成檢測任務。這種設計方式優(yōu)點是程序執(zhí)行效率高,對某一具體產品的檢測有很好的應用效果。同時,這種設計存在很多問題,描述如下。

1.3.1 通用性差

無論是設置模塊,還是檢測模塊,均為執(zhí)行具體的檢測標的物展開的,是經過分析檢測環(huán)境條件和檢測需求而展開的,采用的算法是以硬編碼的形式固化到檢測程序中,當檢測需求發(fā)生變化時,必須更改原有代碼來完成擴展操作,違背了軟件開發(fā)的開閉原則。

1.3.2 擴展困難

設置模式和檢測模式的應用場景不同,將二者集成到一套軟件中,使得二者緊密耦合,擴展設置模式時,必須連同檢測模塊進行修改,增加了擴展難度和測試成本。如:設置模塊增加機器學習功能時,只是要取得和記錄缺陷的特征信息,代碼和檢測模塊無關,但集成測試時需要連同檢測模塊一起做功能測試。

1.3.3 實施難度大

算法選擇、參數(shù)設置和閾值率定、ROI設置,通常依賴于實施人員的經驗和水平,實施人員缺乏必要的分析實施工具。

1.3.4 處理算法改造困難,使用成本高

這些軟件大部分選用HALCON、VISIONPRO商業(yè)的算法庫算法包,無法對其內部的算法進行改造,不利用對圖像處理算法庫進行擴展。同時采用定制開發(fā)和商業(yè)算法庫,造價高,不利于小企業(yè)推廣使用。

2 系統(tǒng)設計

2.1 設計目標

設計一種針對空洞、褶皺、劃痕、斑點、顏色等缺陷檢測的在線檢測軟件(以下簡稱檢測程序),使其能夠動態(tài)的按照配置文件設定的執(zhí)行步驟和處理算法進行執(zhí)行處理,完成缺陷的檢測過程,滿足不同標的物的檢測需求。此種方式的設計使得檢測程序職責單一化,并使得檢測程序依賴于算法接口,而非具體的算法,具體的算法通過類的反射技術,在運行時根據(jù)配置文件進行創(chuàng)建[13-14]。同時增加用于現(xiàn)場分析實驗工具(以下簡稱實驗程序),使實施人員能夠根據(jù)檢測要求,完成參數(shù)、閾值率定、ROI設置,圖像處理算法優(yōu)選等,并將設置的結果按照檢測項目進行持久化存儲。經過分離設計后實驗程序不再是檢測程序附屬的設置模塊,而是成為運行維護人員用于比較分析的實驗工具,同時,檢測程序職責也進行單一化處理,降低了維護成本。

2.2 架構設計

試驗程序將每種標的物的檢測定義為一個檢測項目,其后專注此項目各種參數(shù)、閾值率定、ROI設置和圖像算法優(yōu)選,將最終的結果持久化存儲[15]。檢測程序讀取配置文件(CONFIG)中的項目信息,由持久化存儲提取該項目的存儲設置信息,匹配執(zhí)行相應算法,生成實例執(zhí)行檢測過程,并將檢測結果進行輸出。系統(tǒng)設計架構如圖2所示。

圖2 實驗平臺和檢測平臺工作示意圖

以下設計要點,是檢測程序正確執(zhí)行的保障。

一種檢測標的為一個檢測項目,閾值、參數(shù)、ROI、算法優(yōu)選等結果均是針對指定的項目展開。標的物發(fā)生變化時,只需在實驗平臺新建一個項目,將設置的結果存儲到數(shù)據(jù)庫中。

將圖像處理算法按照圖像矯正、二值化、濾波、邊緣提取、梯度、分割、提取等進行分類封裝,將不同的算法封裝成具有相同接口的具體類,便于動態(tài)調用。

檢測程序采用設計模式中的策略模式和工廠模式,利用類的反射技術完成設置部分實例的創(chuàng)建,實現(xiàn)對不同算法的可配置化動態(tài)利用。

試驗程序和檢測程序圖像處理算法使用同一的算法庫的算法,確保執(zhí)行的正確性。

2.3 算法庫的選擇

OPENCV(Open Source Computer Vision Library),是Intel公司面向應用程序開發(fā)者開發(fā)的計算機視覺庫,實現(xiàn)了圖像處理、計算機視覺、機器學習方面很多通用算法,輕量級而且高效。它提供了python、C++、Mat Lab等語言的接口,極大地方便了實時的圖像處理、計算機視覺以及模式識別程序的二次開發(fā)[16-17]。Open CV的絕大部分模塊遵循較寬松的BSD協(xié)議。即對商業(yè)應用較為友好,允許在商業(yè)軟件中使用甚至修改遵循該協(xié)議的代碼或庫,而商業(yè)軟件本身代碼無須開源,即允許閉源商業(yè)化應用,僅要求保留原有開源版權聲明[2]。OpenCV可以對其內部的算法進行改造,利于形成自己獨立的視覺應用算法庫,因此選擇OpenCV。

2.4 設計優(yōu)勢

將傳統(tǒng)的檢測程序中的檢測運行模式和設置運行模式進行分離,使得獨立出來的試驗程序擴展性增強,如:提供圖像處理算法對比和優(yōu)選,增加機器學習等功能。檢測程序職能單一化,程序結構更加明晰。同時降低了二者之間的耦合度,試驗程序和檢測程序獨立開發(fā),互不影響,降低了維護和測試成本,提高了軟件復用度。

3 系統(tǒng)實現(xiàn)

3.1 開發(fā)平臺選擇

實驗程序開發(fā):實驗程序對實時性要求不高,同時考慮后續(xù)機器學習的擴展性及開發(fā)成本,開發(fā)語言選擇python3.4,交互界面選擇wxPython。

檢測程序開發(fā):采集過程不能影響原有生產線的工作效率,選擇VS2012中的C++。

數(shù)據(jù)庫選擇:持久化存儲選用SQLLite3,主要用來存儲配置信息和檢測結果信息,數(shù)據(jù)量不大,而SQLite是一款輕型的嵌入式數(shù)據(jù)庫,具有占用資源低、運行速度快等特點,可以直接打包到安裝文件中,因此選擇SQLite。

3.2 試驗程序功能設計

試驗程序對每種標的物分別創(chuàng)建一個項目,在項目管理的基礎上,進行相機參數(shù)設置及相機標定系數(shù)計算、ROI的設置;處理算法優(yōu)選、閾值設置、機器學習等功能。功能上主要由項目管理、參數(shù)設置、算法優(yōu)選和機器訓練等模塊。如圖3所示。

圖3 配置程序功能組成及關系圖

3.2.1 項目管理

針對不同的檢測需求,即不同的零部件,設置為一個項目,記錄項目名稱、零部件的規(guī)格參數(shù)、檢驗要求、標準圖像等信息。項目管理內容包括相機標定、相機參數(shù)設置、ROI設置、檢測流程設置、詳細參數(shù)設置等。

3.2.2 項目參數(shù)設置

設置相機曝光度、分辨率等,同大部分檢測程序相機參數(shù)設定;使用方框、圓、橢圓、不規(guī)則多邊形等方式勾勒出需要處理的區(qū)域,完成ROI的設置。

3.2.3 圖像分析算法優(yōu)選

對于某一類問題的圖像處理算法很多,但每種算法均具有一定的使用條件和場景,本模塊給系統(tǒng)維護人員提供了一系列篩選工具,在根據(jù)需求的基礎上,實施人員需要仔細甄別和優(yōu)選,對圖像處理算法進行優(yōu)選組合,提高檢測精度。如:二值化處理算法中,封裝了簡單閾值、自適應閾值、Otsus二值化等方法,用戶可以根據(jù)圖像分析工具,查看處理結果,率定閾值和方法選擇。目前可供選擇的算法如表1所示。

3.2.4 機器學習

利用OPENCV提供的機器學習算法及python中numpy和scipy類庫提供的強大計算功能,使用一組樣本訓練機器,記錄缺陷的特征值,使檢測程序在分析判斷時更準確,減少誤檢和漏檢幾率。

表1 系統(tǒng)內置算法一覽表

3.3 檢測程序的功能設計

檢測程序用于實際檢測,按照設置程序設置內容,執(zhí)行檢測任務,記錄檢測信息以及檢測信息的統(tǒng)計輸出等,功能包括系統(tǒng)自檢、檢測監(jiān)控和統(tǒng)計分析3部分,功能框圖如圖4所示。

圖4 檢測程序結構及功能框圖

3.3.1 系統(tǒng)自測

檢測前的準備工作,系統(tǒng)對檢測生產線上的軟硬件設備進行檢測,確認所有指定的相機已經開啟。

3.3.2 檢測監(jiān)控

包括圖像采集顯示和檢測結果展示。前者是相機在對生產線上進行圖像采集的同時,需將采集的圖像一并清晰顯示在軟件界面上,以便使用者觀察當前采集狀態(tài);后者是系統(tǒng)后臺對圖像進行運算處理,在準確處理的基礎上,將實時檢測結果統(tǒng)計信息反饋在軟件界面上,以便使用者了解當前處理信息。

3.3.3 統(tǒng)計分析

在系統(tǒng)運行過程中,需每次對標的處理結果進行保存,并以報表的形式反饋給使用人員,以方便使用人員日后對檢測結果進行分析核查。

4 結束語

利用PYTHON、C++和OPENCV及軟件模式等技術設計的用于中小代工企業(yè)產品缺陷檢測程序,有效地降低了程序開發(fā)難度,破解了機器視覺系統(tǒng)軟件開發(fā)過程中“一事一議”帶來的高成本問題。為中小代工企業(yè)普及自動化檢測系統(tǒng),進行生產技術改造,提高生產的柔性和自動化程度,具有一定的現(xiàn)實意義。同時試驗程序對大型機器視覺檢測系統(tǒng)的調研、實施和改造提供了強有力的支持。

猜你喜歡
圖像處理機器閾值
機器狗
機器狗
小波閾值去噪在深小孔鉆削聲發(fā)射信號處理中的應用
基于自適應閾值和連通域的隧道裂縫提取
機器學習在圖像處理中的應用
電子制作(2018年18期)2018-11-14 01:48:20
未來機器城
電影(2018年8期)2018-09-21 08:00:06
模糊圖像處理,刑事偵查利器
圖像處理技術的實戰(zhàn)應用
比值遙感蝕變信息提取及閾值確定(插圖)
河北遙感(2017年2期)2017-08-07 14:49:00
室內表面平均氡析出率閾值探討
鄂托克前旗| 民县| 邹城市| 石河子市| 林芝县| 罗平县| 灵璧县| 河西区| 天全县| 陈巴尔虎旗| 壶关县| 白河县| 行唐县| 宿州市| 桃江县| 玉林市| 麦盖提县| 专栏| 西贡区| 四平市| 宁城县| 中西区| 资阳市| 安仁县| 唐河县| 应城市| 阳城县| 郁南县| 沂源县| 高安市| 健康| 思南县| 黄浦区| 琼结县| 清苑县| 新建县| 博客| 阿城市| 三亚市| 同仁县| 霍城县|