顧橋磊 宋宇飛 孟祥興
(南京工程學院 通信工程學院,江蘇南京 211167)
本系統的研發基于兩方面。一方面,工廠雇傭檢測員的花費大、招聘檢測員的難度大,檢測員憑肉眼觀察效果差、錯誤多、效率低,難以滿足企業的實際需求。另一方面,當今與圖片采集處理相關的技術迅速發展,自動化的圖像檢測系統的檢測效果提高、成本降低,逐漸被應用于制造、生產領域,但技術還不夠成熟。總的來說,用機器代替人工進行檢測符合當前社會發展的趨勢,能有效地解決用工荒、成本高等問題。
為了更好地實現工業自動化的目的,本設計根據實際的工業檢測需求,給出了一種基于最經典的嵌入式處理器實現圖像劃痕檢測的方案,該方案使用網口傳輸,網口傳輸速率滿足實時傳輸圖像的需求,因此能很好地實現傳感器與人機交互界面互聯。該系統構建簡單,工作穩定,擴展性強,完全符合工業自動化檢測的要求。
本設計主要是基于當前較為前沿的嵌入式ARM Cortex-M4系列芯片,從工業對零件劃痕檢測的實際需求出發,構建了較為完整工業圖像檢測系統。此系統包含采集、傳輸和處理三大子系統。圖像采集系統基于嵌入式STM32F4的自制PCB,利用攝像頭在合適的光照背景條件下采集JPEG格式的圖像。圖像傳輸系統將嵌入式端數據傳輸至基于Qt的上位機,主要傳輸方式為以太網通信,輔助傳輸方式為串口通信。圖像處理系統利用了PC機強大的處理性能,采用OpenCV算法實現劃痕識別,并檢測出劃痕長度。圖1為系統組成框圖。

圖2 DMA雙緩沖模式下讀取JPEG圖片的框圖
在本系統中,使用STM32F407ZGT6的DCMI接口連接OV5640攝像頭模塊,該模塊采用8位數據輸出接口,自帶24M有源晶振,無需外部提供時鐘,模組支持自動對焦功能,且支持閃光燈,整個模塊只需提供3.3V供電即可正常使用。該攝像頭模塊通過SCCB總線,編程實現了圖像輸出分辨率的額配置、閃光燈的開關、自動對焦、調節色彩飽和度、亮度設置、設置自動銳度、啟動持續對焦等功能。同時此次攝像頭圖像傳輸到嵌入式采用了DMA(Direct Memory Access),即直接存儲器訪問。同時加入DMA的雙緩沖機制,能較好的解決傳輸卡頓的問題,DMA在RAM與外設之間直接傳送數據,這樣大大提高了CPU的效率。DMA雙緩沖的原理是嵌入式首先接收來自攝像頭的JPEG數據流,在內存1中存儲,當內存1存滿,自動切換到內存2,同時程序讀內存1的數據到外部SDRAM;當內存2存滿,又切回內存1,這時候程序讀內存的數據到外部SDRAM。發生中斷時,暫時結束圖像數據采集,迅速讀取未被讀取的數據到外部的SDRAM。這樣就完成了一次JPEG圖像數據的采集。圖2為DMA雙緩沖模式下讀取JPEG圖片的框圖。

圖3 測試結果圖

