常见的计算机视觉任务综述

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

本文转自|新机器视觉

计算机视觉是一门研究如何让计算机达到人类那样“看”的技术。使用摄像头和电脑来代替人类完成一些复杂的工作,例如对目标进行分类、识别、分割、跟踪等,计算机视觉技术已经在很多行业的应用场景中大放异彩。

本文将主要介绍计算机视觉中的几个重要的研究方向。主要包括图像分类、目标检测、语义分割、实例分割、全景分割等。通过对这几个计算机视觉任务的对比,我们将更好的理解每个视觉任务的含义以及应用场景。我们将通过这张对比图来对以上的概念进行说明。

常见的计算机视觉任务综述_第1张图片

一、图像分类

图像分类是计算机视觉任务中的一个重要的概念,目标检测技术的发展之初也主要是通过图像分类思想来实现的。

图像分类,顾名思义,即是输入一张图像,我们通过算法来输出这个图像的类别,例如判断出这张图像是猫或者狗。对于经典的Mnist数据集来说,这个数据集包括了0到9共10个数字的手写体图片,所以这就是一个典型的图像多分类问题,即将这些图片分为0到9共10个类别。传统的图像分类的主要步骤是进行特征提取,然后训练分类器。

2012年,基于神经网络的AlexNet网络提出,在2012年的ImageNet竞赛中夺得冠军。之后,更多的更深的神经网络被提出,比如优秀的vgg、GoogLeNet、ResNet等。

二、目标检测

目标检测是对图像中的目标进行分类和定位,如图所示,即找出图像中的三个目标,将其划分为“羊”这个类别,然后对每一只羊的位置进行定位,用边界框的形式将其位置标注出来,目标检测的应用非常广泛。

目前目标检测领域的深度学习方法主要分为两类:两阶段的目标检测算法、单阶段目标检测算法。两阶段目标检测是指首先由算法生成一系列作为样本的候选框,再通过卷积神经网络进行样本分类。常见的两阶段算法有R-CNN、Fast R-CNN、Faster R-CNN等。单阶段目标检测算法不需要产生候选框,直接将目标框定位的问题转化为回归问题处理。常见的算法有YOLO系列算法、SSD算法等。

三、语义分割

语义分割是一种像素级别的分类,就是把图像中每个像素赋予一个类别标签(比如羊、草地等),对比图中的语义分割没有对草地和天空进行划分,只是单纯的将每一个像素划分为:是羊的像素;不是羊的像素。将羊的像素部分用颜色表示出来,我们一般将其称为二进制掩码,即一个0-1矩阵,其中羊的像素部分取值为1,不是羊的像素部分,取值为0。于是上述的图片如果使用语义分割算法进行图像分割,得到的二进制掩码如下图所示:

常见的计算机视觉任务综述_第2张图片

通过对掩码的解析,我们就可以知道当前图像中是否存在羊,以及羊处于什么位置。但是语义分割有一个局限性,比如如果一个像素被标记为橙色,那就代表这个像素所在的位置是一只羊,但是如果有两个都是橙色的像素,语义分割无法判断它们是属于同一只羊还是不同的羊。也就是说语义分割只能判断类别,无法区分个体。

语义分割中的经典算法为全卷积网络FCN,通常CNN网络在卷积层之后会接上若干个全连接层,将卷积层产生的特征图映射成一个固定长度的特征向量。以AlexNet为代表的经典CNN结构适合于图像级的分类和回归任务。与经典的CNN在卷积层之后使用全连接层得到固定长度的特征向量进行分类不同,FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷积层的feature map进行上采样,使它恢复到输入图像相同的尺寸,从而可以对每个像素都产生了一个预测,同时保留了原始输入图像中的空间信息,最后在上采样的特征图上进行逐像素分类。

语义分割领域中的经典算法有Deeplab系列算法、DFANet、BiseNet、ENet等。

四、实例分割

 实例分割算法有点类似于语义分割和目标检测的结合,不过目标检测输出的是边界框的坐标,实例分割除了输出边界框的坐标,还会输出二进制掩码。实例分割和语义分割不同,它不需要对每个像素进行标记,它只需要找到感兴趣物体的边缘轮廓就行,实例分割是在像素级识别对象轮廓的任务。比如上图中的羊就是感兴趣的物体。我们可以看到每只羊都是不同的颜色的轮廓,因此我们可以区分出单个个体。

经典的实例分割算法有Mask-RCNN算法、SOLO算法,以及提升速度的YOLACT算法、BlendMask算法等。

五、全景分割

全景分割最先由FAIR与德国海德堡大学联合提出,其任务是为图像中每个像素点赋予类别Label和实例ID,生成全局的、统一的分割图像。全景分割任务要求图像中的每个像素点都必须被分配给一个语义标签和一个实例ID。其中,语义标签指的是物体的类别,而实例ID则对应同类物体的不同编号。全景分割的一个重要的特征在于其对背景也进行了检测和分割。全景分割可以认为是语义分割和实例分割的结合。

常见的全景分割算法有UPSNet、OANet、EfficientPS等。

计算机视觉任务目前的主要应用场景主要有:人脸识别、自动驾驶、人群计数、视频监控、文字识别、医学图像分割等。其应用领域涉及诸多行业。通过将图像的分类、识别、分割、跟踪等技术进行结合,可以在更多的行业场景中发挥作用。

 End 

好消息,小白学视觉团队的知识星球开通啦,为了感谢大家的支持与厚爱,团队决定将价值149元的知识星球现时免费加入。各位小伙伴们要抓住机会哦!

常见的计算机视觉任务综述_第3张图片

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

常见的计算机视觉任务综述_第4张图片

常见的计算机视觉任务综述_第5张图片

你可能感兴趣的:(算法,卷积,python,计算机视觉,机器学习)