1. 程式人生 > >計算機視覺方向簡介(三) | 單目微運動生成深度圖

計算機視覺方向簡介(三) | 單目微運動生成深度圖

有什麼用?

深度圖在計算機視覺中有非常廣泛的應用,比如前背景分割(用於背景虛化、美顏、重對焦等)、三維重建(用於機器人導航、3D列印、視效娛樂等)。目前能夠直接快速獲得深度圖的方法就是使用深度相機,不同深度相機獲取深度圖原理見:《深度相機原理揭祕–飛行時間(TOF)》、《深度相機原理揭祕–雙目立體視覺》、《深度相機原理揭祕–結構光(iPhone X 齊劉海原理)》。

但是很多時候由於硬體的限制,我們不能通過深度相機獲得深度圖。只能利用單目相機通過相關演算法來間接計算深度圖。比較有名的方法就是運動恢復結構(Structure from Motion),也就是說,我們需要移動(通常需要較大的移動)單目相機從而獲得不同視角的多張圖片才能間接得到深度圖。

從微小運動中獲取深度圖(depth from small motion)是其中一個比較巧妙的、用單目相機間接獲得深度圖的方法。該方法利用非常微小的運動來計算深度圖,這個“非常微小的運動”的目的是在使用者察覺不到的時間(比如手機使用者尋找最佳拍攝位置時的微小移動,或者使用者拿著相機按快門前的預覽時間,或者類似live photo等)內得到深度圖。如果該方法可以獲得較高質量的深度圖,就可以一定程度(靜態場景下)上替代基於RGB雙目立體視覺的深度相機(如手機雙攝,手機雙攝介紹見《為什麼會出現雙攝像頭手機?》系列文章)的功能。

下面來介紹該技術的一個應用。如下圖所示,(a) 是輸入的一個微運動視訊中所有幀的平均疊加圖,可以看到運動真的是非常微小的。(c) 是演算法計算的深度圖,從放大的細節來看,邊緣還是很銳利的,(d) 是利用得到的深度圖進行重對焦的效果。我們看到對焦主體比較清晰,而位於主體前後景深的物體都已經虛化。
這裡寫圖片描述

什麼原理?

本文的亮點之一就是可以對未標定的相機進行深度圖和內外引數同時估計。大致流程如下:

1、以第1幀作為參考幀,檢測當前幀和參考幀的Harris角點,用KLT法進行特徵點匹配。

2、先假設初始的相機內參和畸變引數,利用光束平差法最小化重投影誤差,迭代得到相機的內外引數、特徵點對應的三維空間點。其原理示意圖如下所示。Uij是第i張影象相對於影象中心的第j個特徵點的畸變座標,紅色點是其去畸變後的座標。藍色點是重投影的座標。目標就是最小化第i幀中紅色點和藍色點的位置誤差。
這裡寫圖片描述

3、根據得到的內外引數用平面掃描法進行稠密立體匹配,並採用贏家通吃的策略得到粗糙的深度圖。微小運動有如下優勢:由於時間短,移動小,視場角變化小,可以近似認為所有幀在該時間段內的灰度值保持不變。這個假設對於可靠的稠密畫素匹配很重要。

4、將彩色圖作為引導圖,對深度圖進行精細化。獲得深度圖的過程如下:
(a) 用贏家通吃的策略得到一個粗糙的深度圖;(b) 去除不可靠的深度值;(c) 深度圖精細化後的結果;(d) 參考影象。

這裡寫圖片描述

該演算法的虛擬碼流程圖如下所示:
這裡寫圖片描述

效果怎麼樣?

該演算法測試效果如下圖所示。下圖左側是用iPhone 6拍攝的1s時間的微小運動連續影象的平均圖,從中可以看出運動非常小。右側是演算法輸出的對應深度圖。
這裡寫圖片描述

該演算法和其他演算法在重對焦效果上的對比如下圖所示。可以看到該演算法能夠在背景虛化的同時保持相對銳利的邊緣。
這裡寫圖片描述

