CV(Computer Vision,计算机视觉)是AI的两大重要应用之一(另一个是NLP,Natural Language Processing),具体有哪些任务,有哪些技术和模型呢?在本文中先简要介绍这些任务,每种任务使用的具体的技术和模型,以及其相互之间的对比,放在后续文章中介绍,敬请期待。
在题目中也提到了,CV类任务大概有这些分类:分类、检测、分割、关键点识别、图像生成、度量学习。这些任务的共同之处是输入都是图片,而输出就和具体的任务相关了。
分类任务(Clarification)很好理解,就是对输入图片进行分类(具体可选类别需要事先确定)。分类任务是其他CV任务的基础。例如下图输入一张猫的图片,网络输出这张图片是猫的概率。
检测任务(Detection)是检测出图片中的物体位置,一般需要进行画框。比如下图中把人、羊,还有狗都框出来了,具体来说,网络需要输出框的坐标。
分割任务(Segmentation)是在检测任务的基础上把框精细化,具体到每个像素的分类。在上图的检测任务中,矩形框还是比较粗糙的,并不知道每个像素具体属于哪个物体。下图中语义分割任务输出的绿色像素是背景,蓝色像素属于羊,红色像素是狗,还有一个颜色的像素属于人。当然,可以再精细一些,比如不同的羊的像素点用不同的颜色标记出来,那就是实例分割。
超分任务(Super Resolution, SR)是超分辨率的简称,简单地说就是增加图片的分辨率。例如下图中左边的图片输入到神经网络中,输出右边图片的分辨率提高,图片更清晰。
关键点识别(Key Point)任务是找出图片中的关键点,最常见的就是人体关键点检测,例如下图中的线就是由几个关键点连成的,可以用来判断人的姿态。
图像生成任务是指根据输入(可以是图片或者其他数据),生成目标图像。例如下图中的风格迁移,生成了一个新的图片,具有一张图片的轮廓和另一张图片的风格。图像生成任务也可以合成人脸、图像修复等等。
度量学习任务是要判断输入之间的距离到底多少,例如两个图片之间的距离,这时候欧氏距离肯定是不合适的,需要神经网络去学习如何度量。具体的应用如人脸识别,判断摄像头前的人是否和身份证一致。
这些就是CV领域的主要任务,后续再详细介绍每一种任务使用的算法和模型,敬请期待~