简单实现思路:
- 对图像内容进行分割,提取人像
- 对图像背景进行模糊化处理
- 将人像和背景重新合成
在这里,使用DeepLabV3模型对图像内容进行分割并提取人像,实现的代码如下:
import os
from io import BytesIO
import tarfile
import tempfile
from six.moves import urllib
from matplotlib import gridspec
from matplotlib import pyplot as plt
import numpy as np
from PIL import Image
# 在Tensorflow 2.x中使用Tensorflow 1.x兼容
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
import cv2
class DeepLabModel(object):
"""Class to load deeplab model and run inference."""
INPUT_TENSOR_NAME = 'ImageTensor:0'
OUTPUT_TENSOR_NAME = 'SemanticPredictions:0'
INPUT_SIZE = 513
FROZEN_GRA