陳 文,應 捷,楊海馬,何施晶
(1上海理工大學 光電信息與計算機工程學院,上海200093;2上海領旌信息科技有限公司,上海201306)
隨著汽車保有量的不斷增加,停車難成為城市可持續發展面臨的嚴峻問題之一[1]。目前各城市停車位嚴重不足,實時檢測并掌握停車位的數目,根據需求合理增加或者減少停車位,充分提升現有停車位的運營效率是解決停車位不足的重要手段。
停車位檢測的方法可以分為4種:基于用戶界面的、基于自由空間的、基于槽標記的和基于基礎設施的[2]。本文的目的是為了識別停車位并記錄停車位數目,顯然采用基于槽標記的方法最合適。幾乎所有基于槽標記的方法都使用攝像機,但是復雜多變的環境因素對攝像機采集視頻和圖像有很大的影響[3]。此外還有一些影響因素亟待解決,例如:標記線年久褪色、侵蝕、標記線嚴重缺失等。
針對停車位標記線的檢測,可以簡單的將以往的方法概括為:Jung等人首次提出了識別各種類型標記線的方法,通過設置感興趣區域,采用交叉點模式分類識別、定位以及目標位置建立的方案到達了目的[2];Suhr等人通過使用分層樹結構自動檢測各種類型的停車位標記,缺點是對照明條件敏感[3];Suhr等人提出通過估計平行線對來檢測停車位,利用車載傳感器克服了光照條件的約束,但缺陷是只能處理單一類型的停車位標記線[4];Zong等人采用改進的LSD直線提取器和L型角點提取器克服了光照條件的約束,對空置停車位檢測的效果很好[5];Hsu等人也是采用環視攝像機采集圖像,再通過采用提取車位線特征、隨機采樣、區域生長法、邊緣檢測等算法檢測標記線,該算法也取得了令人滿意的效果[6]。本文的目的是標記出標記線,方便進行圖像拼接以及輪廓提取。因此,首先進行圖像預處理,再利用基于葉貝斯分類器的概率霍夫變換檢測出標記線。
在檢測出標記線后,本文采用基于圖像拼接的算法進行停車位數目檢測,將所有停車位都顯示在一張拼接圖上,既防止了錯檢,又簡化了處理流程。有關圖像拼接領域,Xiong等人利用小內存,采用顏色校正、動態規劃、圖像混合實現了對全景圖像的快速拼接[7];Wang等人針對圖像拼接中的接縫問題,采用曲線小波變換,有效的消除了接縫[8];Fang等人采用保形半投影法、顏色混合方法、加權坐標差值、超像素分割,在無人機拍攝的重疊圖像上取得了較好的拼接效果[9];Chen等人采用局部保持匹配、魯棒彈性曲翹函數、全局射影保持,獲得了高精度的無人機圖像的合成全景圖[10]。上述諸多圖像拼接算法在各自運用場景都取得了顯著成效。為了解決現有圖像拼接算法在停車位數目檢測領域運用效果不佳、處理速度慢的問題,本文采用基于二次方遞減的圖像拼接算法進行圖像拼接,不僅節省時間,也大幅提升了拼接效果。
本文進行停車位數目檢測方法的整體方案如圖1所示。先選取有停車位的路段進行視頻采集,由于采集的視頻包含信息量巨大,因此根據采集路段的不同設置不同的間隔幀數提取圖像,剔除視頻中包含的大量無用圖像信息,減少計算量;再對提取的圖像預處理后采用PPHT與直線聚類算法檢測出停車位標記線;采用二次方遞減圖像拼接算法進行拼接,把動態視頻問題轉化為靜態圖像問題,便于后續處理;對拼接圖中的停車位進行輪廓提取,得出停車位數目。

