iT邦幫忙

2024 iThome 鐵人賽

DAY 26
0
生成式 AI

用AI做圖像super resolution 或用AI做圖像中的物件消除系列 第 26

使用 DeepFill v2 進行圖像修復測試與性能分析

  • 分享至 

  • xImage
  •  
  1. 實驗目的

這個實驗的目的是在測試 DeepFill v2 模型在不同遮擋情況下的圖像修復能力,尤其是在複雜背景及物件重疊場景時的修復效果。
通過對比不同遮擋情況下的修復結果,分析模型的無縫性、自然度等性能指標。

  1. 實驗工具與數據集

•DeepFill v2 模型:利用這個模型進行圖像修復。
•數據集:Places2,該數據集包含大量室內外場景圖像,適合作為修復測試的基礎。
•性能評估工具:計算 PSNR(峰值信噪比)與 SSIM(結構相似度指標)來衡量修復效果。

  1. 實驗步驟

步驟 1:環境搭建與數據集準備

安裝所需的依賴包與 DeepFill v2 模型。
使用 PyTorch 來搭建 DeepFill v2 的運行環境。
下載 Places2 數據集,並將其中一部分用作修復測試的輸入。

安裝依賴包
pip install torch torchvision
pip install opencv-python

下載 Places2 wget
http://data.csail.mit.edu/places/places365/places365standard_easyformat.tar
tar -xvf places365standard_easyformat.tar

步驟 2:模型運行與遮擋處理

1.將 Places2 中的圖像樣本來進行隨機遮擋。
遮擋方式包括簡單的矩形遮擋和複雜的物件遮擋,模擬實際場景中可能的缺失區域。
2.使用 DeepFill v2 模型進行修復,將遮擋的區域進行填補。
•載入預訓練模型。
•將圖像和遮擋區域送入模型進行處理。

import torch
import cv2
import numpy as np

加載 DeepFill v2 預訓練模型
model = torch.hub.load('junyanz/pytorch-CycleGAN-and-pix2pix', 'deepfill', pretrained=True)

選擇圖片
image_path = 'places2_sample.jpg'
image = cv2.imread(image_path)

遮擋處理(隨機矩形遮擋)
mask = np.zeros_like(image)
cv2.rectangle(mask, (50, 50), (150, 150), (255, 255, 255), -1)

將圖像和遮擋區域輸入模型
input_image = torch.tensor(image).permute(2, 0, 1).unsqueeze(0).float() / 255.0
input_mask = torch.tensor(mask).permute(2, 0, 1).unsqueeze(0).float() / 255.0
output_image = model(input_image, input_mask)

保存修復結果
output_image = output_image.squeeze(0).permute(1, 2, 0).detach().numpy()
cv2.imwrite('repaired_image.jpg', output_image * 255)


上一篇
自注意力與部分卷積
下一篇
使用 DeepFill v2 進行圖像修復測試與性能分析 2
系列文
用AI做圖像super resolution 或用AI做圖像中的物件消除30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言