之前更新了很多有关于目标检测中的Tips和系列实战教程,现在给大家讲解一下计算机视觉中的另一个领域图像分割中的一些原理和实战项目,感兴趣的话,请追下去吧~
图片分类、目标分割、目标识别、目标检测和目标跟踪,是深度学习中的几大重要学习领域,它们之间即具有关联也有区别,学习路线:图片分类->目标分割->目标检测->目标识别->目标跟踪, 粗略的理解如下:
图像分类:又称图片分类、图片识别,图像分类是指对输入图像中的对象进行分类,是猫还是狗。
目标分割:又称图像分割,把图像中的所有目标对应部分以像素级的形式分割出来,如下图所示:
目标检测: 定位图像中的每个目标,确定目标在图像中的位置和大小。
目标识别:不仅定位图像中的每个目标,并且确定该目标具体是什么。
目标追踪:Target Tracking,是基于对目标的定位后,实时追踪目标所在的位置。追踪图像中某个目标的运动轨迹,建立运动模型,通过模型对目标进行位置预测,这个过程涉及到时间序列数据,目标跟踪通常是用于视频数据,和目标检测有密切的联系,同时要利用帧之间的时序关系。
后期依次会出这四个方向的系列原理教程和实战项目,这里首先给大家讲解目标(图像)分割,请继续追下去哦~
图像分割(image segmentation)就是根据某些规则把图片中的像素分成不同的部分(加不同的标签)。图像分割又可以分为:超像素、语义分割、实例分割、全景分割,下面依次介绍。
超像素是一系列像素的集合,这些像素具有类似的颜色、纹理等特征,距离也比较近,而不是在普通的像素基础上继续微观积分。用超像素对一张图片进行分割的结果如下图:
其中每个白色线条区域内的像素集合就是一个超像素,注意:超像素很可能把同一个物体的不同部分分成多个超像素。
超像素的最早定义来自2003年Xiaofeng Ren等人的一篇论文《Learning a Classification Model for Segmentation》。超像素中的常用的一种方法SILC(simpe linear iteractive clustering)是Achanta等人在2010年提出的一种思想简单、实现方便的算法,将彩色图像转化为CIELAB颜色空间和XY坐标下的5维特征向量,然后对5维特征向量构造距离度量标准,对图像像素进行局部聚类的过程。SILC算法能生成紧凑,近似均匀的超像素,在运算速度、物体轮廓保持、超像素形状等方面具有较高的综合评价,比较符合我们期望的分割效果。
如下图:
语义分割是指将图像中每个像素赋予一个类别标签(比如:汽车、建筑、地面、天空等),如下图把图像分为了草地(浅绿)、人(红色)、树木(浅绿)、天空(蓝色)等标签,用不同的颜色来表示。
语义分割存在的问题: 如果其中一个像素被标记为红色那就代表这个像素所在的位置是一个人,但是如果有两个都是红色像素,这种方式无法判断它们是属于同一个人还是不同的人,也就是语义分割只能判断(像素)所属类别,无法区分个体。当我们想要个体信息和区分个体时这种方式是不好的,那应该怎么办呢? 这就引出来实例分割了。
实例分割分割的方式类似于物体检测,不过物体检测一般输出的是bounding box,实例分割输出的是一个mask.
实例分割和语义分割不同,它不需要对每个像素进行标记,它只需要找到感兴趣物体的边缘轮廓就行,比如下图中的人就是感兴趣的物体。
该图的分割方法采用了一种称为Mask R-CNN的方法。我们可以看到每个人都是不同的颜色的轮廓,因此我们可以区分出单个个体。
全景分割是语义分割和实例分割的结合,如下图所示,每个像素被分为一类,如果一种类别里有多个实例,会用不同的颜色进行区分,我们可以知道那个像素属于那个类中的那个实例。如下图所示:
上图中黄色和红色都属于人这一个类别里,但是分别属于不同的实例(人),所以我们可以通过mask的颜色很容易分辨出不同的实例。
好啦,这期就到这里了,如果觉得还不错的话,请不要吝啬,反手给我一个赞哦 !
精彩推荐:
原理讲解-项目实战 <-> Mtcnn + Facenet 搭建人脸识别平台(中奖名单公示)
原理讲解-项目实战 <-> Keras搭建Mtcnn人脸检测平台
Yolov3算法实现社交距离安全检测项目讲解和实战(Social Distance Detector)
万字长文,用代码的思想讲解Yolo3算法实现原理,Visdrone数据集和自己制作数据集两种方式在Pytorch训练Yolo模型