對通用骨架提取方法的改進

地平线智能驾驶开发者發表於2024-10-27

01 骨架提取的任務引入

骨架(或中軸線)具有在二進位制形狀和自然影像中提供緊湊而有意義的物件表示的潛力(以下簡稱為“形狀”和“影像”),適用於影像表示和各種多媒體應用。在實踐中,物件骨架通常以圖形格式編碼,即“骨架圖”,以便於骨架修剪、匹配、分類和分析任務。為了術語的清晰,通常將各種骨架圖元件定義如下:

1) 端點:骨架點只有一個相鄰點。

2) 交叉點:有三個或更多相鄰點。

3) 連線點:既不是端點也不是交叉點。

4) 骨架分支:兩個直接連線的骨架點之間的連線點序列。

02 相關方法與現存問題

傳統的骨架提取方法主要依賴於圖形操作。近年來,由於卷積神經網路(CNN)方法的崛起,採用畫素級二進位制分類來處理這個問題取得了顯著的改進。儘管這些方法取得了部分進展,但仍然存在明顯的質量和魯棒性問題。例如,輸出的骨架分支可能出現噪聲、不連貫、不完整,並且對變形不夠魯棒。

BlumNet 的引入有效地緩解了這些缺點。具體而言,它將骨架圖分解為有組織的元件,透過將任務分割為涉及圖形元件檢測和組裝的獨立過程來實現這一目標

儘管這項任務是優雅而有效的,但仍然存在一些不足之處,比如在細節方面的精度不足和推理時間過長。向分解和重構骨架提取過程的轉變提出了新的挑戰,特別是在元件檢測的準確性和在分解後的資料集上進行訓練的有效性方面。高解析度影像凸顯了這些問題,特別是線上交叉點處,預測精度出現了不足,這表面了在處理高解析度資料的細節時存在問題。

BlumNet 採用了基於 Transformer 的架構(如下圖所示)來進行輸出特徵的編碼和解碼,然而,未能充分設計 Transformer 以更好地匹配輸入和輸出資料的具體性。因此,對檢測模型進行適當修改可以實現更高的準確性和更穩健的結果。此外,儘管與過去的工作相比,BlumNet 可以獲得更高的準確性,但其推理時間更長,可能並不適用於所有應用情景。

03 預測任務的轉移

由於高解析度影像中資訊的豐富性,對骨架細節的預測特別容易受到周圍複雜資訊的干擾。這種干擾可能導致鋸齒狀或有問題的骨架,表明在這種情況下無法獲得精確的預測。為了有效處理這些複雜資訊,模型需要更多的候選選項,以從中選擇更準確的一個。因此,增加預測數量是解決這個問題的直觀選擇。

此外,考慮到一個極端的情況,即影像上的每個畫素最初都覆蓋線的端點,問題就變成了一個畫素級的二進位制分類問題。然而,由於模型在開始時無法準確區分正確的檢測物件,在匈牙利匹配的影響下,錯誤的物件可能會移向骨架。因此,在訓練的後期階段,大量的預測結果將累積在目標骨架的邊緣周圍。在這一點上,模型只需要從這些結果中進行選擇。這種方法與以前的方法的不同之處在於,它將分類區域從整個影像縮小到骨架附近

以上分析揭示了更多的預測輸出也會導致訓練過程的變化。在訓練的初期階段,學習的重點是預測點的精確位置。隨著訓練的進行,預測點逐漸接近真實值,訓練的重點將轉移到區分預測結果是否在骨架上。從以前的工作中得知,畫素級的二進位制分類可以在整個影像上取得良好的結果。因此,我們認為在骨架附近對更多的候選選項進行分類將減少模型預測的難度。後續的實驗證實了這一分析。

04 實驗結果

上述四幅影像分別代表在訓練 20 個週期、50 個週期、100 個週期和 200 個週期的情況下,使用 1000 個查詢時的所有預測輸出線。以下四個圖顯示了在 4000 個查詢的情況下的輸出情況。圖中的藍色點是成對出現的,因為這些點對代表了預測線的兩個端點。在圖中呈現點而不是線段使得觀察預測分佈更加方便。

模型訓練的過程可以看作是將離散點聚集到骨架上的過程。在 1000 個查詢的情況下,最終預測的點大部分集中在骨架上,但在 4000 個查詢的情況下,仍然有大量點散佈在圖上的各個區域。

在計算損失之前進行匈牙利匹配的前提下,骨架上鄰近點的數量越多,在訓練過程中預測點與目標點之間的距離就越小。這有助於訓練點的位置。更多的預測點會使得訓練模型更難以識別輸出,但從直覺上看,這似乎比前者更容易學習。

圖中繪製了不同查詢情況下最重要的兩種損失的曲線。IsBranch Loss 限制了輸出線的置信度,而 Lines Loss 則指導輸出線朝向骨架。與我們的分析一致,增加查詢數量有效地降低了 Lines Loss。即使要訓練的查詢數量增加,模型只需要對更準確的點分配更高的置信度。

因此,isBranch Loss 最初會增加,但隨著訓練的進行,損失會減小到接近較少查詢結果的結果。可以看出,增加查詢數量將任務的重點從定位轉移到分類。

利用 SK1491 資料集,我們比較了六種不同 query 數量的情況下的結果。如表所示,在使用 VGG16 和 Swin-base 骨幹網路的情況下,在 SK1491 資料集上達到了最佳效能,分別獲得了 0.805 和 0.836 的得分。另一方面,在使用 Resnet50 和 3000 個查詢的條件下,獲得的最佳效能為 0.804。

可以觀察到,初始時,隨著查詢數量的增加,準確性顯著提高。在達到 1000 個查詢後,準確性提升的速度減緩,但仍然存在穩定的提升。基於 CNN 的骨幹網路通常受到查詢數量的影響,需要一定數量的查詢才能達到最佳結果。相比之下,Swin-Transformer 即使在較少的 query 數量下也能表現良好。

上圖是不同查詢下影像骨架提取的比較。結果在紅色框內放大顯示。

05 總結

增加預測數量顯著提高了 BlumNet 內的訓練效果和檢測準確性。最初,模型專注於定位任務,隨後過渡到骨架附近的細節導向預測透過分類任務。這使得模型能夠有效處理高解析度影像中的複雜資訊,從而實現更準確的骨架提取。透過調整輸入查詢,增強了 BlumNet 對不同操作條件的適應能力。

相關文章