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通过递归遍历出集合中所有元素的方法
Feb 25 Python
python中map()与zip()操作方法
Feb 27 Python
Django 导出 Excel 代码的实例详解
Aug 11 Python
Python SQLite3数据库日期与时间常见函数用法分析
Aug 14 Python
windows 下python+numpy安装实用教程
Dec 23 Python
Python3结合Dlib实现人脸识别和剪切
Jan 24 Python
Python访问MongoDB,并且转换成Dataframe的方法
Oct 15 Python
利用Python求阴影部分的面积实例代码
Dec 05 Python
pycharm 将python文件打包为exe格式的方法
Jan 16 Python
对pyqt5多线程正确的开启姿势详解
Jun 14 Python
python 函数中的内置函数及用法详解
Jul 02 Python
python四种出行路线规划的实现
Jun 23 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 Masked Package 屏蔽敏感数据的实现方法
2019/10/15 PHP
Safari5中alert的无限循环BUG
2011/04/07 Javascript
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
JQuery实现倒计时按钮的实现代码
2012/03/23 Javascript
javascript生成随机颜色示例代码
2014/05/05 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
jQuery如何将选中的对象转化为原始的DOM对象
2014/06/09 Javascript
微信小程序 WXDropDownMenu组件详解及实例代码
2016/10/24 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
seaJs使用心得之exports与module.exports的区别实例分析
2017/10/13 Javascript
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
深入浅出理解JavaScript高级定时器原理与用法
2018/08/02 Javascript
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
2018/10/24 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
[03:26]回顾2015国际邀请赛中国区预选赛
2015/06/09 DOTA
wxPython事件驱动实例详解
2014/09/28 Python
python批量提取word内信息
2015/08/09 Python
简单谈谈Python流程控制语句
2016/12/04 Python
Django内容增加富文本功能的实例
2017/10/17 Python
Python面向对象之接口、抽象类与多态详解
2018/08/27 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
Python实现京东秒杀功能代码
2019/05/16 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
2019/06/19 Python
django中SMTP发送邮件配置详解
2019/07/19 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
python+tkinter实现学生管理系统
2019/08/20 Python
关于python中的xpath解析定位
2020/03/06 Python
python 子类调用父类的构造函数实例
2020/03/12 Python
python3让print输出不换行的方法
2020/08/24 Python
早餐连锁店计划书
2014/01/08 职场文书
广告学专业毕业生自荐信
2014/05/28 职场文书
当你焦虑迷茫时,请读读这6句话
2019/07/24 职场文书
Python中Cookies导出某站用户数据的方法
2021/05/17 Python
Python加密与解密模块hashlib与hmac
2022/06/05 Python