remove-bg-modnet / modnet_model.py
bluspater's picture
Rename model/modnet_model.py to modnet_model.py
62f3c15 verified
raw
history blame contribute delete
888 Bytes
from PIL import Image
import torch
from torchvision import transforms
from model.modnet import MODNet # или как у тебя организована модель
import cv2
import numpy as np
# Предобученная модель
modnet = MODNet()
modnet.load_state_dict(torch.load('pretrained/modnet_webcam_portrait_matting.ckpt', map_location='cpu'))
modnet.eval()
def remove_background_modnet(image: Image.Image) -> Image.Image:
image = image.convert('RGB').resize((512, 512))
img_np = np.array(image).astype(np.uint8)
img_tensor = transforms.ToTensor()(img_np).unsqueeze(0)
with torch.no_grad():
_, _, matte = modnet(img_tensor)
matte_np = matte.squeeze().cpu().numpy()
matte_np = (matte_np * 255).astype(np.uint8)
img_np = cv2.cvtColor(img_np, cv2.COLOR_RGB2BGRA)
img_np[:, :, 3] = matte_np
return Image.fromarray(img_np)