文章目录
前言
图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。
传统的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。
本文重点的介绍基于深度学习的图像分割,PixelLib是深度学习图像分割的方法之一,官方给出了多个训练好的模型,适合新手使用;
图像分割应用场景:虚拟背景、医学图像处理、自动驾驶、卫星遥感等等
一、PixelLib依赖安装
python
pip install tensorflow
pip install imgaug
pip install pixellib --upgrade
PixelLib支持两种主要的分割类型,
你可以通过使用Pixel Lib训练数据集来创建对象分割的自定义模型:
语义分割:图像中具有相同像素值的对象使用相同的颜色映射进行分割。
实例分割:使用不同的颜色贴图分割同一对象的实例。
二、实例
c
from pixellib.semantic import semantic_segmentation
segment_image = semantic_segmentation()
# 加载deeplabv3_xception65_ade20k.h5模型
# 模型在官网都有提供了下载链接
segment_image.load_ade20k_model("deeplabv3_xception65_ade20k.h5")
# 输入图片sample1.jpg,输出图片image_new.jpg,overlay = True时图像透明显示分割层
segment_image.segmentAsAde20k("sample1.jpg", output_image_name = "image_new.jpg", overlay = True)
PixelLib模型主要两类:
1.Deeplabv3+ 预训练模型:用于语义分割,训练数据为 150类的Ade20k 和 20类的Pascalvoc
2.Mask RCNN 预训练模型:用于实例分割,训练数据为 80类的COCO
模型训练
模型训练部分,可以阅读官方文档:
https://pixellib.readthedocs.io/en/latest/custom_train.html
使用标注工具labelme,对数据集进行标准,按照pixellib的数据集格式要求进行训练。