預處理

為了改善 TOF-MRA 影像的亮度不均、雜訊與對比不足問題,本研究以 NumPy 與 OpenCV 為核心工具,設計多階段的影像前處理流程,使模型能更穩定地學習血管特徵。整體流程如下:
-
強度正規化(Intensity Normalization, Min–Max Scaling)
利用 NumPy 計算每張影像的最小值與最大值,將像素值縮放至 0–255 範圍,
以統一不同病患及設備間的亮度分佈,減少輸入影像的強度差異。
此步驟確保模型在訓練時能專注於血管形態特徵,而非受影像曝光程度影響。
-
平滑化與降噪(Blurring / Gaussian Filter)
使用 cv2.blur() 與 cv2.GaussianBlur() 進行雙重平滑處理。
這樣的組合能有效降低高頻雜訊,同時保留血管的主要輪廓結構,
避免模型誤將雜訊學習為血管特徵。
-
區域對比增強(CLAHE, Contrast Limited Adaptive Histogram Equalization)
採用 OpenCV 的 cv2.createCLAHE() 方法對局部區域進行對比度強化。
相較於一般直方圖均衡化,CLAHE 能在提升微血管顯著度的同時避免過度增亮。
本研究設定 clipLimit=0.1 與 tileGridSize=(8,8),以在強化細節與抑制雜訊間取得平衡。
-
體積維度處理(Volume-wise Processing)
考量 TOF-MRA 為三維體積資料,影像以 vol[:, :, z] 方式逐層處理。
此步驟確保所有切片在亮度與對比上保持一致,維持血管結構於三維空間中的連續性,
避免切層之間出現亮度跳動或血管中斷現象。
整體成果
經上述步驟處理後,MRA 影像整體亮度均衡、血管邊界更加清晰,
有助於模型在後續分割階段更快收斂並準確辨識微細血管結構。
參考論文
3D
UNet
模
型
設
計

為了更完整呈現腦血管的立體形態,本研究進一步構建 3D U-Net 模型。
該模型以三維影像體(volume)作為輸入,能同時考慮血管在 XYZ 三個方向 的空間關聯性。
模型設計重點:
-
在三維空間中進行卷積與上採樣,確保血管走向與分支結構的連續性。
-
結合 Dice Loss 與 Focal Loss,兼顧血管區域稀疏與類別不平衡問題。
-
採用兩階段訓練 與 動態學習率調整(Cosine Annealing),提升收斂穩定性。
訓練流程:
-
將前處理後的 TOF-MRA 體積影像與標註遮罩輸入模型。
-
以 Dice+Focal 組合損失函數計算梯度並更新權重。
-
監測驗證集的 Dice、IoU 等指標以避免過擬合。
-
儲存表現最佳的模型權重供後續推論使用。
改良式後處理
在醫學影像分割任務中,深度學習模型雖能有效擷取血管結構,但仍可能因雜訊、對比不足或邊界模糊而造成血管斷裂與偽陽性區塊。為改善 此問題,本研究參考多篇血管分割文獻中的影像後處理策略,設計一套整合性改良後處理流程以提升血管分割結果的連貫性與結構穩定性。
-
雙閾值補接(Hysteresis Thresholding): 採用高低雙閾值策略,以高閾值區域作為血管主幹種子,並向低閾值區域進行區域擴張補接,確保弱訊號處的血管段得以連續呈現。此方法有效減少由於邊界不明或對比不足造成的血管中斷現象。
-
各向異性形態學閉運算(Anisotropic Morphological Closing): 針對血管在三維空間中縱深方向的連通性,進行 Z 軸優先的形態學閉運算,此操作可修補血管在切片間的細微斷裂,並提升三維血管樹的完整度。
-
一致性濾波(Consistency Filtering): 為進一步抑制誤判,本研究提出一致性檢核機制,針對僅出現在後處理結果、且與原始預測區域重疊度過低的區塊進行刪除,確保最終輸出結果在空間上具穩定性與一致性。
-
小元件移除與 Top-K 保留(Component Filtering & Top-K Selection): 透過連通元件分析(Connected Component Analysis),移除體積過小的雜訊區塊,並僅保留前 K 個主要血管結構,使結果聚焦於具臨床意義的主要血管分支。



血管寬度量測與狹窄率分析
在完成血管分割後,本研究進一步針對腦血管進行幾何特徵的量化分析,以評估血管寬度變化與潛在的狹窄情形。
血管的幾何特徵能反映結構差異,對中風等腦血管疾病的早期診斷與風險判定具有臨床意義。
我們整合 骨架化(Skeletonization) 與 距離轉換(Distance Transform) 技術,建立血管中心線模型,並據此計算血管直徑、狹窄率與視覺化呈現。


骨架化是血管幾何分析的第一步,用來將分割後的血管區域轉換成單像素寬的中心線結構,便於後續形態與量測分析。
方法特色:
-
採用 3D Skeletonization 演算法,在三維血管遮罩上提取中心線。
-
依據節點連接度(Node Degree)進行分類:
-
度數 = 1 → 端點(Endpoint)
-
度數 = 2 → 中繼點(Continuation)
-
度數 ≥ 3 → 分叉點(Bifurcation)
-
-
每條血管分支(Branch)由多個中繼點構成,形成可用於距離與直徑量測的路徑。
-
關鍵步驟:
-
進行「小分支修剪」與「最小分段長度」設定,去除因雜訊造成的多餘分支。
-
確保骨架結構保留真實的連通關係與主幹拓樸。
透過骨架化,原始龐大的三維體積資料被壓縮成具結構意義的線性模型,大幅提升後續幾何特徵計算的效率與穩定性。
距離轉換(Distance Transform)是用來量化血管寬度變化的核心步驟。此方法計算每個體素(voxel)到血管邊界的最短距離,並將其乘以二作為該點的「局部直徑」。
流程概述:在三維遮罩中對所有體素進行距離轉換計算。沿骨架中心線依序取樣,形成直徑序列(Diameter Sequence)。進行平滑化(smoothing)與鄰域最大值比較(rolling maximum),建立局部正常直徑參考。
技術重點:考慮體素間距與空間解析度,修正單位誤差。加入平滑處理以減少雜訊干擾,使直徑變化更自然。最終輸出為一條代表血管口徑變化的直徑曲線,為後續狹窄率分析建立可靠依據。