儘管該演算法設計的初衷就是用於微小運動的情況,但是如果運動特別微小,估計的相機位姿就會非常不穩定。另外如果影象邊緣缺乏有效的特徵點,會導致徑向畸變引數的估計變的不準確。上述情況會導致深度圖出現較大的誤差。

該演算法只適合於靜態場景,如果有快速移動物體,該演算法會失敗。另外要注意的是,該演算法估計的深度圖是相對深度。

執行時間:

該演算法是在個人桌上型電腦上進行測試。電腦配置:Intel i7-4970K 4.0Ghz CPU,16GB RAM。對於一個解析度為1280x720的30幀的微小運動視訊,該演算法(未優化)完成特徵提取、跟蹤、光束平差需要1分鐘。稠密立體匹配階段耗時10分鐘。

有什麼參考資料?

本文演算法對應的文章:
Ha H, Im S, Park J, et al. High-Quality Depth from Uncalibrated Small Motion Clip[C]// Computer Vision and Pattern Recognition. IEEE, 2016:5413-5421.

上述論文的優化及加速版:
Monocular Depth from Small Motion Video Accelerated,2017 International Conference on 3D Vision

本文首發於微信公眾號:「計算機視覺 life」

相關推薦

計算機視覺方向簡介() | 運動生成深度

