楊澤勛 呂晨 李青原 牟寧



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