Py学习  »  机器学习算法

AI算法 | 基于深度学习方法的图像分割

新机器视觉 • 10 月前 • 126 次点击  

点击下方卡片,关注“新机器视觉”公众号

重磅干货,第一时间送达

人类对计算机视觉感兴趣的最重要的问题是图像分类 (Image Classification)、目标检测 (Object Detection) 和图像分割 (Image Segmentation),同时它们的难度也是依次递增。


今天我们来聊聊图像分割(Image Segmentation)。


PART.01

什么是图像分割?


顾名思义,图像分割是将一个图像分割成多个片段的过程。在这个过程中,图像中的每个像素都与一个对象类型相关联。


对于图像分割任务而言,我们可以将其细分为语义分割、实例分割和全景分割三种类别。


1
语义分割



将图像中的所有像素划分为有意义的对象类。这些类是“语义上可解释的”,并对应于现实世界的类别。例如,你可以将与猫相关的所有像素分离出来,并将它们涂成绿色。这也被称为dense预测,因为它预测了每个像素的含义。

2
实例分割



标识图像中每个对象的每个实例。它与语义分割的不同之处在于它不是对每个像素进行分类。如果一幅图像中有三辆车,语义分割将所有的车分类为一个实例,而实例分割则识别每一辆车。

3
全景分割



要求图像中的每个像素点都必须被分配给一个语义标签和一个实例id。其中,语义标签指的是物体的类别,而实例id则对应同类物体的不同编号。



如上图所示,输入的是一张街拍场景的图片。

  • 语义分割任务只能区分不同的类别,无法区别相同的类别;

  • 实例分割任务不仅可以区分不同的类别,也可以区分相同类别中的不同个数,如图片中的行人和车辆 ,不同的人用不同的颜色进行显示;

  • 全景分割则是语义分割和实例分割的交集。


PART.02
经典算法剖析
01

U-Net


可视化时,其架构看起来像字母U,因此名称为U-Net。


UNet是一种基于卷积神经网络的图像分割算法,它于2015年由Olaf Ronneberger等人提出。与FCN等分割算法不同,UNet采用了一种新的网络结构,能够更好地处理物体边缘和小的物体。


它的体系结构由两部分组成,左边部分是收缩路径,右边部分是扩展路径。收缩路径的目的是捕获上下文,而扩展路径的作用是帮助精确定位。


UNet算法采用了跳跃连接,能够更好地保留图像的信息,使得算法更适用于分割小物体和物体之间的边界。该算法在实际应用中被广泛使用,特别是在医学图像分割领域,如肝脏分割和胰腺分割等。

02

 FastFCN

(图片来自网络)


在这种结构中,联合金字塔上采样(JPU)模块被用来代替扩展卷积,因为它们消耗大量的内存和时间。它的核心是一个全连接网络,同时使用JPU进行上采样。JPU将低分辨率特征图提升为高分辨率特征图。
03

Mask-RCNN

Mask RCNN是一种深度学习图像分割算法,它是RCNN系列算法的最新版本,在Faster RCNN和Mask RCNN的基础上加入了全新的分割网络。


在这种体系结构中,使用bounding box和语义分割对对象进行分类和定位,并将每个像素分类为一组类别。

PART.03
图像分割的场景应用


1


医学影像诊断


图像分割算法可以针对人体各器官进行精细的分割,协助医生完成一些医学诊断的问题。该功能已经在一些医院有所应用。

如图,左边第一张图是大脑的MR原图,右边两张是进行图像分割后的图片。


这张胸片,通过图像分割后,我们可以很清晰的分辨出肺、锁骨和心脏的位置。

02


自动驾驶

图像分割最著名的应用应该非自动驾驶莫属了。


目标分割可以应用在自动驾驶场景中完成静态障碍物和动态障碍物的精准分割,从而构建一个语义地图传递给后面的规划和控制模块。


03


自动扣图

图像分割可以把每个物体所在位置的像素给分别标注出来,那么这是不是跟我们的抠图任务有类似呢。


比如把一张商品的图片送进模型,通过图像分割我们是不是可以分辨出哪些像素属于背景,哪些像素属于前景(商品)呢?

04


虚拟试穿


最后一个,我们生活中有遇到过的运用。不知道大家有没有在某些购物APP上,使用过3D试穿功能呢。就是选择好我们想是穿的衣物,通过手机摄像头对准我们要试穿的身体部位,那么手机上就会呈现出我们穿上这一衣物的样子。


这其实也是需要通过图像分割来分割出我们身体上应该穿上衣服的部位的。


同时,还有一种虚拟化妆的任务,其实原理也跟虚拟试穿类似。


综合来自:AI产品汇、学姐带你玩AI


声明:部分内容来源于网络,仅供读者学习、交流之目的。文章版权归原作者所有。如有不妥,请联系删除。

—THE END—

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/155688
 
126 次点击