[發明專利]一種基于深度學習的指針式儀表自動讀數方法有效
| 申請號: | 202110318382.2 | 申請日: | 2021-03-25 |
| 公開(公告)號: | CN112949564B | 公開(公告)日: | 2022-11-29 |
| 發明(設計)人: | 靳一丹;張紅雨;田新宇;李博;吳冰航;孫奇 | 申請(專利權)人: | 電子科技大學 |
| 主分類號: | G06V20/10 | 分類號: | G06V20/10;G06V30/18;G06V10/82;G06N3/04;G06N3/08 |
| 代理公司: | 成都巾幗知識產權代理有限公司 51260 | 代理人: | 邢偉 |
| 地址: | 610000 四川省成*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 深度 學習 指針 儀表 自動 讀數 方法 | ||
1.一種基于深度學習的指針式儀表自動讀數方法,其特征在于:包括以下步驟:
S1.確定儀表類型和儀表定位;
S2.從指針式儀表圖像中提取出表盤;
S3.進行指針檢測并計算指針角度;
S4.檢測0刻度與最大刻度的角度以及最大量程數字區域;
S5.對最大量程數字進行識別;
S6.進行指針式儀表的讀數計算,得到讀數結果;
所述步驟S1包括:
S101.拍攝圖片創建數據集并標注數據:
(1)拍攝的圖片中包含不同儀表、不同復雜背景、不同光線,不同傾斜程度、不同量程的儀表圖像,并通過裁剪、旋轉、翻轉、增加噪聲、改變圖像亮度的方式進行數據集的擴充,然后采用圖像標注工具LabelImg標注圖片樣本,得到對應的xml文件;所述xml文件中包括圖片的文件名、圖片中標注的儀表類型和儀表在圖片中的位置信息;
(2)將xml文件劃分為訓練集、驗證集跟測試集;
S102.配置ssd模型:
(1)轉換文件格式:將訓練集跟驗證集中的每一個xml文件與對應的圖片轉換為tfrecord格式的數據文件,tfrecord數據文件是tensorflow中一種將圖像數據和標簽統一存儲的二進制文件,用于快速地在tensorflow中復制、移動、讀取和存儲;
(2)修改自定義的物體類別:
由于需要識別指針式儀表,所以自定義的物體類別為指針式儀表;
S103.訓練模型:
將轉換得到的tfrecord文件送入到ssd模型中進行訓練,最終得到訓練好的ssd模型結果;
S104.評估模型精確度
將測試集中圖片,逐張輸入到步驟S103中訓練好的ssd模型中,得到每張圖片的測試結果,若模型識別的精確度達標,則完成訓練,否則,對ssd模型的參數進行微調,直到精確度達標后得到成熟的ssd模型;
S105.確定儀表類型和儀表定位;
將需要識別的圖片輸入到成熟的ssd模型中,得到圖片中包含的儀表類型,以及儀表對應的坐標位置信息;
所述步驟S2包括:
S201.根據儀表的坐標位置信息,將原始圖像進行裁剪,只保留儀表區域,并將裁剪后所得的儀表區域圖像大小進行統一處理成高度300像素寬度為300像素的標準圖像;
S202.圖像亮度調整:將圖像轉換到HSV空間,計算出圖片亮度的均值,根據亮度均值的范圍,選擇相應的處理:
若亮度均值在120-200之間,圖片亮度正常,不做任何操作;
若亮度均值小于120,圖片過暗,若亮度均值大于200,圖片過曝光,均采用改進的直方圖均衡算法進行亮度的調整,得到直方圖均衡后的圖片,從而將圖片亮度調節到正常區間,改進的直方圖均衡算法步驟如下:a計算分位點,目的是去掉直方圖兩頭的異常情況;b去掉分位值區間之外的值;c將分位值區間拉伸到255*0.1-255*0.9防止出現像素值溢出情況;
S203.檢測儀表的邊緣,從儀表區域中只摳出表盤區域:a將亮度調整后的圖片轉換為灰度圖像;b使用sobel邊緣檢測算法,得到所訴圖像的邊緣;c給圖像四周添加20像素的黑色邊框;d將上述圖像進行卷積核為5的高斯濾波;e使用大津法找到合適的閾值;f從得到的閾值圖片中尋找輪廓,分別擬合橢圓,返回得到面積最大的橢圓,同時進行霍夫變換進行圓檢測,返回符合約束條件的圓,將得到的橢圓區域跟圓區域求并集,在儀表區域的彩色圖像上用黃色填充,后利用HSV色彩空間轉換,只提取出表盤區域,并將霍夫圓檢測得到的初始圓心坐標,初始圓的半徑保存到列表info_list中,從而實現從存在儀表傾斜,儀表發生形變,儀表存在大量陰影的圖像中將表盤提取出來;
所述步驟S3包括:
S301.將步驟S2中所得的表盤圖片轉換成灰度圖,并對圖像進行卷積核為7高斯濾波;
S302.采用自適應閾值,得到表盤的二值圖像;
S303.將得到的二值圖像進行卷積核為5,迭代次數為2的開操作,并尋找輪廓;
S304.根據儀表指針的特征,找到儀表指針的輪廓,并用藍色填充,所述儀表指針的特征包括面積、質心、周長、最小外接矩形長寬比中一種或多種的組合;
S305.使用色彩空間轉換,在hsv空間找到指針,得到只包含指針的蒙版;
S306.在步驟S2中得到的霍夫圓的圓心很多時候并不是儀表盤真正的圓心,會存在一些偏差,這降低了后面的讀數的精度,因此對步驟S305中得到的指針蒙版進行canny邊緣檢測,再次進行霍夫圓檢測,保證檢測到的圓的圓心與初始圓心的距離小于35像素,從而得到儀表的精確圓心,將其添加到info_list中;
S307.找到指針旋轉矩形的中心,將指針旋轉矩形的中心坐標添加到列表info_list中,方便后續指針角度的判斷;
S308.細化指針,得到指針的骨架;
S309.在上訴指針骨架的圖片上擬合直線,判斷直線的角度:
①計算指針旋轉矩形的中心坐標相對于表盤精確圓心坐標的角度c_theta;
②計算擬合直線的角度θ,通過算法擬合直線的角度范圍為-90°-90°,逆時針為負數,指針擬合直線在1,3象限;順時針為正數,指針擬合直線在2,4象限;
③借助c_theta,判斷指針指向的具體角度,c_theta的角度一定在指針指尖指向的角度的周圍;
④將計算得到的指針角度添加到info_list中;
所述步驟S4包括:
S401.將步驟S2中所得的表盤圖片,使用canny邊緣檢測得到表盤的邊緣圖;
S402.在邊緣圖上尋找輪廓,并根據輪廓的周長,最小矩形,最小矩形的傾斜角度,最小矩形中心點相對于儀表精確圓心的偏轉角度,輪廓凸包的面積,輪廓凸包外接矩形的質心到圓心的距離,直線擬合特征找到儀表盤0刻度與最大刻度的角度以及最大量程數字區域,具體步驟為:
①計算最大刻度的角度過程:a對canny邊緣圖進行輪廓查找,首先在合適的周長下,求輪廓的最小矩形及其傾斜角度b當其最小外接矩形的中心到儀表精確圓心的角度在特定305-340°范圍內,尋找輪廓的凸包,計算凸包的范圍,根據儀表的特征,找到最大量程區域的刻度線,所述儀表的特征包括刻度線傾斜角度和到圓心的距離;c通過計算每個凸包的質心到儀表圓心的角度,計算出的最小值即為儀表最大角度,將最大刻度處的角度添加到info_list中;
②計算0刻度線的角度過程:根據先驗條件,指針式儀表的最大量程刻度線跟0刻度線的夾角為93度,因此將①計算得到的最大量程刻度線角度減去93度即為0刻度線的角度;
③得到最大量程的數字區域:a在①的a步驟下,當其最小外接矩形的中心到儀表精確圓心的角度在特定305-340°范圍內,檢測輪廓的凸包,當凸包的質心到圓心的距離在表盤半徑的0.4倍-0.75倍,凸包面積與外接矩形的面積比值大于0.4時,需找出滿足條件的最大量程數字區域,用綠色填充;b同樣將圖片轉換到HSV空間中,尋找綠色數字區域的外輪廓,并將外接矩形的邊框信息添加到number_info中,用于下一步數字區域的裁剪;
所述步驟S5包括:
S501.根據number_info中的信息,從步驟S2得到的表盤圖像中裁剪出數字區域,并計算得到數字區域中心點的角度;
S502.將得到的裁剪數字區域的圖片進行統一處理,使其轉換為高度為數字區域像素的兩倍,寬度為數字區域像素的2倍的標準圖像;
S503.將標準圖像轉換為灰度圖;
S504.將灰度圖進行大津閾值檢測得到黑底白字的數字圖片,并位其添加10像素的黑色邊框;
S505.由于數字會伴隨著表盤的傾斜有不同程度的傾斜,故找到數字的傾斜角度進行矯正,步驟如下:
①將數字圖像變為灰度圖片,尋找數字區域的外輪廓,通過外輪廓的旋轉矩形,得到數字的旋轉角度;
②根據①中得到的旋轉角度,將S504中的圖片矯正,得到數字的矯正圖;
S506.將S505得到的矯正圖進行像素取反,得到白底黑字的矯正的數字圖片,便于識別;
S507.將數字圖片進行分割,得到單個數字圖像,按順序依次通過預先訓練好的CNN深度神經網絡,獲得置信度最大的數字,最后按順序對識別出來的數字進行組合,得到最終的數字;步驟如下:
①訓練CNN深度神經網絡;
a數據集選擇和預處理;
b只保留數字樣本,并將其90%作為訓練集,10%作為驗證集;
c數據集中圖像的預處理,模型的輸入是28*28的灰度圖片;
d使用圖片生成器生成一個batch的圖像數據,支持實時的數據提升;
e模型搭建和訓練,模型建構選擇784-512-512-11,訓練10代,得到model.json文件;
②將數字分割得到的單個數字圖像,縮放成至邊長為28的小圖,然后將其放入一個28*28的白色圖像的中心位置,將處理好的圖像送入模型中運算,得到識別結果,即為最大量程。
2.根據權利要求1所述的一種基于深度學習的指針式儀表自動讀數方法,其特征在于:所述步驟S6包括:計算讀數結果:
讀數結果=(最大量程-最小量程)*(指針與0刻度線的夾角)/(0刻度角度與最大量程刻度線的夾角),其中:
最小量程為0;
在以儀表精確圓心為原點的坐標系中,其中指針與0刻度線的夾角計算方法為:若指針角度不在第四象限,計算方法為0刻度線角度-指針的角度;若指針在第四象限,計算方法為360-(指針角度-0刻度線角度)
0刻度角度與最大量程刻度線的夾角為:360-(最大量程刻度線角度-0刻度線角度)。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于電子科技大學,未經電子科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110318382.2/1.html,轉載請聲明來源鉆瓜專利網。





