AI影像論文(03):U-Net 論文筆記整理

更新於 2024/07/03閱讀時間約 9 分鐘

近期在查看相關論文時時常看到U-Net這個演算法架構,但過去自己並沒有非常理解,因此想藉這個機會來逼自己把論文看完XD

🔹U-Net是什麼?

raw-image

這篇論文是由弗賴堡大學的Olaf Ronneberger、Philipp Fischer 和 Thomas Brox 發表+,U-Net 的設計有兩個主要部分:一個是“收縮路徑”,用來理解圖像的大致情況;另一個是“擴展路徑”,用來精確地找出圖像中的細節位置。這樣的設計讓這個模型即使只有很少的圖像作為學習材料,也能夠很好地訓練,而且還用了很多技巧來提高它處理圖像的能力。

raw-image

🔹U-Net架構

U-Net的架構有三大部分分別是收縮路徑(Contracting Path)、擴展路徑(Expansive Path)以及最終層(Final Layer),它的獨特之處在於其對稱結構以及能夠進行端到端的訓練,以及由於對稱性模型可以更好的利用上下文資訊,同時進行精準定位。

🐌收縮路徑(Contracting Path)

raw-image

什麼是收縮路徑呢?簡單來說呢每次下採樣(池化)後,特徵的通道數量會加倍,這樣子有助於捕捉更複雜的特徵。這個過程有點類似傳統卷積神經網絡中的特徵提取部分。


而這一部分最主要是由多個捲積層和池化層(Max Pooling)組成,用於提取圖像中的特徵。


from tensorflow.keras.layers import Conv2D, MaxPooling2D, concatenate, Input

from tensorflow.keras.models import Model

def contracting_path(input_layer):

# 第一個卷積塊

conv1 = Conv2D(64, (3, 3), activation='relu', padding='same')(input_layer)

conv1 = Conv2D(64, (3, 3), activation='relu', padding='same')(conv1)

pool1 = MaxPooling2D((2, 2))(conv1)

# 第二個卷積塊

conv2 = Conv2D(128, (3, 3), activation='relu', padding='same')(pool1)

conv2 = Conv2D(128, (3, 3), activation='relu', padding='same')(conv2)

pool2 = MaxPooling2D((2, 2))(conv2)

return pool2, conv1, conv2

🐌擴展路徑(Expansive Path)

raw-image

那什麼又是擴展路徑呢?在擴展路徑中每一步上採樣的特徵圖會與收縮路徑中相對應的特徵圖進行拼接(Concatenation),這有助於恢復圖像中的細節和位置。


擴展路徑包含上採樣(Upsampling)操作和卷積操作,通過這些操作恢復圖像的空間尺寸。每次上採樣都會跟隨一個上捲積,並將特徵通道數量減半。


from tensorflow.keras.layers import Conv2DTranspose

def expansive_path(input_layer, concat_1, concat_2):

# 上採樣加卷積(上卷積) up1 = Conv2DTranspose(128, (2, 2), strides=(2, 2), padding='same')(input_layer)

merge1 = concatenate([up1, concat_2], axis=3)

conv3 = Conv2D(128, (3, 3), activation='relu', padding='same')(merge1)

conv3 = Conv2D(128, (3, 3), activation='relu', padding='same')(conv3)

# 第二次上採樣和合併 up2 = Conv2DTranspose(64, (2, 2), strides=(2, 2), padding='same')(conv3)

merge2 = concatenate([up2, concat_1], axis=3)

conv4 = Conv2D(64, (3, 3), activation='relu', padding='same')(merge2)

conv4 = Conv2D(64, (3, 3), activation='relu', padding='same')(conv4)

return conv4

🐌最終層(Final Layer)

最後,一個 1x1 的卷積層被用來將每個64組件的特徵向量映射到所需的類別數目,從而實現像素級的分類。

def final_layer(input_layer):

