影像分割

編碼器-解碼器架構

編碼器-解碼器是稠密預測的主力藍圖,也是對「脈絡對解析度」兩難最俐落的回答。它有兩個彼此鏡像的部分。編碼器(收縮路徑)反覆對影像下採樣,縮小空間尺寸、同時增加特徵通道數;過程中每個神經元看到原影像中越來越大的一塊,逐步建立抽象的語意理解——「這區是毛皮」「這是輪子的一部分」。解碼器(擴張路徑)接著反轉這個過程,一步步上採樣以重建出全解析度的預測。

需要這種兩階段形狀的原因是:編碼器在獲得語意的同時,丟掉了精確的位置。解碼器的工作是把「我知道這是一隻貓」(來自瓶頸層 bottleneck,那裡表徵最小、最抽象)轉回「而貓的邊界恰好沿著這裡」。要做好這件事,幾乎每個編碼器-解碼器都加入跳接(skip connections),把編碼器各層的高解析度特徵圖直接接到對應的解碼器各層,重新注入瓶頸所遺失的精細空間細節。

具體實例揭示了設計空間。U-Net 把完整的編碼器特徵圖串接(concatenate)進解碼器(豐富但耗記憶體)。SegNet 則只儲存編碼器的池化索引(pooling indices),在反池化(unpooling)時用來放置數值(省記憶體)。DeepLabv3+ 用一個強大的空洞卷積編碼器搭配刻意簡單的解碼器。編碼器通常是一個預訓練的分類骨幹網路——ResNet、EfficientNet 或視覺 Transformer(Vision Transformer)——把通用的視覺知識遷移到分割任務中。