原文:
www.kdnuggets.com/2020/11/change-background-image-5-lines-code.html
评论
由 Ayoola Olafenwa, 独立 AI 研究员
作者的照片拼贴
1. Google Cybersecurity Certificate - 快速进入网络安全职业生涯。
2. Google Data Analytics Professional Certificate - 提升你的数据分析能力
3. Google IT Support Professional Certificate - 支持你所在的组织在 IT 方面
图像分割有许多令人惊叹的应用,可以解决不同的计算机视觉问题。PixelLib 是一个库,旨在确保图像分割在实际应用中的轻松集成。PixelLib 现在支持一种称为 图像调优 的功能。
图像调优:这是通过图像分割来更改图像背景的过程。图像分割的关键作用是从图像中去除分割出的对象,并将它们放置到新创建的背景中。这是通过为图像生成一个掩码并将其与修改后的背景合并来完成的。我们使用在 Pascal VOC 数据集上训练的 deeplabv3+ 模型。该模型支持 20 种常见的对象类别,这意味着你可以在图像中更改这些对象的背景。
该模型支持以下列出的对象:
person,bus,car,aeroplane, bicycle, ,motorbike,bird, boat, bottle, cat, chair, cow, dinningtable, dog, horse pottedplant, sheep, sofa, train, tv
支持的背景效果有:
1 用图片更改图像背景
2 为图像背景分配一个独特的颜色。
3 模糊图像背景
4 将图像背景转为灰度
安装 PixelLib 及其依赖项:
安装 Tensorflow:(PixelLib 支持 Tensorflow 2.0 及以上版本)
- pip3 install tensorflow
安装 PixelLib:
- pip3 install pixellib
如果已安装,请使用以下命令升级到最新版本:
- pip3 install pixellib — upgrade
PixelLib 使得只需 5 行代码即可更改任何图像的背景。
sample.jpg
来源:Unsplash.com by Leighann Blackwoo
我们想用下面提供的图像更改上面的图像背景。
background.jpg
来源:Unsplash.com by Dawid Zawila
更改图片背景的代码
import pixellibfrom pixellib.tune_bg import alter_bgchange_bg = alter_bg()
我们导入了 pixellib,并从 pixellib 导入了类alter_bg。我们创建了该类的一个实例。
change_bg.load_pascalvoc_model("deeplabv3_xception_tf_dim_ordering_tf_kernels.h5")
我们加载了 deeplabv3+ 模型。从这里下载 deeplabv3+ pascalvoc 模型。
change_bg.change_bg_img(f_image_path = "sample.jpg",b_image_path = "background.jpg", output_image_name="new_img.jpg")
我们调用了函数change_bg_img,该函数处理用图片更改图像背景的操作。
该函数接受以下参数:
f_image_path: 这是前景图像,即背景将被更改的图像。
b_image_path: 这是将用于更改前景图像背景的图像。
output_image_name: 背景已更改的新图像。
输出图像
哇!这真是太美了,我们成功地替换了图像的背景。
我们可以利用 PixelLib 通过图像分割进行出色的前景和背景分离。
获取更改后图像数组的代码
对于专业用途,你可以通过下面的修改代码轻松获得更改后的图像数组。
你可以为图像的背景分配不同的颜色,就像你可以用图片更改图像背景一样。这也可以通过五行代码实现。
分配不同颜色到图像背景的代码
这与上面用于用图片更改图像背景的代码非常相似。唯一的区别是我们将函数change_bg_img替换为color_bg,该函数处理颜色更改。
change_bg.color_bg("sample.jpg", colors = (0, 128, 0), output_image_name="colored_bg.jpg")
函数color_bg接受参数colors,我们提供想要使用的颜色的 RGB 值。我们希望图像有一个绿色背景,颜色的 RGB 值设置为绿色,即*(0, 128, 0)*。
绿色背景
注意: 你可以通过提供颜色的 RGB 值来为图像的背景分配任何颜色**。**
change_bg.color_bg("sample.jpg", colors = (255, 255, 255), output_image_name="colored_bg.jpg")
我们希望将图像的背景更改为白色,并将颜色的 RGB 值设置为白色,即*(255, 255, 255)*。
白色背景
相同的图像,背景为白色。
获取彩色图像输出数组的代码
对于专业用途,你可以通过下面的修改代码轻松获得更改后的图像数组。
使用 PixelLib 的相同行代码将任何图像的背景转换为灰度。
将图像背景转换为灰度的代码
change_bg.gray_bg(“sample.jpg”,output_image_name=”gray_img.jpg”)
代码保持不变,只是调用了函数gray_bg来将图像背景转为灰度。
输出图像
注意: 图像的背景将被更改,现有对象会保持其原始质量。
获取灰度图像输出数组的代码
你可以应用模糊图像背景的效果,并且可以控制背景模糊的程度。
sample2.jpg
来源: Unsplash.com by Airella Horvath
change_bg.blur_bg("sample2.jpg", low = True, output_image_name="blur_img.jpg")
我们调用了函数 blur_bg 以模糊图像的背景,并将模糊效果设置为低。背景模糊程度有三个参数决定。
low: 当设置为 true 时,背景会被轻微模糊。
moderate: 当设置为 true 时,背景会被适度模糊。
extreme: 当设置为 true 时,背景会被深度模糊。
图像被轻微模糊。
change_bg.blur_bg("sample2.jpg", moderate = True, output_image_name="blur_img.jpg")
我们希望适度模糊图像的背景,因此将 moderate 设置为 true。
图像的背景以适度效果模糊。
change_bg.blur_bg("sample2.jpg", extreme = True, output_image_name="blur_img.jpg")
我们希望将图像的背景深度模糊,因此将 extreme 设置为 true。
图像的背景被极度模糊。
模糊图像背景的完整代码
获取模糊图像输出数组的代码
注意: 了解如何将这些背景效果应用于视频和摄像头的实时画面,访问 PixelLib 的 GitHub 仓库 和 PixelLib 的文档。我将很快发布一篇解释如何将这些背景效果应用于视频和摄像头实时画面的文章。
通过以下方式联系我:
Email: [email protected]
Linkedin: Ayoola Olafenwa
Twitter: @AyoolaOlafenwa
Facebook: Ayoola Olafenwa
查看这些文章,了解如何使用 PixelLib 进行图像和视频中对象的语义和实例分割。
使用 PixelLib 进行语义和实例分割。
视频的语义和实例分割。
使用 PixelLib 进行 150 类对象的语义分割
用 7 行代码训练数据集,实现实例分割和对象检测。
简介:Ayoola Olafenwa 是一位独立的 AI 研究员,专注于计算机视觉领域。
原文。经许可转载。
相关内容:
-
使用 TensorFlow 轻松进行图像数据集增强
-
使用深度学习自动旋转图像
-
计算机视觉路线图