本文目的:
對視頻中螺栓點進行自動檢測,使其自動判斷出損害,脫落,鏽蝕螺栓的位置,縮短人力成本。
技術原理 :
對原視頻提取圖片百分之90作爲訓練集,百分之10作爲測試集,人工選取並分類爲3種類別,即不是螺栓,正常螺栓,損害螺栓,通過遷移學習使用卷積神經網絡進行圖形分類訓練,訓練完成後利用完成模型對圖片中全部螺栓點進行判別,判別結束後,假如此點爲損害螺栓則反饋到原圖上表示。
預處理階段:
首先提取視頻中的圖片,考慮到幀數爲50,每50幀提取一次使圖片具有一定的差異性。
通過人工對可能的病害螺栓進行選取標註。
對於如何選擇病害螺栓,除了少數直觀脫落外,還有很大一部分螺栓光憑觀察圖片不能完全判別是否損害,再考慮到後續識別的難易度。
因此選取螺栓時採用一下原則:
1.對於顏色深度過深的螺栓點我們認爲其有可能病害。
2.對於顏色與周圍螺栓明顯不同的點,我們認爲有可能病害。
此外人工截取正常螺栓點,無關點,並分類存儲,最後得到訓練集
正常螺栓點 100個
無關點 50個
損害螺栓點 35個
其中單一螺栓點像素在(15*15)左右
對於單一螺栓點進行灰度分析
單一螺栓點
從圖中我們可以看出其(R,G,B)分佈都較爲陡峭,不利於圖形的區分與判別。
對此需考慮對螺栓點進行灰度二極值處理,使其灰度區分更加明顯,考慮到時間原因和預期成果(即圖片本身清晰度太低,提升效果有限),我們還是使用原先圖片進行訓練。
神經網絡搭建:
通過接入inception,我們只需要更改瓶頸層訓練一小部分數據,就能使其具有一定的識別功能。
深度學習過程,由於數據集偏小,且像素點低,我們只需訓練400次,就可以訓練完成。其中訓練好的模型保存在run文件夾中。
根據圖像我們可以發現,模型自己認爲自己學習的不錯。
螺栓點神經網絡結構構成
測試階段:
思路:通過openCV模塊相似度識別出所有的螺栓點,並得出點的座標,保存入文件夾,在通過測試程序批量訪問批量判別,假如識別爲損害螺栓則記錄保存進新的文件夾,最好反饋至原圖。
因此通過我們準好的測試圖集,人工選取一些的點來測試模型準確度
正常點
根據判斷點1有76%的可能性爲正常螺栓,雖然對了但這個數值並不高。
問題總結:
1.航拍截取圖像清晰度過低。
2.損害螺栓點訓練數據太少。
3.關於人工選取損害螺栓點的過程本身就存在一定的不確定性。
4. inceptionV3主要用於靜態物體識別,對於螺栓點的兼容性比較低,結果的準確度會受很大影響。
5.由於時間,熟練度等原因,短時間內從頭搭建神經網絡並且訓練成型較爲困難。
6.目前的模型只是實驗產品和實際運用還有一段距離。