output = Conv2D(1, (1, 1), activation='sigmoid')(input_layer)

return output

🐌完整的U-Net模型

def unet_model(input_size=(256, 256, 1)):

inputs = Input(input_size)

pool2, conv1, conv2 = contracting_path(inputs)

conv4 = expansive_path(pool2, conv1, conv2)

outputs = final_layer(conv4)

model = Model(inputs=inputs, outputs=outputs)

return model# 創建模型model = unet_model()

model.summary()

🔹訓練過程

在訓練過程中,論文提到使用了Data Augmentation技術擴充訓練資料,可以讓model學習到”形變不變性(deformation invariance)”。

什麼是形變不變性?


這個概念指的是模型或算法能夠識別或處理在不同形變下的相同物體或特徵的能力。形變可以包括物體的旋轉、縮放、扭曲或其他幾何變化。


在實際應用中,形變不變性非常重要,因為它允許系統在不同的視角、尺寸或形狀變化時,依然能夠準確地識別物體。

而在論文中作者使用3*3網格的隨機位移向量來產生平滑型變,來增加強健性。

def random_deformation_grid(size, device):

# 創建3x3的位移向量,值範圍在-0.20.2之間

delta = torch.rand(1, 2, 3, 3, device=device) * 0.4 - 0.2

# 生成均勻分布的座標網格

grid = F.affine_grid(torch.eye(2, 3).unsqueeze(0) + delta, size, align_corners=False)

return grid

def apply_deformation(image, grid):

# 應用變形

return F.grid_sample(image, grid, align_corners=False)

另外一個trick是使用帶有權重的loss,主要目的是為使同類別但有相互碰觸到的目標分割出來。

raw-image

🔹U-net在Stable-diffusion之應用

近幾年最火紅的圖像生成模型絕對會是Stable-diffusion,而在Stable-diffusion有個蠻重要的部分就是U-net。


U-net在Stable-difussion中有什麼樣的應用呢?最主要有兩個:細節的捕捉與增強&多尺度的特徵融合。


🐌細節的捕捉與增強

我們前面提到。

什麼是擴展路徑呢?在擴展路徑中每一步上採樣的特徵圖會與收縮路徑中相對應的特徵圖進行拼接(Concatenation),這有助於恢復圖像中的細節和位置。

我們可以使用U-net中的跳躍拼接來維持和增強圖像的細節。這些連結允許在直接使用編碼器中的特徵進而在解碼階段細化圖像。

🐌多尺度的特徵融合

U-Net 架構由編碼器和解碼器組成。在此設計中,編碼器將影像表示壓縮為較低的解析度。同時,解碼器將較低解析度的表示重建回原始的高解析度影像,旨在減少雜訊。


因此可以利用此特性去融合不同尺度的特徵,進而精確控制圖像局部特徵的細節。


參考資料:

論文:https://arxiv.org/pdf/1505.04597

Cook your First U-Net in PyTorch:https://towardsdatascience.com/cook-your-first-u-net-in-pytorch-b3297a844cf3

AI绘图Stable Diffusion中关键技术:U-Net的应用:https://cloud.tencent.com/developer/article/2397703

