全文共6625字,预计学习时长13分钟或更长
划重点!!!本文主要内容:
· Mask R-CNN是一种先进的算法框架,用于解决图像分割问题
· 本文将采用逐步推进、层层推进的方式来剖析Mask R-CNN的工作原理
· 本文还将探析如何用Python实现Mask R-CNN及其在图像处理的运用
图片来源:unsplash.com/@mcnoble
自动驾驶系统所囊括的计算机视觉技术复杂巧妙,种类繁多,在数据科学家眼中,这种复杂性与混合性堪比梦中天籁,引人入胜。
因此,笔者开始研究这一系统,试图理解自动驾驶赋予汽车的这双“火眼金睛”的背后,究竟隐藏着何等玄机。仅凭一个物体检测框架可能行不通,因为它仅能识别对象,并用某种固定的形状将其标出。
然而若运用于现实中,这种方法风险很大。试想,倘若前方有一处急转弯,系统只在道路上给出一个矩形标识,这样以来车辆很有可能判断不出是该避让还是径直上前,车祸一触即发!
因此,对新技术的诉求应运而生,该技术须能识别具体路况,以指引车辆顺利过弯。
到底什么样的黑科技能够满足这一需求呢—— Mask R-CNN闪亮登场!
本文将简要阐释何为图像分割,并以此引入全文的核心主角—— Mask R-CNN算法框架。最后本文将探析如何用Python实现Mask R-CNN框架。
目录
1. 图像分割概览
2. 剖析Mask R-CNN
3. 实现Mask R-CNN的步骤
4. 实现Mask R-CNN
1. 图像分割概览
让我们先来简单回顾一下图像分割:图像分割即为图片的每个对象创建一个像素级的掩膜,该技术可使大家对图像中的对象有更深入的了解。下图将助你理解何为图像分割。
如图所示,每个对象(即该图中的每个单元)已彼此分离,这就是图像分割的工作原理。
图像分割可分为两种,语义分割与实例分割,具体实例详见下文。
左图五个对象均为人,因此语义分割会将这五个对象视为一个整体。而右图同样也有五个对象(亦均为人),但同一类别的不同对象在此被视为不同的实例,这就是实例分割。
2. 剖析Mask-CNN
Mask R-CNN可算作是Faster R-CNN的升级版。Faster R-CNN广泛用于对象检测。对于给定图像,它会给图中每个对象加上类别标签与边界框坐标。如果你输入下图:
Fast R-CNN将会返回如下结果