基于OpenCV和嵌入式的工業(yè)圖像檢測(cè)系統(tǒng)
引 言
當(dāng)下,用機(jī)器代替人工,用科技代替勞動(dòng)力已成為勢(shì)不可擋的潮流。為提高工業(yè)自動(dòng)化檢測(cè)系統(tǒng)的檢測(cè)效果,降低工廠(chǎng)雇傭工件檢測(cè)員的開(kāi)銷(xiāo),本文開(kāi)展了基于 OpenCV 的嵌入式工業(yè)檢測(cè)系統(tǒng)的研究。本文提出了一種基于 OpenCV,利用嵌入式微處理器進(jìn)行圖像采集與傳輸實(shí)現(xiàn)工件劃痕檢測(cè)的方案。該方案使用最新的 OpenCV 開(kāi)源庫(kù), 開(kāi)發(fā)出基于OpenCV 的圖像處理軟件,并利用網(wǎng)口向圖像處理軟件傳輸數(shù)據(jù)。符合系統(tǒng)構(gòu)建簡(jiǎn)單、工作穩(wěn)定、可擴(kuò)展性強(qiáng)、檢測(cè)精度高等工業(yè)自動(dòng)化檢測(cè)目標(biāo)。
1 系統(tǒng)整體概述
該系統(tǒng)由圖像采集嵌入式設(shè)備、網(wǎng)絡(luò)傳輸設(shè)備和處理圖像的計(jì)算機(jī)設(shè)備組成。嵌入式設(shè)備具有生產(chǎn)成本低、處理效率高、耗電低等優(yōu)點(diǎn),符合工業(yè)生產(chǎn)需求 ;圖像傳輸主要采用以太網(wǎng)并輔以 RS232串口通信的方式,實(shí)現(xiàn)了實(shí)時(shí)高效、可靠性高的圖像傳輸功能;圖像處理軟件采用最新的 OpenCV 計(jì)算機(jī)視覺(jué)開(kāi)源庫(kù),將 Qt 開(kāi)源庫(kù)與其巧妙融合,提高了圖像處理的速度和精度。最后將處理結(jié)果傳送到云服務(wù)器,完成系統(tǒng)架構(gòu)。系統(tǒng)組成框圖如圖 1所示。
圖1 系統(tǒng)組成框圖
2 圖像采集傳輸系統(tǒng)設(shè)計(jì)
本設(shè)計(jì)主要使用當(dāng)前較為前沿的嵌入式 ARM Cortex-M4 系列芯片,使用 STM32F407ZGT6 的DCMI 接口連接 OV5640 攝像頭模塊,從工業(yè)對(duì)零件劃痕檢測(cè)的實(shí)際需求出發(fā),構(gòu)建較為完整的工業(yè)圖像采集傳輸系統(tǒng)。此圖像采集傳輸系統(tǒng)包含攝像頭采集模塊和以太網(wǎng)傳輸模塊。圖像采集傳輸系統(tǒng)基于嵌入式 STM32F407ZGT6 的自制高度電磁兼容和信號(hào)完整性,使用OV5640 攝像頭模塊在合適的環(huán)境下采集 JPEG 格式的圖像。圖像傳輸系統(tǒng)將圖像采集模塊采集到的圖片傳輸至基于 OpenCV 圖像邊緣檢測(cè)的上位機(jī)。以以太網(wǎng)通信為主, 串口通信為輔,方便快捷地進(jìn)行圖像傳輸。
2.1 攝像頭采集模塊
本系統(tǒng)中,該攝像頭模塊采用 8 位數(shù)據(jù)輸出接口,其自帶 24MHz有源晶振, 無(wú)需外部提供時(shí)鐘, 整個(gè)模塊只需3.3 V供電即可正常使用,且該模塊支持自動(dòng)對(duì)焦和閃光燈功能。電壓攝像頭模塊通過(guò) SCCB總線(xiàn)實(shí)現(xiàn)圖像輸出分辨率的額配置、閃光燈的開(kāi)關(guān)、自動(dòng)對(duì)焦、調(diào)節(jié)色彩飽和度、亮度設(shè)置、設(shè)置自動(dòng)銳度、啟動(dòng)持續(xù)對(duì)焦等功能。直接輸出壓縮后的JPEG圖片數(shù)據(jù)。輸出 JPEG格式的圖片源源不斷地傳入 DMA 中,可利用 JPEG 格式提取提取圖片??刹扇∪缦聝煞N方式 :
(1) 嵌入式端提取好單張圖片并發(fā)給上位機(jī) ;
(2) 嵌入式端不斷發(fā)送圖片數(shù)據(jù)流給上位機(jī),讓上位機(jī)提取。
實(shí)際上,方式(1)在嵌入式端提取了圖片,再按單張發(fā)給上位機(jī),且為了圖片的數(shù)據(jù)安全有效,上位機(jī)需再次提取, 導(dǎo)致嵌入式端的提取多此一舉。因此,本設(shè)計(jì)采用第二種方案。
2.2 以太網(wǎng)的實(shí)現(xiàn)
本系統(tǒng)除了使用 IEEE 802.3-2002 標(biāo)準(zhǔn)發(fā)送和接收數(shù)據(jù)的以太網(wǎng)外設(shè),還采用 μC/OS-III 配合 LWIP 的設(shè)計(jì),便于各類(lèi)任務(wù)高效有序運(yùn)行。其中,LWIP 是一種輕量級(jí)TCP/IP 協(xié)議棧,可不依賴(lài)操作系統(tǒng)運(yùn)行,特別是能夠在保持 TCP 協(xié)議主要功能的基礎(chǔ)上減少對(duì) RAM 的使用,節(jié)約了資源,尤其適用于嵌入式終端。μC/OS-III 是一個(gè)可裁剪、可固化、可剝奪的多任務(wù)系統(tǒng),無(wú)任務(wù)數(shù)目限制,是在 μC/OS-II上改進(jìn)的μC/OS 第三代內(nèi)核,其中斷時(shí)間極短,不僅解決了同時(shí)等待多個(gè)內(nèi)核對(duì)象的同步問(wèn)題,且加入了時(shí)間戳控制,大大提升了ARM 處理器的運(yùn)算速度。為提升網(wǎng)絡(luò)傳輸速度與時(shí)延,更好地滿(mǎn)足實(shí)時(shí)性的要求,本設(shè)計(jì)最終選樣在 μC/OS-III上運(yùn)行 LWIP 協(xié)議棧的設(shè)計(jì)方案。本設(shè)計(jì)中系統(tǒng) μC/OS 任務(wù)包括網(wǎng)絡(luò)傳輸任務(wù)、LWIP 連接任務(wù)、按鍵檢測(cè)任務(wù)、LCD 顯示任務(wù)、LED 閃爍任務(wù)和開(kāi)始任務(wù)等,使用操作系統(tǒng)節(jié)省了系統(tǒng)資源,降低了功耗,更有利于嵌入式設(shè)備的持久運(yùn)行。緩沖區(qū)圖像數(shù)據(jù)傳輸?shù)牧鞒倘鐖D 2 所示。
圖 2 緩沖區(qū)圖像數(shù)據(jù)傳輸?shù)牧鞒?
3 圖像輪廓檢測(cè)處理系統(tǒng)設(shè)計(jì)
本次上位機(jī)采用QT5.7(MinGW5.3版)設(shè)計(jì),并利用OpenCV計(jì)算機(jī)視覺(jué)庫(kù)作為圖像處理方案。通過(guò)在 Qt軟件框架下調(diào)用OpenCV函數(shù)庫(kù),實(shí)現(xiàn) PC端圖像邊緣檢測(cè)。本系統(tǒng)通過(guò)使用OpenCV3“內(nèi)核”與“插件”相結(jié)合的架構(gòu)形式, 大大提高了軟件系統(tǒng)的穩(wěn)定性。文中設(shè)計(jì)的圖像檢測(cè)算法涉及邊緣檢測(cè)、尋找輪廓和圖像的矩等內(nèi)容。Canny邊緣檢測(cè)算子是一種最優(yōu)的邊緣檢測(cè)算法,在實(shí)際編程中直接調(diào)用 Canny 函數(shù)即可。本系統(tǒng)采用變分法,滿(mǎn)足了低錯(cuò)誤率、高定位性、最小響應(yīng)三大標(biāo)準(zhǔn),并使用OpenCV庫(kù)提供的findContours 函數(shù)在二值圖像中尋找輪廓。最終界面設(shè)計(jì)如圖 3所示。
4 結(jié) 語(yǔ)
本系統(tǒng)實(shí)現(xiàn)了機(jī)器代替人工檢測(cè)工件劃痕的功能,可作為工業(yè)生產(chǎn)物聯(lián)網(wǎng)的一個(gè)節(jié)點(diǎn),結(jié)合現(xiàn)代工業(yè)自動(dòng)化的實(shí)際需求,將圖像檢測(cè)技術(shù)和物聯(lián)網(wǎng)通信技術(shù)巧妙結(jié)合,大大降低工業(yè)生產(chǎn)的檢測(cè)環(huán)節(jié)人力使用成本,并提出了一種全新的工業(yè)生產(chǎn)自動(dòng)化產(chǎn)品檢測(cè)環(huán)節(jié)的解決方案,提高了產(chǎn)品檢測(cè)的精度與速度。在未來(lái)的工業(yè)生產(chǎn)自動(dòng)化過(guò)程中,可采用選擇路由器網(wǎng)線(xiàn)傳輸或 WiFi 傳輸?shù)确绞?,搭建物?lián)網(wǎng)多節(jié)點(diǎn)檢測(cè)系統(tǒng), 利用主機(jī)總控機(jī)制,建立一個(gè)大型的基于工業(yè)物聯(lián)網(wǎng)和圖像檢測(cè)技術(shù)的工件檢測(cè)系統(tǒng),實(shí)現(xiàn)真正的工業(yè)生產(chǎn)自動(dòng)化。
圖 3 最終界面設(shè)計(jì)