掃瞄補全整理

2021-09-24 03:12:21 字數 3766 閱讀 4503

掃瞄補全模型是指從部分觀察中推斷完整環境的研究。主要分成如下幾部分。

紋理整合方法可以用於縫補影象區域性的缺失(洞)和影象推理。例如 barnes等人通過拷貝類似模組的結構來填補空洞。pathak等人訓練乙個自動編碼器網路。這些方法可以對影象的空洞進行很好的修復。但是不能**視野之外的場景內容。

注:a.patchmatch網路

通過隨機取樣的方法,找到近似最鄰近匹配,利用中其他區域補全缺失部分。

圖 1 演算法流程

整個演算法分成初始化、迭代、重構三個部分。patch指3*3或5*5的小區域。(a)圖是初始化過程,將a圖中的每乙個畫素隨機賦予乙個偏移量offset,在b圖中找到相應畫素與之對應,建立了乙個對映圖offsetmap。整個迭代過程分為「傳播「和」隨機搜尋「兩步。(b)是」傳播「過程,每個畫素搜尋相鄰塊的偏移是否為更合適的匹配,如果是採用鄰域最匹配的offsetmap。(c)是隨機搜尋過程,每乙個畫素點以現在的偏移量為中心設定搜尋視窗,即搜尋半徑。在搜尋視窗中隨機取偏移量,比較相似程度,選取更加匹配的偏移量,代替當前偏移量。搜尋的半徑開始為的尺寸,每次搜尋後以1/2的收斂速度減少半徑,直到半徑為1時結束。第三部分是重構,通過得到了offsetmap之後可以直接通過這個位移關係將新的通過「貼圖」的方式將其生成。在紋理合成中一般會使用影象金字塔在不同的尺度進行合成,利用不同尺度的資訊使融合效果更好。

b. context encoders: feature learning by inpainting

這篇文章的核心思想是利用卷積神經網路來學習影象中的複雜特徵,增加魯棒性,利用特徵完成影象缺失部分的補全。文章提出的網路結構包括3個部分:編碼器encoder、channel-wise fully-connected layer和解碼器decoder。

圖 2  演算法流程圖

encoder的結構引用了alexnet網路前5層的卷積層結構。

channel-wise fully-connected layer本質上是全連線層,進行了少許改進,用於傳遞特徵圖之間的資訊。與全連線層不同的是,它沒有連線不同要素圖的引數,只在特徵圖組中傳播資訊,即輸入層為n*n大小的m個特徵圖,輸出仍為n*n的m個特徵圖,引數數量是4*n*m。然後使用步幅為1的卷積來跨通道傳播資訊。

decoder的目的是將壓縮的特徵圖一步步放大,恢復到原始的尺寸。文章提出採用5個上取樣層,每層後接乙個relu啟用層。上取樣的結構如下。

作者結合reconstruction loss和adversarial loss兩個損失進行訓練。

reconstruction loss直接計算生成部分和原始影象的畫素級誤差,促使解碼器產生**物件的粗略輪廓,無法獲得高頻細節,降低了平均畫素誤差,但是導致平均影象模糊。

adversarial loss對抗性損失基於生成性對抗網路gan。這裡只固定generator,試圖通過極大化loss來訓練更強的discriminator,提高補全部分的真實性。

有一些研究通過拷貝網路上類似影象來填補影象缺失。提出通過拼接來自同一場景的拍攝的影象集合來產生「未被拍攝影象」。hays通過從類似中拷貝內容來填補影象的缺失。

最近很多研究解決了單個物體或場景的形狀補全問題。在視野的遮擋範圍內補全物件的形狀。

a. semantic scene completion from a single depth image

**解決了從單張深度圖進行場景語義補全的問題。

創新點:

1.之前很多任務作將場景補全和語義標註視為兩個任務,分別完成。這篇文章利用兩個任務的耦合特性聯合完成,場景補全有助於識別它的語義類,而知道物件的語義類別有助於補全被遮擋的區域。

2.網路使用3d-dilated層,有效的擴充套件感受野,實現三維上語義的學習。

3.建立了suncg資料集。

4.改進tsdf編碼函式。

這篇文章引入語義場景補全網路(sscnet),是乙個端對端的三維卷積網路,將單個深度圖作為輸入,同時輸出所有體素的占用和語義標籤。網路目標是將體素對映到類標籤c=

