本發(fā)明涉及視覺處理領域,尤其是涉及一種箭頭優(yōu)化建模方法及裝置。
背景技術:
1、視覺slam中對于平面對象的重建往往忽視了其邊緣信息,對于邊緣3d特征線的生成,依舊是通過初始化時左右目三角化或者在跟蹤時通過左目的前后兩幀圖像進行匹配計算出來的,相較于地圖的整體數據,其使用的信息不充分。目前常規(guī)slam算法對于箭頭對象的重建需要通過提前載入其cad模型,或者是通過深度學習的點云分割進行重建,過程曲折且復雜。考慮到箭頭具有完整且清晰的邊緣特征,通過提取邊緣線特征即可成功生成箭頭的三維模型,但因為slam系統(tǒng)的累計誤差的影響,只通過簡單的三角化直線構成箭頭模型是不準確的。
技術實現思路
1、本發(fā)明的目的就是為了克服上述現有技術存在的缺陷而提供一種箭頭優(yōu)化建模方法及裝置,通過建立特征線與箭頭、特征線之間以及箭頭對象間的約束關系進一步進行大尺度的非線性優(yōu)化,調整位姿以消除系統(tǒng)中的累積誤差,提高箭頭在slam系統(tǒng)下的建模精確度。
2、本發(fā)明的目的可以通過以下技術方案來實現:
3、根據本發(fā)明的第一方面,提供了一種箭頭優(yōu)化建模方法,該方法依據對象之間的約束關系重建箭頭模型;所述對象包括特征線和/或箭頭;所述約束關系包括特征線與箭頭之間的平面約束、特征線間的平行垂直約束或箭頭之間的共面約束;其中,
4、依據所述特征線與箭頭之間的平面約束重建箭頭模型包括:提取箭頭候選特征線,并對候選特征線賦予語義信息;依據語義信息使特征線3d化得到3d特征線,獲取箭頭坐標系下的3d特征線的普呂克坐標;進行線面約束優(yōu)化,將3d特征線的普呂克坐標從箭頭坐標系轉換成世界坐標系,再將世界坐標系下的普呂克坐標轉換為相機坐標系的普呂克坐標,使所述3d特征線與箭頭位于同一平面,連接3d特征線形成封閉圖形,所述封閉圖形即為重建的箭頭;所述語義信息包括第一屬性和第二屬性;所述第一屬性為箭頭id,第二屬性為特征線編號;
5、依據所述特征線之間的平行垂直約束重建箭頭模型包括:對區(qū)域場景中的所有箭頭進行編號,提取特征線并將箭頭編號作為第三屬性;基于pca算法對第三屬性相同的特征線進行主成分分析得到對應箭頭主副方向,建立該箭頭所有特征線的方向向量與主副方向的關系;根據所述關系更新特征線普呂克坐標;按編號重建箭頭模型;
6、依據所述箭頭與箭頭之間的共面約束重建箭頭模型包括:構建位姿旋轉矩陣,其中所述位姿旋轉矩陣為3×3的矩陣且第三行元素依次為[0,0,1];獲取區(qū)域地圖中第一箭頭三維模型作為初始模型,依據所述初始模型識別第二箭頭;利用位姿旋轉矩陣恢復第二箭頭位姿,實現箭頭建模;所述第一箭頭為識別過程中第一次出現的所有不同規(guī)格的箭頭,所述第二箭頭為識別過程中重復出現的與第一箭頭規(guī)格相同的箭頭,且所述第一箭頭與所述第二箭頭共面。
7、作為優(yōu)選技術方案,所述第一屬性的獲取方法為:當多個候選特征線與同一個箭頭共面且可圍成封閉圖形,則該箭頭的id作為多個所述候選特征線的第一屬性;
8、所述第二屬性的獲取方法為:將特征線進行編號處理,得到所述特征線的第二屬性,其中第一屬性相同的特征線的編號各不相同。
9、作為優(yōu)選技術方案,獲取特征線的普呂克坐標具體包括:
10、依據第一屬性對候選特征線進行篩選,選出相同箭頭id的候選特征線作為特征線;
11、添加箭頭和第一屬性為對應箭頭id的特征線的二元邊,得到3d特征線;
12、將所述的3d特征線進行世界坐標系到視覺坐標系的相對位姿變換,得到在視覺坐標系下的3d普呂克坐標;
13、依據第二屬性,獲取第一屬性相同的多個特征線的普呂克坐標。
14、作為優(yōu)選技術方案,所述對普呂克坐標進行轉換具體為:將普呂克坐標從箭頭坐標系轉換到相機坐標系,其轉換按照公式進行;其中l(wèi)m為相機坐標系下的坐標,為普呂克坐標系中mm軸上的向量的轉置,為普呂克坐標系中dm軸上的向量的轉置。
15、作為優(yōu)選技術方案,依據特征線間的平行垂直約束重建箭頭,具體包括:
16、添加箭頭id相同的特征線的二元邊獲得3d特征線,并將3d特征線使用普呂克坐標表示,對所述3d特征線進行采樣得到三維空間樣本點集;
17、按所述樣本點集構建樣本矩陣計算列均值,依據列均值得出標準化矩陣,對標準化矩陣處理得到協方差矩陣,求取協方差矩陣的特征向量和特征值,并將特征值排序;
18、選取出最大的特征值對應的特征向量方向作為主方向,第二大特征值對應的特征向量方向作為副方向;所述主方向與副方向垂直;
19、基于箭頭id屬性對所有箭頭構建單獨的特征線集合判斷各個集合中所有特征線方向歸屬,若其角度方向與主方向一致則添加至該箭頭的主方向特征線集合中,若其角度方向與副方向一致則添加至該箭頭的副方向特征線集合中,其中i表示第i個箭頭,k表示有k個特征線;
20、依據主副方向與特征線的平行關系以及主副方向之間的垂直關系,更新集合和中的特征線普呂克坐標,得到兩個集合中所有特征線的新普呂克坐標。
21、具體的,獲取新普呂克坐標的方法為:
22、對集合和中特征線進行編號,同集合中的特征線編號不相同;
23、保留集合中所有特征線兩端點的z軸坐標cj,1和cj,2,并按特征線編號執(zhí)行,
24、將所有特征線投影到相機坐標系的xoy平面得到特征線投影,獲取每一特征線投影兩端點平面坐標(aj,1,bj,1)和(aj,2,bj,2),
25、基于所述兩端點平面坐標更新每一對應特征線的普呂克坐標為(aj,1-aj,2,bj,1-bj,2,cj,1-ci,2,p1,p2,p3),其中,
26、
27、aj,1表示特征線j起點的x軸坐標,bj,1特征線j起點的y軸坐標,cj,1表示特征線j起點的z軸坐標,aj,2表示特征線j終點的x軸坐標,bj,2特征線j終點的y軸坐標,cj,2表示特征線j終點的z軸坐標,p1、p2和p3表示特征線j新普呂克坐標的方向分量;
28、按所述特征線編號獲取集合中剩余特征線的新普呂克坐標;
29、按更新集合中所有特征線普呂克坐標的方法,更新集合中將所有特征線的普呂克坐標。
30、作為優(yōu)選技術方案,所述構建位姿旋轉矩陣的方法為:
31、構建初始位姿旋轉矩陣,基于任意選取的兩個箭頭之間的相對位姿γf,g=(γf)-1γg,對所述兩個箭頭的位姿旋轉矩陣進行多次擬合得到候選位姿旋轉矩陣,選取每一候選位姿旋轉矩陣的第一元素和第二元素;其中γf,g表示箭頭f和箭頭g的相對位姿,γf表示箭頭f的位姿,γg表示箭頭g的位姿;
32、依據第一元素和第二元素計算對應候選位姿旋轉矩陣的誤差值,并對所述誤差值進行排序,篩選出最小誤差值,其對應的候選位姿旋轉矩陣即為位姿旋轉矩陣。
33、作為優(yōu)選技術方案,所述依據位姿旋轉矩陣恢復第二箭頭的方法為:
34、獲取已知的第一箭頭的信息,所述信息包括第一箭頭的位姿和主副方向;
35、以第一箭頭平面為xoy平面,所述主向量設為x軸,所述副向量設為y軸,主向量叉乘副向量的結果向量作為z軸,第一箭頭平面中心點為原點;
36、獲取第二箭頭的對應位姿旋轉矩陣,基于所述位姿旋轉矩陣在xoy平面上進行平移或繞z軸進行旋轉。
37、根據本發(fā)明的第二方面,提供了一種箭頭優(yōu)化建模裝置,包括存儲器、處理器,以及存儲于所述存儲器中的程序,所述處理器執(zhí)行所述程序時實現上述一種箭頭優(yōu)化建模方法。
38、根據本發(fā)明的第三方面,提供了一種計算機可讀存儲介質,其上存儲有計算機程序,所述程序被處理器執(zhí)行時實現所述的方法。
39、與現有技術相比,本發(fā)明對箭頭對象以及箭頭的邊緣特征線進行優(yōu)化,提出三種優(yōu)化方案,分別基于特征線與箭頭、特征線之間以及箭頭對象間的約束關系進一步進行大尺度的非線性優(yōu)化,調整位姿以消除系統(tǒng)中的累積誤差,提高了slam系統(tǒng)下箭頭重建的精確度。