楊澤勛 呂晨 李青原 牟寧
關鍵詞: 機器視覺;百度AI;5G傳輸;API接口;物聯(lián)網(wǎng)平臺
中圖分類號:TP393 文獻標識碼:A
文章編號:1009-3044(2023)21-0028-03
0 引言
工業(yè)互聯(lián)網(wǎng)作為新一代工業(yè)革命的重要組成部分,正在深刻地改變著傳統(tǒng)制造業(yè)的生產方式和商業(yè)模式[1]。5G+機器視覺通過人工智能和5G網(wǎng)絡的協(xié)作,成為工業(yè)互聯(lián)網(wǎng)領域研究和應用的熱點之一[2]。5G網(wǎng)絡的高速率、低延遲和大帶寬特性可以為工業(yè)互聯(lián)網(wǎng)提供更加可靠、安全、高效的數(shù)據(jù)通信和計算能力[3]?;贏I的圖像識別技術,可以實現(xiàn)對工業(yè)生產過程中的設備、產品和環(huán)境等多個方面進行實時監(jiān)測和數(shù)據(jù)采集,提高生產效率和質量,降低成本和風險[4]。
5G+機器視覺在工業(yè)互聯(lián)網(wǎng)領域已有很多成功案例[5]。本項目來源于某企業(yè)的實際需求,系統(tǒng)使用工業(yè)攝像機對工業(yè)儀表數(shù)據(jù)進行采集,通過訓練深度學習AI模型,實現(xiàn)對于儀表的自動化數(shù)字識別,同時基于物聯(lián)網(wǎng)平臺將數(shù)據(jù)上云,便于管理人員進行實時監(jiān)控。
1 需求分析和整體架構
1.1 需求分析
系統(tǒng)需要對圖像進行自動定時抓拍;需要支持高速的圖像傳輸,能夠將圖像數(shù)據(jù)傳輸?shù)絇C端進行處理和存儲;需要將圖像數(shù)據(jù)進行存儲,并且能夠快速地進行檢索和查詢;需要支持靈活的配置,能夠根據(jù)不同的應用場景進行配置和調整,需要能夠對數(shù)據(jù)進行加密和保護。
基于以上需求點,梳理系統(tǒng)的具體功能性需求如下:
清晰化采集:選擇工業(yè)級采集和通信設備進行硬件搭建,確保采集圖像清晰,傳輸高速準確。
精確化識別:準確識別讀取儀表的數(shù)值,精準到小數(shù)點后一位。
自動化程序運行:系統(tǒng)24小時無間斷運行,并支持遠程操控。
數(shù)據(jù)可視化管理:識別的數(shù)據(jù)匯總顯示在工業(yè)互聯(lián)網(wǎng)平臺或移動端小程序上,做到數(shù)據(jù)可視化和監(jiān)測實時化。
1.2 系統(tǒng)總體架構
針對以上功能性需求點,將系統(tǒng)劃分為三個模塊,整體架構設計如圖1所示。
模塊一:基于5G的圖像采集;
模塊二:基于AI的圖像識別;
模塊三:基于云平臺的可視化監(jiān)測和管理。
2 系統(tǒng)設計和實現(xiàn)
三大模塊設計細化如圖2所示。在數(shù)據(jù)終端采集模塊中,需要部署攝像機、5G數(shù)據(jù)傳輸設備和電腦。攝像機負責采集圖像數(shù)據(jù),5G數(shù)據(jù)傳輸設備負責將數(shù)據(jù)傳輸至電腦,電腦則進行數(shù)據(jù)預處理、壓縮和傳輸。數(shù)據(jù)傳輸采用http協(xié)議,以便于在數(shù)據(jù)可視化層中進行數(shù)據(jù)的接收和展示。在圖像識別模塊中,采用百度AI提供的圖像識別服務進行圖像處理和分析,采用Python代碼進行數(shù)據(jù)處理和模型訓練,并采用圖形化界面系統(tǒng)提供可視化操作界面,方便用戶進行交互式操作。在數(shù)據(jù)可視化模塊中,基于OneNET物聯(lián)網(wǎng)平臺提供的數(shù)據(jù)存儲、分析、可視化等功能,結合移動App 提供的可視化界面,實現(xiàn)對數(shù)據(jù)的實時監(jiān)控分析,并通過數(shù)據(jù)結果展示,為用戶提供智能決策支持。
2.1 數(shù)據(jù)終端采集模塊
數(shù)據(jù)終端采集模塊的構成如圖3所示。
其中,5G CPE 采用鼎橋IC1680,是一種基于5G 網(wǎng)絡的高性能終端設備,將5G信號轉換成WLAN信號和網(wǎng)線接入,從而為工業(yè)用戶提供無線寬帶接入服務[6]。網(wǎng)絡攝像機采用??低旳I多攝系列,其全景和細節(jié)鏡頭均采用背照式傳感器的設計[7],攝像機增加的進光量對圖像質量有明顯的改善作用。
攝像機采集到的數(shù)據(jù)經過處理和優(yōu)化后,通過5G網(wǎng)絡傳輸?shù)椒治銎脚_。除了利用5G網(wǎng)絡高速率、低時延的特性,網(wǎng)絡側還配置了5G無線增強和邊緣計算技術,實現(xiàn)更高效、更靈活、更安全的網(wǎng)絡傳輸和管理。采集圖像預覽頁面見圖4所示。
2.2 圖像識別模塊
1) 基于百度AI圖像識別
設置訪問的APIKEY 與SECRETKEY,并且設置文件路徑,用lambda函數(shù)獲取最新文件的絕對路徑,并且以列表的形式存儲起來,從而實現(xiàn)獲得最新的攝像機拍攝溫度照片,實現(xiàn)數(shù)據(jù)的更新。之后調用在線的儀器儀表數(shù)字識別服務API或者交通模型識別服務,獲取token,同時圖片經過url encode后進行base64 編碼傳入,因為計算機傳輸數(shù)據(jù)格式無法識別圖片圖像地址,所以需要將一幅圖片數(shù)據(jù)base64編碼成一串字符串,使用字符串代替圖像的存放地址。之后得到圖片的二進制,然后去掉編碼頭后再進url encode。
AI識別數(shù)據(jù)進行上傳至ONENET平臺操作,定義數(shù)據(jù)上傳格式。調用ONENET工業(yè)物聯(lián)網(wǎng)云平臺API 服務,填寫相關的url地址和API KEY數(shù)據(jù),就能進行參數(shù)的云平臺上傳與檢測。獲取time函數(shù),規(guī)范時間輸出格式為年月日每小時每秒,打印出程序運行的時間,最后設置程序循環(huán)運行時間。
2) 基于OpenCV的圖像識別
流程如圖5所示。第一步,進行中心點的設定和坐標讀取,達到定位圖像的準確位置,之后獲取圖像中心和去色,用K-Means算法在顏色樣本中建立2個類,從而為原始圖片的每個像素進行類的分配。K- Means算法是一種以距離為基礎的聚類算法,k 個數(shù)據(jù)點隨機分成集群。根據(jù)數(shù)據(jù)點到集群中心的距離,將每個數(shù)據(jù)點分配給最近的集群。然后重新計算每個群落的中心,再分配分數(shù)點,這個過程不斷重復,直到一定的收斂條件得到滿足。
第二步,實現(xiàn)一個獲取指針角度的功能。傳入一個圖像,首先獲取圖像的形狀,然后計算出圖像中心坐標,以及在該圖像中心坐標下,到指針末端的一條線段。然后在該線段上采樣點,通過判斷采樣點處像素的顏色來確定指針是否覆蓋該點。最終,將各個采樣點的覆蓋情況統(tǒng)計到一個列表中,返回出現(xiàn)次數(shù)最多的顏色及其對應的角度,即為指針所在的角度,
第三步創(chuàng)建名為POINTER的類,其構造函數(shù)接受一個參數(shù)path,表示圖像路徑。類中有一個start_get_val方法,用于獲取測試圖像的指針所指向的刻度值。將圖像轉換為灰度圖像,然后返回矩形坐標,用于截取感興趣的區(qū)域。接著,從截取的區(qū)域中再次使用矩形坐標,用于進一步截取只包含指針的區(qū)域。然后將這個區(qū)域進行二值化處理,再調用從中函數(shù)獲取指針所指向的角度。根據(jù)角度計算出刻度值,并將其返回。
在圖形化控制界面中,可以讀取實時識別的儀表讀數(shù),如圖6所示。
2.3 數(shù)據(jù)可視化模塊
基于OneNET平臺實現(xiàn)PC端可視化,使用HTTP 協(xié)議完成設備接入和設備管理。設備管理功能包含數(shù)據(jù)管理、在線管理、在線狀態(tài)監(jiān)測等。具體界面如圖7所示。
移動端采用了VUE前端框架、uview小程序繼承框架、ECharts與uCharts,uni.request等多種方法來獲取阿里云平臺數(shù)據(jù),并在移動端的小程序中展示。采用HbuilderX編輯器,它是一款由DCloud開發(fā)的基于Electron的跨平臺前端開發(fā)IDE,支持多種框架和語言的開發(fā),具有代碼提示、調試、版本管理等功能。圖8 為移動端的管理界面。
3 測試和討論
在部署的Python代碼中,系統(tǒng)每十秒讀取一次測試儀表的溫度值,如圖9 所示,可以精確識別相應數(shù)值。
同時,將識別的數(shù)據(jù)以字符串形式傳遞給工業(yè)物聯(lián)網(wǎng)云平臺,如圖10所示。
云平臺方面需要調配百度AI的相關應用,創(chuàng)建相關的服務模型。由于儀器儀表指針型儀器識別困難,百度AI暫時還沒有推出相關的算法模型,需要基于OpenCV對獲取到的儀表圖片進行預處理,包括圖像的灰度化、二值化、濾波等處理,通過閾值分割、邊緣檢測等方法,將指針和刻度盤進行分割,使用霍夫變換或其他方法,對刻度盤進行識別,得到刻度值的位置和大小,對指針進行識別,得到指針的位置和角度,最后根據(jù)指針的位置和角度,以及刻度值的位置和大小,計算出指針指向的刻度值。
在項目部署實施環(huán)節(jié)中,數(shù)顯溫度計的顯示屏幕刷新率與攝像機顯示屏的刷新率不同步,數(shù)顯溫度計在攝像機里會出現(xiàn)顯示不全、數(shù)字抖動等現(xiàn)象,需要降低攝像機曝光率。當儀器儀表的圖像清晰度不夠時,可能會導致圖像處理算法無法正確地識別和分析儀器儀表的特征。在不同的光照條件下,儀器儀表的圖像可能會發(fā)生變化,這也會影響圖像處理算法的準確性和穩(wěn)定性。
不同種類的儀器儀表在形狀、大小、顏色等方面都可能存在差異,這對識別算法的設計和實現(xiàn)提出了更高的要求。在實際應用中,儀器儀表的位置和方向可能會發(fā)生變化,這會影響圖像處理算法的準確性。在圖像采集和傳輸過程中,可能會受到噪聲和干擾的影響,這會對識別算法的準確性造成影響。此外電磁干擾會對攝像機產生電磁波,可能對數(shù)顯溫度計的電路產生負面影響。