1. 程式人生 > >三維重建過程與演算法介紹

三維重建過程與演算法介紹

一、影象預處理

影象預處理的目的在於改善影象的視覺效果,提高影象的清晰度,有選擇的突出某些感興趣的資訊,抑制  無用的資訊,以提高影象的使用價值。

影象平滑處理:中值濾波、形態學濾波、雙邊濾波、自適應均值濾波、自適應中值濾波、自適應加權濾波。

 有關的改進方法:椒鹽噪聲過濾演算法:GA-BP神經網路噪聲檢測的自適應濾波演算法。

遺傳演算法:Genetic AlgorithmGA

反向傳播神經網路:Back BP   BP

二、特徵點檢測與匹配

特徵點問題主要包括特徵點的提取和特徵點的匹配。特徵點的通常理解為:某些鄰域變化比較大的點。如角點和噪聲,因此特徵點的     本質問題可以歸結為:在抵抗一定的影象畸變的情況下,保證特徵點的正確提取和匹配。

特徵點提取的方法:

  1. 加權平均Harris-Laplace特徵點提取演算法。

    使用harris角點運算元存在很多誤檢。此方法對harris方法有一定改進。

  2. 基於SIFT運算元的特徵提取演算法。尺度不變特徵轉換 SIFT(Scale-invariant feature transform)用來偵測與描述影像中的區域性性特徵,它在空間尺度中尋找極值點,並提取出其位置、尺度、旋轉不變數。該運算元具有對影象旋轉、縮放、光照變化和仿射變換保持不變性的特點。SIFT方法的主要思想為:首先建立高斯差分金字塔表徵,然後將每個畫素點與它周圍的八個點,以及上下相鄰層的十八個鄰域點,總共 26個點作比較。如果該點是極值點,那麼就認為該點為特徵點,同時計算出該特徵點的主方向。由此,就可以將特徵點提取出來了。

  3. 基於SURF運算元的特徵提取演算法。加速魯棒特徵(Speeded-Up Robust Features)借鑑SIFT簡化思想,藉助積分圖和harr小波技術的使用,使模板對影象的卷積可以通過加減運算線上性時間內完成。經實驗證明,SURF的檢測效率要明顯高於演算法,且具備較優的綜合性能。目前SURF演算法在特徵提取與匹配鄰域比較流行。 

特徵點匹配方法:
  1. NCC特徵匹配

    歸一化互相關(normalizes cross correlation)方法的優點是它可以抵抗全域性的亮度變化和對比度變化,並且速度快。

    缺點是:(a)不抗影象縮放。(b)不抗大的視角的變化。(c)當初始匹配點的錯誤匹配率高於

    40%的時候以上兩種方法失效。

  2. SIFT特徵匹配

    主要思想是用特徵點的 16×16的鄰域計算該鄰域的每個點的梯度。然後將 16×16的區域劃分為 4×4的小區域,每個小區域的點向 8個方向投影。這樣總共可以得到 4×4×8=128維的特徵向量描述符。特徵點的匹配首先需要將特徵點旋轉到它的主方向上,然後計算匹配點的 128維特徵描述符的歐式距離。距離最小的匹配點為正確匹配點。

  3. SURF特徵匹配

    Sift特徵點匹配類似,Surf也是通過計算兩個特徵點間的歐式距離來確定匹配度,歐氏距離越短,代表兩個特徵點的匹配度越好。不同的是Surf還加入了Hessian(黑塞矩陣)矩陣跡的判斷,如果兩個特徵點的矩陣跡正負號相同,代表這兩個特徵具有相同方向上的對比度變化,如果不同,說明這兩個特徵點的對比度變化方向是相反的,即使歐氏距離為0,頁直接予以排除。

三、相機標定

相機標定就是求出相機的內部引數。最終得到內參數矩陣K

相機標定的方法:

  1. Tsai的兩步標定方法

    其主要思想是首先利用透視變換原理線性求解出一些相機引數,接著把求得的這些引數作為非線性優化演算法的初始值,只考慮相機的徑向畸變,通過優化演算法求解其餘引數,從而相對於線性標定方法提高了標定的精度。

  2. 圓點模板標定方法

  3. 張正友的平面標定方法

    張正友結合傳統攝影測量標定與計算機視覺自標定優勢,提出使用簡易的平面標定模板,通過多個角度獲取的影象間單應關係,高精度高效的求解出相機的內參數與畸變引數。張正友標定方法因其有效性、可靠性和靈活性而得到廣泛應用。

  4. 相機自標定方法

    相機自標定方法因其不需要額外的已知資訊而具有極大的靈活性,受到廣泛的關注與研究。常見的方法有:直接求解Kruppa方程的自標定法、分層自標定法和基於絕對對偶二次曲面標定法。目前應用最廣泛的為利用絕對對偶二次曲面的標定方法。

