5行Python代码实现图像分割的步骤详解


Posted in Python onMay 25, 2020

众所周知图像是由若干有意义的像素组成的,图像分割作为计算机视觉的基础,对具有现有目标和较精确边界的图像进行分割,实现在图像像素级别上的分类任务。

5行Python代码实现图像分割的步骤详解

图像分割可分为语义分割和实例分割两类,区别如下:

  • 语义分割:将图像中每个像素赋予一个类别标签,用不同的颜色来表示;
  • 实例分割:无需对每个像素进行标记,只需要找到感兴趣物体的边缘轮廓。

图像分割通常应用如下所示:

  • 专业检测:应用于专业场景的图像分析,比如在卫星图像中识别建筑、道路、森林,或在医学图像中定位病灶、测量面积等;
  • 智能交通:识别道路信息,包括车道标记、交通标志等。

本博客主要通过PixelLib模块帮助用户快速便捷实现图像分割。

5行Python代码实现图像分割的步骤详解

1、环境部署

在进行项目设计前,需要安装所需的第三方库文件:TensorFlow、Pillow、OpenCV-Python、scikit-image和PixelLib,指令如下所示:

pip install tensorflow
pip install pillow
pip install opencv-python
pip install scikit-image
pip install pixellib

2、语义分割

PixelLib使用Deeplabv3+框架实现语义分割,在pascalvoc数据集上训练的Xception模型用于语义分割。

第1步:导入PixelLib模块,代码如下所示:

import pixellib
from pixellib.semantic import semantic_segmentation

第2步:创建用于执行语义分割的类实例,代码如下所示:

segment_image = semantic_segmentation()

第3步:调用load_pascalvoc_model()函数加载在Pascal voc上训练的Xception模型,代码如下所示:

segment_image.load_pascalvoc_model("deeplabv3_xception_tf_dim_ordering_tf_kernels.h5")

第4步:调用segmentAsPascalvoc()函数对图像进行分割,并且分割采用pascalvoc的颜色格式进行。此函数有两个必选参数:

  • path_to_image:分割的目标图像的路径;
  • path_to_output_image:保存分割后输出图像的路径。

将路径替换为自己环境路径即可,代码如下所示:

segment_image.segmentAsPascalvoc("path_to_image", output_image_name = "path_to_output_image")

上传图像,语义分割后效果如下所示:

5行Python代码实现图像分割的步骤详解

也可以生成了带有分段叠加层的图像,只需要将segmentAsPascalvoc()函数的overlay属性设置为True,代码如下所示:

segment_image.segmentAsPascalvoc("sample1.jpg", output_image_name = "image_new.jpg", overlay = True)

分段叠加层效果如下所示:

5行Python代码实现图像分割的步骤详解

3、即时分割

PixelLib的实例分割基于MaskRCNN框架实现,也仅需5行Python代码实现。

第1步:导入PixelLib模块,代码如下所示:

import pixellib
from pixellib.instance import instance_segmentation

第2步:导入用于执行实例细分的类并创建该类的实例,代码如下所示:

segment_image = instance_segmentation()

第3步:调用load_model()函数加载Mask RCNN模型以执行实例分割的代码,代码如下所示:

segment_image.load_model("mask_rcnn_coco.h5")

第4步:调用segmentImage()函数对图像执行实例分割。此函数有两个必选参数:

  • path_to_image:模型要预测的图像的路径;
  • output_image_name:保存分割结果的路径。

将路径替换为自己环境路径即可,代码如下所示:

segment_image.segmentImage("path_to_image", output_image_name = "output_image_path")

上传图像,即时分割后效果如下所示:

5行Python代码实现图像分割的步骤详解

也可以生成分割蒙版边界框,只需要将show_bboxes()函数的overlay属性设置为True,代码如下所示:

segment_image.segmentImage("sample2.jpg", output_image_name = "image_new.jpg", show_bboxes = True)

生成分割蒙版边界框效果如下所示:

5行Python代码实现图像分割的步骤详解

到此这篇关于5行Python代码实现图像分割的步骤详解的文章就介绍到这了,更多相关Python 图像分割内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
flask中使用SQLAlchemy进行辅助开发的代码
Feb 10 Python
Python sqlite3事务处理方法实例分析
Jun 19 Python
理解Python中的绝对路径和相对路径
Aug 30 Python
django反向解析和正向解析的方式
Jun 05 Python
使用python将大量数据导出到Excel中的小技巧分享
Jun 14 Python
编写多线程Python服务器 最适合基础
Sep 14 Python
python微信好友数据分析详解
Nov 19 Python
使用Python将Mysql的查询数据导出到文件的方法
Feb 25 Python
python中设置超时跳过,超时退出的方式
Dec 13 Python
对Python 字典元素进行删除的方法
Jul 31 Python
浅谈Python列表嵌套字典转化的问题
Apr 07 Python
Python爬虫中urllib3与urllib的区别是什么
Jul 21 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
May 25 #Python
keras .h5转移动端的.tflite文件实现方式
May 25 #Python
Python虚拟环境venv用法详解
May 25 #Python
将keras的h5模型转换为tensorflow的pb模型操作
May 25 #Python
tensorflow转换ckpt为savermodel模型的实现
May 25 #Python
基于Python把网站域名解析成ip地址
May 25 #Python
使用keras和tensorflow保存为可部署的pb格式
May 25 #Python
You might like
分页显示Oracle数据库记录的类之一
2006/10/09 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
2014/07/29 PHP
CI框架中cookie的操作方法分析
2014/12/12 PHP
php自定义加密与解密程序实例
2014/12/31 PHP
PHP实现合并discuz用户
2015/08/05 PHP
JS如何将UTC格式时间转本地格式
2013/09/04 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
用JS做的简单的可折叠的两级树形菜单
2013/09/21 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
基于Bootstrap+jQuery.validate实现表单验证
2016/05/30 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
Angularjs 动态添加指令并绑定事件的方法
2017/04/13 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
2017/06/30 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
基于vue配置axios的方法步骤
2017/11/09 Javascript
vue组件中使用iframe元素的示例代码
2017/12/13 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
vue+axios 拦截器实现统一token的案例
2020/09/11 Javascript
在antd4.0中Form使用initialValue操作
2020/11/02 Javascript
python和C语言混合编程实例
2014/06/04 Python
Python 中 Virtualenv 和 pip 的简单用法详解
2017/08/18 Python
Python标准库inspect的具体使用方法
2017/12/06 Python
django-rest-swagger对API接口注释的方法
2019/08/29 Python
在pycharm中为项目导入anacodna环境的操作方法
2020/02/12 Python
Django中FilePathField字段的用法
2020/05/21 Python
2014年最新学习全国两会精神心得
2014/03/17 职场文书
小学毕业典礼主持词
2014/03/27 职场文书
竞选村长演讲稿
2014/04/28 职场文书
体现团队精神的口号
2014/06/06 职场文书
村道德模范事迹材料
2014/08/28 职场文书
小学生竞选班干部演讲稿(5篇)
2014/09/12 职场文书
公司离职证明标准范本
2014/10/05 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang