亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于卷積神經(jīng)網(wǎng)絡(luò)風(fēng)格遷移在iOS上的應(yīng)用

        2019-12-05 03:24:20羅可昕
        關(guān)鍵詞:損失神經(jīng)網(wǎng)絡(luò)圖像

        羅可昕,邢 晨

        (浙江水利水電學(xué)院 信息與藝術(shù)工程學(xué)院,浙江 杭州 310018)

        0 引 言

        圖像風(fēng)格遷移,就是把圖像A的風(fēng)格遷移到圖像B中去,得到新的圖像C。其中C中既包含圖像B的內(nèi)容,也包含圖像A的風(fēng)格。這項(xiàng)技術(shù),已經(jīng)運(yùn)用在我們的日常生活中,像prisma,style2paints,neuralstyler,ostagram等照片編輯軟件就是運(yùn)用神經(jīng)網(wǎng)絡(luò)和風(fēng)格遷移,把普通的照片變成其他藝術(shù)風(fēng)格,從而實(shí)現(xiàn)藝術(shù)價(jià)值的提升。

        在人工智能深度學(xué)習(xí)實(shí)現(xiàn)之前,人們通常利用圖片紋理手動(dòng)建模來(lái)實(shí)行風(fēng)格遷移,這樣合成的圖片往往要根據(jù)不用的場(chǎng)景而改變,且人工建模成本巨大。這種方法在提取圖像底層特征時(shí),因只能提取顏色、紋理和形狀這幾種特征組合,所以最終合成的圖片效果十分粗糙,不能很好的滿(mǎn)足人們更高的藝術(shù)需求,同時(shí)該方法合成效率較低[1]。隨著深度學(xué)習(xí)的興起,GATYS等人提出了利用VGG卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行風(fēng)格遷移[2]。該方法的核心是利用卷積層提取內(nèi)容圖像和風(fēng)格圖像的中間特征值,借助梯度下降算法,利用這些特征值來(lái)合成新風(fēng)格的圖像[3]。

        如圖1所示,圖1(a)的內(nèi)容圖像是埃菲爾鐵塔,圖1(b)的風(fēng)格圖像是蒙克的名作《吶喊》,圖1(c)是由計(jì)算機(jī)生成的一張新的圖像,既保留了埃菲爾鐵塔建筑的形狀信息,也兼具《吶喊》風(fēng)格的圖片。本文基于Johnson[4]等人提出的快速圖像風(fēng)格遷移方法實(shí)現(xiàn)了基于VGG網(wǎng)絡(luò)的圖像風(fēng)格遷移,再運(yùn)用Apple公司提供的轉(zhuǎn)換工具coremltools導(dǎo)出成iOS支持的coreML格式,幫助用戶(hù)可以在移動(dòng)端短時(shí)間內(nèi)實(shí)現(xiàn)圖片風(fēng)格遷移合成的目的。

        圖1 圖像風(fēng)格遷移展示

        1 圖片風(fēng)格轉(zhuǎn)換算法

        1.1 基于神經(jīng)網(wǎng)絡(luò)的風(fēng)格遷移

        為了計(jì)算不同過(guò)濾器通道之間的相關(guān)性,通過(guò)計(jì)算兩個(gè)過(guò)濾器激活向量之間的點(diǎn)積,得到gram矩陣,公式為:

        Gl∈RNl×Nl

        總風(fēng)格損失為:

        代價(jià)函數(shù)公式可以表示如下:

        1.2 快速遷移風(fēng)格

        前文提到的算法每當(dāng)生成一張圖片時(shí)都需要進(jìn)行一次風(fēng)格遷移訓(xùn)練,整個(gè)過(guò)程比較耗時(shí)。2016年,斯坦福大學(xué)的JOHNSON等人提出了快速風(fēng)格轉(zhuǎn)移算法,只需要訓(xùn)練一個(gè)網(wǎng)絡(luò)模型就可以對(duì)任意一張圖片進(jìn)行風(fēng)格遷移??焖俎D(zhuǎn)移算法包含兩個(gè)網(wǎng)絡(luò)。一個(gè)為圖片轉(zhuǎn)換網(wǎng)絡(luò)(image transform network),一個(gè)為損失網(wǎng)絡(luò)(loss network)[4]。圖片轉(zhuǎn)換網(wǎng)絡(luò)是一個(gè)多層卷積神經(jīng)網(wǎng)絡(luò),它將一張輸入的原始圖片轉(zhuǎn)換成為一張生成圖片。損失計(jì)算網(wǎng)絡(luò)是一個(gè)VGG-16網(wǎng)絡(luò),用于計(jì)算圖片轉(zhuǎn)換網(wǎng)絡(luò)生成圖片對(duì)于輸入的風(fēng)格圖和原圖之間的損失大小。該算法在訓(xùn)練階段利用大量?jī)?nèi)容圖片進(jìn)行訓(xùn)練以得到某個(gè)風(fēng)格特定模型,在測(cè)試階段將將內(nèi)容圖片經(jīng)過(guò)模型就能實(shí)時(shí)得到一張經(jīng)過(guò)該風(fēng)格渲染之后的合成圖片[7]。

        如圖2所示,圖像S為風(fēng)格圖像,C為內(nèi)容圖像。圖片X為需要進(jìn)行風(fēng)格遷移的圖像,將其丟入網(wǎng)絡(luò)F進(jìn)行風(fēng)格遷移。K表示風(fēng)格遷移后的圖片,即風(fēng)格遷移的結(jié)果圖。右側(cè)是一個(gè)已被訓(xùn)練好的VGG-16網(wǎng)絡(luò),它能夠很好地提取輸入圖像的內(nèi)容特征和風(fēng)格特征,當(dāng)S、C以及K被輸入后,該網(wǎng)絡(luò)將提取它們的特征用于計(jì)算左側(cè)網(wǎng)絡(luò)對(duì)X進(jìn)行風(fēng)格遷移后的損失[8]。

        圖2 快速風(fēng)格遷移網(wǎng)絡(luò)模型

        基于同一風(fēng)格,如果運(yùn)用GATYS的模型進(jìn)行圖像風(fēng)格遷移,每生成一張圖片,就相當(dāng)于要訓(xùn)練一次模型,這中間可能會(huì)迭代幾百幾千次,會(huì)造成圖像制作成本和效率上的不足。而運(yùn)用JOHNSON的網(wǎng)絡(luò)技術(shù)模型,在進(jìn)行圖片風(fēng)格轉(zhuǎn)換時(shí),相對(duì)GATYS的模型,生成圖的速度快上三個(gè)數(shù)量級(jí)。原因在于:快速風(fēng)格遷移又重新訓(xùn)練了一個(gè)神經(jīng)網(wǎng)絡(luò),如圖2風(fēng)格遷移網(wǎng)絡(luò)F,這個(gè)網(wǎng)絡(luò)是一個(gè)深度殘差網(wǎng)絡(luò),每當(dāng)向該網(wǎng)絡(luò)輸入內(nèi)容圖像訓(xùn)練集,通過(guò)計(jì)算生成圖與原圖的內(nèi)容損失以及生成圖與風(fēng)格圖的風(fēng)格損失大小來(lái)判斷生成圖的質(zhì)量。通過(guò)不斷迭代計(jì)算來(lái)減少損失,反向傳播到圖片轉(zhuǎn)換網(wǎng)絡(luò)并對(duì)其進(jìn)行優(yōu)化,最終得到合格的圖片風(fēng)格轉(zhuǎn)換模型。訓(xùn)練完成后,只需要輸入任意的圖像x在風(fēng)格遷移網(wǎng)絡(luò)中前向傳播一次,便可在幾秒內(nèi)內(nèi)合成出一張不錯(cuò)的風(fēng)格遷移圖像;而GATYS等人提出的風(fēng)格遷移方法中不存在一個(gè)如圖2所示的風(fēng)格遷移網(wǎng)絡(luò)F,只存在圖2的右半部分,其中,K為一張白噪聲圖,對(duì)內(nèi)容圖c與風(fēng)格圖s進(jìn)行合成的過(guò)程即是通過(guò)不斷地迭代K來(lái)減小風(fēng)格遷移損失的過(guò)程,迭代結(jié)束后,y便為合成后的圖像。而我們每次對(duì)一張圖像進(jìn)行風(fēng)格遷移都需要經(jīng)過(guò)這樣的步驟,這無(wú)疑會(huì)耗費(fèi)大量的時(shí)間。

        2 實(shí)現(xiàn)在iOS系統(tǒng)上的應(yīng)用

        2.1 Core ML簡(jiǎn)介

        通常情況下,開(kāi)發(fā)人員可以應(yīng)用python開(kāi)發(fā)web service來(lái)實(shí)現(xiàn)客戶(hù)端。但自從iOS 11在2017年推出新的機(jī)器學(xué)習(xí)框架core ML之后,開(kāi)發(fā)者可以直接通過(guò)core ML將已經(jīng)訓(xùn)練好的機(jī)器學(xué)習(xí)模型集成到應(yīng)用程序APP中。本文使用了Apple公司提供的一個(gè)跨框架機(jī)器學(xué)習(xí)模型,既MLModel。它可以協(xié)助開(kāi)發(fā)者封裝機(jī)器學(xué)習(xí)模型的預(yù)測(cè)方法、配置和模型描述。一個(gè)MLModel文件通常情況下會(huì)包括輸入、輸出、模型各層的描述三個(gè)方面,用戶(hù)將數(shù)據(jù)封裝成為輸出文件并交付給MLModel,模型會(huì)進(jìn)行結(jié)果預(yù)測(cè)并輸出預(yù)測(cè)結(jié)果的輸出文件,而后再將預(yù)測(cè)的結(jié)果轉(zhuǎn)換成為使用者需要的數(shù)據(jù)類(lèi)型。

        2.2 系統(tǒng)功能的實(shí)現(xiàn)

        本文利用python和tensorflow。首先,把輸入的圖像調(diào)整成預(yù)定的格式和大小。首先定義了一個(gè)內(nèi)容損失和風(fēng)格損失,前者為風(fēng)格圖像和輸出圖像之間的距離,后者為輸入圖像和輸出圖像之間的距離。然后運(yùn)用定義的總損失函數(shù)來(lái)創(chuàng)建優(yōu)化器[9],具體流程圖(見(jiàn)圖3)。

        圖3 定義損失函數(shù)流程圖

        當(dāng)設(shè)置了內(nèi)容損失,風(fēng)格損失和總損失函數(shù)之后,就可以將風(fēng)格轉(zhuǎn)移過(guò)程轉(zhuǎn)化為優(yōu)化問(wèn)題。為了最大限度地減少全局損失,本文采用一張隨機(jī)生成的白噪聲圖片進(jìn)行訓(xùn)練,迭代更新風(fēng)格化圖像[4]。在每次迭代中,將會(huì)創(chuàng)建一個(gè)輸出圖像,以便最小化相應(yīng)像素輸出圖像和輸入圖像樣式之間的距離(差異)[10]。最后輸出可視化圖像,具體流程圖(見(jiàn)圖4)。

        為了獲取最好的模型效果,本文選擇了不同迭代次數(shù)來(lái)獲取風(fēng)格圖片,為了防止出現(xiàn)過(guò)擬合與欠擬合的現(xiàn)象(見(jiàn)圖5)。

        如果直接在手機(jī)上運(yùn)行模型,將會(huì)消耗大量的手機(jī)內(nèi)存,且用戶(hù)等待時(shí)間較長(zhǎng)。所以本文選擇用apple公司提供的core ML框架來(lái)封裝已經(jīng)訓(xùn)練好的模型,以提高執(zhí)行效率。通過(guò)導(dǎo)入core ML tools轉(zhuǎn)換器,并根據(jù)對(duì)應(yīng)模型的第三方工具包c(diǎn)onverters.caffe.convert,將已經(jīng)訓(xùn)練好的模型通過(guò)調(diào)用轉(zhuǎn)換器工具將結(jié)果保存為core ML模型格式(.mlmodel),大致流程圖如圖6所示。然后在xcode上集成,實(shí)現(xiàn)其他相關(guān)視圖組件。

        圖4 訓(xùn)練過(guò)程流程圖

        圖5 不同迭代次數(shù)后得到的風(fēng)格圖

        圖6 MLmodel結(jié)構(gòu)

        用戶(hù)能夠通過(guò)該APP從相冊(cè)或者拍照獲取圖片,將該照片裁剪成預(yù)設(shè)圖片格式大小,之后利用選擇的風(fēng)格模式在后臺(tái)進(jìn)行風(fēng)格轉(zhuǎn)換,最后將結(jié)果圖返回給用戶(hù)。

        2.3 系統(tǒng)功能測(cè)試

        在對(duì)移動(dòng)端進(jìn)行測(cè)試時(shí),選擇電腦配置為處理器1.6 GHz Intel Core i5+4 GB內(nèi)存+1 600 MHz DDR3,并且選擇xcode9.2版本,iPhone 8plus,iOS系統(tǒng)為11.1為移動(dòng)客戶(hù)端進(jìn)行測(cè)試。對(duì)傳入的圖片進(jìn)行測(cè)試時(shí),能在2 s內(nèi)獲得風(fēng)格遷移圖片,測(cè)試結(jié)果(見(jiàn)圖7)。

        圖7 圖像合成結(jié)果

        3 結(jié) 語(yǔ)

        本文實(shí)現(xiàn)了在python中運(yùn)用tensorFlow進(jìn)行神經(jīng)風(fēng)格遷移的算法,并成功運(yùn)用到移動(dòng)端上。但因?yàn)橄到y(tǒng)后臺(tái)迭代的次數(shù)是已經(jīng)確定的,所以生成的圖片偶爾會(huì)遷移過(guò)度或者遷移風(fēng)格不夠的情況,還需改進(jìn)。通過(guò)相關(guān)實(shí)驗(yàn)測(cè)試,此方法能夠在iOS系統(tǒng)的手機(jī)實(shí)現(xiàn)較好的風(fēng)格遷移效果。

        猜你喜歡
        損失神經(jīng)網(wǎng)絡(luò)圖像
        改進(jìn)的LapSRN遙感圖像超分辨重建
        少問(wèn)一句,損失千金
        胖胖損失了多少元
        有趣的圖像詩(shī)
        神經(jīng)網(wǎng)絡(luò)抑制無(wú)線通信干擾探究
        電子制作(2019年19期)2019-11-23 08:42:00
        玉米抽穗前倒伏怎么辦?怎么減少損失?
        基于神經(jīng)網(wǎng)絡(luò)的拉矯機(jī)控制模型建立
        復(fù)數(shù)神經(jīng)網(wǎng)絡(luò)在基于WiFi的室內(nèi)LBS應(yīng)用
        一般自由碰撞的最大動(dòng)能損失
        基于支持向量機(jī)回歸和RBF神經(jīng)網(wǎng)絡(luò)的PID整定
        日韩人妖视频一区二区| 天啦噜国产精品亚洲精品| 二区三区亚洲精品国产| 日本a爱视频二区三区| 国产v片在线播放免费无码| 亚洲欧美日韩综合久久| 三级全黄的视频在线观看| 偷拍视频这里只有精品| 综合五月激情二区视频| 乱码精品一区二区三区| 激情 一区二区| 日本岛国一区二区三区四区| 免费欧洲毛片a级视频老妇女| 亚洲国产美女精品久久久久 | 欧美xxxxx精品| 国产黄色三级一区二区三区四区| 国产精品国三级国产av| 暖暖免费 高清 日本社区在线观看| 日本韩国黄色三级三级| 亚洲天堂精品一区入口| 无码一区二区三区亚洲人妻| 日韩一区二区肥| 亚洲国产综合精品中文| 精品国产精品三级精品av网址| 日本护士吞精囗交gif| 国产精品日日摸夜夜添夜夜添| 中文字幕亚洲入口久久| 无码区a∨视频体验区30秒| 国产成人精品电影在线观看18| 青青草免费在线手机视频| av在线播放男人天堂| 亚洲av无码av制服另类专区| 国产九色AV刺激露脸对白| 蜜桃传媒免费观看视频| 青青草原亚洲| 老熟女毛茸茸浓毛| 国产女主播在线免费观看| 青春草在线视频观看| 亚洲色大成网站www永久一区| 国产精品女同久久久久久| 少妇被粗大进猛进出处故事|