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 相关文章推荐
python运行时间的几种方法
Jun 17 Python
解决Python 遍历字典时删除元素报异常的问题
Sep 11 Python
梯度下降法介绍及利用Python实现的方法示例
Jul 12 Python
Python使用内置json模块解析json格式数据的方法
Jul 20 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
Oct 16 Python
Python字典的核心底层原理讲解
Jan 24 Python
python开发准备工作之配置虚拟环境(非常重要)
Feb 11 Python
Python3.5装饰器原理及应用实例详解
Apr 30 Python
python 微信好友特征数据分析及可视化
Jan 07 Python
django模型动态修改参数,增加 filter 字段的方式
Mar 16 Python
Python select及selectors模块概念用法详解
Jun 22 Python
如何通过一篇文章了解Python中的生成器
Apr 02 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
php获取json数据所有的节点路径
2015/05/17 PHP
PHP实现搜索地理位置及计算两点地理位置间距离的实例
2016/01/08 PHP
php中让人头疼的浮点数运算分析
2016/10/10 PHP
用Div仿showModalDialog模式菜单的效果的代码
2007/03/05 Javascript
防止动态加载JavaScript引起的内存泄漏问题
2009/10/08 Javascript
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
javascript中的注释使用与注意事项小结
2011/09/20 Javascript
jQuery setTimeout传递字符串参数报错的解决方法
2014/06/09 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
2015/04/16 Javascript
JavaScript实现大图轮播效果
2017/01/11 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
基于jquery日历价格、库存等设置插件
2020/07/05 jQuery
详解js的作用域、预解析机制
2018/02/05 Javascript
说说node中的可读流和可写流的区别
2018/06/01 Javascript
JQuery实现简单的复选框树形结构图示例【附源码下载】
2019/07/16 jQuery
JSX在render函数中的应用详解
2019/09/04 Javascript
使用Python中的cookielib模拟登录网站
2015/04/09 Python
Python计算时间间隔(精确到微妙)的代码实例
2019/02/26 Python
Django框架实现的普通登录案例【使用POST方法】
2019/05/15 Python
python使用配置文件过程详解
2019/12/28 Python
python实例化对象的具体方法
2020/06/17 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
2020/06/30 Python
美国二手奢侈品寄售网站:TheRealReal
2016/10/29 全球购物
三只松鼠官方旗舰店:全网坚果销售第1
2017/11/25 全球购物
外企财务年会演讲稿
2014/01/03 职场文书
业务员自荐信范文
2014/04/20 职场文书
大学生演讲稿
2014/04/25 职场文书
安全保证书范文
2014/04/29 职场文书
中等生评语大全
2014/05/04 职场文书
医院领导班子四风对照检查材料
2014/09/27 职场文书
2014年小学教研工作总结
2014/12/06 职场文书
2015年度高中教师工作总结
2015/05/26 职场文书
春节随笔
2015/08/15 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
2016先进集体事迹材料范文
2016/02/25 职场文书
vue整合百度地图显示指定地点信息
2022/04/06 Vue.js