四、計算基礎矩陣與本質矩陣

    基礎矩陣是對同一場景的兩幅影象間約束關係的數學描述,是在未標定影象序列中存在的幾何結構約束資訊,隱式的包含了相機的所     有內外引數。

基礎矩陣計算方法:

  1. 歸一化點演算法

    該方法可以降低噪聲的干擾,減小系數矩陣條件數大小,從而提高解算精度。

  2. RANSAC演算法

    隨機抽樣一致性演算法RANSACRandom Sample Consensus)可以在一組包含“外點”的資料集中,採用不斷迭代的方法,尋找最優引數模型,不符合最優模型的點,被定義為“外點”。

假設內參矩陣分別為K1K2的兩幅影象之間的基礎矩陣為F,由此可以求得它們之間的本質矩陣:E=k2TFK1。接著對本質矩陣進行分解(SVD分解方法),得到旋轉矩陣R和平移向量t。然後計算出兩幅影象的投影矩陣P1p2.利用投影矩陣獲得空間三維點的座標。

五、稠密點雲的網格化

通過上面的步驟可以得到基於影象的三維點雲,但要對空間物體的表面資訊進行重構,需要對三維點雲進行三角剖分。

  三角剖分目前比較流行的點雲網格化方法,其方法分為2種:

  1. 平面投影法

    採用投影對映的方法,將三維點雲投影到二維平面上,接著對投影后的二維點進行三角剖分,然後將二維剖分關係傳遞給三維點雲的三角剖分。

  2. 直接剖分法

    三角剖分所給點集R,保留原始點雲的拓撲結構,實際上是對R的線性插值。根據上述可知,直接剖分法比較繁瑣。

得到三維場景的大致模型之後,為了獲得更加逼真的效果,還需要做一步紋理對映工作。紋理對映,簡單來講就是貼圖,將攝像機拍攝出  的影象中選擇其中一幅最合適的,將該圖上場景的紋理,對映到三維模型中。

相關推薦

重建過程演算法介紹

一、影象預處理 影象預處理的目的在於改善影象的視覺效果,提高影象的清晰度,有選擇的突出某些感興趣的資訊,抑制  無用的資訊,以提高影象的使用價值。 影象平滑處理:中值濾波、形態學濾波、雙邊濾

KinectFusion重建過程

       基於深度相機的三維重建是一個非常流行、低成本的重建方案。基於Kinect一代是一種低成本的重建方案,圖1是Kinect一代結構圖。紅外發射器發射紅外線模板,通過紅外CMOS獲取反射紅外光,採用光編碼方式獲得深度圖。(Kinect二代採用ToF飛行時間法)。

【計算機視覺】opencv靶標相機姿態解算2 根據四個特徵點估計相機姿態 及 實時位姿估計重建相機姿態

https://blog.csdn.net/kyjl888/article/details/71305149 1 基本原理之如何解PNP問題 轉載 基本原理之如何解PNP問題 http://www.cnblogs.com/singlex/p/pose_estimati

重建-使用開源庫openMVGopenMVS

在前面我們已經介紹了編譯openMVG與openMVS的方法,得到了openMVG與openMVS的x64位的Debug版本和Release版本 vcpkg問題-環境配置 關於使用vcpkg的一些技巧補充 openMVG編譯 openMVS編譯 參考部落格: https:

影象檢索重建:From Single Image Query to Detailed 3D reconstruction

先前基於影象檢索的三維重建方式由於只關注尺度和外表相似的影象而往往會導致細節缺失問題,為解決該問題,本文結合了基於運動的重建(SfM, Structure-from-Motion)和多尺度場景下的影象檢索進行三維重建。文中對重建系統和檢索系統建立的連線,使得能夠根據當前的3D

重建開源軟體介紹

目錄 先上一個招聘三維重建崗位的圖,這個圖上資訊是我之前在招聘網上看到的,寫的很詳細,雖然我暫時做不到這些,但是可以描述一個方向,如果你想去三維重建公司工作,那麼你應該具備一些什麼技能 一、針對初學者 書籍I Computer Vision

由投影重建影象:濾波反投影、FDK、TFDK重建演算法理論基礎

1.基礎理論從:[1] RafaelC.Gonzalez, RichardE.Woods, Gonzalez,等. 阮秋琦等譯.數字影象處理(第三版)[M]. 電子工業出版社, 2011.P232[2] RafaelC.Gonzalez, RichardE.Woods, St

