Vision - 圖像對比

Vision是基於圖像處理的算法,從工程實踐和實際需求發展而來。Vision能夠進行圖像對比、活動彈窗處理和場景問題的智能處理,本文主要介紹在圖像對比場景的應用。git

圖像空間融合

移動應用的頁面內容在空間上是連續的,咱們經過在機器屏幕上「滑動」的操做查看內容的不一樣部分,可是機器的截圖是當前屏幕的展現內容。爲了能得到頁面總體內容展現,咱們經過「截圖-滑動-截圖」的反覆操做保存頁面的一系列時序相關的截圖,而後使用空間融合算法造成一張完整的圖像。算法的基本操做步驟:github

1. 配置兩個參數,剪切參數a和ROI參數b算法

2. 按頁面截圖的保存順序使用參數a剪切第一張圖像,保留上半部分編碼

3. 從保留的部分底部開始,用參數b得到ROI區域的圖像設計

4. 用ROI區域的圖像作模板,使用模板匹配算法得到第二張圖像的拼接點3d

5. 用第一張圖像的保留部分和第二張圖像的拼接點作融合,造成新的圖像做爲下一次計算的第一張圖調試

6. 循環操做得到完整的空間融合後的圖像rest

在實際的應用中,頁面可能會有懸浮窗、吸頂的組件影響,咱們調試了多組不一樣的參數來自動適應業務場景的問題。orm

                                                                圖像融合過程

圖像對比

得到App頁面的內容總體展現圖像,咱們可使用配置好的基準圖和當前的圖像作對比。常見的圖像對比算法爲像素Pixel-by-Pixel的對比。基於像素的對比適用於兩個參與對比的圖像來自同一源,能夠標記像素級的差別。然而在移動端的場景中,參與對比計算的圖像在時間上來自不一樣的源,手機GPU渲染和頁面排版存在像素位置的波動。咱們發現,融合後的兩個圖像常會存在內容位置的差別,例如在連續相同的內容之間增長新的內容。在業務上這種狀況體如今需求的更新或者增長相關的展現區域等情形下。內容位置的更新會使像素對比算法失效,對比圖的信息不能參考。(能夠看到下圖中,若是採起傳統像素對比算法,即便兩幅圖中僅有頭部區域多出了城市信息,整版版面都將被標記爲不一樣,無從聚焦在真實的不一致上)cdn

                                                 像素對比內容位置的問題

咱們須要算法可以標記差別的同時對內容的位置更新作出響應,因此咱們開發了一種新的圖像增量對比算法來應用到移動端的業務場景。其設計點有:

1. 經過行Hash編碼狀態來表示圖像

2. 圖像的對比過程轉換爲圖像1到圖像2的轉換過程

3. 中間結果後加上濾波器處理行數波動

圖像的表示狀態定義了它如何去計算,Pixel-by-Pixel的問題在於它對圖像的表示基於像素點,內容位置信息互相沒有關聯,爲了讓機器理解圖像先後內容位置的更新,咱們從新定義了圖像的表示方式。首先對圖像進行以行爲單位的特徵提取,參考均值Hash表示成二值的形式,這裏是爲了以後計算去掉單個像素的位置信息,算法能夠在更「高層語義」的層面去對比兩張圖像。在兩個圖像的行特徵關聯計算的時候,二維的信息變成了一維,可使用一維的數據算法作計算。在由行特徵關聯計算造成的編碼狀態表裏尋找一條從左上角到右下角的最優路徑,是圖像1到圖像2的轉換過程,路徑中的Op就是兩個圖像的增量部分。最優的路徑是指,圖像1轉換到圖像2的轉換路徑須要的最少操做。

                                                            行編碼和狀態轉換

實現後的對比算法能夠更好的處理內容的位置分佈,標記圖中增量的部分,不影響相同的內容部分。


                                              Vision對比算法效果

相關連接

基於圖像行特徵的圖像對比算法:Vision-diff

相關文章
相關標籤/搜索