計算機視覺應(yīng)用開發(fā)課件:基于SRGAN的圖像超分辨率重建_第1頁
計算機視覺應(yīng)用開發(fā)課件:基于SRGAN的圖像超分辨率重建_第2頁
計算機視覺應(yīng)用開發(fā)課件:基于SRGAN的圖像超分辨率重建_第3頁
計算機視覺應(yīng)用開發(fā)課件:基于SRGAN的圖像超分辨率重建_第4頁
計算機視覺應(yīng)用開發(fā)課件:基于SRGAN的圖像超分辨率重建_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

基于SRGAN的圖像超分辨率重建案例描述01任務(wù)案例目標(biāo)02任務(wù)案例分析03任務(wù)案例實施04任務(wù)1案例描述1案例描述本案例基于SRGAN,并在T91數(shù)據(jù)集上訓(xùn)練,實現(xiàn)圖像的超分辨重建。2案例目標(biāo)案例目標(biāo)學(xué)會搭建SRGAN超分辨率重建網(wǎng)絡(luò);

通過約束對抗損失和內(nèi)容損失訓(xùn)練SRGAN 網(wǎng)絡(luò)以實現(xiàn)圖像的超分辨率重建。23案例分析案例分析SRGAN網(wǎng)絡(luò)同樣需要一些低分辨率圖像和原始高分辨率圖像,低分辨率圖像用做輸入數(shù)據(jù)來訓(xùn)練SRGAN網(wǎng)絡(luò)模型,高分辨率圖片用來檢測超分圖像重建的效果。為此除了原始圖像,需要手動構(gòu)造低分辨率圖像。整個案例的流程如下:(1)加載數(shù)據(jù)集,進行規(guī)范化;(2)構(gòu)造低分辨率圖像;(3)搭建SRGAN網(wǎng)絡(luò);(4)編譯并訓(xùn)練;(5)預(yù)測并對比。34案例實施4案例實施 1.數(shù)據(jù)預(yù)處理創(chuàng)建utils.py,首先是一些預(yù)處理文件,包括讀取,存儲圖片等函數(shù)。#讀入圖片,并對圖片做尺寸裁減,并將所有圖片進行歸一化處理img=img[start_h:start_h+fine_size,start_w:start_w+fine_size,:]img=(img-127.5)/127.5#保存圖片以及圖片名稱defsave_images(images,size,filename):returnscipy.misc.imsave(filename,np.squeeze(images))4案例實施2.定義網(wǎng)絡(luò)層創(chuàng)建layer.py,主要定義一些特定的網(wǎng)絡(luò)模塊以及所需的損失函數(shù)。其中導(dǎo)入tensorflow.contrib.slim庫要求numpy版本為1.20.0以下,scipy版本為1.2.0。#定義殘差網(wǎng)絡(luò)塊defres_block(input_x,out_channels=64,k=3,s=1,scope='res_block'):withtf.variable_scope(scope):x=input_xinput_x=slim.conv2d_transpose(input_x,out_channels,k,s)input_x=slim.batch_norm(input_x,scope='bn1')input_x=tf.nn.relu(input_x)input_x=slim.conv2d_transpose(input_x,out_channels,k,s)input_x=slim.batch_norm(input_x,scope='bn2')returnx+input_x4案例實施#定義PSNR損失函數(shù)defPSNR(real,fake):mse=tf.reduce_mean(tf.square(127.5*(real-fake)+127.5),axis=(-3,-2,-1))psnr=tf.reduce_mean(10*(tf.log(255*255/tf.sqrt(mse))/np.log(10)))returnpsnr3.訓(xùn)練模型

創(chuàng)建SRGAN.py,包含SRGAN模型的構(gòu)建以及訓(xùn)練測試過程。

定義生成器。生成器包含五個卷積模塊和五個殘差塊和兩個像素隨機操作。4案例實施conv1=tf.nn.relu(slim.conv2d_transpose(input_x,64,3,1,scope='g_conv1'))shortcut=conv1#res_block(input_x,out_channels=64,k=3,s=1,scope='res_block'):res1=res_block(conv1,64,3,1,scope='g_res1')res2=res_block(res1,64,3,1,scope='g_res2')res3=res_block(res2,64,3,1,scope='g_res3')res4=res_block(res3,64,3,1,scope='g_res4')res5=res_block(res4,64,3,1,scope='g_res5')conv2=slim.batch_norm(slim.conv2d_transpose(res5,64,3,1,scope='g_conv2'),scope='g_bn_conv2')conv2_out=shortcut+conv2#pixel_shuffle_layer(x,r,n_split):conv3=slim.conv2d_transpose(conv2_out,256,3,1,scope='g_conv3')shuffle1=tf.nn.relu(pixel_shuffle_layer(conv3,2,64))#64*2*2conv4=slim.conv2d_transpose(shuffle1,256,3,1,scope='g_conv4')shuffle2=tf.nn.relu(pixel_shuffle_layer(conv4,2,64))conv5=slim.conv2d_transpose(shuffle2,3,3,1,scope='g_conv5')self.g_vars=tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES,'generator')4案例實施定義鑒別器。鑒別器包含四個卷積模塊和兩個全連接層。conv1=leaky_relu(slim.conv2d(input_x,64,3,1,scope='d_conv1'))conv1_1=leaky_relu(slim.batch_norm(slim.conv2d(conv1,64,3,2,scope='d_conv1_1'),scope='d_bn_conv1_1'))conv2=leaky_relu(slim.batch_norm(slim.conv2d(conv1_1,128,3,1,scope='d_conv2'),scope='d_bn_conv2'))conv2_1=leaky_relu(slim.batch_norm(slim.conv2d(conv2,128,3,2,scope='d_conv2_1'),scope='d_bn_conv2_1'))conv3=leaky_relu(slim.batch_norm(slim.conv2d(conv2_1,256,3,1,scope='d_conv3'),scope='d_bn_conv3'))conv3_1=leaky_relu(slim.batch_norm(slim.conv2d(conv3,256,3,2,scope='d_conv3_1'),scope='d_bn_conv3_1'))conv4=leaky_relu(slim.batch_norm(slim.conv2d(conv3_1,512,3,1,scope='d_conv4'),scope='d_bn_conv4'))conv4_1=leaky_relu(slim.batch_norm(slim.conv2d(conv4,512,3,2,scope='d_conv4_1'),scope='d_bn_conv4_1'))

conv_flat=tf.reshape(conv4_1,[self.batch_size,-1])dense1=leaky_relu(slim.fully_connected(conv_flat,1024,scope='d_dense1'))dense2=slim.fully_connected(dense1,1,scope='d_dense2')4案例實施定義優(yōu)化器,分為兩個優(yōu)化器,分別優(yōu)化生成器和鑒別器self.d_optim=tf.train.AdamOptimizer(learning_rate=self.learning_rate,beta1=self.beta1,beta2=self.beta2).minimize(self.d_loss,var_list=self.d_vars)self.g_optim=tf.train.AdamOptimizer(learning_rate=self.learning_rate,beta1=self.beta1,beta2=self.beta2).minimize(self.g_loss,var_list=self.g_vars)定義內(nèi)容損失和對抗損失:content_loss=inference_mse_content_loss(real,fake)d

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論