圖1 整體方案圖Fig.1 Overall plan
從采集的視頻中提取圖像f(x,y),尋找停車位所在的部位為感興趣區域(Region Of Interest,ROI),在采集、傳輸、處理視頻時,不可避免的會產生噪聲,采用中值濾波去除噪聲。在視頻采集的過程中也存在過曝或者曝光不足的情況,采用伽馬變換(Gamma transform)進行圖像增強。在經過伽馬變換后,ROI變得層次分明、色彩均勻,有利于后續形態學操作。鑒于道路旁停車位的標記線大多存在年久褪色、缺失等問題,采用閉運算(Closing Operation)將標記線輪廓平滑并填充缺失部位,同時改善圖像質量,對感興趣區域進行圖像預處理的結果如圖2所示。

圖2 圖像預處理Fig.2 Image preprocessing
在對ROI預處理后,標記線輪廓清晰的呈現出來,方便進行直線檢測。采用漸進概率霍夫變換(Progressive Probabilistic Hough Transform,PPHT)檢測直線,僅隨機抽樣處理,節約了時間及計算量。采用PPHT檢測直線關鍵在于如何設置參數使得檢測結果最優。本文設置5個參數來檢測平行標志線對,分別為:最佳閾值(OT)、最短可視直線值(MLL)、同一直線各點允許最大間隙值(MAG)、相鄰線段之間的距離(Δρ)及相鄰線段的方向角(Δθ)。具體的直線聚類算法規則見表1。檢測出平行標志線對的位置作為預選停車位,并用白色標記線標出,線檢測效果如圖3所示。

表1 直線聚類算法Tab.1 Linear clustering algorithm

圖3 使用PPHT與直線聚類在ROI檢測標記線Fig.3 Use PPHT and linear clustering to detect parking space marking lines in the ROI
首先,采用SURF算法進行特征點提取;利用標記出的停車位標記線進行特征點匹配;RANSAC(random sample consensus)算法進行圖像配準。在圖像矯正后,利用柱面投影變換后曝光補償,再使用動態規范法對拼接圖像,進行拼縫計算消除接縫,利用羽化融合算法對圖像融合,生成拼接圖。
SURF算法檢測特征點具有穩定、計算量少、匹配實時性等優點。通過計算圖像f(x,y)的二階海森矩陣來生成所有的興趣點,圖像f(x,y)在位置(x,y)和尺度σ的海森矩陣定義為式(1):

改為行列式的形式可表示為式(2):

根據det(H)取值的正負選取感興趣點。為了計算的便捷,采用盒濾波器來近似H[x,y,σ],近似結果表示為式(3):

其中,ω取值為0.9,用于平衡盒濾波器的相對權重。接著構建尺度空間,提取興趣點,對其定位和主方向分配,再使用一階哈爾小波提取描述子,濾除不穩定的和錯誤的興趣點,得到最終穩定的特征點。對特征點的匹配需建立點對點的一一映射關系,利用順序性約束條件,采用動態規范的方法。為了進一步獲取較多的最優匹配點采用Lowe’s算法,ratio取值為0.6。最后使用2NN算法進行圖像配準。對特征點的提取、匹配、配準如圖4所示。

圖4 特征點的提取、匹配、配準Fig.4 Feature point extraction,matching and registration
由于遮擋效應、約束原則缺乏嚴格性,導致在交叉區域存在誤匹配,需要采用零交叉校正算法對配準后的圖像進行矯正。為了將兩幅圖像拼接在一起,需要對圖像進行投影變換。采用柱面投影法,將兩幅圖像投影到一個平面上,再對圖像進行曝光補償便得到原始拼接圖如圖5所示。

圖5 原始拼接圖Fig.5 Original stitching image
由于原始拼接圖存在明顯的接縫和失真,因此要進行拼縫計算與圖像融合。采用動態規劃法尋找接縫線,該方法不僅能夠快速的找到最佳接縫線,且分配內存少。圖像f1(x,y)和f2(x,y)重疊部分誤差函數定義為式(4):

鑒于接縫線是垂直的,橫向遍歷e值,計算能夠到達像素(x,y)路徑的累積最小誤差值,式(5):