採取截斷的符號距離函式(tsdf)對3d空間進行編碼,其中每個體素的值是其到最近表面的距離d,值得符號表示體素是否為被遮擋空間。對tsdf作了兩方面的改進:乙個是消除視角依賴,原來是在攝像機的視角中尋找最近的表面點,而這篇文章選擇計算到完整觀察表面上最近的表面點。另一方面,消除empty space邊緣的強烈梯度。

網路sscnet結構圖如下:

圖 3  sscnet網路

網路首先採用多個3d卷積層學習區域性集幾何表示,生成解析度為輸入1/4的 特徵圖。然後使用空洞卷積(3d-dilated)獲取更高階別物件之間的語義資訊。之後,將空洞卷積的每一層輸出concat在一起,並送到另外兩個卷積層來解決多個尺度問題,其中採用了跳躍連線(skip connection)使梯度更好傳播與訓練。最後採用softmax層來**體素標籤。幾個重要的點:1.將2d-dilated層改為3d-dilated層來增大感受野,獲取上下文資訊。2.新增concat層聚集不同尺度上的資訊。

有一些研究通過輸入圖,**超出可見場景的部分,進行場景補全。

a. im2pano3d網路

im2pano3d 網路對於給定乙個場景的部分觀察,能夠生成完整的場景結構和語義標籤。

圖 4 **結果圖

創新點:

1. 利用從大型合成和現實室內場景中學習到的背景先驗知識。為了使用語義先驗,通過編碼3d結構和語義的通道,在單個全景影象中表示3d場景。為了利用室內的幾何先驗,這篇文章用3d 的平面方程來表示每個畫素的3d結構,而不是每個畫素的原始深度值。

2. 為了簡化3d結構,利用平面方程對3d表面進行引數化,訓練模型直接**這些引數。可以這樣做的依據:室內環境通常由平面構成。由於同一平面的所有畫素具有相同的平面方程,因此3d結構在典型的場景中是分段常數,使得平面方程的估計更穩健。

3.使用多個損失函式來解決畫素級別(畫素重建損失)和全域性背景一致損失(對抗性損失和場景屬性丟失損失)。

通過將輸入影象和輸出**都表示為多通道全景影象,將語義結構檢視外推問題表示為影象修復問題。網路的目的是**輸入全景圖中所有缺失區域的3d結構和語義資訊。對於語義**,這篇文章其建模為語義類別的概率分布,而不是將其表示為離散類別。選擇相機的中心,選擇類似 sky-box的方式,將網路渲染到四個透檢視像平面上。這篇文章用平面方程來表示3d表面。每個畫素的3d位置可以通過與相機光線的交叉從其平面方程中求解。網路架構遵循編碼器-解碼器的結構,其中編碼器從具有缺失區域的輸入中產生潛在向量,解碼器使用潛在向量生成乙個彌補缺失區域的輸出全景。

圖 5 網路架構

1.使用多流網路架構:

全景資料輸入包含多個通道(rgb值,法線平面,深度資訊,語義的概率分布),構建多流網路以在合併到中間層前後,用不相交的流處理每個通道。多流結構為網路提供了學習每個流中特定通道的引數和通過共享層聯合資訊的平衡。

2.利用pl層重建3d網路:

在網路中重新設計乙個額外的層pn層,將法線和平面距離作為輸入,使用平面公式來生成每個畫素點位置的密度圖(基於**的n和p,以及畫素位置)。由於該層是完全可微分的,所以可以在**的3d點位置上新增額外的回歸損失,新增表面法線和平面**距離之間的一致性。

jquery外掛程式整理篇(四)自動補全類外掛程式

1 autocomplete jquery jquery外掛程式易於整合到現在的表單中 form 2 facebook like autocomplete 基於jquery開發,類似於faceboox提供的autocompleter。二手圖書二手書 書舊書網 3 jquery autocomplet...

掃瞄線小整理 HDU1542 HDU1255

以前一直沒仔細學一波掃瞄線,最近終於補了一下。大致的思想 將座標的一維離散化,然後建立線段樹,維護當前被覆蓋的線段長度,然後將另一維排序,按順序插入線段樹。對於乙個矩形的上底邊和下底邊,如果從下往上掃瞄 則對下底邊作 1標記,上底邊作 1標記。用乙個結構體儲存一條邊的資訊,包括l 線段左端點,r 線...

自動補全 Docker 命令自動補全?要的

不知道這個小夥伴有多久沒用過 docker 了,突然對我說 docker 命令怎麼發生變化了 docker run 變成了 docker container run 他說,本來對 docker 命令就不熟悉,這下感覺更加混亂了。其實個人看來,這麼變化還使得命令看著更加規整 當在命令列直接輸入 doc...