博客專欄

        EEPW首頁 > 博客 > 對通用骨架提取方法的改進

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

        發布人:地平線開發者 時間: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 對不同操作條件的適應能力。


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: 算法 自動駕駛

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 承德市| 眉山市| 上虞市| 楚雄市| 酒泉市| 西丰县| 南木林县| 铁岭市| 南丰县| 宝兴县| 凤山市| 昔阳县| 鄂州市| 蒲江县| 西昌市| 双桥区| 洪湖市| 宜丰县| 黑河市| 白河县| 革吉县| 湖北省| 玉山县| 香河县| 华亭县| 德州市| 民丰县| 遵义县| 苏尼特右旗| 弋阳县| 沾益县| 大石桥市| 南江县| 子长县| 丹阳市| 汕尾市| 四川省| 安龙县| 谢通门县| 平凉市| 葵青区|