avatar-img
3會員
11內容數
Hello 我是黃仁和 就讀於國立台北科技大學 資財系 目前剛升上大四 我的專長為資料科學領域目前專攻於影像 並且於台灣大哥大擔任影像AI實習生
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
仁和的論文整理 的其他內容
本文章介紹了ControlCom影像合成模型的技術與架構,以及其與其他方法的比較。模型具有可控的圖像合成能力,並提供了豐富的細節信息。文章詳細解釋了模型的優勢、方法與架構,以及數據準備和結果與結論。
本文介紹了影像合成任務及其歷史解決方案,包括物品置入、影像混合、圖像協調、陰影生成等多個子任務。文章列舉了傳統方法和深度學習方法,並介紹了一體化模型的流行趨勢。深入詳細的解析論文中提供的各種解決方案和方法。論文資料來源包括多篇相關研究論文與鏈接。
本文章介紹了ControlCom影像合成模型的技術與架構,以及其與其他方法的比較。模型具有可控的圖像合成能力,並提供了豐富的細節信息。文章詳細解釋了模型的優勢、方法與架構,以及數據準備和結果與結論。
本文介紹了影像合成任務及其歷史解決方案,包括物品置入、影像混合、圖像協調、陰影生成等多個子任務。文章列舉了傳統方法和深度學習方法,並介紹了一體化模型的流行趨勢。深入詳細的解析論文中提供的各種解決方案和方法。論文資料來源包括多篇相關研究論文與鏈接。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
OpenAI最新推出的「Sora」是一款文本生成影像的AI模型,只要輸入幾句簡單的文字描述,就能自動生成出影像,影片內容可以包含多名角色,搭配特定的動態場景,且影片長度最高可達60秒,同時還能展示複雜的攝影機運動。Sora還能夠根據靜態圖片來製作動畫,功能十分強大。目前Sora還沒有開放給大眾使
Thumbnail
人工智慧(AI)的發展日新月異,其中生成式AI成為近年矚目的焦點之一。生成式AI不僅能夠模仿人類智能,更能夠創造全新的內容和想法。本文將深入探討生成式AI在影像領域的應用,包括其概念、原理、發展趨勢,以及一些嶄新的生成式AI公司和軟體。
Thumbnail
好玩的來了,AI即時繪畫目前可以做到透過提示詞配合網路攝影機進行即時的AI轉換。 今天教你怎麼用這個工具 以下有整合包 https://drive.google.com/drive/folders/1Uz8QNDgYjfDjoYcAdxZYD0KIoxsaX_s6?usp=drive_link
Thumbnail
Image Prompter 是一款用於Midjourney 和AI 繪畫的AI 影像提示擴充。 它透過點擊以下方式產生提示,使得生成過程更加直覺和簡單: 透過範例圖像點擊生成; 將提示按主題、風格和參數分類; 提供了大量的預設提示。
Thumbnail
近日,我們推出了全新的AI 反向影像搜尋功能,為用戶提供更準確的搜尋結果。與其他僅能辨識表面級模式和顏色的圖庫技術不同,我們的反向影像搜尋利用AI 技術來理解影像背後的上下文,從而提供更準確的搜尋結果。快來試試看,告訴我們您的體驗!
Thumbnail
Microsoft Bing影像建立工具已經推出一段時間,之前看到不少實測文章,雖然可調整選項不多,應該說是幾乎沒有,但是產生的圖片品質不錯,也有1024*1024的解析度。這次來試用看看,用中文描述的產出結果,還不錯!
Thumbnail
融合了花、葉與公園長椅,以「秋天的記憶」為題的八張影像重疊創作作品,透過美圖秀秀APP 「AI 繪畫藝術」,會蛻變出怎樣風格的秋光奏鳴曲?
Thumbnail
透過「AI 繪畫藝術 --- 多種畫風一鍵生成」免費測試版,美濃湖的橋樑、遠山、湖,美濃湖的橋樑、遠山、湖面,樹林都有了不同的風貌,連人物造型跟拿的包包都有了整套的搭配變化,最有趣的是附近的檳榔樹與遠山,也變成了聖誕樹林,連遠處的平房也有了不同的建築形式。
Thumbnail
透過美圖秀秀APP「AI 繪畫藝術」測試版,你會發現龍虎塔的塔,你會發現龍虎塔的塔型,變得更古色古香,有些還幻化成了日本建築風格,塔前的石橋被東方風格的街頭古燈所取代,潭前的荷花池全轉換成荷花池全轉換成了日式的庭園與石階,與西式的建築與路燈,上面還被白雪覆蓋著,連塔邊的樹種,天際的背景也有了轉換,東
Thumbnail
每年各種APP都會推出各種免費的年節電子賀卡,有的免費有的要付費,耶誕節、台灣元旦新年、農曆過年與西洋情人節陸續將至,如果你有寄發電子賀卡的習慣,今年不妨試試以下推薦的新玩意--- 免費的「美圖秀秀APP 「AI 繪畫藝術」多種畫風一鍵生成」!
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
OpenAI最新推出的「Sora」是一款文本生成影像的AI模型,只要輸入幾句簡單的文字描述,就能自動生成出影像,影片內容可以包含多名角色,搭配特定的動態場景,且影片長度最高可達60秒,同時還能展示複雜的攝影機運動。Sora還能夠根據靜態圖片來製作動畫,功能十分強大。目前Sora還沒有開放給大眾使
Thumbnail
人工智慧(AI)的發展日新月異,其中生成式AI成為近年矚目的焦點之一。生成式AI不僅能夠模仿人類智能,更能夠創造全新的內容和想法。本文將深入探討生成式AI在影像領域的應用,包括其概念、原理、發展趨勢,以及一些嶄新的生成式AI公司和軟體。
Thumbnail
好玩的來了,AI即時繪畫目前可以做到透過提示詞配合網路攝影機進行即時的AI轉換。 今天教你怎麼用這個工具 以下有整合包 https://drive.google.com/drive/folders/1Uz8QNDgYjfDjoYcAdxZYD0KIoxsaX_s6?usp=drive_link
Thumbnail
Image Prompter 是一款用於Midjourney 和AI 繪畫的AI 影像提示擴充。 它透過點擊以下方式產生提示,使得生成過程更加直覺和簡單: 透過範例圖像點擊生成; 將提示按主題、風格和參數分類; 提供了大量的預設提示。
Thumbnail
近日,我們推出了全新的AI 反向影像搜尋功能,為用戶提供更準確的搜尋結果。與其他僅能辨識表面級模式和顏色的圖庫技術不同,我們的反向影像搜尋利用AI 技術來理解影像背後的上下文,從而提供更準確的搜尋結果。快來試試看,告訴我們您的體驗!
Thumbnail
Microsoft Bing影像建立工具已經推出一段時間,之前看到不少實測文章,雖然可調整選項不多,應該說是幾乎沒有,但是產生的圖片品質不錯,也有1024*1024的解析度。這次來試用看看,用中文描述的產出結果,還不錯!
Thumbnail
融合了花、葉與公園長椅,以「秋天的記憶」為題的八張影像重疊創作作品,透過美圖秀秀APP 「AI 繪畫藝術」,會蛻變出怎樣風格的秋光奏鳴曲?
Thumbnail
透過「AI 繪畫藝術 --- 多種畫風一鍵生成」免費測試版,美濃湖的橋樑、遠山、湖,美濃湖的橋樑、遠山、湖面,樹林都有了不同的風貌,連人物造型跟拿的包包都有了整套的搭配變化,最有趣的是附近的檳榔樹與遠山,也變成了聖誕樹林,連遠處的平房也有了不同的建築形式。
Thumbnail
透過美圖秀秀APP「AI 繪畫藝術」測試版,你會發現龍虎塔的塔,你會發現龍虎塔的塔型,變得更古色古香,有些還幻化成了日本建築風格,塔前的石橋被東方風格的街頭古燈所取代,潭前的荷花池全轉換成荷花池全轉換成了日式的庭園與石階,與西式的建築與路燈,上面還被白雪覆蓋著,連塔邊的樹種,天際的背景也有了轉換,東
Thumbnail
每年各種APP都會推出各種免費的年節電子賀卡,有的免費有的要付費,耶誕節、台灣元旦新年、農曆過年與西洋情人節陸續將至,如果你有寄發電子賀卡的習慣,今年不妨試試以下推薦的新玩意--- 免費的「美圖秀秀APP 「AI 繪畫藝術」多種畫風一鍵生成」!