計算機視覺系統中的地平面估計的製作方法
2023-04-27 08:34:31 1

相關申請案的交叉參考
本申請案主張2016年1月5日提出申請的第201641000375號印度臨時專利申請案的權益,所述臨時專利申請案以全文引用的方式併入本文中。
本發明的實施例一般來說涉及計算機視覺系統,且更具體來說涉及計算機視覺系統中的地平面估計。
背景技術:
一類新型嵌入式安全系統(稱為先進駕駛員輔助系統(adas))已引入到汽車中以減少人為操作失誤。此類系統可提供例如面向後面景物的攝像機、電子穩定性控制及基於視覺的行人檢測系統等功能性。這些系統中的許多系統使用單目攝像機且依賴於計算機視覺處理來檢測一或多個攝像機的視野中的物件。在此類系統中,為了實現從由單目攝像機捕獲的二維圖像理解三維環境,從運動求得結構(sfm)處理是關鍵操作。
技術實現要素:
本發明的實施例涉及計算機視覺系統中的地平面估計。在一個方面中,提供一種在計算機視覺系統中用於三維(3d)點雲中的地平面估計的方法,所述方法包含:接收基於由單目攝像機捕獲的多個2d幀而產生的3d點雲;基於所述3d點雲中的地平面的所估計高度而確定所述3d點雲的距離閾值;及通過執行以下步驟預定迭代次數而估計所述3d點雲的所述地平面:從所述3d點雲中的三個隨機選擇的非共線3d點識別所述3d點雲中的隨機平面,其中所述隨機平面的傾斜度滿足預定縱傾及側傾約束;計算所述隨機平面的成本函數,其中所述成本函數基於所述隨機平面的內點(inlier)的數目及位於所述隨機平面下方的3d點的數目,其中使用所述距離閾值來確定所述3d點雲中的3d點是否為內點;及如果所述成本函數比先前所識別隨機平面的先前所計算成本函數更佳,那麼將所述成本函數保存為最佳成本函數。
在一個方面中,提供一種計算機視覺系統,其包含經配置以捕獲場景的多個二維(2d)幀的單目攝像機及經配置以接收基於所述多個2d幀而產生的三維(3d)點雲的處理器。所述處理器經配置以基於所述3d點雲中的地平面的所估計高度而確定所述3d點雲的距離閾值;及通過執行以下步驟預定迭代次數而估計所述3d點雲的所述地平面:從所述3d點雲中的三個隨機選擇的非共線3d點識別所述3d點雲中的隨機平面,其中所述隨機平面的傾斜度滿足預定縱傾及側傾約束;計算所述隨機平面的成本函數,其中所述成本函數基於所述隨機平面的內點的數目及位於所述隨機平面下方的3d點的數目,其中使用所述距離閾值來確定所述3d點雲中的3d點是否為內點;及如果所述成本函數比先前所識別隨機平面的先前所計算成本函數更佳,那麼將所述成本函數保存為最佳成本函數。
附圖說明
現在將僅以實例方式且參考附圖描述特定實施例,在附圖中:
圖1是用於估計三維(3d)點雲中的地平面的方法的流程圖;
圖2是圖解說明攝像機的縱傾及側傾的方向的實例;
圖3是圖解說明3d點的軸規定的實例;
圖4及圖5是圖解說明3d點雲的修剪的實例;
圖6及圖7是圖解說明經修改成本函數的使用的實例;
圖8是圖解說明圖像的梯形區域的實例;
圖9是用於估計3d點雲的地平面的方法的流程圖;
圖10是圖解說明確定具有未知縮放比例的3d點雲的距離閾值的實例;及
圖11是經配置以用於基於單目攝像機的汽車安全應用中的實例性多處理器晶片上系統(soc)的高級框圖。
具體實施方式
現在將參考附圖詳細描述本發明的具體實施例。為了一致性,各圖中的相似元件由相似參考編號表示。
如先前所提及,從運動求得結構(sfm)處理是在許多基於攝像機的嵌入式安全系統中執行的計算機視覺處理中的關鍵操作。在由單目攝像機捕獲的幀的實時sfm處理中,sfm重構流水線跨越順序幀檢測並跟蹤關注點的二維(2d)位置,從而以對應於所述關注點的軌的形式存儲所述2d位置。針對在流水線中處理的每一幀,基於幀內容而更新軌,且對所得軌中的每一者執行三角測量以產生一組三維(3d)點(本文中可稱為3d點雲)。
sfm的目標是恢復攝像機的視野(fov)中的三維(3d)環境。更具體來說,在汽車應用中,sfm的一個目標是確定fov中的物件距車輛的距離。僅使用圖像的sfm可僅按照無法從圖像確定的縮放比例因數而重構3d環境。在無此縮放比例因數的情況下,無法可靠地確定物件距離。
存在用於計算此未知縮放比例因數的數種已知技術。一些此類技術使用例如慣性測量單元或速度計等外部傳感器。其它此類技術使用攝像機距地面的高度。為了基於攝像機的高度而確定縮放比例因數,需要兩種事物:1)攝像機距地面的高度,及2)呈經按比例縮放3d點的形式的地平面。攝像機高度(還稱為地面高度)是從攝像機中心到地平面的距離。在汽車應用中,由於攝像機是安裝於車輛中的固定位置中,因此攝像機的高度很容易獲得。
本發明的實施例提供從3d點雲估計地平面。然後,可使用所估計地平面及可用攝像機高度來確定3d點雲的縮放比例且因此確定在場景中檢測的物件的距離。地平面估計基於眾所周知的隨機取樣一致性(ransac)算法。一般來說,當不存在完全擬合數據點的單個模型且存在考慮到大量數據點的一個模型時,ransac算法使模型擬合數據點。當3d點雲包含位於地平面上的大量點的概率較高且還將存在位於地平面以上的點時,此算法很好地適於檢測地平面。
圖1是圖解說明使用ransac估計3d點雲中的地平面的流程圖。在給出3d點雲的情況下,在3d點雲中識別100隨機平面。可通過在3d點雲中選擇三個隨機非共線點且計算穿過所述三個點的平面的方程式而識別所述隨機平面。可做出檢查以確保所述三個隨機選擇的點不同於任何先前選擇的三個點的集合,且如果所述三個點匹配任何先前選擇的集合,那麼重複所述選擇。
然後計算102所述平面的成本函數,即,確定所述3d點雲中在所述平面上或附近的3d點的數目。這些點稱為「內點」。因此,平面的成本函數簡單地為內點的數目。另外,成本越高,即,內點的數目越高,平面越好。確定3d點是否為內點可通過以下方式做出:計算3d點距平面的距離,及將所述距離與距離閾值進行比較。如果所述距離低於閾值,那麼確定3d點為內點。
然後將成本函數與當前最佳成本函數進行比較104以確定新成本函數是否更佳。如果當前成本函數更佳,那麼將所述成本函數保存106為最佳成本函數且將平面保存為最佳平面。重複步驟100到108某一預定迭代次數。一旦執行了所有迭代,便將當前最佳平面識別為地平面。可按照以下方程式確定迭代k的次數:
其中p是找出地平面的所要概率,w是內點的數目除以3d點的總數目,且n是估計模型所需的點的數目。為了將平面模型化,n=3。假設w=0.125,那麼使找出地平面達99%概率所需的迭代的最小數目為約2350。
對於一致地識別地平面,以上算法可能並非充分穩健的,這是因為所述算法將隨機選擇的平面當中的具有最大數目個內點的任何隨機選擇的平面識別為地平面。換句話說,不存在所得平面即是地平面的確定性。本發明的實施例提供對所述算法的修改,所述修改考慮到存在於汽車環境中的環境約束以幫助確保使用經修改算法選擇的平面為地平面。
在一些實施例中,用以幫助消除錯誤地平面檢測的對ransac算法的一種修改是作為隨機平面選擇的一部分應用縱傾及側傾約束以消除不屬於縱傾及側傾約束內的任何隨機平面。圖2是圖解說明攝像機的縱傾及側傾的方向的實例。可在車輛在平坦表面上固定不動時在校準期間確定攝像機的縱傾及側傾。這些測量形成縱傾及側傾的基本測量(即,baseroll及basepitch),可從所述基本測量確定當車輛正在移動時的變化。當攝像機的軸將幾乎平行於地平面時,這些測量均將不大。此外,當車輛正在移動時,其通常在幾乎平坦表面上,因此地平面的傾斜度將為低的。
當車輛正在移動時,實際側傾及縱傾將變化,但在道路上的典型操作中,實際側傾及縱傾與基線側傾及縱傾之間的差將為小的。可使用側傾的變化範圍及縱傾的變化範圍來消除具有在這些範圍外的傾斜度的任何隨機選擇的平面。側傾範圍可界定為[baseroll-deltaroll,baseroll+deltaroll],且縱傾範圍可界定為[basepitch-deltapitch,basepitch+deltapitch]。deltaroll及deltapitch的特定值可取決於實施方案且可為任何適合值。deltaroll及deltapitch的值可依據經驗確定。這些δ的典型值可在0.5到2.0度的範圍內。可忽略具有不屬於這些範圍內的縱傾及側傾的任何隨機平面且選擇新隨機平面。
在一些實施例中,用以幫助消除錯誤地平面檢測的對ransac算法的一種修改是修剪3d點雲以消除很可能不是地平面的一部分的3d點。此修剪可基於攝像機的高度,即,可消除高於攝像機的高度的任何點,這是因為此類3d點不太可能位於地平面中。圖3是圖解說明3d點的軸規定的實例。使用其中x軸在右邊、y軸向下且z軸沿移動方向(即,車輛正沿其移動的方向)的右手規則。原點是攝像機中心。注意,3d點的y坐標隨高度減小而增加。鑑於當車輛正在移動時攝像機縱傾不大,地平面中的3d點將具有比3d點雲中的其它3d點(例如,對應於樹或建築物的3d點)大的y坐標。
替代考慮3d點雲中的所有3d點,按y坐標值將3d點從最高到最低分類,且處理最高類的3d點的t%以確定地平面。t的值取決於實施方案且可為可依據經驗確定的任何適合值。舉例來說,如果使用sfm來重構全fov,那麼t的值可在45%到55%的範圍內。如果sfm使用並不橫跨整個fov的預計算關注區(roi),那麼t的值可不同。圖4及5是圖解說明在假設全fov的sfm且t=50的情況下此修剪的效果的實例。圖4展示在無修剪的情況下投影到圖像上的經重構3d點雲,且圖5展示投影到圖像上的經修剪3d點雲。圖5展示僅低於攝像機的3d點保留於經修剪3d雲中。
此修剪減小計算的複雜性,這是因為找出地平面的概率取決於迭代的次數。如先前所描述,針對給定概率,實現所述概率所需的迭代的次數可為預定的。如果3d點的數目減少(例如)50%,那麼迭代的次數可減少。舉例來說,為了實現找出地平面的99%概率,如果t=50,那麼w可增加到0.25,因此將迭代的次數減少到約300。
在一些實施例中,用以幫助消除錯誤地平面檢測的對ransac算法的一種修改是改變成本函數以更佳地將地平面模型化。對於類屬平面擬合,使用內點的數目作為成本函數來找出最佳方案是一個好的選擇。然而,實驗表明在許多實例中通過ransac選擇的最佳平面並非地平面。這是由於相對稀疏點雲使得地平面並非最密集平面(即,具有最多內點的平面)導致。在許多情形中,地面以上某一距離處的平面被不正確地選擇為地平面。
為了更佳地將地平面模型化,將成本函數改變為還考慮到平面下方的3d點的數目。即,平面的成本函數是內點的數目減3d點雲中在所述平面下方的3d點的數目。經修改成本函數確保被選擇為地平面的平面具有低高度(即,很少點在其下方)且因此更可能位於地面上。圖6及7是圖解說明使用經修改成本函數的效果的實例。在圖6中,使用先前成本函數導致檢測到在真實地平面以上的所圖解說明地平面。在圖7中,使用經修改成本函數導致檢測到較接近於真實地平面的所圖解說明地平面。
在一些實施例中,用以幫助消除錯誤地平面檢測的對ransac算法的一種修改是進一步修改成本函數以對內點中的一些內點賦予較大權重。此修改基於圖像的一些部分比其它部分更可能位於地面上的觀察。舉例來說,圖像的直接位於車輛前面的區比圖像的其它區更可能為地平面的一部分。因此,可使此類區在地平面決策中具有更大影響。
將被賦予更大權重的內點是位於用於產生3d點雲的圖像(幀)的梯形區域中的那些3d點,如圖8的實例中所圖解說明。在此實例中,軸上的標記是作為圖像寬度及高度的分數的2d坐標。梯形區域的尺寸可依據經驗確定。由於從sfm處理已知3d點到2d圖像中的投影,因此可確定屬於此梯形區域內的3d點。舉例來說,可使用對應於3d點的軌的最後2d位置來確定3d點是否在梯形區域中。在添加加權因數w的情況下,平面的成本函數為(梯形外部的內點的數目-梯形外部的在平面下方的點的數目)+w*(梯形內部的內點的數目-梯形內部的在平面下方的點的數目)。可使用w的任何適合值。w的值可依據經驗確定。
圖9是用於估計3d點雲的地平面的方法的流程圖。所述方法基於ransac算法,但實施例包含先前所描述的修改中的一或多者。在給出3d點雲的情況下,對3d點雲進行修剪900以移除不太可能為地平面的一部分的3d點。如本文中先前所描述,所述修剪可通過以下方式執行:按y坐標值將3d點分類,且保留經分類3d點的前t%來處理以估計地平面。另外,確定將用於決定3d點是否為平面的內點的距離閾值。下文參考圖10描述此距離閾值的確定。
在修剪之後,在經修剪3d點雲中識別902隨機平面。可通過在經修剪3d點雲中選擇三個非共線隨機點且計算穿過所述三個點的平面的方程式而識別所述隨機平面。儘管未具體展示,但可做出檢查以確保所述三個隨機選擇的點不同於任何先前選擇的三個點的集合,且如果所述三個點匹配任何先前選擇的集合,那麼重複所述選擇。做出檢查以確定904隨機平面的傾斜度是否為可接受的(即,隨機平面的傾斜度在先前所描述的攝像機側傾及縱傾範圍內)。可通過計算平面的側傾及縱傾且檢查所計算側傾及縱傾是否在攝像機側傾及縱傾範圍內而執行此檢查。如果平面傾斜度是不可接受的904,那麼從經修剪3d點雲識別902另一隨機平面。
如果平面傾斜度是可接受的904,那麼計算906平面的成本函數。如本文中先前所描述,成本函數基於平面的內點的數目。可通過計算3d點距平面的距離且將所述距離與針對3d點雲確定的距離閾值進行比較而做出3d點是否為內點的確定。如果所述距離低於閾值,那麼確定3d點為內點。在一些實施例中,將成本函數計算為內點的數目減經修剪3d點雲中在平面下方的3d點的數目,如本文中先前所描述。在一些實施例中,按照本文中先前所描述的經加權成本函數計算所述成本函數。
然後將成本函數與當前最佳成本函數進行比較908以確定新成本函數是否更佳。如果當前成本函數更佳,那麼將所述成本函數保存910為最佳成本函數,將平面保存為最佳平面且保存平面的內點。重複步驟902到912某一預定迭代次數。本文中先前描述迭代的次數的確定。一旦執行了所有迭代,便將最小平方算法應用914於最佳平面的內點以確定地平面。
一旦估計了地平面,便可基於地平面及用於捕獲用於產生3d點雲的幀的單目攝像機的高度來估計縮放比例。在給出3d場景的縮放比例的情況下,可以標準單位(例如,米、英裡、英尺)估計物件的距離及位置。
注意,以上方法的功效取決於內點的界定。如果已知3d點雲的縮放比例,那麼可計算雲中的3d點與任一平面之間的距離,且可使用基於度量距離的閾值來決定點是否位於平面上。在sfm產生的點雲中,縮放比例是未知量且已知點距平面的距離僅取決於縮放比例。在一些實施例中,基於地平面的所估計高度確定3d點雲的距離閾值。可通過以下方式找出還稱為參考高度的此所估計高度:識別3d點雲中可能位於地平面上的3d點,找出經識別3d點中的每一者距地面的高度(已知其僅取決於縮放比例),及將閾值計算為可能對應於地平面上的3d點的高度(即,參考高度)的分數。
圖10是圖解說明確定具有未知縮放比例的3d點雲的距離閾值的實例。為找出計算距離閾值所需的參考高度,按y坐標將3d點雲中的3d點分類1000。注意,在其中執行修剪的實施例中,可使用用於修剪的同一種分類來找出參考高度。如先前參考圖3所描述,3d點的y坐標隨地面以上的高度增加而減小。位於經分類3d點的90th百分位處或接近於90th百分位(假設分類是最低值到最高值)的3d點的y坐標被選擇為參考高度。注意,不可總是將具有最大y坐標的3d點假設為位於真實地平面上,這是因為在sfm重構中可存在噪聲。選擇消除約10%的具有較高y坐標的點的點補償sfm重構中的任何噪聲的效應。
為選擇特定百分位來用於選擇參考高度,可使用表示車輛將在其中操作的環境的具有已知縮放比例的3d點雲進行測試。可按y坐標將點雲中的3d點分類,且跨越3d點雲檢查處於各種百分位的y坐標以確定跨越3d點云何種百分位最接近地對應於相應地平面上(假設低縱傾及側傾)的y坐標。
在給出參考高度(即,選定3d點的y坐標)的情況下,將所述距離閾值計算為y坐標的值的分數。所使用的特定分數是目標距離閾值除以已知攝像機高度。舉例來說,假設y坐標為攝像機的高度。如果目標距離閾值是10釐米且攝像機的已知高度是1.5米,那麼閾值是攝像機高度的6.7%,即,10/150。因此,所述距離閾值可計算為參考高度的6.7%。目標距離閾值可依據經驗確定。
圖11是經配置以用於基於單目攝像機的adas中的實例性多處理器晶片上系統(soc)1100的高級框圖。特定來說,實例性soc1100是可從德州儀器公司(texasinstruments,inc.)購得的tda3xsoc的實施例。本文中提供對soc1100的組件的高級描述。實例性組件的更多詳細描述可在以下文件中找到:m.莫迪(m.mody)等人的「ti的tda3x平臺上的高性能前置攝像機adas應用(highperformancefrontcameraadasapplicationsonti'stda3xplatform)」,2015年第22屆關於高性能計算的ieee國際會議的會議記錄,2015年12月16日到19日,印度,班加羅爾,第456頁到第463頁;及「用於先進駕駛員輔助系統(adas)的tda3xsoc處理器技術摘要(tda3xsocprocessorsforadvanceddriverassistsystems(adas)technicalbrief)」,德州儀器,sprt704a,2014年10月,第1頁到第6頁,所述文件以引用的方式併入本文中。
soc1100包含經由高速互連件1122耦合的雙通用處理器(gpp)1102、雙數位訊號處理器(dsp)1104及視覺處理器1106。soc1100進一步包含直接存儲器存取(dma)組件1108、耦合到單目攝像機1124的攝像機捕獲組件1110、顯示管理組件1114、晶片上隨機存取存儲器(ram)1116及各種輸入/輸出(i/o)外圍裝置1120,其全部經由互連件1122耦合到所述處理器。另外,soc1100包含安全組件1118,安全組件1118包含用以使得能夠遵守汽車安全要求的安全相關功能性。此類功能性可包含支持數據的crc(循環冗餘校驗)、用於漂移檢測的時鐘比較器、錯誤信令、窗口看門狗定時器及soc損壞及故障自測試。實施實時sfm以基於從單目攝像機1124捕獲的幀而產生3d點雲且實施如本文中所描述地平面檢測的實施例以檢測3d點雲中的地平面的軟體可存儲於存儲器1116中且可在soc1100的一或多個可編程處理器上執行。
其它實施例
儘管已關於有限數目個實施例描述了本發明,但受益於本發明的所屬領域的技術人員將了解可構想出不背離如本文中所揭示的本發明的範圍的其它實施例。
舉例來說,本文中已描述其中在搜索地平面之前修剪3d點雲的實施例。所屬領域的技術人員將理解其中不修剪3d點雲的實施例。
在另一實例中,本文中已描述其中針對每一3d點雲確定距離閾值的實施例。所屬領域的技術人員將理解其中在3d點雲的縮放比例可能被改變時確定距離閾值的實施例。
在另一實例中,本文中已描述其中將地平面估計實施為在多處理器soc中的處理器上執行的軟體指令的實施例。所屬領域的技術人員將理解可將地平面估計實施為軟體、固件及硬體的任何適合組合。舉例來說,一些功能性可實施於一或多個硬體加速器、專用集成電路(asic)、現場可編程門陣列(fpga)等中。
在另一實例中,本文中已參考汽車安全系統描述各實施例。所屬領域的技術人員將理解用於具有類似環境約束的其它計算機視覺應用(例如,舉例來說,工業應用、機器人及消費者應用(例如真空清潔器))的實施例。
在本描述及權利要求書通篇中使用某些術語來指代特定系統組件。如所屬領域的技術人員將了解,系統中的組件可通過不同名稱來指代及/或可以本文中未展示的方式組合,此並不背離所描述的功能性。本文件不打算區分在名稱但非功能上不同的組件。在所述描述中且在權利要求書中,以開放式方式使用術語「包含」及「包括」,且因此其應解釋為意指「包含但不限於…」。此外,術語「耦合」及其派生詞打算意指間接、直接、光學及/或無線電連接。因此,舉例來說,如果第一裝置耦合到第二裝置,那麼所述連接可通過直接電連接、通過經由其它裝置及連接的間接電連接、通過光學電連接及/或通過無線電連接進行。
因此,預期所附權利要求書將涵蓋歸屬於本發明的真實範圍及精神內的對所述實施例的任何此類修改。