金樹軍
(1.中煤科工集團(tuán)沈陽研究院有限公司,遼寧 撫順113122;2.煤礦安全技術(shù)國家重點(diǎn)實(shí)驗(yàn)室,遼寧 撫順113122)
煤礦智能化建設(shè)隨著“十四·五”的來臨,加快了建設(shè)步伐,但是目前煤礦系統(tǒng)中存在大量工業(yè)儀表,這些儀表的讀數(shù)以及工作狀態(tài)需要指定人員巡檢,無法實(shí)現(xiàn)自動(dòng)化監(jiān)測。以瓦斯抽放為例,雖然目前國內(nèi)外均有瓦斯抽放系統(tǒng),但是針對(duì)抽放端電機(jī)端的動(dòng)作,目前只能根據(jù)對(duì)電機(jī)運(yùn)轉(zhuǎn)狀態(tài)來判斷,這樣會(huì)出現(xiàn)當(dāng)工具端故障不工作時(shí),無法正確判斷當(dāng)前抽放是否工作,而且相對(duì)于各類開關(guān)、指示燈等的狀態(tài)識(shí)別,指針式儀表(如常用壓力表、電壓/流表等)的讀數(shù)更加復(fù)雜和困難。采用人工巡檢方式,工人的勞動(dòng)強(qiáng)度大,并且因?yàn)檠矙z周期長,短期出現(xiàn)的故障、報(bào)警無法及時(shí)獲取以及處理[1]。
大量更換現(xiàn)有工業(yè)儀表為具備通信功能的儀表,不僅需要大量的儀表購置費(fèi)及施工等費(fèi)用,還會(huì)影響煤礦正常生產(chǎn)工作,這是各個(gè)煤礦生產(chǎn)企業(yè)不可以接受的。為此,設(shè)計(jì)了無需先停止瓦斯抽放系統(tǒng)工作再更換現(xiàn)有儀表的傳感器,采用了圖像識(shí)別[2]技術(shù),采集工業(yè)儀表表盤后,就地實(shí)時(shí)識(shí)別讀數(shù),可通過CAN總線[3]接入現(xiàn)有的中煤科工集團(tuán)沈陽研究院生產(chǎn)的瓦斯抽放系統(tǒng)中。
儀表讀數(shù)傳感器硬件系統(tǒng)結(jié)構(gòu)如圖1,由攝像頭圖像采集模塊、ARM主控模塊、CAN總線模塊、參數(shù)存儲(chǔ)模塊、紅外模塊等構(gòu)成。
圖1 硬件結(jié)構(gòu)圖Fig.1 Hardware structure diagram
主控制模塊作為傳感器的核心部件,負(fù)責(zé)圖像處理與識(shí)別及整體控制,選擇NXP廠商的ARM Cortex-A7內(nèi)核Imx6ul芯片,主頻高達(dá)528 MHz,包括1個(gè)集成的電源管理單元,外擴(kuò)256MB的DDR3L,具有較強(qiáng)的數(shù)據(jù)、指令處理能力以及較低功耗,目前大量應(yīng)用汽車電子、工業(yè)控制等領(lǐng)域,外設(shè)資源較全。
圖像采集模塊采用200萬像素低功耗的CMOS攝像頭,內(nèi)置影像串流處理器,實(shí)時(shí)JPEG編碼器以及整合微控制器,支持自動(dòng)聚焦、光學(xué)縮放等??紤]井下光源以及設(shè)備震動(dòng)對(duì)視覺采集處理的影響,設(shè)計(jì)攝像頭工裝將攝像頭與被測儀表固定于一個(gè)空間,提供白色LED照明并保證同頻震動(dòng)。
存儲(chǔ)模塊與紅外模塊分別負(fù)責(zé)參數(shù)保存以及用戶輸入,由于Cortex-A7架構(gòu)的規(guī)定,芯片內(nèi)部不集成FLASH,系統(tǒng)采用工業(yè)級(jí)Nand Flash具有512 MB做存儲(chǔ)。紅外解碼使用通用型ir2100解碼芯片,自動(dòng)識(shí)別RC5、RC6 Mode0、NEC等多種編碼格式,無需外圍電路,使用UART接口與各類單片機(jī)通信,簡單方便。
通信模塊使用CAN 2.0B協(xié)議總線,Imx6ul內(nèi)部具有2路CAN FD,設(shè)計(jì)中使用1路CAN控制器搭配1路CTM1051收發(fā)器[4],使用標(biāo)準(zhǔn)幀負(fù)責(zé)與監(jiān)控分站通信。
軟件的穩(wěn)定、可靠是保證整個(gè)系統(tǒng)實(shí)時(shí)通信的關(guān)鍵,軟件使用Linux 4.15版本操作系統(tǒng)開發(fā),此系統(tǒng)開源、結(jié)構(gòu)清晰合理,適用于工業(yè)產(chǎn)品開發(fā)。軟件使用的線程數(shù)量要合理,各個(gè)模塊之間需保證低內(nèi)聚高耦合的軟件工程思想[5],要合理使用內(nèi)部資源,防止出現(xiàn)線程死鎖、饑餓等問題發(fā)生。軟件結(jié)構(gòu)圖如圖2,軟件系統(tǒng)設(shè)計(jì)了主線程1個(gè),接收線程1個(gè),數(shù)據(jù)上傳線程1個(gè),狀態(tài)改變上傳線程1個(gè),圖像識(shí)別線程1個(gè),人機(jī)交互線程1個(gè)等共計(jì)6個(gè)線程。
圖2 軟件結(jié)構(gòu)圖Fig.2 Software structure diagram
主線程負(fù)責(zé)對(duì)整個(gè)系統(tǒng)配置以及建立其他子線程;周期性上傳圖像識(shí)別的數(shù)據(jù)及傳感器自身狀態(tài)由數(shù)據(jù)上傳線程來實(shí)現(xiàn);狀態(tài)上傳線程優(yōu)先級(jí)最高,屬于實(shí)踐觸發(fā)任務(wù),非周期性執(zhí)行,只有當(dāng)傳感器狀態(tài)改變時(shí)觸發(fā)。接收處理線程將上層設(shè)備的指令加入共享內(nèi)存,為了保證數(shù)據(jù)不丟幀,當(dāng)接收到數(shù)據(jù)后,不在接收函數(shù)處理,將數(shù)據(jù)加入數(shù)據(jù)隊(duì)列后,觸發(fā)信號(hào)量通知處理任務(wù),處理后的數(shù)據(jù)根據(jù)協(xié)議規(guī)定會(huì)存放到共享內(nèi)存后通知相應(yīng)的任務(wù)來取數(shù)據(jù)。人機(jī)交互線程屬于觸發(fā)性任務(wù),實(shí)現(xiàn)井下礦工對(duì)傳感器標(biāo)定工作,與普通礦用傳感器不同,視覺傳感器對(duì)環(huán)境要求高,所以需在規(guī)定時(shí)間內(nèi)標(biāo)定視覺提高識(shí)別率。
圖像識(shí)別線程實(shí)現(xiàn)對(duì)被測儀表的圖像采集以及數(shù)據(jù)識(shí)別工作,識(shí)別流程圖如圖3,圖像信息的獲取是對(duì)被研究對(duì)象的調(diào)查和分析后得到數(shù)據(jù)和材料,對(duì)圖像識(shí)別來說是將實(shí)物、圖片、底片以及文字圖形等用光電掃描設(shè)備轉(zhuǎn)換為電信號(hào)進(jìn)行處理,通過對(duì)原始圖像的輸入,可以進(jìn)行相應(yīng)的加工、整理、分析、歸納等操作實(shí)現(xiàn)去偽存真,以粗取精,提煉出能反映和可計(jì)算的實(shí)物本質(zhì)的特征量。采用OpenCV視覺處理圖與典型儀表識(shí)別算法共同完成,其中OpenCV視覺圖負(fù)責(zé)完成圖像信息獲取及處理等工作,判決與輸出提取由具體算法實(shí)現(xiàn)。
圖3 識(shí)別流程圖Fig.3 Identification flow chart
另外,由于接入瓦斯抽放系統(tǒng),作為系統(tǒng)子模塊,要通過設(shè)計(jì)特定的協(xié)議,實(shí)現(xiàn)即插即用,無需人為設(shè)定類型,并且減少井下升級(jí)傳感器的難度,需要設(shè)計(jì)遠(yuǎn)程更新升級(jí)[6]功能,丁遠(yuǎn)等《基于ARM的IAP遠(yuǎn)程升級(jí)技術(shù)在煤礦監(jiān)控分站中的應(yīng)用》對(duì)Boot-Loader原理以及IAP實(shí)現(xiàn)進(jìn)行詳細(xì)的講解。對(duì)傳感器強(qiáng)實(shí)時(shí)性的實(shí)現(xiàn),可參考文獻(xiàn)[7]。
圖像識(shí)別是從工業(yè)儀表圖像中對(duì)表盤示數(shù)進(jìn)行識(shí)別,算法流程圖如圖4。
圖4識(shí)別算法圖Fig.4 Recognition algorithm chart
算法流程如下:
1)加載系統(tǒng)參數(shù),包括量程、各類算法所需參數(shù)值等。
2)讀取攝像頭圖像數(shù)據(jù)I,并轉(zhuǎn)換成算法所需的Mat數(shù)據(jù)格式。
3)使用高斯濾波算法[8],對(duì)灰度圖lg進(jìn)行去噪、光滑處理。原始圖像可能包含有攝像頭拍攝時(shí)產(chǎn)生的斑點(diǎn)、噪點(diǎn),同時(shí)畫面中還可能存在我們不感興趣的線段等。通過使用高斯濾波算法,可以對(duì)圖像進(jìn)行模糊處理,得到處理后的圖像lga。
4)使用Hough圓擬合[9]算法,計(jì)算每個(gè)非零像素點(diǎn)的各個(gè)方向的梯度向量,對(duì)于在同一個(gè)圓上的像素點(diǎn),它們的梯度向量最終相交于同一個(gè)點(diǎn)。對(duì)這些梯度向量的交點(diǎn)進(jìn)行投票,選出票數(shù)最高的點(diǎn)作為圓心(x,y),然后對(duì)半徑r進(jìn)行縮放,當(dāng)半徑r縮放到某個(gè)數(shù)值后,有足夠多的點(diǎn)在該圓上,即可確定半徑r。記錄下圓心P(x,y)與半徑r。
5)使用Canny邊緣檢測[10]算法,對(duì)于圖像lga進(jìn)行邊緣處理,得到邊緣圖像lgc。
6)使用Hough直線擬合算法,由于傳統(tǒng)的直角坐標(biāo)系垂直于x軸方向的直線斜率不存在,故而需要先對(duì)圖像的所有像素點(diǎn)轉(zhuǎn)換成極坐標(biāo)來計(jì)算。對(duì)于圖像lgc所有像素點(diǎn),計(jì)算經(jīng)過該點(diǎn)的直線的可能的斜率k和截距b,遍歷完圖像所有像素點(diǎn)后,對(duì)k-b進(jìn)行統(tǒng)計(jì),選出出現(xiàn)次數(shù)足夠多的k-b。有了斜率k和截距b后就可以確定1條直線。
7)將提取到的所有直線與圓心P(x,y)進(jìn)行測距計(jì)算,得到直線與圓心P(x,y)的距離。
8)根據(jù)直線的起點(diǎn)、終點(diǎn)與圓心P(x,y)的距離,選出距離圓心最近的直線,該直線即為指針,記錄下該直線的起點(diǎn)S(x,y)和終點(diǎn)E(x,y)。
9)利用三角正切函數(shù)原理,根據(jù)直線起點(diǎn)S和終點(diǎn)E以及圓心P,計(jì)算指針直線與圓心的夾角α,并根據(jù)夾角α進(jìn)行量程換算,轉(zhuǎn)換成讀數(shù)n。
試驗(yàn)以中煤科工集團(tuán)沈陽研究院瓦斯抽放系統(tǒng)為試驗(yàn)平臺(tái),該系統(tǒng)下的每臺(tái)瓦斯抽放監(jiān)控分站可接16個(gè)傳感器。在實(shí)驗(yàn)室采用與現(xiàn)場井工礦一致的線纜布置搭建采煤工作面環(huán)境后,使用10臺(tái)設(shè)計(jì)的視覺傳感器,為了檢測系統(tǒng)通信能力,使用2臺(tái)甲烷傳感器,1單參數(shù)流量傳感器,1臺(tái)壓力傳感器,1臺(tái)溫度傳感器,1臺(tái)多參數(shù)傳感器做穩(wěn)定性實(shí)驗(yàn)。使用Wireshark工具在PC端進(jìn)行以太網(wǎng)異常數(shù)據(jù)監(jiān)測,使用CAN那根線分析設(shè)備對(duì)總線進(jìn)行實(shí)時(shí)監(jiān)測,在瓦斯抽放監(jiān)控分站軟件中的各個(gè)線程數(shù)據(jù)接口部分打印對(duì)應(yīng)的日志,隨機(jī)選取常用指針儀表5種,每種2款進(jìn)行識(shí)別讀數(shù),設(shè)置2 s識(shí)別間隔,每種儀表采集100幅圖片,識(shí)別率可達(dá)到95%,符合識(shí)別要求,查看上位機(jī)數(shù)據(jù),并未發(fā)現(xiàn)識(shí)別錯(cuò)誤的指針儀表數(shù)據(jù),符合錯(cuò)誤處理要求。
以瓦斯抽放系統(tǒng)為平臺(tái),工業(yè)指針儀表為設(shè)計(jì)對(duì)象,提出并設(shè)計(jì)了一種采用攝像頭獲取儀表圖像,通過圖像識(shí)別技術(shù)得到儀表讀數(shù)并本地顯示和具備CAN總線傳輸?shù)墓I(yè)儀表自動(dòng)識(shí)別裝置,解決了瓦斯抽放現(xiàn)場中大量工業(yè)儀表需要人工巡檢,不具備數(shù)據(jù)通信能力,無法與現(xiàn)有瓦斯抽放系統(tǒng)通信等問題,達(dá)到了加快智慧礦山建設(shè)的目的。