在移動端的UI自動化測試過程當中,機器可能會遇到在代碼設計流程以外的頁面狀態,常見的有活動彈窗和頁面報錯。活動彈窗通常出如今頁面啓動過程,由活動內容和取消按鈕組成,頁面的測試過程須要點擊取消活動彈窗。咱們想讓機器能以接近人理解的方式,「看到」得到彈窗自動點擊取消按鈕完成處理過程,這樣會比基於驅動XML數據的操做元素ID方法更通用和穩定。活動彈窗取消按鈕的識別和定位在機器視覺領域屬於物體識別和定位的問題。由於這個場景沒有現成的標註數據,手工設計特徵成本比較高,因此咱們基於R-CNN模型設計了適用於業務需求的神經網絡模型。git
訓練數據少會使模型容易過擬合,咱們在準備數據的時候作了簡單的處理:github
模型計算以前進行圖像特徵預處理算法
使用數據加強來生成更多的訓練數據網絡
其中圖像特徵預處理至關於讓機器理解一些「常識」知識,預先給機器一些經驗,好比訓練數據的前景提取,定義候選框的大小和形狀。參考遷移學習的思想,有時候咱們幫助機器提早學習好部分知識,在這個基礎上去學習更新參數,能夠給模型的表現帶來很好的收益。機器學習
而後另外一個方法是控制模型的表徵能力,包括只使用3層Convolution-maxpooling提取圖像特徵,在全鏈接層加了L2 正則,改善訓練過擬合的狀況。訓練後模型預測的Precision和Recall在90%以上,1080p分辨率的輸入圖像計算時間須要10s,主要計算時間在Selective Search生成候選框的部分。候選框的生成沒有使用Faster-RCNN的RPN是由於Selective Search的實施更簡單,在沒有高質量和足夠數量的訓練數據條件下更適合當前的場景。學習
活動彈窗識別和定位測試
使用機器學習R-CNN模型的活動彈窗識別定位算法:Vision
spa