ZHKKKe / MODNet

A Trimap-Free Portrait Matting Solution in Real Time [AAAI 2022]
Apache License 2.0
3.84k stars 636 forks source link

使用预训练模型效果不理想 #46

Closed LianShuaiLong closed 3 years ago

LianShuaiLong commented 3 years ago

[您好,我用了您的预训练模型直接进行预测matte,然后将matte作为mask与原图做“与"操作,发现效果很差,我是不是哪里操作不对啊?结果图 这是我的代码,其中matting是利用预训练模型modnet_photographic_portrait_matting.ckpt预测得到的matte img = cv2.imread(image) matting = cv2.imread(matting,cv2.IMREAD_GRAYSCALE) masked = cv2.bitwise_and(img,img,mask=matting)

ZHKKKe commented 3 years ago

你好。 预测出的matte中每个像素值是范围在0~1间的浮点数。你需要使用matting的公式提取前景。参考代码如下:

fg = matte * image + (1 - matte) * np.full(image.shape, 0.0)

其中, matte是预测的掩膜,image是原图像,np.full(image.shape, 0.0)是设置为黑色的背景,fg是扣出来的前景。

LianShuaiLong commented 3 years ago

你好。 预测出的matte中每个像素值是范围在0~1间的浮点数。你需要使用matting的公式提取前景。参考代码如下:

fg = matte * image + (1 - matte) * np.full(image.shape, 0.0)

其中, matte是预测的掩膜,image是原图像,np.full(image.shape, 0.0)是设置为黑色的背景,fg是扣出来的前景。 已经解决,大佬厉害

albertyou2 commented 3 years ago

@LianShuaiLong 可否分享一下您的 提取前景的代码,CV小白想学习MATTING,感激不尽

LianShuaiLong commented 3 years ago

@LianShuaiLong 可否分享一下您的 提取前景的代码,CV小白想学习MATTING,感激不尽

可以参考作者的demo代码,https://github.com/LianShuaiLong/CV_Applications/tree/master/matting