陳 偉
(咸寧職業(yè)教育<集團(tuán)>學(xué)校 湖北 咸寧 437000)
隨著深度學(xué)習(xí)(deep learning,DL)的快速發(fā)展,圖像風(fēng)格遷移作為計(jì)算機(jī)視覺領(lǐng)域的一個(gè)重要研究方向,受到了廣泛的關(guān)注。圖像風(fēng)格遷移算法旨在通過將一個(gè)圖像的內(nèi)容與另一個(gè)圖像的風(fēng)格相結(jié)合,生成一個(gè)新的圖像,既保留了原始圖像的內(nèi)容信息,又表現(xiàn)出了目標(biāo)圖像的風(fēng)格特征。這一技術(shù)在許多領(lǐng)域具有廣泛的應(yīng)用,如藝術(shù)創(chuàng)作、圖像編輯及虛擬現(xiàn)實(shí)等[1-3]。
在過去的幾年里,基于DL的圖像風(fēng)格遷移算法取得了顯著的進(jìn)展。最初的方法是通過優(yōu)化過程來實(shí)現(xiàn)圖像風(fēng)格遷移,但這種方法計(jì)算復(fù)雜度高、速度慢,并且難以在實(shí)時(shí)應(yīng)用中使用[4]。隨后,基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)的方法被引入,通過將圖像表示為神經(jīng)網(wǎng)絡(luò)的輸入,利用網(wǎng)絡(luò)中的特定層來提取內(nèi)容和風(fēng)格信息。這些方法通過訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)模型,將圖像風(fēng)格遷移問題轉(zhuǎn)化為一個(gè)優(yōu)化問題,并且取得了顯著的改進(jìn)[5-6]。
目前,圖像風(fēng)格遷移算法仍存在一些挑戰(zhàn)和限制。例如,一些算法在處理具有復(fù)雜紋理和結(jié)構(gòu)的圖像時(shí)表現(xiàn)不佳,難以保持細(xì)節(jié)和內(nèi)容的一致性。此外,現(xiàn)有的方法對(duì)于用戶指定的風(fēng)格約束的處理還不夠靈活,難以實(shí)現(xiàn)精確的風(fēng)格控制。
因此,擬通過引入Mask約束改進(jìn)基于CNN的圖像風(fēng)格遷移算法,以解決上述問題。主要內(nèi)容包括以下4個(gè)方面:(1)回顧圖像風(fēng)格遷移算法的研究背景和發(fā)展歷程。(2)詳細(xì)介紹基于CNN的圖像風(fēng)格遷移算法的原理和方法。(3)提出一種基于Mask約束的改進(jìn)算法,通過對(duì)特定區(qū)域的風(fēng)格信息進(jìn)行約束,以實(shí)現(xiàn)更精細(xì)的風(fēng)格遷移效果。(4)通過實(shí)驗(yàn)驗(yàn)證所提算法的有效性,實(shí)驗(yàn)表明,該方法達(dá)到了良好的圖像風(fēng)格遷移效果。
本文所提出的一種基于Mask約束的CNN圖像風(fēng)格遷移框架如圖1所示。該框架的關(guān)鍵是利用Mask約束生成掩碼圖像,以獲取局部目標(biāo),并通過CNN實(shí)現(xiàn)局部目標(biāo)的風(fēng)格遷移。
圖1 圖像風(fēng)格遷移框架
輸入圖像分為內(nèi)容圖像和風(fēng)格圖像。內(nèi)容圖像包含要保留的圖像內(nèi)容信息,而風(fēng)格圖像則包含了所需的風(fēng)格特征。通過使用Mask約束,可以選擇性地將風(fēng)格應(yīng)用于內(nèi)容圖像的特定局部區(qū)域,實(shí)現(xiàn)局部的風(fēng)格遷移。為了生成掩碼圖像,定義一個(gè)二值掩碼,用于指定應(yīng)用風(fēng)格的目標(biāo)區(qū)域。掩碼圖像與內(nèi)容圖像具有相同的尺寸,并且在目標(biāo)區(qū)域內(nèi)的像素值為1,其他區(qū)域的像素值為0。該框架中使用語義分割網(wǎng)絡(luò)來生成掩碼圖像。使用CNN來實(shí)現(xiàn)局部目標(biāo)的風(fēng)格遷移。將CNN訓(xùn)練為一個(gè)端到端的模型,把接受內(nèi)容圖像和風(fēng)格圖像作為輸入,并生成包含遷移風(fēng)格的輸出圖像。網(wǎng)絡(luò)的結(jié)構(gòu)通常包括卷積層、池化層和反卷積層。通過在網(wǎng)絡(luò)中的不同層中提取特征,可以同時(shí)保留內(nèi)容和風(fēng)格的信息,并將風(fēng)格應(yīng)用于目標(biāo)區(qū)域。
在進(jìn)行局部目標(biāo)的風(fēng)格遷移時(shí),將掩碼圖像與內(nèi)容圖像和風(fēng)格圖像進(jìn)行逐像素的融合。融合的方式可以是簡單的元素級(jí)相乘,其中掩碼圖像的像素值為1的地方采用風(fēng)格圖像的對(duì)應(yīng)像素值,像素值為0的地方則采用內(nèi)容圖像的對(duì)應(yīng)像素值。這種融合方式可以將風(fēng)格有選擇地應(yīng)用于特定的目標(biāo)區(qū)域,實(shí)現(xiàn)局部的風(fēng)格遷移。
全卷積網(wǎng)絡(luò)(fully convolutional network,FCN)是一種用于語義分割的CNN,它能夠?qū)⑤斎雸D像像素級(jí)別地分類為不同的語義類別[7]。其核心思想是將傳統(tǒng)的全連接層替換為全卷積層,以實(shí)現(xiàn)對(duì)輸入圖像的像素級(jí)分類。傳統(tǒng)的全連接層將圖像特征映射到一個(gè)固定大小的向量上,而全卷積層則將特征映射到與輸入圖像相同大小的特征圖上。這樣做的好處是可以保留圖像的空間信息,使得網(wǎng)絡(luò)能夠輸出與輸入圖像相同分辨率的語義分割結(jié)果。
設(shè)輸入圖像為X,FCN由多個(gè)卷積層和上采樣層(通常是反卷積層)組成。首先通過卷積層對(duì)輸入圖像進(jìn)行一系列的卷積操作,得到一系列的特征圖。設(shè)第i個(gè)卷積層的輸出為Ci,通過上采樣層將特征圖的尺寸調(diào)整為輸入圖像的尺寸。設(shè)第i個(gè)上采樣層的輸出為Si,通過逐像素分類的卷積操作將上采樣層的輸出映射為與輸入圖像相同尺寸的語義分割結(jié)果。設(shè)最終的輸出為Y。FCN的數(shù)學(xué)原理可以表示為式(1):
Ci=fi(Ci-1),i=1,2,…,n
(1)
式(1)中:fi為第i個(gè)卷積層的卷積操作;Ci-1為第i-1個(gè)卷積層的輸出;C0為輸入圖像。
Si=gi(Si-1),i=1,2,…,n
(2)
式(2)中:gi為第i個(gè)上采樣層的上采樣操作;Si-1為第i-1個(gè)上采樣層的輸出;S0為Cn,即最后一個(gè)卷積層的輸出。
我院惡性腫瘤住院患者營養(yǎng)狀態(tài)與營養(yǎng)干預(yù)情況調(diào)查…………………………………………………… 魯良秀等(10):1416
Y=h(Sn)
(3)
式(3)中:h為逐像素分類的卷積操作;Sn為最后一個(gè)上采樣層的輸出。為了生成Mask,可以使用FCN進(jìn)行語義分割,并將感興趣的目標(biāo)區(qū)域標(biāo)記為特定的語義類別。
通過將Mask、內(nèi)容圖像和風(fēng)格圖像作為CNN的輸入來實(shí)現(xiàn)圖像風(fēng)格轉(zhuǎn)換。CNN是一種廣泛應(yīng)用于計(jì)算機(jī)視覺領(lǐng)域的神經(jīng)網(wǎng)絡(luò)。它可以通過多個(gè)卷積層和池化層來提取圖像的特征,并通過全連接層將這些特征映射到輸出類別。在圖像風(fēng)格轉(zhuǎn)換中,將CNN作為特征提取器,并通過特定的損失函數(shù)來實(shí)現(xiàn)風(fēng)格和內(nèi)容的融合。
設(shè)輸入的Mask為M,內(nèi)容圖像為C,風(fēng)格圖像為S,CNN的輸出為G。將內(nèi)容損失(content loss)和風(fēng)格損失(style loss)分別作為損失函數(shù)的組成部分。內(nèi)容損失用于確保G能夠準(zhǔn)確地重現(xiàn)C的內(nèi)容,風(fēng)格損失用于確保G與S的風(fēng)格相似。內(nèi)容損失為式(4):
(4)
(5)
式(5)中:L為CNN中的最后一層;wl為第l層的權(quán)重系數(shù);El(G,S)為CNN在第l層輸出的特征表示與風(fēng)格圖像在第l層特征表示之間的Gram矩陣的平均歐幾里得距離。Gram矩陣用于度量特征表示之間的相關(guān)性。通過最小化內(nèi)容損失和風(fēng)格損失之和,可以得到生成的圖像G。其數(shù)學(xué)表達(dá)式為式(6):
(6)
式(6)中,α和β分別為內(nèi)容損失和風(fēng)格損失的權(quán)重系數(shù)。
實(shí)驗(yàn)環(huán)境是進(jìn)行模型測(cè)試和評(píng)估的基礎(chǔ),包括硬件和軟件方面的設(shè)置。下面將介紹實(shí)驗(yàn)環(huán)境的硬件和軟件配置。
本實(shí)驗(yàn)采用的硬件配置如下:處理器使用Intel Core i7-8700K,主頻為3.7 GHz;顯卡采用NVIDIA GeForce RTX 2080 Ti,具備11 GB顯存和CUDA支持;內(nèi)存容量為32 GB。本實(shí)驗(yàn)使用的軟件配置如下:操作系統(tǒng)為Ubuntu 18.04 LTS;DL框架選擇使用TensorFlow 2.4.0和PyTorch 1.9.0;圖像處理和數(shù)據(jù)預(yù)處理使用Python編程語言及其相關(guān)庫,如NumPy和OpenCV;實(shí)驗(yàn)代碼使用Python 3.7進(jìn)行開發(fā)和運(yùn)行。
為了保證實(shí)驗(yàn)的可重復(fù)性和可比性,對(duì)實(shí)驗(yàn)環(huán)境進(jìn)行了嚴(yán)格的版本控制,并在實(shí)驗(yàn)過程中遵循了標(biāo)準(zhǔn)的實(shí)驗(yàn)流程。在實(shí)驗(yàn)過程中,使用了公開可用的PASCAL VOC 2012數(shù)據(jù)集做實(shí)驗(yàn)[8],該數(shù)據(jù)集是PASCAL Visual Object Classes Challenge(PASCAL VOC)競(jìng)賽的一部分,共包含約1.1萬張訓(xùn)練圖像和1.4萬張測(cè)試圖像,來自20個(gè)不同類別的圖像,涵蓋了常見的物體和場(chǎng)景,如人、汽車、飛機(jī)、動(dòng)物等。每個(gè)圖像都有精確的像素級(jí)別的標(biāo)注,其中包括每個(gè)對(duì)象的邊界框標(biāo)注和對(duì)象的語義分割標(biāo)注。
在訓(xùn)練階段,遵循以下方法:
(1)數(shù)據(jù)準(zhǔn)備:準(zhǔn)備訓(xùn)練數(shù)據(jù)集,包括內(nèi)容圖像、風(fēng)格圖像和相應(yīng)的Mask圖像。確保數(shù)據(jù)集具有正確的標(biāo)注和對(duì)應(yīng)的Mask圖像。
(2)模型搭建:構(gòu)建基于Mask約束的CNN模型。定義卷積層、上采樣層和逐像素分類的卷積操作,以及內(nèi)容損失和風(fēng)格損失的計(jì)算方式。
(3)損失函數(shù)定義:定義損失函數(shù),包括內(nèi)容損失和風(fēng)格損失。根據(jù)實(shí)際需求設(shè)置內(nèi)容損失和風(fēng)格損失的權(quán)重系數(shù)。
(4)開始訓(xùn)練:通過將內(nèi)容圖像、風(fēng)格圖像和Mask圖像輸入模型,使用反向傳播算法進(jìn)行訓(xùn)練。在每個(gè)訓(xùn)練迭代中,計(jì)算損失函數(shù),并根據(jù)損失函數(shù)的梯度更新模型的參數(shù)。
在測(cè)試階段:
(1)數(shù)據(jù)準(zhǔn)備:準(zhǔn)備測(cè)試數(shù)據(jù)集,包括內(nèi)容圖像和風(fēng)格圖像。
(2)模型加載:加載訓(xùn)練好的模型參數(shù)。
(3)開始測(cè)試:通過將內(nèi)容圖像、風(fēng)格圖像和Mask圖像輸入模型,進(jìn)行前向傳播計(jì)算。獲取生成的圖像結(jié)果。
在實(shí)驗(yàn)中,使用FCN對(duì)內(nèi)容圖像[(圖2(a)]做語義分割可得Mask圖像[圖2(b)],用Mask圖像與內(nèi)容圖像直接相乘得到目標(biāo)區(qū)域[圖3(a)]。將Mask圖像、目標(biāo)區(qū)域和風(fēng)格圖像[圖3(b)]輸入CNN中做圖像風(fēng)格遷移得到遷移后的目標(biāo)區(qū)域[圖3(c)]。
圖2 圖像語義分割效果
圖3 目標(biāo)區(qū)域的圖像風(fēng)格遷移效果
在上述實(shí)驗(yàn)中,使用了基于Mask約束的CNN架構(gòu)來進(jìn)行圖像風(fēng)格轉(zhuǎn)換任務(wù)。該架構(gòu)在訓(xùn)練過程中通過學(xué)習(xí)內(nèi)容圖像和風(fēng)格圖像之間的特征表示,以及Mask圖像的局部目標(biāo)信息。經(jīng)過訓(xùn)練后,該網(wǎng)絡(luò)能夠根據(jù)輸入的內(nèi)容圖像、風(fēng)格圖像和Mask圖像,生成具有融合風(fēng)格的目標(biāo)圖像。實(shí)驗(yàn)結(jié)果表明,該架構(gòu)實(shí)現(xiàn)了內(nèi)容圖像的語義分割和目標(biāo)區(qū)域的風(fēng)格轉(zhuǎn)換,并取得了良好的效果。
綜上所述,本論文研究了基于DL的圖像風(fēng)格轉(zhuǎn)換算法,并提出了一種基于Mask約束的CNN架構(gòu)。通過該架構(gòu),在訓(xùn)練過程中結(jié)合了FCN語義分割網(wǎng)絡(luò)和CNN風(fēng)格遷移網(wǎng)絡(luò),實(shí)現(xiàn)了內(nèi)容圖像的語義分割和目標(biāo)區(qū)域的風(fēng)格轉(zhuǎn)換。該算法能夠通過Mask約束生成局部目標(biāo),利用CNN將內(nèi)容圖像的目標(biāo)區(qū)域和風(fēng)格圖像進(jìn)行融合,生成具有融合風(fēng)格的目標(biāo)圖像。實(shí)驗(yàn)結(jié)果表明,該算法能夠準(zhǔn)確提取內(nèi)容圖像的語義信息,實(shí)現(xiàn)目標(biāo)區(qū)域的風(fēng)格轉(zhuǎn)換,并生成具有良好效果的圖像。該研究增強(qiáng)了對(duì)圖像風(fēng)格轉(zhuǎn)換任務(wù)更深入的理解,并提出了一種有效的框架。未來的研究可以進(jìn)一步優(yōu)化模型的性能和效果,擴(kuò)展算法的適用范圍,并探索更多應(yīng)用場(chǎng)景和任務(wù)的實(shí)現(xiàn)。