多指標、單刻度儀表
對於圖3、圖6這種圖
隨著人工智慧的發展,現在各行各業都在開始被ai滲透,其中最成功的當屬工業,尤其是在安防、巡檢板塊。該文章將就工業中比較有挑戰的儀表識別進行記錄,免得自己以後忘了。畢竟做演算法這一塊,邏輯是最關鍵的,打死也不能忘的
該文章的方案是已實際應用到工程中,並部署到實際場景且通過測試和驗收
#
torch 1.7
.1torchvision 0.8
.2scipy 1.6
.0numpy 1.19
.5opencv-contrib-python 4.5
.1.48
opencv-python 4.5
.1.48
pycocotools 2.0
圖1
圖2
圖3
圖4
圖5圖6
從技術的角度,我將他們分為了4種,針對四種型別,分別做了乙個project
就像圖1、圖2、圖4,這種型別的儀表應該是最簡單的
1、檢測識別刻度
2、檢測指標位置
3、計算度數
考慮到實際情況可能會出現超視距識別,就是小目標識別,而且我當時處理的時候實時要求比較高,但是得到的硬體支援又不足,所以,優先採用的yolo5x去進行刻度度數檢測識別。
我們事先是採集了足夠量的各種規格的儀表資料,所以就對所有儀表統一進行了表盤的度數識別(字元識別),獲取到每個數字度數的值以及它所在的位置
這兒需要注意:模型輸出的object會是乙個最小外接框,但是考慮實際情況並不會是每張圖都中規中矩的,會出現
影象畸變、傾斜等各種問題。所以,在進行這一步』我叫做度量定位『的時候,會加入透視變換對影象進行矯正,使用
矯正之後的影象去進行後續步驟【訓練的時候不需要提前進行透視變換】
檢測指標位置
檢測指標採用的unet分割模型,分割效果沒話說,槓槓的
演算法計算
這個模組,其實演算法也很重要。模型檢測出刻度度數、指標位置後,需要用演算法去計算詳細讀數。對於這種儀表,邏輯也很簡單,就是獲取指標相鄰的兩邊的度數,然後根據度數的座標、加上偏移量,則可用數學的方式計算出讀數
【此處我自定義了很多校驗函式,在計算的過程中不停的進行各種偏移矯正,盡最大可能糾正誤差】
如圖5這種型別的儀表思路和單指標、單刻度儀表的思路是相似的,不同之處在於:
在指標識別時
單指標的分割圖就乙個目標,很輕鬆的就能隨意獲取需要的資訊。但是多指標不同,他們的指標可能存在多種情況,尤其是指標會出現交叉情況。所以
需要對分割圖進行線性擬合,獲取到多根指標的資訊
刻度組合
對於單行的刻度,也可能會像圖5一樣出現分段的情況
這裡我採取的方案是提前定義刻度組合策略,例如:左邊的刻度是 -10–70, 右邊的是10 - 60。則根據模型識別出的結果,參考座標對模型的結果進行組合,組合的結果就是各個不同的刻度段
剩下的思路就是延用單指標的思路
這種儀表稍微複雜一點點,也只是一點點。總的可以用下面一張圖概括:
理論上它和上面的單指標儀表採用一樣的方案也是可以的。當然,值存在於理論上,反正我自己用那個方案做出來的結果,慘不忍睹。
凡是做儀表,都離不開語義分割的哈。
這種儀表**之處在於它的指標,真是一反常態,特別細小。還有,這種實際情況中,一旦有傾斜,刻度也比較不好識別。我前後試了好幾種針對小目標的模型,效果都不盡如人意,最後,借鑑了飛漿推薦的deeplabv3,分割出來如上圖【上圖展示的分割圖是我過度膨脹了的,實際模型出來的結果擬合還是挺好的】
將分割的刻度圖進行過度膨脹,我使用的是(23, 23),還是夠過度的。然後對膨脹的分割圖進行圓擬合
指標分割出來後,直接採用最小二乘法進行線性擬合,當然,也可以用hough變換進行檢測,兩種方法我都用了,效果不分伯仲。
我是一向崇尚sobel運算元的,但是,既然發現有現成的api,就不能浪費前輩的功勞
找到指標指向的刻度位置,說白了,就是找到擬合的這個指針線與圓弧的交點、或者最近點
當確定了刻度的兩個端點與交點這三個點後,剩下的就交給數學了
同樣,裡面需要在擬合、計算的時候加入偏移量進行控制,防止誤差越滾越大
儀表識別方法彙總
方法一 基於opencv和lssvm的數字儀表讀數自動識別 步驟概括 數字儀表影象預處理 採集影象 儀表影象傾斜校正 canny邊緣檢測與hough變換相結合的傾斜校正方法 影象的形體學處理 腐蝕 膨脹,簡化影象資料,除去不相干結構 影象二值化 將影象分割為背景和目標兩部分,otsu演算法 影象特徵...
視覺識別入門之識別 口罩識別
時隔多月未動筆寫文,一是自己初學很多不明白的地方都在快速地學習,從現在開始定期寫文,我是水彩筆一根,但確是對著生活和學習充滿極度熱情的人,希望能帶著讀者們一起進步,一起學習,三人行必有我師焉!都說寫文的都是大佬級的人物才寫的,我這種水彩筆本不應該淌這趟水,不過在自己學習道路上有很多碩博的朋友以及現在...
python機器視覺車牌識別 機器視覺車牌識別
機器視覺車牌識別 車牌號識別系統研究課題 2018年7月10日,許昌學院資訊工程 軟體職業技術 學院 創出彩 機器視覺智慧型檢測實踐隊第10天研究正式開展,由於老師有別的事情要忙,所以老師只是說了今天下午需要研究的內容,並沒有講的很詳細。今天下午老師說了乙個車牌號識別系統,車牌識別技術要求能夠將運動...