采用動態規劃算法可以很好的求取式(5)的解,求取的結果便是最優接縫線。對接縫線兩側的圖像羽化融合處理,消除接縫不連貫和視覺上的突兀。羽化融合算法只對接縫線兩側的邊界區域平滑虛化,達到自然銜接的效果,表示為公式(6):

其中,R表示羽化后的新圖像;I1(x,y),I2(x,y)表示圖像f1(x,y)和f2(x,y)在接縫線兩側邊界區域內的部分;ω1,ω2分別代表I1(x,y)和I2(x,y)的加權值。經過拼縫計算與羽化融合后,圖像接縫線消失,如圖6所示。

圖6 拼縫計算與羽化融合Fig.6 Seam calculation and feather Blending

圖7 二次方遞減拼接方案Fig.7 Quadratic decreasing order splicing scheme
鑒于拼接圖中的停車位已經被白色線條標記,因此只要提取出被標記出的停車位標記線對就可得到該路段停車位數目。用Lagrange函數跟蹤提取輪廓,Lagrange函數可表示為式(7):

其中,α和β均為正數;TV為邊緣點數閾值;T1為灰度差閾值。
當檢測的信息滿足式(8)的兩個約束條件時,則跟蹤并提取出了輪廓信息。

對提取出的停車位輪廓采用RGB色彩模式標記垂線段,利用循環函數記錄調用顏色標記的次數減1便可得到停車位數目,在顏色標記時,每一次標記的各顏色通道都是利用隨機函數產生的0~255的一個隨機值,可表示為式(9):

其中,r ng表示隨機函數,r ng(0,255)表示隨機產生一個0~255之間的整數。
如圖8所示,(a)圖和(b)圖中檢測到一個停車位,(c)圖中檢測到4個停車位,(d)圖中檢測到3個停車位。

圖8 輪廓提取并計數Fig.8 Contour extraction and counting
本文實驗測試所使用的視頻來源于自行拍攝,拍攝地點為上海理工大學校內路側的停車位。測試軟件采用Visual Studio 2019,配置opencv3.4.8和opencv_contrib-3.4.8,計算機處理器為Intel Core(TM)i7-4790,CPU主頻3.6GHz,8GBRAM,操作系統是64位Windows10系統。
對4個路段進行試驗的結果見表2,采用準確率作為性能指標進行判斷。準確率定義為式(10):

其中,D N為檢測出的停車位數目,R N為真實數目。
與此同時,本文將一種融合基于空閑空間的方法和基于停車位標記的方法[4]、一種融合超聲波傳感器的視覺停車區檢測方法[5]和一種基于環視監控的車位檢測方法和車位空置分析算法[6]運用于檢測路側停車位數目,得出的實驗結果見表3。雖然這些檢測空停車位的方法在各自運用領域都有很好的結果,但是在路側的停車位檢測領域卻差強人意,也可以看出本文的方案有明顯的優勢。

表2 本文方案實驗結果Tab.2 Experimental results of the project

表3 文獻方案試驗結果Tab.3 Test results of the References
本文針對現有線檢測的不足,提出了基于PPHT與直線聚類結合檢測標記線的算法,對標記線的檢測取得了很好的效果。針對直接在視頻中計數存在的錯檢,以及處理流程復雜,提出圖像拼接的方案,將檢測路段所有停車位拼接在一幅圖像上。鑒于累進式拼接的異常耗時、錯位、占內存等問題,提出了二次方遞減式拼接方案,同時也對拼接算法進行了優化。對于拼接圖中的停車位,鑒于停車位標記線已經被標記,采用輪廓提取算法提取出平行標記線對,得出停車位數目。經實驗驗證行之有效,準確率高,可以大規模推廣在市政部門使用。但是本文的方案也有很多不足之處,難以解決標記線嚴重缺失和褪色的情況,也難以解決標記線被完全遮擋的情況。另外,二次方遞減拼接已經節約了大量時間,但是由于計算次數多還是很耗時,后續將對該方案的不足做出進一步的研究,繼續提高準確率。