如何实现高质量人像抠图(matting)

hello,之前发过一篇使用u2net来实现人像抠图换背景的文章,对于一些简单的图片(单人,场景简单)有很好的效果,但是由于官方提供的预训练模型是基于一个多分类无标签数据集训练出来的,因此除了人还会分割出一些一些其他的东西,今天再来介绍一种方法,是有商汤最新提出的matting算法。
代码链接(我只是算法的搬运工)
下载好代码和预训练模型以后,在inference.py文件中修改相关配置参数(输入、输出、权重文件地址)运行即可。
下面给大家看一下效果图:
在这里插入图片描述
在这里插入图片描述
是不是效果很棒!头发丝都能分割出来,然后基于原图和alpha图片,我们将人从背景中分割出来:

import os
import cv2
import numpy as np
#im1 原图  im2 alpha图
im1_path = 'MODNet/demo/image_matting/images'
im2_path = 'MODNet/demo/image_matting/alpha'

num = len(os.listdir(im1_path))
for i in range(num):

    img1 = cv2.imread(os.path.join(im1_path, os.listdir(im1_path)[i]))
    img2 = cv2.imread(os.path.join(im2_path,os.listdir(im2_path)[i]), cv2.IMREAD_GRAYSCALE)
    h,w,c = img1.shape
    img3 = np.zeros((h,w,4))
    img3[:,:,0:3] = img1
    img3[:,:,3] = img2
    #这里命名随意,但是要注意使用png格式
    cv2.imwrite('MODNet/demo/image_matting/fenge/' + '%s.png' % os.listdir(im1_path)[i], img3)


在这里插入图片描述
怎么样 是不是很完美!为美丽的沁沁点个赞吧!

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值