wizzseen's picture
Upload 948 files
8a6df40 verified
raw
history blame
3.47 kB
import os, sys
import cv2
from PIL import Image
import numpy as np
import glob
import warnings
import argparse
from cloths_segmentation.pre_trained_models import create_model
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--background', type=bool, default=True, help='Define removing background or not')
opt = parser.parse_args()
# Read input image
img=cv2.imread("./static/origin_web.jpg")
ori_img=cv2.resize(img,(768,1024))
cv2.imwrite("./origin.jpg",ori_img)
# Resize input image
img=cv2.imread('origin.jpg')
img=cv2.resize(img,(384,512))
cv2.imwrite('resized_img.jpg',img)
# Get mask of cloth
print("Get mask of cloth\n")
terminnal_command = "python get_cloth_mask.py"
os.system(terminnal_command)
# Get openpose coordinate using posenet
print("Get openpose coordinate using posenet\n")
terminnal_command = "python posenet.py"
os.system(terminnal_command)
# Generate semantic segmentation using Graphonomy-Master library
print("Generate semantic segmentation using Graphonomy-Master library\n")
os.chdir("./Graphonomy-master")
terminnal_command ="python exp/inference/inference.py --loadmodel ./inference.pth --img_path ../resized_img.jpg --output_path ../ --output_name /resized_segmentation_img"
os.system(terminnal_command)
os.chdir("../")
# Remove background image using semantic segmentation mask
mask_img=cv2.imread('./resized_segmentation_img.png',cv2.IMREAD_GRAYSCALE)
mask_img=cv2.resize(mask_img,(768,1024))
k = cv2.getStructuringElement(cv2.MORPH_RECT, (3,3))
mask_img = cv2.erode(mask_img, k)
img_seg=cv2.bitwise_and(ori_img,ori_img,mask=mask_img)
back_ground=ori_img-img_seg
img_seg=np.where(img_seg==0,215,img_seg)
cv2.imwrite("./seg_img.png",img_seg)
img=cv2.resize(img_seg,(768,1024))
cv2.imwrite('./HR-VITON-main/test/test/image/00001_00.jpg',img)
# Generate grayscale semantic segmentation image
terminnal_command ="python get_seg_grayscale.py"
os.system(terminnal_command)
# Generate Densepose image using detectron2 library
print("\nGenerate Densepose image using detectron2 library\n")
terminnal_command ="python detectron2/projects/DensePose/apply_net.py dump detectron2/projects/DensePose/configs/densepose_rcnn_R_50_FPN_s1x.yaml \
https://dl.fbaipublicfiles.com/densepose/densepose_rcnn_R_50_FPN_s1x/165712039/model_final_162be9.pkl \
origin.jpg --output output.pkl -v"
os.system(terminnal_command)
terminnal_command ="python get_densepose.py"
os.system(terminnal_command)
# Run HR-VITON to generate final image
print("\nRun HR-VITON to generate final image\n")
os.chdir("./HR-VITON-main")
terminnal_command = "python3 test_generator.py --cuda True --test_name test1 --tocg_checkpoint mtviton.pth --gpu_ids 0 --gen_checkpoint gen.pth --datasetting unpaired --data_list t2.txt --dataroot ./test"
os.system(terminnal_command)
# Add Background or Not
l=glob.glob("./Output/*.png")
# Add Background
if opt.background:
for i in l:
img=cv2.imread(i)
img=cv2.bitwise_and(img,img,mask=mask_img)
img=img+back_ground
cv2.imwrite(i,img)
# Remove Background
else:
for i in l:
img=cv2.imread(i)
cv2.imwrite(i,img)
os.chdir("../")
cv2.imwrite("./static/finalimg.png", img)