有什麼用? 深度圖在計算機視覺中有非常廣泛的應用,比如前背景分割(用於背景虛化、美顏、重對焦等)、三維重建(用於機器人導航、3D列印、視效娛樂等)。目前能夠直接快速獲得深度圖的方法就是使用深度相機,不同深度相機獲取深度圖原理見:《深度相機原理揭祕–飛行時間(T

計算機視覺方向簡介(四) | 深度相機室內實時稠密維重建

本文首發於公眾號:計算機視覺life。原文連結點這裡 有什麼用? 室內場景的稠密三維重建目前是一個非常熱的研究領域,其目的是使用消費級相機(本文特指深度相機)對室內場景進行掃描,自動生成一個精確完整的三維模型,這裡所說的室內可以是一個區域,一個房間,甚至是一整棟房屋。此外,該領域

計算機視覺方向簡介(一)| 從全景恢復維結構

有什麼用? 2017年初,整個全景相機產業經歷了一輪小爆發。除了像Insta 360、德圖等幾家創業公司外,小米、努比亞等幾家傳統手機廠商在2017年4月份也相繼釋出了自己的消費級全景相機,緊接著,Facebook、Google網際網路巨頭也相繼釋出了自己的第

計算機視覺方向簡介 | 影象拼接

作者戴金豔,公眾號:計算機視覺life, 編輯部成員. 首發原文連結計算機視覺方向簡介 | 影象拼接 簡介 影象拼接是將同一場景的多個重疊影象拼接成較大的影象的一種方法,在醫學成像、計算機視覺、衛星資料、軍事目標自動識別等領域具有重要意義。影象拼接的輸出是兩個輸入影象的並集。通常用到五個步驟: 特徵提取

計算機視覺方向三大頂級會議

物理 來看 之一 兩個 spf eccv 比較 5% 內容 ICCV 的全稱是 IEEE International Conference on Computer Vision,國際計算機視覺大會,是計算機視覺方向的三大頂級會議之一,通常每兩年召開一次,2005 年 10

轉載:計算機視覺方向相關課程與書籍

ndk jdi itl zip back p12 rand monk context 原地址:https://github.com/jbhuang0604/awesome-computer-vision Books Computer Vision Computer

從CVPR2013看計算機視覺研究的個趨勢

 申明:本文非筆者原創,原文轉載自:http://www.bfcat.com/index.php/2013/07/compute-visioni-trends/ tombone‘s blog 最近一直在update關於CVPR2013的感受,今天,他在部

送你6份最新開原始碼!含NLP、ML、計算機視覺方向(附程式碼&論文)

本文長度為636字,建議閱讀3分鐘 本文為你分享6份最新的開原始碼,包括自然語言處理、計算機視覺和機器學習3個方面。 自然語言處理  1 DuReader: a Chinese Machine Reading Comprehension Dataset from Real-world

計算機視覺方向的一些頂級會議和期刊以及牛人

MIT的Brain & Cognitive Science Dept和CSAIL裡面聚集了一幫人,有的作low level有的作mid level to high level的。他們的工作是值得關注的。當然說視覺還是要從偉大的David Marr開始。Tomaso Poggio, Richar

學習計算機視覺:(深度學習在計算機視覺中的應用

1.影象分類:卷積神經網路CNN 影象分類概念 首先,影象分類是解決是什麼的問題? 如下圖,給定一幅圖片,網路能夠給出“最像”什麼的概率: 影象分類使用的技術 •卷積神經網路CNN 它是

計算機視覺方向的一些頂級會議和期刊

計算機視覺、IP、AI方向的一些頂級會議和期刊 Computer VisionConf.:        Best: ICCV, Inter. Conf. on Computer Vision               CVPR, Inter. Conf. on Computer Vision and P

,雙目,深度相機比較

因子 gpu clas 材質 als 分辨率 time 遠的 範圍 1.mono優點:結構簡單,成本低缺點:在單張圖片裏,無法確定一個物體的真實大小。它可能是一個很大但很遠的物體,也可能是一個很近很小的物體。通過相機的運動形成視差,可以測量物體相對深度。但是單目SLAM估計

OpenCV Using Python——視覺維重建

import cv2 import numpy as np import glob ################################################################################ print 'criteria and object poin

OpenCV Using Python——基於SURF特徵提取和金字塔LK光流法的視覺維重建

基於SURF特徵提取和金字塔LK光流法的單目視覺三維重建 1. 單目視覺三維重建問題         在前面的文章中,筆者用SIFT提取特徵後用radio測試剔除了匹配中異常的特徵點,然後根據匹配合格的特徵點計算基礎矩陣和本徵矩陣,對本徵矩陣SVD分解來估計和構造透視矩陣,

基於視覺的四旋翼定點降落——如何搭建基於gazebo的pixhawk模擬環境()-1

    搭建模擬環境是相當重要的,因為我們的程式碼如果直接放到飛機上去跑,那麼很容易炸機。通過模擬環境,我們至少可以保證程式碼邏輯的正確性。這篇文章還是要感謝我的隊友舒仔仔的幫助,話不多說,上正文。1 安裝gazebo一般安裝的ROS就已經自己安裝了gazebo,如果已經安裝

常用牛人主頁鏈接(計算機視覺、模式識別、機器學習相關方向,陸續更新。。。。)【轉】

short psu works charles 貝葉斯 learning 數學 ocr 相關 轉自:http://blog.csdn.net/goodshot/article/details/53214935 目錄(?)[-] The Kalman

視覺SLAM:采用逆深度參數化的方法求取深度信息的過程

ive 魯棒性 圖片 lte 有著 研究 tla 一次 攝像機 一種實時的單目視覺SLAM改進算法 該算法采用一個攝像頭作為外部傳感器來提取機器人行進過程中周圍環境的特征信息,用實時性良好的FAST提取環境特征點,結合逆深度參數化進行特征點非延時初始化,用壓縮擴展卡爾曼濾波

常用牛人主頁鏈接(計算機視覺、模式識別、機器學習相關方向,陸續更新

bject detail ebo abi err 技術 arch college eoj 牛人主頁(主頁有很多論文代碼) Serge Belongie at UC San Diego Antonio Torralba at MIT Alexei Ffros at CMU C

OpenCV3計算機視覺+python()

換來 key 處理圖像 opencv 使用方法 rap 能夠 先來 ont 使用OpenCV3處理圖像下面要介紹的內容都與圖像處理有關,這時需要修改圖像,比如要使用具有藝術性的濾鏡、外插(extrapolate)某些部分、分割、粘貼或其他需要的操作。不同色彩空間的轉換Ope

網易筆試題——計算機視覺_深度學習方向

選擇題 策略 空間 線性 對比 jks rbo 數字圖像處理 計算 選擇題知識點: 【1】大津法(OSTU算法)閾值分割中,閾值自動選擇的思路是: C:最大化類間方差法選擇閾值 解析:大津法(OTSU)是一種確定圖像分割閾值的算法,由日本學者大津於1979年提出;原理上