常見重建演算法及其實現(含原始碼下載連結)

主要整理部分本科畢業設計 這裡三維重建輸入的是斷層影象。 對影象首先需要進行一些常見操作,直方圖均衡化、常見濾波、影象銳化、邊緣提取、二值化等等,把常見操作整合在一個MATLAB GUI中。當初也是從網上下的demo改的,這裡就不要積分了。 網址:http://down

重建之平面掃描演算法(Plane-sweeping)

平面掃描(plane-sweeping)介紹: plane-sweeping演算法在三維重建中非常重要,其特別適合平行計算,因此通過GPU加速後可以使複雜的稠密重建達到實時。大多實時三維重建的深度圖生成部分採用plane-sweeping演算法。而且plane

玩玩重建--Visual SFM介紹

我們在實時三維重建方面的工作今年已經密集展開。或許不久後某一天,你會在本站看到帶有SLAM(即時定位與地圖構建)功能的四軸飛行器,或者讓你在書桌上打一場現代戰爭的增強現實應用。在敲鑼打鼓歡天喜地亮出我們自己的三維重建實現前,先拿別人的東西給大家打打牙祭。 中科大劉利剛教授的3D建模軟體與處理軟體簡介

OpenCV學習筆記(16)雙目測距重建的OpenCV實現問題集錦(一)影象獲取單目定標

雙目測距的基本原理 如上圖所示,雙目測距主要是利用了目標點在左右兩幅檢視上成像的橫向座標直接存在的差異(即視差)與目標點到成像平面的距離Z存在著反比例的關係:Z=fT/d。“@scyscyao :在OpenCV中,f的量綱是畫素點,T的量綱由定標板棋盤格的實際尺寸和使用者

基於面繪製的MC演算法以及基於體繪製的 Ray-casting 實現Dicom影象的重建(python實現)

加入實驗室後,經過張老師的介紹,有幸與某公司合共共同完成某個專案,在此專案中我主要負責的是三維 pdf 報告生成、Dicom影象上亮度、對比度調整以及 Dicom影象三維重建。今天主要介紹一下完成Dicom影象三維重建的過程以及自己的心得體會。實現Dicom三維影象重建最主要用的VTK(Visualizati

重建

class con ++ git tlab iss mat bsp const Poission Reconstruction matlab源碼 c++源碼 實時稠密三維重建 三維重建

重建方法

光學 條件 可靠 投影儀 調制 三角形 坐標 角點 標定 最近在看三維重建方面的論文,進行一下知識總結。 三維重建技術 三維重建技術就是要在計算機中真實地重建出該物體表面的三維虛擬模型,構建一個物體完整的三維模型,大致可以分為三步: 利用攝像機等圖像采集設備對物體的點雲數

《基於影象點特徵的多檢視重建》——相關概念彙總筆記

1.    基於影象的影象3D重建 傳統上首先使用 Structure-from-Motion 恢復場景的稀疏表示和輸入影象的相機姿勢。 然後,此輸出用作Multi-View Stereo(多檢視立體)的輸入,以恢復場景衝密集表示。     

初探重建

三維重建分類   分為主動式重建與被動式重建。目前最主要的是立體視覺重建(被動式重建中的一種方法)。其主要包括1、直接利用測距器獲取程距資訊;2、通過一幅影象推測三維資訊;3、利用不同視點上的兩幅或是多幅影象恢復三維資訊(最常用)。   立體視覺法   傳統的立體成像系統使用兩個放在一起的攝

雙目立體視覺重建

雙目立體視覺的整體流程包括:影象獲取、雙目標定、雙目矯正、立體匹配、三維重建。 影象獲取 雙目相機拍攝獲取 左右目影象 雙目標定 內參 外參 相機矩陣

Python篇:散點圖scatter介紹

    ##畫個簡單三維圖 import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D ax = plt.figure().add_subplot(111, pr

VS2017+Opencv3.2.0SFM實現多目重建

實驗大致步驟: 開發環境:VS2017+opencv3.2.0+opencv_contrib(因為要用到sift運算元提取特徵點) 1.首先需要已知相機的內部引數矩陣f為相機焦距,Cx,Cy分別為相機光心位置; 2.以第一次相機的座標系為世界座標系,對第一次和第二次拍攝的圖片做特

光柵投影和重建

光柵投影和三維重建 客觀物體在空間上是三維的,但是人們從客觀景物上得到的影象往往是二維的。光柵投影就是通過獲取的二維資訊來反映並還原物體的三維資訊。 一、三維形貌測量技術的發展 三維形貌測量技術又稱3D 輪廓術(3DProfilometry),是一種通過運用儀器獲取被測物體外部形