羅澤建 王美林 肖文 邱海桓
摘? 要:皮革表面缺陷檢測(cè)是PVC人造皮革行業(yè)生產(chǎn)過程中保障皮革質(zhì)量的重要環(huán)節(jié)。針對(duì)PVC人造皮革生產(chǎn)企業(yè)存在人工檢測(cè)皮革效率低、漏檢率高的問題,結(jié)合計(jì)算機(jī)視覺技術(shù)和視覺分析目標(biāo)檢測(cè)算法,設(shè)計(jì)一套PVC皮革表面缺陷檢測(cè)系統(tǒng),對(duì)系統(tǒng)組成、工作原理和關(guān)鍵技術(shù)進(jìn)行詳細(xì)闡述。經(jīng)測(cè)試,系統(tǒng)穩(wěn)定運(yùn)行,在工業(yè)傳送帶的速度為60 m/min的情況下,系統(tǒng)對(duì)缺陷的檢出率能滿足工業(yè)生產(chǎn)要求。
關(guān)鍵詞:PVC皮革;缺陷檢測(cè)系統(tǒng);計(jì)算機(jī)視覺
中圖分類號(hào):TP311? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2096-4706(2021)23-0145-06
Design and Implementation of PVC Leather Defect Detection System Based on Visual Analysis
LUO Zejian, WANG Meilin, XIAO Wen, QIU Haihuan
(Guangdong University of Technology, Guangzhou 510006, China)
Abstract: The detection of Leather surface defect is an important link to ensure leather quality in the production process of PVC artificial leather industry. Aiming at the problems of low efficiency and high missed detection rate of manual leather detection in PVC artificial leather production enterprises, combined with computer vision technology and visual analysis target detection algorithm, a set of PVC leather surface defect detection system is designed, and the system composition, working principle and key technologies are described in detail. After testing, the system operates stably. When the speed of industrial conveyor belt is 60 m/min, the detection rate of defects of system can meet the requirements of industrial production.
Keywords: PVC leather; defect detection system; computer vision
0? 引? 言
隨著人工智能時(shí)代的到來(lái)和人工智能技術(shù)的不斷普及,越來(lái)越多的智能技術(shù)運(yùn)用到了現(xiàn)代化生產(chǎn)中。而PVC制革作為我國(guó)優(yōu)勢(shì)傳統(tǒng)產(chǎn)業(yè),現(xiàn)有的自動(dòng)化、智能化程度還處于起步階段[1],在皮革表面的缺陷檢測(cè)的研究中,也廣泛應(yīng)用了計(jì)算機(jī)視覺技術(shù)和視覺檢測(cè)技術(shù)[2]。然而對(duì)于皮革缺陷檢測(cè)方法仍處于理論研究階段,并沒有應(yīng)用到實(shí)際生產(chǎn)環(huán)節(jié)當(dāng)中,在實(shí)際的PVC皮革生產(chǎn)領(lǐng)域中,皮革表面缺陷檢測(cè)大多數(shù)采用的是產(chǎn)后人工檢測(cè)方式。這種人工檢測(cè)的方式一方面會(huì)存在人為主觀判斷不準(zhǔn)確的問題,另一方面產(chǎn)后檢測(cè)會(huì)存在生產(chǎn)浪費(fèi)的問題。本文針對(duì)以上問題,采用深度學(xué)習(xí)的目標(biāo)檢測(cè)算法和C++編程語(yǔ)言,研究并開發(fā)了一個(gè)基于視覺分析的PVC皮革表面瑕疵檢測(cè)系統(tǒng)。
1? 系統(tǒng)設(shè)計(jì)
1.1? 系統(tǒng)需求
基于視覺分析的PVC皮革缺陷檢測(cè)系統(tǒng)為了能夠在工業(yè)環(huán)境下完成生產(chǎn)要求,通過對(duì)現(xiàn)場(chǎng)勘測(cè)和與廠家溝通,得到以下系統(tǒng)需求:
(1)系統(tǒng)操作員分為不同角色,每種角色有不同的操作權(quán)限。
(2)檢測(cè)缺陷要求具有時(shí)效性,對(duì)于一條PVC皮革生產(chǎn)線而言,產(chǎn)中的PVC皮革滾動(dòng)速度是變動(dòng)的,且速度在20~60 m/min之間(最快1 m/s),這需要對(duì)長(zhǎng)和寬為1 m的PVC皮革表面圖片的檢測(cè)頻率至少要達(dá)到1 Hz。此外,需要盡可能檢出率高,誤檢率低。對(duì)于指定類別的缺陷,可以通過設(shè)置即時(shí)輸出報(bào)警。
(3)系統(tǒng)需要對(duì)缺陷檢測(cè)模型具有靈活的管理,根據(jù)檢測(cè)環(huán)境、PVC皮革產(chǎn)品類型的不同,需要配置多個(gè)缺陷檢測(cè)模型,在檢測(cè)作業(yè)開始前根據(jù)針對(duì)不同的環(huán)境和PVC皮革產(chǎn)品選擇最匹配的缺陷檢測(cè)模型,以達(dá)到檢測(cè)的最佳效果。
(4)系統(tǒng)需要能加載不同的工業(yè)相機(jī),能夠靈活調(diào)整相機(jī)參數(shù),能夠控制和調(diào)試工業(yè)相機(jī)采集PVC皮革圖片。
(5)系統(tǒng)對(duì)檢測(cè)作業(yè)信息能夠進(jìn)行詳細(xì)的統(tǒng)計(jì),保存和檢索作業(yè)信息、日志信息等。
1.2? 系統(tǒng)架構(gòu)
根據(jù)系統(tǒng)需求分析搭建的系統(tǒng)結(jié)構(gòu)如圖1所示。
首先是UI交互模塊,包含在線檢測(cè)界面、作業(yè)統(tǒng)計(jì)界面、產(chǎn)品管理界面和相機(jī)管理界面,在線檢測(cè)界面給用戶呈現(xiàn)當(dāng)前作業(yè)檢測(cè)狀態(tài),包括缺陷檢出分布和統(tǒng)計(jì)、當(dāng)前產(chǎn)品線傳動(dòng)帶移動(dòng)速度、作業(yè)操作日志等等。作業(yè)統(tǒng)計(jì)界面提供給用戶方便查詢歷史作業(yè)信息。產(chǎn)品管理頁(yè)面用來(lái)管理產(chǎn)品信息的修改、增加、刪除操作,包括為產(chǎn)品配置缺陷檢測(cè)模型。相機(jī)管理頁(yè)面用來(lái)管理和操作相機(jī),生成相機(jī)設(shè)置模板供產(chǎn)品管理選擇。
相機(jī)控制模塊,此模塊分成相機(jī)配置和相機(jī)調(diào)試兩部分,相機(jī)配置包括加載相機(jī)驅(qū)動(dòng),掃描本地相機(jī),加載相機(jī)等操作,相機(jī)調(diào)試包括設(shè)置相機(jī)參數(shù),啟動(dòng)和關(guān)閉相機(jī)采集圖像等操作。
視覺分析模塊,此模塊分為驅(qū)動(dòng)管理、模型加載、檢測(cè)缺陷三部分,驅(qū)動(dòng)管理用來(lái)加載多個(gè)視覺分析模塊驅(qū)動(dòng),模型加載即通過驅(qū)動(dòng)加載不同的視覺分析模型,缺陷檢測(cè)即使用已加載的視覺分析模型進(jìn)行PVC皮革表面缺陷檢測(cè)。
報(bào)警模塊,此模塊用來(lái)控制報(bào)警器輸出報(bào)警,通過網(wǎng)絡(luò)傳輸協(xié)議給下位機(jī)PLC模塊輸出固定格式指令,執(zhí)行啟動(dòng)/關(guān)閉報(bào)警器操作。
系統(tǒng)管理模塊,包括系統(tǒng)設(shè)置、用戶管理和操作日志信息管理,主要配置系統(tǒng)的運(yùn)行環(huán)境以及管理用戶和對(duì)系統(tǒng)的運(yùn)行日志進(jìn)行記錄。
2? 系統(tǒng)實(shí)現(xiàn)
2.1? 平面掃描平臺(tái)
本文所述系統(tǒng)接入的是一個(gè)基于Dalsa線陣相機(jī)的平面采集平臺(tái),平臺(tái)展示如圖2所示。
平臺(tái)由三路線陣相機(jī)、編碼器、白色線性光源,傳送帶和平臺(tái)固定支架組成。平臺(tái)的傳動(dòng)帶帶動(dòng)編碼器旋轉(zhuǎn)產(chǎn)生脈沖,根據(jù)單位時(shí)間內(nèi)編碼器產(chǎn)生的脈沖數(shù)量計(jì)算出傳送帶的滾動(dòng)速度。軟件接入該平臺(tái),通過GigE接口控制多個(gè)相機(jī)采集圖像。
2.2? 缺陷檢測(cè)控制軟件
下面對(duì)系統(tǒng)主要模塊進(jìn)行介紹。
2.2.1? UI交互模塊
本文設(shè)計(jì)多個(gè)UI界面,通過DirectUI界面庫(kù)實(shí)現(xiàn)的主要UI界面如圖3所示,包含在線檢測(cè)、作業(yè)統(tǒng)計(jì)、產(chǎn)品管理、相機(jī)管理四個(gè)主要界面。
2.2.2? 相機(jī)控制模塊
相機(jī)控制模塊在進(jìn)入主系統(tǒng)時(shí)初始化,完成相機(jī)驅(qū)動(dòng)加載,掃描本地已連接的相機(jī)。以DALSA千兆網(wǎng)(Gige)工業(yè)相機(jī)為例,該種相機(jī)與PC通過千兆網(wǎng)線連接,連接后使用局域網(wǎng)配置工具為相機(jī)配置一次IP即可通過本系統(tǒng)的相機(jī)控制模塊識(shí)別和加載。本文為相機(jī)定義了一個(gè)C++公共接口ICamera,接口成員函數(shù)如表1所示。
通過加載DALSA相機(jī)驅(qū)動(dòng)模塊,使用模塊的createCamera()函數(shù)創(chuàng)建一個(gè)ICamera對(duì)象,在ICamera初始化成一個(gè)對(duì)象后,可以直接用對(duì)象操作DALSA系列的相機(jī),比如執(zhí)行startWork()將啟動(dòng)相機(jī)采圖操作,執(zhí)行setParam()將修改相機(jī)當(dāng)前參數(shù)設(shè)置。
2.2.3? 視覺分析模塊
視覺分析模塊執(zhí)行兩種操作:
一是加載模型驅(qū)動(dòng),在進(jìn)入主系統(tǒng)后,根據(jù)預(yù)先設(shè)置好的路徑加載該路徑下所有的模型驅(qū)動(dòng)。本文使用的模型驅(qū)動(dòng)有兩種,一種基于Fast RCNN算法,另一種基于YOLOv5算法,這兩種驅(qū)動(dòng)都以動(dòng)態(tài)鏈接庫(kù)(.dll后綴文件)的方式存放在本地磁盤上。
二是加載模型,初始化模型驅(qū)動(dòng)后,可以加載指定類型的模型進(jìn)行缺陷目標(biāo)檢測(cè)。以YOLOv5算法為例,通過深度學(xué)習(xí)訓(xùn)練得到一個(gè)YOLOv5算法的模型文件,轉(zhuǎn)換成統(tǒng)一格式后一般以.onnx為后綴的文件格式存放在本地磁盤,系統(tǒng)加載該算法的驅(qū)動(dòng),尋找本地磁盤上該類對(duì)應(yīng)的算法模型,將該模型初始化成一個(gè)缺陷檢測(cè)對(duì)象即可完成模型加載。
為了便于靈活加載不同的缺陷檢測(cè)模型,本文定義了統(tǒng)一的C++公共接口IDetetor,接口函數(shù)成員如表2所示。
IOutput是一個(gè)封裝了缺陷信息的類,成員包括缺陷類別Class,缺陷置信度Conf和缺陷坐標(biāo)Rect(x,y,w,h)。執(zhí)行Detect()函數(shù),如果有缺陷信息,將返回一個(gè)不為空的Vector<IOutput>數(shù)組,通過遍歷該數(shù)組即可訪問PVC皮革圖像的缺陷信息。
2.2.4? 系統(tǒng)在線檢測(cè)流程
在線檢測(cè)是將系統(tǒng)使用到的資源的綜合利用,在線檢測(cè)步驟為:
(1)在線檢測(cè)任務(wù)開始前,配置產(chǎn)品參數(shù),配置相機(jī)參數(shù)和配置模型參數(shù)。
(2)開始在線檢測(cè)任務(wù),加載相機(jī)控制模塊的采集圖像功能和視覺分析模塊的缺陷檢測(cè)功能。
(3)采集到一幀圖片,對(duì)該圖片進(jìn)行缺陷檢測(cè),當(dāng)檢測(cè)到缺陷時(shí),執(zhí)行步驟(4),未檢測(cè)到缺陷時(shí),跳過步驟(4)直接執(zhí)行步驟(5)。
(4)獲取圖片的所有缺陷信息,將存在缺陷的圖片和缺陷信息保存到本地,存在需要報(bào)警的缺陷類別則輸出報(bào)警。
(5)將當(dāng)前檢測(cè)任務(wù)信息記錄成一條日志信息保存到本地,在線檢測(cè)任務(wù)還在繼續(xù)時(shí)重復(fù)步驟(3)~(5)。
系統(tǒng)的在線檢測(cè)任務(wù)流程如圖4所示。
3? 關(guān)鍵技術(shù)
3.1? DirectUI界面庫(kù)
DirectUI界面庫(kù)取名自微軟的一個(gè)窗口類名“DirectUIHWND”,該界面庫(kù)創(chuàng)建的子窗口不以窗口句柄的形式創(chuàng)建,只是邏輯上的窗口,繪制在父窗口之上,易于二次開發(fā),是一張廣泛的應(yīng)用Windows系統(tǒng)的開源界面庫(kù)[3]。本文使用DirectUI界面庫(kù)開發(fā)了2個(gè)主窗口和5個(gè)子窗口,各個(gè)窗口的設(shè)計(jì)和功能描述如表3所示。
主窗口繼承的類是WindowImplBase,重寫了該類的初始化函數(shù)。主窗口本質(zhì)上是一個(gè)真實(shí)的窗口,每一個(gè)主窗口都有一個(gè)窗口句柄,而子窗口繼承的類是CNotifyPump,本質(zhì)上是一個(gè)虛擬窗口,隸屬于主窗口的子窗口可以共享主窗口的資源,利用這一機(jī)制可以實(shí)現(xiàn)多種復(fù)雜的操作,比如截獲發(fā)送到主窗口的消息,當(dāng)相機(jī)采集到一幀圖像時(shí),將給主窗口發(fā)送一條消息,而在線檢測(cè)窗口可以截獲該消息對(duì)圖像進(jìn)行缺陷檢測(cè)。此外本文還利用DirectUI的繪圖機(jī)制自定義了多個(gè)復(fù)雜控件,以滿足系統(tǒng)需求。
3.2? 圖像處理
本文在設(shè)計(jì)系統(tǒng)初始階段對(duì)視覺分析算法做過測(cè)試,包括但不限于對(duì)圖像進(jìn)行灰度化、拼接、裁剪、縮放等進(jìn)行操作以達(dá)到最佳檢測(cè)效果,圖像處理基本流程如圖5所示。
3.2.1? 圖像拼接
圖像拼接是指將拍攝到的具有重疊區(qū)域的若干圖像拼接成一張無(wú)縫全景圖的技術(shù)[4]。本文所述系統(tǒng)需要用到一個(gè)或者多個(gè)相機(jī)采集高分辨率圖像,當(dāng)相機(jī)水平按順序排列擺放時(shí),需要用到水平圖像拼接技術(shù),將重疊部分拼縫,得到一張更寬的圖像。
3.2.2? 圖像灰度化
圖像灰度化的原理是將圖像的通道數(shù)由多通道變?yōu)閱瓮ǖ?。本文通過實(shí)驗(yàn)比較得出對(duì)于PVC皮革的圖像,對(duì)其灰度圖像的檢測(cè)速度快于彩色圖像的檢測(cè)速度,而檢測(cè)精度變化不大,因此對(duì)PVC皮革圖像進(jìn)行了灰度化。
3.2.3? 圖像裁剪
工業(yè)圖像采集的圖像裁剪技術(shù)即通過裁剪,去掉由于環(huán)境等因素引入的圖像邊界空洞。本文中圖像裁剪的作用就是對(duì)一幀圖像的邊緣裁剪,去掉非PVC皮革的部分,只對(duì)PVC皮革區(qū)域進(jìn)行瑕疵目標(biāo)檢測(cè),以提高檢測(cè)效率和檢測(cè)精度。
3.2.4? 圖像縮放
圖像縮放是對(duì)圖像進(jìn)行分辨率放大或縮小操作,本文使用圖像縮放技術(shù)對(duì)圖像進(jìn)行處理,對(duì)于缺陷檢測(cè)的精度、速度具有較大影響,且對(duì)圖像進(jìn)行縮小再存儲(chǔ)至磁盤,可以有效減少磁盤占用量,本文權(quán)衡缺陷檢測(cè)效果和磁盤占用量,將圖像縮放特定的比例。
對(duì)于上述四中圖像處理技術(shù),本文使用的是OpenCV開源庫(kù)進(jìn)行操作,對(duì)于上述圖像處理方法,本文通過封裝OpenCV庫(kù)函數(shù)實(shí)現(xiàn)如表4所示。
3.3? 瑕疵目標(biāo)檢測(cè)
本文使用由團(tuán)隊(duì)其他學(xué)習(xí)小組訓(xùn)練得到的YOLOv5[5]模型做測(cè)試,該模型將瑕疵類型分為hole(孔洞)、ribbon(色線)、dirt(臟污)、bubble(氣泡)、stripe(條紋)五個(gè)類別,經(jīng)過測(cè)試,本次訓(xùn)練出來(lái)的模型對(duì)各個(gè)類別的檢測(cè)效果,如表5所示。
工業(yè)PVC皮革生產(chǎn)過程中對(duì)檢出的不同缺陷類別各有側(cè)重,在本文所展示的類別中,側(cè)重的缺陷類別bubble>hole>dirt>ribbon>stripe,可以看出對(duì)于主要類別bubble和hole均能達(dá)到80%以上,因此使用YOLOv5算法進(jìn)行缺陷檢測(cè),檢測(cè)精度能滿足工業(yè)生產(chǎn)要求。
本文對(duì)視覺分析技術(shù)——YOLOv5深度學(xué)習(xí)算法進(jìn)行了推理加速機(jī)制做了相關(guān)研究,為了能在大分辨率圖像下檢測(cè)小目標(biāo),本文在基于YOLOv5x模型,通過不斷地測(cè)試和反饋,對(duì)模型本身進(jìn)行模型剪枝、參數(shù)量化以減小模型體積。對(duì)于推理過程,使用TensorRT工具對(duì)推理層進(jìn)行加速,最終達(dá)到在不同分辨率下的檢測(cè)速度,如表6所示。
在工業(yè)相機(jī)的加持下采集圖像來(lái)到的分辨率達(dá)到了8 k,8 k×8 k分辨率的圖像所表示的PVC皮革實(shí)際面積是1 m2(1 m×1 m),因此,8 k×8 k分辨率下,理論上能夠進(jìn)行實(shí)時(shí)檢測(cè)的PVC皮革產(chǎn)線最大線速度是230 m/min,能滿足線速度60 m/min的PVC皮革產(chǎn)線需求。
4? 結(jié)? 論
在PVC皮革生產(chǎn)過程中,最重要的是避免對(duì)PVC皮革缺陷檢出的不及時(shí)而造成生產(chǎn)浪費(fèi)。本文研究一種基于視覺分析的PVC皮革檢測(cè)系統(tǒng)。該系統(tǒng)使用DirectUI界面庫(kù)技術(shù)開發(fā)人機(jī)交互界面,使用C++編程語(yǔ)言開發(fā)相機(jī)控制模塊、視覺分析模塊和報(bào)警模塊。經(jīng)測(cè)試,本文所設(shè)計(jì)的系統(tǒng)完全能夠滿足PVC皮革生產(chǎn)過程中表面缺陷檢測(cè)需求,有利于PVC皮革表面缺陷檢測(cè)向智能化發(fā)展。
參考文獻(xiàn):
[1] 林煒,張龍,劉曉虎,等.我國(guó)皮革產(chǎn)業(yè)信息化、數(shù)字化建設(shè)現(xiàn)狀調(diào)研與分析 [J].皮革科學(xué)與工程,2021,31(5):28-32.
[2] 冉詩(shī)雅,趙義紅,王巍,等.數(shù)字化技術(shù)在皮革行業(yè)的應(yīng)用現(xiàn)狀及展望 [J].中國(guó)皮革,2021,50(4):29-33.
[3] 趙文強(qiáng),景建恩,楊杰,等.基于Duilib庫(kù)的海洋可控源電磁數(shù)據(jù)預(yù)處理軟件開發(fā) [J].物探化探計(jì)算技術(shù),2021,43(2):261-268.
[4] 王浪.全景圖像拼接算法的研究與實(shí)現(xiàn) [D].北京:北京郵電大學(xué),2020.
[5] REDMON J,DIVVALA S,GIRSHICK R,et al. You Only Look Once:Unified,Real-Time Object Detection [C]//2016 IEEE Conference on Computer Vision and Pattern Recognition(CVPR).Las Vegas:IEEE,2016:779-788.
作者簡(jiǎn)介:羅澤建(1996—),男,漢族,廣西北海人,碩士研究生在讀,研究方向:計(jì)算機(jī)應(yīng)用、深度學(xué)習(xí);王美林(1975—),男,漢族,湖南安化人,副教授,博士,研究方向:物聯(lián)網(wǎng)技術(shù)、制造執(zhí)行系統(tǒng)及應(yīng)用、面向新工科教育的智慧學(xué)習(xí)工場(chǎng)技術(shù);肖文(1997—),男,漢族,湖南株洲人,碩士研究生在讀,研究方向:計(jì)算機(jī)應(yīng)用、深度學(xué)習(xí);邱?;福?999—),男,漢族,廣東惠州人,碩士研究生在讀,研究方向:計(jì)算機(jī)應(yīng)用、深度學(xué)習(xí)。