基於Kinect深度相機測量方法與流程
2023-07-13 21:06:56
本發明涉及測量方法,尤其涉及一種基於kinect深度相機測量方法。
背景技術:
目前,工程測量具備時間性較強,作業環境複雜,涉及的其它專業知識較多,對測量人員的專業知識和技術能力要求較高的特點,比如基坑測力量通常是配合降水和開挖過程,具有鮮明的時間性,測量結果往往是動態變化的,幾小時前的測量結果都有可能失去意義。因此,如何在規定時間最大化還原物體模型、測量物體尺度信息已成為該技術的研究熱點。
技術實現要素:
為了解決現有技術中的問題,本發明提供了一種基於kinect深度相機測量方法。
本發明提供了一種基於kinect深度相機測量方法,包括以下步驟:
s1、深度影像數據的轉換;
s2、計算全局的攝像頭的姿勢信息;
s3、將從已知姿勢信息的攝像頭產生的深度影像數據融合為代表攝像頭視野範圍內的景物的立方體;
s4、從傳感器視點位置對重建立方體進行光線投射,重建的點陣雲產生渲染了的三維重建立方體;
s5、計算測量點之間的距離。
作為本發明的進一步改進,步驟s1中深度影像數據的轉換包括以下子步驟:
s11、獲取原始深度及彩色數據,將kinect中獲取的原始深度幀數據轉換為以米為單位的浮點數據;
s12、對浮點數據進行優化,通過獲取攝像頭的坐標信息,將浮點數據轉換為和kinect攝像頭朝向一致的點雲數據;
s13、對點雲數據進行閾值化及降噪處理,表面情況通過使用alignpointclouds函數獲取。
作為本發明的進一步改進,步驟s2包括以下子步驟:
s21、採用nuifusionalignpointclouds方法將從重建對象計算得來的點雲數據與從kinect深度影像數據中獲取的點雲數據進行配準;
s22、採用aligndepthtoreconstruction方法對重建立方體進行處理,獲得追蹤結果,如果場景中的追蹤被中斷,那麼將攝像頭的位置和上一次的攝像頭位置對齊,繼續進行追蹤。
作為本發明的進一步改進,步驟s3包括以下子步驟:
s31、三維點雲配準,找出兩組點雲數據集的空間變換關係,即旋轉和平移向量,然後將這兩組點雲數據變換到同一的坐標系下,使得兩者之間的交集區域重疊;
s32、逐幀對深度數據融合,同時並行運行平滑算法進行去噪。
作為本發明的進一步改進,步驟s31包括以下子步驟:
s311、計算最近點,即對於集合u中的每一個點,在集合p中都找出距該點最近的對應點,設集合p中由這些對應點組成的新點集為q={qi,i=0,1,2,…,n};
s312、計算兩個點集q和u的重心位置坐標,並進行點集中心化生成新的點集;由新的點集計算正定矩陣n,並計算正定矩陣n的最大特徵值及其最大特徵向量;
s313、由於最大特徵向量等價於殘差平方和最小時的旋轉四元數,將四元數轉換為旋轉矩陣r;在旋轉矩陣r被確定後,由於平移向量t是兩個點集的重心差異,通過兩個坐標系中的重心點和旋轉矩陣確定;其中r是3×3的旋轉矩陣,t是3×1的平移矩陣;
s314、計算坐標變換,即對於集合u,用配準變換矩陣r,t進行坐標變換,得到新的點集u1,即u1=ru+t;
s315、計算u1與q之間的均方根誤差,如小於預設的極限值ε,則結束,否則,以點集u1替換u,重複上述步驟。
作為本發明的進一步改進,步驟s4包括以下子步驟:
s41、從直接光照的微多邊形生成點雲;
s42、計算點雲的n-1次反彈光照;
s43、根據點雲計算並渲染間接光照。
作為本發明的進一步改進,步驟s5包括以下子步驟;
s51、從生成的點雲中讀取測量點的點雲信息;
s52、根據測量要求,根據點雲所包含信息進行長度和曲率計算。
本發明的有益效果是:具備良好的動態性能,不需要高性能配置的計算機設備,可以實現對物體的在線實時重建,操作簡易,成本低廉,測量精度高,時效性高,靈活性強,可以滿足普通用戶日常生活中的目標場景的數位化再現。
附圖說明
圖1是本發明一種基於kinect深度相機測量方法的測量框圖。
圖2是本發明一種基於kinect深度相機測量方法的非線性攝像機透視投影模型圖。
圖3是本發明一種基於kinect深度相機測量方法的kinectv2從sdk獲取彩色數據流程圖。
圖4是本發明一種基於kinect深度相機測量方法的kinectv2從sdk獲取深度數據流程圖。
圖5是本發明一種基於kinect深度相機測量方法的icp算法基本流程圖。
具體實施方式
下面結合附圖說明及具體實施方式對本發明作進一步說明。
如圖1至圖5所示,一種基於kinect深度相機測量方法,包括以下步驟:
(1)、原始數據獲取及尺度轉換:利用kinectv2設備獲取原始深度及彩色數據,sdk將kinect中獲取的原始深度幀數據轉換為以米為單位的浮點數據;
(2)、空間視角轉換:對深度數據進行優化,通過獲取攝像頭的坐標信息,將這些浮點數據轉換為和kinect攝像頭朝向一致的點雲數據;
(3)、點雲預處理:點雲數據閾值化及降噪處理,表面情況通過使用alignpointclouds函數獲取;
(4)、點雲配準:採用nuifusionalignpointclouds方法將從重建對象計算得來的點雲與從kinect深度影像數據中獲取的點雲進行配準;
(5)、點雲追蹤:採用aligndepthtoreconstruction方法對重建立方體進行處理時能夠獲得更高精度的追蹤結果,如果場景中的追蹤被中斷,那麼需要將攝像頭的位置和上一次的攝像頭位置對齊才能繼續進行追蹤;
(6)、點雲融合:將這兩組點雲數據變換到同一的坐標系下,使得兩者之間的交集區域重疊,逐幀對深度數據融合,同時並行運行平滑算法進行了去噪,具體為:三維點雲配準,找出兩組點雲數據集的空間變換關係,即旋轉和平移向量,然後將這兩組點雲數據變換到同一的坐標系下,使得兩者之間的交集區域重疊;逐幀對深度數據融合,同時並行運行平滑算法進行了去噪,其中,三維點雲配準過程如下:
a1)、計算最近點,即對於集合u中的每一個點,在集合p中都找出距該點最近的對應點,設集合p中由這些對應點組成的新點集為q={qi,i=0,1,2,…,n};
a2)、計算兩個點集q和u的重心位置坐標,並進行點集中心化生成新的點集;由新的點集計算正定矩陣n,並計算n的最大特徵值及其最大特徵向量;
a3)、由於最大特徵向量等價於殘差平方和最小時的旋轉四元數,將四元數轉換為旋轉矩陣r;在旋轉矩陣r被確定後,由平移向量t僅僅是兩個點集的重心差異,可以通過兩個坐標系中的重心點和旋轉矩陣確定;其中r是3×3的旋轉矩陣,t是3×1的平移矩陣;
a4)、計算坐標變換,即對於集合u,用配準變換矩陣r,t進行坐標變換,得到新的點集u1,即u1=ru+t;
a5)、計算u1與q之間的均方根誤差,如小於預設的極限值ε,則結束,否則,以點集u1替換u,重複上述步驟;
(7)、點雲渲染:從直接光照的微多邊形生成點雲,計算點雲的n-1次反彈光照;(如果只需一次反彈,則該步可以省略),根據點雲計算並渲染間接光照;
(8)、點雲測量:根據測量位置讀取點雲信息,測量長度、曲率、角度信息。
本發明提供的一種基於kinect深度相機測量方法,主要是基於icp的
改進包括以下步驟:
(1)、點選擇:根據深度傳感器產生的點雲數據,需要選擇部分點雲數據作為樣本用於計算兩組點雲數據之間的最優轉換,然後在整個數據集中測試這個轉換。根據源點雲數據集,已被證明其中一部分點更適合於作樣本點,因為這些店更容易識別進行匹配。針對rgb-d數據,提出了利用sift(尺度不變特徵變換)特徵進行樣本點選擇並被證明很有效。對於具有凹槽的平面目標物體,進行樣本點採樣應確保採樣點法向量的角度是廣泛分布的。對於應使用哪種採樣方法應根據每個具體的問題進行選擇;
(2)、點匹配:icp算法中最關鍵的一步即是對應點的匹配問題。主要的方法就是要在另一個點雲集中找出最鄰近的點或找出源數據點與目標表面(網格點雲匹配)的交集。對於基於sift特徵點的採樣,同樣可以通過sift特徵進行排序,利用蠻力搜索或k-d樹的方式加速查找最接近的匹配點,並且要求兩者之間的法向量內積大於一個設定的閾值;
(3)、點對加權:由於一些點對匹配程度優於其他點,用一些更明智的方式給匹配程度好的點對賦予權值,從而改善轉換矩陣的結果質量。一種方法是對應點之間距離越小分配的權值越大。另外一種方法是針對rgb-d的數據考慮該點的彩色值,或考慮其sift特徵點的距離,低距離比高距離具有的權值更大。其他加權方法還包括:常數權值、法向量越一致權值越大、根據深度傳感器的可靠性分配權值等方法。最後預計可用於噪聲的權重配對;
(4)、點對去除:主要是排除影響誤差最小化的離群點,這些離群點包括來自於傳感器噪聲或來自於兩個連續幀的深度圖像不重疊的區域。這個步驟對於配準的精度影響很大,但不能改善配準的收斂速度。處理這種問題的主要方法就是去除去除點雲邊緣上的數據點,因為這些點最可能處於非重疊的區域。還有其他方法如去除點對距離超過設定閾值的點對;
(5)、誤差度量和最小化。當數據點已被選擇並匹配,點對加權和誤點對去除後,兩個點雲集合需要用合適的誤差度量來表達,需要被最小化。最直接的方式就是考慮每個點對平方距離和。假定兩個輸入點雲集:和目標就是找出一個向量t∈rn,使得誤差函數φ(p+t,q)最小化。在六維自由度(旋轉和平移)。表示均方距離的誤差函數如下所示:
上式中是pdst平移厚到psrc的最鄰近點的函數。現在關鍵的問題就是t的真實值會影響輸出的配對結果。解決這個問題有兩種方法,一是「點到點」方法,即計算兩點的空間距離,可利用線性算子svd(奇異值分解)或正交矩陣方法進行求解。另一種是「點到平面」方法,即計算點對之間的法向量距離,可利用非線性算子levenberg-marquardt(萊文貝格-馬夸特)求解。
案例分析
基於mfc應用軟體平臺,使用本發明測量一個工業機器人完成如下實驗。
通過導出stl圖形,通過solidworks測量工具測量物體尺寸如下:長方形物體為0.31864m*0.50751m*0.15262m,實際物體長度為0.321m*0.501m*0.163m,誤差在0.02m之內。
從實驗結果看,本發明具備測量精度高,時效性高,靈活性強,成本低廉特性。
本發明提供的一種基於kinect深度相機測量方法,主要分為兩個階段,前期進行粗略配準估計,後期再進行精細配準估計。首先是通過提取特徵點和計算點特徵直方圖,藉助k-d樹進行對應點估計,利用隨機抽樣一致方法去除無匹配點,得到一個粗配準對齊,然後是利用迭代最鄰近點算法進行精細配準,利用非線性算子求解空間轉換矩陣。在融合階段,藉助面元表達方法將配準後的點雲進行融合併去除雜點和外點,採取多邊形網格表示和紋理映射技術,獲得可視化的真實物體三維模型結果,最後,根據測量位置讀取點雲信息,測量長度、曲率、角度信息。因此,本發明對kinect重建模型進行改進,改進後的方法可以實現對物體的在線實時重建,操作簡易,成本低廉,測量精度高,時效性高,靈活性強。
以上內容是結合具體的優選實施方式對本發明所作的進一步詳細說明,不能認定本發明的具體實施只局限於這些說明。對於本發明所屬技術領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干簡單推演或替換,都應當視為屬於本發明的保護範圍。