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压缩和解压缩zip文件的教程
May 06 Python
Python使用xlwt模块操作Excel的方法详解
Mar 27 Python
Python实现快速计算词频功能示例
Jun 25 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
Jul 09 Python
Python 从相对路径下import的方法
Dec 04 Python
对Python协程之异步同步的区别详解
Feb 19 Python
Python实现京东秒杀功能代码
May 16 Python
python脚本之一键移动自定格式文件方法实例
Sep 02 Python
windows环境中利用celery实现简单任务队列过程解析
Nov 29 Python
Python 整行读取文本方法并去掉readlines换行\n操作
Sep 03 Python
python自动化测试三部曲之unittest框架的实现
Oct 07 Python
Python可视化神器pyecharts绘制地理图表
Jul 07 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获取参数的几种方法总结
2014/02/18 PHP
php+mysql大量用户登录解决方案分析
2014/12/29 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
2016/06/28 PHP
PHP PDOStatement::getAttribute讲解
2019/02/01 PHP
JavaScript中实现块作用域的方法
2010/04/01 Javascript
js内置对象 学习笔记
2011/08/01 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
jquery命令汇总,方便使用jquery的朋友
2012/06/26 Javascript
兼容IE和FF的图片上传前预览js代码
2013/05/28 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
jquery禁用右键示例
2014/04/28 Javascript
JavaScript中的this到底是什么(一)
2015/12/09 Javascript
总结JavaScript的正则与其他语言的不同之处
2016/08/25 Javascript
jQuery实现的表格展开伸缩效果实例
2016/09/07 Javascript
jQuery实现的瀑布流加载效果示例
2016/09/13 Javascript
javascript的函数劫持浅析
2016/09/26 Javascript
JS实现重新加载当前页面
2016/11/29 Javascript
微信小程序开发入门基础教程
2017/04/19 Javascript
javascript 开发之百度地图使用到的js函数整理
2017/05/19 Javascript
Python与Java间Socket通信实例代码
2017/03/06 Python
Python加密方法小结【md5,base64,sha1】
2017/07/13 Python
详解python配置虚拟环境
2019/04/08 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
python判断变量是否为列表的方法
2020/09/17 Python
Python生成pdf目录书签的实例方法
2020/10/29 Python
怎么样写好简历中的自我评价
2013/10/25 职场文书
护理专业自我鉴定
2014/01/30 职场文书
预备党员转正思想汇报
2014/09/26 职场文书
六一儿童节园长致辞
2015/07/31 职场文书
《包身工》教学反思
2016/02/23 职场文书
MySQL COUNT函数的使用与优化
2021/05/10 MySQL
python实现剪贴板的操作
2021/07/01 Python
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