目錄
前言
課題背景和意義
實現技術思路
一、錶盤區域定位算法
二、Mask R-CNN 網絡模型分析
三、錶盤區域定位算法改進與實現
實現效果圖樣例
最後
前言
📅大四是整個大學期間最忙碌的時光,一邊要忙着備考或實習為畢業後面臨的就業升學做準備,一邊要為畢業設計耗費大量精力。近幾年各個學校要求的畢設項目越來越難,有不少課題是研究生級別難度的,對本科同學來説是充滿挑戰。為幫助大家順利通過和節省時間與精力投入到更重要的就業和考試中去,學長分享優質的選題經驗和畢設項目與技術思路。
🚀對畢設有任何疑問都可以問學長哦!
選題指導:
大家好,這裏是海浪學長畢設專題,本次分享的課題是
🎯畢業設計-基於機器視覺的指針式儀表讀數自動識別研究與實現
課題背景和意義
工業化時代下,儀表儀器在工業、交通、電力、煤礦等領域內扮演着重要角色。儀表 測量的各項指標對企業安全生產、高質量生產具有非常重要的意義。如今,指針式儀表和 數字式儀表根據需要應用在不同場所中。相較於指針式儀表,雖然數字式儀表更加直觀, 易於讀數,且可以與終端設備連接直接將數據在終端設備上顯示,避免人工現場讀表,但 在特定場合下數字式儀表仍不能完全取代指針式儀表,當被監測量的數值容易發生急劇變 化或容易產生波動時,指針式儀表的整體穩定性優勢就體現出來。此外,在生產環境較為 惡劣的場合,如在易燃易爆炸的工業現場,高濕度或高粉塵的工業生產車間,潮濕惡劣的 礦井環境,使用指針式儀表對設備進行監測更加可靠,目前較好的解決方式是利用巡檢機器人定時對指針式儀表進行巡檢,獲取需要監測的 儀表圖像後進行圖像處理,從而自動獲取儀表示數。具有普適性和較高的準確 性,對降低人工成本,實現工業自動化、智能化具有實際意義與價值。
實現技術思路
一、錶盤區域定位算法
指針式儀表錶盤區域定位算法
1、傳統錶盤區域定位算法分析
對於指針式儀表錶盤定位首先對傳統的算法進行分析,在傳統的錶盤區域定位算法中 常用的算法有模板匹配算法和霍夫圓檢測算法。
(1)模板匹配算法
模板匹配是數字圖像處理領域一種較為原始、基本的模式識別方法,通過一張模板圖 片作為像素參考,然後在原圖中搜索與模板相同的像素區域,搜索過程中通過相似度函數 來判別原圖與模板的相似度,從而在原圖像中找到相似的子圖,進而識別出目標圖中的物 體。
設模板T 的維度為 rT ×cT ,原圖像 I 固定在偏移 x = (xa , xb ) 處,則相似度函數為:
在實際應用中模板匹配法有着諸多的限制,模板選取的好壞對最終的匹配結果有 很大的影響,如果模板選取大小不合適會導致圖像匹配框出現偏移的現象。圖為使用 模板匹配算法對儀表盤進行定位的結果圖,如圖所示,圖像匹配結果出現了偏移, 且匹配框的大小不合適。
(2)霍夫圓檢測算法
標準霍夫變換的原理就是把圖像空間映射到霍夫空間。將原始輸入圖像經過濾波和邊 緣檢測後得到邊緣圖像,根據圓的座標方程將邊緣圖像中的每個邊緣像素點映射到以圓心 座標和半徑為參數的霍夫三維空間中。
二維空間中圓的方程為:
霍夫圓變換就是將二維的圖像座標轉換為以 a-b-r 為參數的三維的座標,如圖所示。
此時邊緣圖像中的圓上任意一點(xi , yi) 映射到霍夫空間的三維圓錐面上,該三維圓 錐面用公式表示為:
當在邊緣圖像中存在一個圓,把圖像平面位置座標系中位於該圓上的每個點都映射到 參數空間時,各個點映射得到的圓錐面會相交於同一點(a,b,c) ,如圖所示。
使用霍夫圓檢測算法對指針式儀表進行檢測分為兩個階段,第一階段為檢測錶盤圓 心,第二階段為檢測錶盤圓半徑。算法的實現依賴計算機視覺庫 OpenCV。
2、基於深度學習的錶盤區域定位算法
對傳統錶盤定位算法進行分析得出傳統的錶盤定位算法無法很好的滿足實際的應用 要求。近幾年來深度學習技術在目標檢測中取得驚人的成績,所以考慮將深度學習應用於 指針式儀表的定位中。在基於深度學習的目標檢測中,應用較多的是兩步式(two stage) 的 R-CNN 系列和一步式(one stage)的 YOLO 系列。
YOLO 算法的主幹網絡為卷積神經網絡(Convolutional Neural Network, CNN),圖為 YOLO 算法的網絡結構,YOLO 算法對生成的目標框直接送入網絡進行分類迴歸,從而 在全圖中直接檢測出邊界框和對應的分類概率,所以檢測速度相對較高,但精度比 Mask R-CNN 要低。
Mask R-CNN 識別效果圖:
YOLO 識別效果圖:
二、Mask R-CNN 網絡模型分析
Mask R-CNN 集成了 R-CNN、Fast R-CNN、和 Faster R-CNN 的優點,如圖為 Mask R-CNN 的網絡結構。
該結構的核心部分為主幹網絡、區域建議網絡 RPN、興趣區域池化和全卷積網絡 FCN。 主幹網絡 backbone 使用殘差網絡 ResNet [37]和特徵金字塔網絡 FPN[38]進行特徵提取,提取 之後生成 Feature Maps。
1、主幹網絡
在殘差網絡提出之前,研究人員通過增大網絡深度以提升神經網絡的擬合能力,但當 網絡加深到一定程度時研究人員發現誤差反而增大了,出現了梯度彌散和梯度爆炸現象, 這個現象在深度學習中通常被稱為退化現象。
在網絡較深時,由於可以將輸出結果直接傳 入下一次的計算中,因此殘差網絡有效解決了退化問題。
使用 ResNet101 作為 Mask R-CNN 的一個特徵提取主幹網絡,ResNet101 由多集 成的小型卷積核來簡化計算和提升網絡擬合性能,如表所示為 ResNet101 特徵提取的 結構參數,其中 conv(convolution)為卷積層,max pool 為最大池化,stride 為卷積核的提 取步長,softmax 為激活函數。
Mask R-CNN 的主幹網絡由特徵金字塔網絡(Feature Pyramid Network, FPN)和 ResNet101 共同構成,特徵金字塔網絡 FPN 是一種精心設計的多尺度檢測方法,其結構為 自下而上的特徵提取、自上而下的上採樣與橫向連接進行特徵融合兩部分,如圖所示。
特徵金字塔網絡這種層級間特徵融合的結構可以和多種網絡結合,使其可以被構建在 任何骨幹網絡中來進行特徵提取,且可以獲得較高的語義信息來提高檢測精度。在 Mask R-CNN 中 FPN 與 ResNet101 結合進行特徵響應圖的構建,如圖所示為 FPN 與ResNet101 結構圖。
2、區域建議網絡
RPN Mask R-CNN 中儀表圖像經過 ResNet-FPN 進行特徵提取,生成特徵響應圖(Feature Maps)之後,將特徵響應圖送入區域建議網絡(Region Proposal Network,RPN)。
在進行前景背景判斷時用交併比(Intersection Over Union,IOU)的閾值對預設錨框 進行篩選,交併比定義如公式所示:
篩選出的前景錨框包含儀表目標圖像,但此時的錨框並未精確地將儀表範圍框出來, 還需要對錨框的座標值進行修正,使得修正後與數據集上的錨框位置接近。錨框參數用四 維向量 (x, y,w,h)來表示,x,y 為錨框的中心點座標,w,h 為錨框的寬和高。RPN 中,錨 框之間的平移和尺度公式為:
(xa,ya,wa,ha ) 為 待 修 正 錨 框 的 參 數 , 修 正 後 錨 框 參 數 為 (x,y,w,h) ,儀表數據集標註的真實錨框參數為 (x*,y*,w*,h* ) ,t x ,t y 為平移量, tw , th 為尺度縮放,真實錨框的變換量同理。
3、興趣區域池化
興趣區域(Region of Interest,ROI)為特徵圖中錨框檢測到的目標區域,即儀表特徵 圖中包含儀表特徵的區域。經過 RPN 處理後,包含儀表特徵的區域被不同大小的錨框包圍, 所以需要用池化操作來將目標區域摘取出來且轉化成固定尺寸的特徵圖,以便後續送入全 連接層進行分類迴歸。
ROI Align 為了解決取整帶來的誤差,採用雙線性插值的方法獲得像素點的浮點數坐 標,其雙線性插值方法如圖所示。
三、錶盤區域定位算法改進與實現
Mask R-CNN 網絡模型改進
使用 Mask R-CNN 網絡模型除了對儀表盤精確定位外,還需要濾除外部環境的干擾, 使得儀表圖像經過該算法的檢測最終只得到儀表的錶盤區域。因此本文在全卷積網絡(FCN) 分支上設計了錶盤分割環節,如圖所示。
該環節依賴計算機視覺庫 OpenCV 實現掩碼的計算,首先利用 FCN 生成的 mask 掩膜 信息提取二值掩膜圖像,該二值掩膜圖像錶盤區域像素值為 255,非錶盤區域像素值為 0, 然後將二值掩膜圖像映射到儀表圖像中。分割後的圖像和提取的二 值掩膜圖像如圖所示。
Mask R-CNN 默認能夠對 80 類物體進行目標檢測,80 類物體長寬比例複雜,因此在 區域建議網絡 RPN 中錨框的比例為{1:2,1:1,2:1},並且每種比例包含{32×32,64×64, 128×128,256×256,512×512}五種面積,所以錨框能夠適應各種形狀的目標,將目標精確 定位出來。本文將該網絡模型引入錶盤區域定位中,只需要訓練該模型對錶盤區域進行檢 測。由於錶盤區域形狀較為單一,為了適應錶盤區域的檢測,同時減少不必要的計算,對錨框比例進行了調整。
錨框修改前示意圖:
錨框修改後示意圖:
2、數據集建立
Mask R-CNN 對目標的精確檢測需要大量數據集送入該網絡中進行訓練,為了儘可能 模擬真實工況下可能遇到的情形,對現有數據圖片進行數據增強處理,包括亮度增強、旋 轉、隨機顏色等處理,總共生成 1500 張數據圖片。
每標註一張圖片都會生成一個後綴為 json 的文件,還需要使用 Labelme 中附帶的控件 對該文件進行進一步轉化,轉化後生成的數據集如圖所示,其中 label.png 為 Mask R-CNN 訓練需要的掩碼標籤 。
3、Mask R-CNN 的訓練
本文 Mask R-CNN 算法環境搭建依賴於 Tensorflow 開源框架,Tensorflow 是谷歌團隊 為了加速深度學習的研究而開發的深度學習框架,能夠提供深度學習需要用到的各種算 法。在 Mask R-CNN 網絡中使用聯合損失函數來訓練錨框迴歸、分類和 FCN 中的 mask 預 測,其聯合損失函數表示為:
利用開源 COCO 大數據集上得到的模型作為預訓練模型應用到儀表盤定位檢測任 務中,由於加入了預訓練模型,所以凍結部分網絡層不再對其進行訓練,將網絡分類的類 別改為 2 類(儀表盤與背景),然後開始對剩餘的網絡進行訓練,其訓練的參數設置如表所示。
實現效果圖樣例
指針式儀表讀數自動識別: