精華文稿|用於無監督雙目立體匹配學習的視差注意力機制

本文章整理自國防科技大學王龍光博士在深藍學院的關於雙目視覺公開課演講。

—–全文約3000字—–
作者提出了一個基於雙目視覺領域的視差注意力機制,並將此機制應用到雙目立體匹配和雙目超分辨領域,取得了非常好的效果。相關成果已經被CVPR 2019TPAMI 2020接收,文章和程式碼鏈接如下圖所示。
↓↓↓

圖片

全文分為四個部分

1、雙目視覺的介紹

2、提出的視差注意力機制(PAM)

3、將PAM應用到雙目立體匹配中

4、將PAM應用到雙目超分辨中

雙目視覺的介紹

雙目視覺受仿生學的啟發。人的兩隻眼睛,由於位置不同,看到的物體景色也是有一定的差異,這種差異便可以在大腦中產生對物體景色的三維空間感知。雙目視覺則使用一對雙目相機,來仿生這種視覺感知機制。

雙目視覺的一個最基本的原理就是:不同深度的物體在在雙目相機中出現不同的相對位置上。

以下圖為例,三種形狀的物體在雙目相機中的成像位置是不同的,三角形成像基本相同,可以認為三角形處在無窮遠的位置,圓形的成像有一個較大的視差(Disparity),說明圓形在離相機較近的位置。

可以認為距離越近,視差越大,由此便可以通過視差來感知空間距離資訊。

圖片

值得注意的是,上面在雙目相機中的成像,只有橫向的位置變化,縱向是沒有變化的,即同一個點,在不同相機中,縱向坐標是一致的,這是矯正後的結果,下面的工作都是基於矯正後的雙目視覺影像展開的。

雙目視覺在很多領域有應用,最基礎的任務就是雙目立體匹配,即找到兩張雙目圖上的對應點。如下圖,以左目影像作為參考圖,在右目影像中搜索,計算匹配代價,找到最相似的點,即圖中直方圖的綠色點。

傳統的雙目立體匹配流程包括:匹配代價計算、代價聚合、視差計算、視差細化(refinement)深度學習方法,則將由神經網路提取的特徵,使用cost volume來進行匹配代價的計算,使用正則化進行代價聚合。

圖片

同時,雙目視覺還可以應用到雙目視覺的風格轉換,雙目視覺的影像去霧、去噪、超分辨,雙目視覺的3D目標檢測等等。

提出的視覺差注意力機制PAM

視差注意力機制(Parallax-Attention Mechanism)提出的motivation是:同一個場景下,視差的範圍很大,不能確定。

如下圖在不同數據集上,視差的分布都有非常大的不同,有的最大到幾百,有的只在幾十範圍內分布。而之前的工作,均是預設了一個超參數,即最大的視差(往往設置192,作為視差搜索閾值),這就不具有一定的自適應的能力。

本文提出的視差注意力機制,去掉的這一個超參數,能夠更好的自適應不同的數據集和不同的現實使用場景。

圖片

之前的工作多採用cost volume的方法,來做匹配代價計算,但是這種直接基於像元之間的特徵匹配,將會帶來較大的記憶體佔有、較大的計算量以及無法自適應的設置視差搜索閾值,除此之外,cost volume還會帶來一定的匹配的歧義。

由此,提出視差注意力機制的目標有以下幾點:

1、採用無監督的方法,即沒有ground truth的視差
2、具有一定的嵌入的靈活性和視差搜索的自適應能力
3、較低的記憶體佔有和較低的計算量
4、減少匹配的歧義性

整體的視差注意力機制模組如下圖所示:

圖片
雙目影像各自提取特徵之後,分別得到Q和K的特徵,Q和K做一個矩陣相乘,就可以得到視差注意力map,這個map再和某一目的影像做一個矩陣乘,即可輸出同樣解析度的特徵,該特徵融合了雙目圖中的視差特徵。

同時也可以從視差注意力map上提煉出遮擋資訊,輸出遮擋mask。

整個視差注意力機制的核心,都在上面淡藍色的視差注意力map上,接下來講解這個視差注意力map的原理。

圖片

視差注意力map是由兩個特徵圖(H*W*C和H*C*W)矩陣乘得到,即為H*W*W。

我們可以這麼理解,由於工作是基於矯正後的影像,所以匹配只需要在同一條橫線上(縱坐標一致)進行匹配,所以我們將H作為矩陣相乘的batch,即有H對矩陣相乘,每對矩陣是W*C和C*W,即有W個點,每個點的特徵維度是C,將每個點做一個互相關,就是矩陣相乘,相乘結果是W*W,即互相關矩陣,互相關矩陣內的元素(j,k)表示在某一縱坐標下的左目影像的橫坐標為j的元素和右目影像的橫坐標為k的元素的匹配相關程度。

在整個圖上,再加上H維度,結果輸出就是H*W*W,即擴展了縱坐標維度。這一點需要讀者去細細揣摩理解,作者這樣做,直接用了一個batch矩陣相乘,來進行匹配代價計算,非常巧妙,且不僅降低了記憶體佔有,又減少了計算量。

同時由於做了一個互相關,相當於視差搜索範圍擴展到整個feature map上,去掉了這個超參數的設定,且設計很compact,即插即用。可以看到,優秀的方法,往往都是最簡單樸素和巧妙的!

在得到了視差注意力map之後,將其和某一目上的影像特徵進行矩陣相乘,可以實現該目影像與另一目影像的對齊。即H*W*W和H*W*C相乘,得到H*W*C。

我們可以這樣理解,由於視差注意力map是一個相關矩陣,這個矩陣可以理解為一目影像在另一目影像上像素級別的貢獻力(相關度),那麼將這兩個矩陣相乘,就相當於,用這個貢獻力矩陣對某一目影像做了一個attention,即加權平均。

可以發現,這種視差注意力機制,相比於cost volume方法,由於是對所有點都進行了互相關,所以不存在突變的情況,平滑性較好。

其次,這裡的視差注意力map是隱藏在整個視差注意力模組里的,不需要對其進行一個監督訓練,那麼在超分辨等任務中,我們便可以直接用這個無監督下產生的視差注意力map,而不需要相關的ground truth標註。

由於視差注意力map的設計,即其反應了左右目圖的對應關係,我們可以得到以下特性:

圖片

即:右到左圖的map可以通過相乘右圖對應到左圖,左到右圖的map可以通過相乘左圖對應到右圖,以及循環的一致性,讀者可以細品,不難理解。

除此之外,視差注意力map的設計還能提煉出遮擋資訊。我們可以這麼理解,當某一目影像中的一個點在另一目影像中被遮擋了,那麼被遮擋點就匹配不到了,在視差注意力map表現就是,對於該點,匹配度一直處於較低的水平,因此我們便可以根據此原理,輕鬆地提煉出遮擋資訊的mask,非常巧妙。

總結:視差注意力機制利用矩陣相乘的方法,進行匹配代價計算,無需設置搜索超參數;視差注意力機制對每個點都進行了匹配,降低了匹配的歧義性,有著更好的匹配分布曲線(瘦高型分布);視差注意力機制足夠compact,可以無監督地嵌入到很多任務中去,且記憶體佔有和計算量都很小。

以上便是本次報告的核心內容,接下來講的是,視差注意力機制,在立體匹配超分辨的任務中應用。

將PAM應用到雙目立體匹配中

整體的網路結構如下圖:

圖片

雙目影像先進行特徵提取,此處採用的是沙漏網路,然後將提取的特徵送入一個級聯的視差注意力模組,級聯的視差注意力模組在不同解析度的feature map上進行提取特徵,然後級聯視差注意力模組後接一個視差細化模組,最後輸出視差圖。

在輸出模組中,利用了視差注意力模組的遮擋資訊,利用遮擋資訊,就可以將這些不可靠的遮擋點去除。

整體的loss如下,前兩項分別是常用的Photometric loss和smoothness loss。第三項是一個正則化的視差注意力圖的loss

圖片  圖片

將PAM應用到雙目超分辨中

超分辨可以使用單目影像進行超分辨,但是如果引入雙目影像,往往能取得更好的效果,所以關鍵在於如何去融合兩目影像的特徵。整體框架如下圖:

圖片
雙目影像先過一個超分辨領域的Residual ASPP模組來提取特徵,然後將提取後的特徵送入視差注意力模組,最後做一個重建,就可以得到超分辨的影像。
同時,作者也發布了一個更適合雙目視覺領域的超分辨任務的數據集——Flickr1024。