表1 一組測試零件的結果
STM32F4借助以太網外設,可以通過以太網按照IEEE 802.3-2002標準發送和接收數據。STM32F4的以太網模塊提供了可配置、靈活的外設,用以滿足客戶的各種應用需求。本系統采用了LAN8720以太網模塊。LAN8720是低功耗的10/100M以太網PHY層芯片,I/O引腳電壓符合IEEE802.3-2005標準。LAN8720支持通過RMII接口與以太網MAC層通信,內置10-BASE-T/100BASE-TX全雙工傳輸模塊,支持10Mbps和100Mbps,LAN8720可通過自協商的方式選擇與目的主機最佳的連接方式。本設計中以太網口主要完成將ARM處理器外部的SRAM中存儲的JPEG圖片通過網絡發送到上位機上顯示的任務:當嵌入式端和上位機端連接成功后,嵌入式端讀取FIFO中緩存的圖片數據并通過LAN8720網口給上位機端發送圖片數據流。
同時本系統設計采用了UCOS+LWIP的設計,便于操作各類任務。LWIP是一種可以不依賴于操作系統的輕量級TCP/IP協議棧,有無操作系統的支持都可以運行,它的重點是在保持TCP協議的 主要功能的基礎上減少對RAM的使用,節約了資源,從而使它適合在嵌入式終端上使用。UCOSIII是一個可裁剪、可固化、可剝奪的多任務系統,沒有任務數目的限制,是UCOS的第三代內核,它具有極短的關中斷時間,可以同時等待多個內核對象,同時加入了時間戳控制,提升了ARM處理器的運算速度。在UCOSIII上運行LWIP協議棧可以大大提升網絡傳輸速度與時延,更好地滿足了實時性的要求。本設計中系統UCOS任務有網絡傳輸任務、LWIP連接任務、按鍵檢測任務、LCD顯示任務、LED閃爍任務和開始任務,使用操作系統大大地節省了系統資源和功耗。
本次上位機采用Qt 5.7(MinGW 5.3版)設計,Qt是一個圖形界面程序框架。上位機的功能是連接下位機并接收嵌入式端的圖片數據,利用算法提取數據信息并顯示圖片,對圖片進行處理后顯示結果。界面設計基于Qt的MainWindow類。在此基礎上設計了菜單欄,進行了窗口的設計與布局,最終利用Qt的布局管理器實現了界面設計。本上位機主要實現的功能有:接收下位機傳輸的數據并提取,實時顯示攝像頭傳過來的圖片,顯示上位機和下位機的連接狀態和時間,對圖片進行處理并得出劃痕的有無和長度,打開PC機原有圖片進行處理,保存處理前圖片和處理后圖片等。
本系統采用了OpenCV計算機視覺庫作為圖像處理方案。OpenCV3使用“內核”與“插件”的相結合的架構形式,使得軟件穩定性提高。此次圖像檢測算法涉及了邊緣檢測、尋找輪廓和圖像的矩等部分。Canny邊緣檢測算子是一種當今最優的邊緣檢測的算法,本系統為了滿足低錯誤率、高定位性、最小響應三大標準,采用了變分法;為了在圖像中尋找輪廓,用到了findContours()函數;由于矩函數可以根據圖形描述出圖像形狀的全局特征,并能夠提供大量關于該圖片不同類型的幾何特征信息,比如大小、位置、方向及形狀等。我們在測量一個物體時,必須有可參考物理量,一般來說,測量對象的最大橫截面的周長,就是照相機拍攝的圖片中的物體的周長。由于測量對象的最大橫截面的周長與劃痕之間有固定的比例關系,如果知道這個比例關系,那么劃痕的實際長度也能求出來。

圖4 系統展望圖
本系統的測試用紙箱構建了一個背景純黑的環境以便防止外界光線干擾,然后通過在白紙上用記號筆畫上一道線來模擬物品上的劃痕,如圖3測試結果圖所示。
我們測試時首先通過網口連上嵌入式終端,連接上以后一段時間攝像頭區域會顯示實時拍攝到的圖像,當我們按下下方的拍照鍵時,即可在圖片區域看到此刻拍到的圖片,然后按下檢測按鍵就可以在處理結果的地方看到物品的清晰輪廓和明顯的劃痕,上位機下方可以顯示劃痕的實際長度。當我們對劃痕用尺子測量后,還可以通過輸入上位機下方空格處的偏移量來校準劃痕長度檢測的誤差,下方的最小劃痕還可以用來消除不必要的噪聲。
表1給出的是多次測量后的劃痕長度記錄和相應的誤差,可以從表上看出,本系統的測量誤差滿足實際工業自動化檢測的要求,并且網絡通信速率符合實時監測的要求,能夠較準確地判斷誤差的長度。
該系統中的嵌入式端作為工業生產的物聯網中一個最簡單的節點,考慮到了現代工業生產自動化的實際需求,將圖像檢測與無線數字通信系統強大的功能結合。同時根據現代工業檢測中人力使用的問題,提出了一種自動化的圖像檢測新型方案。但是此系統還不是終結,今后的設計過程中,可以采用多節點的方式將各個嵌入式端與PC機端進行互聯,如圖4的系統展望圖所示。并且在通信方式上也有多種選擇,一種是采用路由器接多根網線的方式,另一種采用生活中常用的Wi-Fi方式。利用主機控制下位機的基本手段,形成一個基于工業互聯網的工廠零件物流控制系統,最終實現一個小型完善的工業物聯網優化系統。
[1]顧海洲,馬雙武.PCB電磁兼容技術:設計實踐[M].北京:清華大學出版社,2004.
[2]Altium Designer 16電路設計與仿真從入門到精通.北京:清華大學出版社,2005.
[3]宮輝.嵌入式實時操作系統μC/OS-III[M].北京航空航天大學出版社,2012.
[4]莊嚴,王驍.嵌入式C/C++系統工程師實訓教程[M].清華大學出版社,2011.
[5]陸文周.Qt5開發及實例(第2版)[M] 北京:電子工業出版社,2015.
[6]毛星云.OpenCV3編程入門[M].北京:電子工業出版社,2015.
[7]岡薩雷斯,伍茲.阮秋琦譯.數字圖像處理(第3版)[M].北京:電子工業出版社,2011.
[8]魏偉波,芮筱亭.不變矩方法研究[J].火力與指揮控制,2007,(11):116-119.
[9]張錚,薛桂香,顧澤蒼.數字圖像處理與機器視覺[M].北京:人民郵電出版社,2010.
[10]劉圣.工業圖像檢測系統關鍵技術的研究及應用[D].上海交通大學,2007.