對通用骨架提取方法的改進(jìn)
1) 端點(diǎn):骨架點(diǎn)只有一個(gè)相鄰點(diǎn)。
2) 交叉點(diǎn):有三個(gè)或更多相鄰點(diǎn)。
3) 連接點(diǎn):既不是端點(diǎn)也不是交叉點(diǎn)。
4) 骨架分支:兩個(gè)直接連接的骨架點(diǎn)之間的連接點(diǎn)序列。
傳統的骨架提取方法主要依賴(lài)于圖形操作。近年來(lái),由于卷積神經(jīng)網(wǎng)絡(luò )(CNN)方法的崛起,采用像素級二進(jìn)制分類(lèi)來(lái)處理這個(gè)問(wèn)題取得了顯著(zhù)的改進(jìn)。盡管這些方法取得了部分進(jìn)展,但仍然存在明顯的質(zhì)量和魯棒性問(wèn)題。例如,輸出的骨架分支可能出現噪聲、不連貫、不完整,并且對變形不夠魯棒。
BlumNet 的引入有效地緩解了這些缺點(diǎn)。具體而言,它將骨架圖分解為有組織的組件,通過(guò)將任務(wù)分割為涉及圖形組件檢測和組裝的獨立過(guò)程來(lái)實(shí)現這一目標。
盡管這項任務(wù)是優(yōu)雅而有效的,但仍然存在一些不足之處,比如在細節方面的精度不足和推理時(shí)間過(guò)長(cháng)。向分解和重構骨架提取過(guò)程的轉變提出了新的挑戰,特別是在組件檢測的準確性和在分解后的數據集上進(jìn)行訓練的有效性方面。高分辨率圖像凸顯了這些問(wèn)題,特別是在線(xiàn)交叉點(diǎn)處,預測精度出現了不足,這表面了在處理高分辨率數據的細節時(shí)存在問(wèn)題。
BlumNet 采用了基于 Transformer 的架構(如下圖所示)來(lái)進(jìn)行輸出特征的編碼和解碼,然而,未能充分設計 Transformer 以更好地匹配輸入和輸出數據的具體性。因此,對檢測模型進(jìn)行適當修改可以實(shí)現更高的準確性和更穩健的結果。此外,盡管與過(guò)去的工作相比,BlumNet 可以獲得更高的準確性,但其推理時(shí)間更長(cháng),可能并不適用于所有應用情景。
由于高分辨率圖像中信息的豐富性,對骨架細節的預測特別容易受到周?chē)鷱碗s信息的干擾。這種干擾可能導致鋸齒狀或有問(wèn)題的骨架,表明在這種情況下無(wú)法獲得精確的預測。為了有效處理這些復雜信息,模型需要更多的候選選項,以從中選擇更準確的一個(gè)。因此,增加預測數量是解決這個(gè)問(wèn)題的直觀(guān)選擇。
此外,考慮到一個(gè)極端的情況,即圖像上的每個(gè)像素最初都覆蓋線(xiàn)的端點(diǎn),問(wèn)題就變成了一個(gè)像素級的二進(jìn)制分類(lèi)問(wèn)題。然而,由于模型在開(kāi)始時(shí)無(wú)法準確區分正確的檢測對象,在匈牙利匹配的影響下,錯誤的對象可能會(huì )移向骨架。因此,在訓練的后期階段,大量的預測結果將累積在目標骨架的邊緣周?chē)?。在這一點(diǎn)上,模型只需要從這些結果中進(jìn)行選擇。這種方法與以前的方法的不同之處在于,它將分類(lèi)區域從整個(gè)圖像縮小到骨架附近。
以上分析揭示了更多的預測輸出也會(huì )導致訓練過(guò)程的變化。在訓練的初期階段,學(xué)習的重點(diǎn)是預測點(diǎn)的精確位置。隨著(zhù)訓練的進(jìn)行,預測點(diǎn)逐漸接近真實(shí)值,訓練的重點(diǎn)將轉移到區分預測結果是否在骨架上。從以前的工作中得知,像素級的二進(jìn)制分類(lèi)可以在整個(gè)圖像上取得良好的結果。因此,我們認為在骨架附近對更多的候選選項進(jìn)行分類(lèi)將減少模型預測的難度。后續的實(shí)驗證實(shí)了這一分析。
上述四幅圖像分別代表在訓練 20 個(gè)周期、50 個(gè)周期、100 個(gè)周期和 200 個(gè)周期的情況下,使用 1000 個(gè)查詢(xún)時(shí)的所有預測輸出線(xiàn)。以下四個(gè)圖顯示了在 4000 個(gè)查詢(xún)的情況下的輸出情況。圖中的藍色點(diǎn)是成對出現的,因為這些點(diǎn)對代表了預測線(xiàn)的兩個(gè)端點(diǎn)。在圖中呈現點(diǎn)而不是線(xiàn)段使得觀(guān)察預測分布更加方便。
模型訓練的過(guò)程可以看作是將離散點(diǎn)聚集到骨架上的過(guò)程。在 1000 個(gè)查詢(xún)的情況下,最終預測的點(diǎn)大部分集中在骨架上,但在 4000 個(gè)查詢(xún)的情況下,仍然有大量點(diǎn)散布在圖上的各個(gè)區域。
在計算損失之前進(jìn)行匈牙利匹配的前提下,骨架上鄰近點(diǎn)的數量越多,在訓練過(guò)程中預測點(diǎn)與目標點(diǎn)之間的距離就越小。這有助于訓練點(diǎn)的位置。更多的預測點(diǎn)會(huì )使得訓練模型更難以識別輸出,但從直覺(jué)上看,這似乎比前者更容易學(xué)習。
圖中繪制了不同查詢(xún)情況下最重要的兩種損失的曲線(xiàn)。IsBranch Loss 限制了輸出線(xiàn)的置信度,而 Lines Loss 則指導輸出線(xiàn)朝向骨架。與我們的分析一致,增加查詢(xún)數量有效地降低了 Lines Loss。即使要訓練的查詢(xún)數量增加,模型只需要對更準確的點(diǎn)分配更高的置信度。
因此,isBranch Loss 最初會(huì )增加,但隨著(zhù)訓練的進(jìn)行,損失會(huì )減小到接近較少查詢(xún)結果的結果??梢钥闯?,增加查詢(xún)數量將任務(wù)的重點(diǎn)從定位轉移到分類(lèi)。
利用 SK1491 數據集,我們比較了六種不同 query 數量的情況下的結果。如表所示,在使用 VGG16 和 Swin-base 骨干網(wǎng)絡(luò )的情況下,在 SK1491 數據集上達到了最佳性能,分別獲得了 0.805 和 0.836 的得分。另一方面,在使用 Resnet50 和 3000 個(gè)查詢(xún)的條件下,獲得的最佳性能為 0.804。
可以觀(guān)察到,初始時(shí),隨著(zhù)查詢(xún)數量的增加,準確性顯著(zhù)提高。在達到 1000 個(gè)查詢(xún)后,準確性提升的速度減緩,但仍然存在穩定的提升?;?CNN 的骨干網(wǎng)絡(luò )通常受到查詢(xún)數量的影響,需要一定數量的查詢(xún)才能達到最佳結果。相比之下,Swin-Transformer 即使在較少的 query 數量下也能表現良好。
上圖是不同查詢(xún)下圖像骨架提取的比較。結果在紅色框內放大顯示。
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。