在自動駕駛中,環境感知是一個非常重要的環節,它不僅可以幫助無人駕駛汽車進行定位,還可以告知障礙物等信息以幫助決策模塊去調整駕駛行為。在視覺感知任務中,實際上有很多細分的任務類型,比如目標檢測、目標跟蹤、語義分割、實例分割、關鍵點檢測等,而這些細分任務在我們的環境感知中都有著非常重要的應用。
1、關鍵點檢測技術簡介
在圖像處理中,關鍵點本質上是一種特征。它是對一個固定區域或者空間物理關系的抽象描述,描述的是一定鄰域范圍內的組合或上下文關系。它不僅僅是一個點信息,或代表一個位置,更代表著上下文與周圍鄰域的組合關系。
比如在人臉關鍵點檢測任務當中,有 28 個關鍵點,或是現在比較流行的 64 個、128 個關鍵點,這里面每個點在不同的人臉當中,代表了一類的特征,且具有一定的通用性。這一類特征不僅包含了像素的一些特性,比如嘴唇的特征點,包含了嘴唇與面部的位置關系。
右邊的圖片是前段時間比較火的阿里推出的服飾關鍵點比賽,比如在這件服飾中提供了 13 類關鍵點,每個關鍵點之所以被定位為一類關鍵點,因為它代表了服飾當中某一個特定的位置,或者某一個特定的位置所能代表的周圍的關系。而在人體姿態檢測當中,這個關鍵點不僅代表一個關節,還代表著這個關節和其他關節之間的關系,比如這個關節能跟其他哪些關節聯系得比較緊密。
2、關鍵點檢測在自動駕駛中的應用
在自動駕駛當中,有一些關鍵點檢測的應用。
比如箭頭的檢測,檢出箭頭的同時,可以把它的關鍵節點回歸出來,不同的顏色的點代表不同的類型,并且不同的點有它的位置信息。通過這些點,作為地圖上的坐標,可以實時、精確地告訴車輛,告訴自動駕駛的大腦,我們現在的位置。箭頭的關鍵點檢測,也是用了類似的方法,雖然它的網絡模型已經改得面目全非了,但是它的原理是一樣的,通過不同等級的金字塔級別,可以把不同級別的點信息融合起來,從而提高它的精度,另一方面提高它的檢測率。
在箭頭或者是其他的一些關鍵點當中,也是需要知道每個點和另外一個點之間連接的關系,也就是它關系的回歸。
并不是所有的點回歸都能夠很精確。比如有些點在圖像上,車輛運行過程中,有些箭頭的關鍵點可以準確地回歸出來,有些可能識別出來錯誤,這受限于我們之前學習到的經驗等。這類問題可以通過一些后續的改進,比如說網絡的改進、攝像本身的改進。另外也可以通過后期的其他公式、其他算法上用的多一幀或是匹配的方式,去修正一下錯誤。
另外在自動泊車或者自主泊車當中,需要先檢測出車位,我們用點回歸的方式可以把車位的頂點回歸出來。在一個圖象當中,可以回歸出車位當中的一些關鍵點,這個關鍵點是有不同類型的。通過車位的關鍵點,我們可以精確獲知到我們實車或者是車輛自身距離這些關鍵點和車位之間距離是多少,我們相對的要調整控制模塊,使得我們能夠自動泊進去這個車位。所以,回歸的車位頂點信息,對我們自動泊車或者是自主泊車來說是非常重要的信息。
另外,利用點回歸的方式,同時結合語義分割的手段,可以給出一個信息更加豐富的結果,網絡可以輸出這方面的結果,相當于是分割出來的車位信息、車庫當中車輛數的信息、車位是不是空車位、這個區域是不是空車位的信息。
同時通過點回歸的方式,在網絡的另一個分支,可以得到關鍵點的位置在哪里。比如我們知道這個地方是個空車位,我們也知道它車位的位置,這樣對我們自動泊車來說,就可以直接去停,這是很好的感知功能。