深度学习在图像方面的任务大多沿袭自传统的计算机视觉领域,且与其他方向的称呼可能有所差异。 题主本身的研究方向是遥感,因此在刚刚踏足深度学习领域时,被称呼迷惑走了不少弯路。 这个系列的本来目的就是要帮助小白走出初期的迷惑期,省出乱翻资料的时间,因此本文放在了介绍完LeNet所代表的典型卷积神经网络结构之后,使用代码进行实现之前。请在阅读本文之前,先行阅读:
卷积神经网络初步(零):从原始汤到细胞 卷积神经网络初步(一):一个名为卷积神经网络的细胞
请不要先阅读 卷积神经网络初步(二):细胞和组织,以免混乱。
主要可以分为四个大类: 分类(classification) 定位(Location) 检测(Detection) 分割(Segmentation)
一、分类
与数字图像处理中惯常说的分类不同,深度学习中的分类指的是判别输入图像中是否包含或包含什么要素。我们随便拽过一张图。 这是RSOD卫图数据集中的一张。该数据集有且仅有四种类别,分别是飞机、油罐、立交桥和操场。我们需要将四种类别分别赋值(比如1,2,3,4),经过训练,当如上所示的影像输入训练好的模型时,分类模型的输出是该图片分别归属于四种类别的概率或者直接输出图片的类别。 大致 1.jpg —— models—— 2——OilTank
二、定位
定位模型给出的是类别在输入图像中的位置。在实际应用中,给出的通常是能包含住整个要素的矩形框。我们仍以上图为例。将上图输入训练好的定位模型之中,取决于训练时的输入数据,模型会给出整个油罐区域的矩形框,或者是逐个油罐划分的矩形框。
但是需要注意的是,定位算法的输出并不包括类别。如果输入图像中包含多种类别的要素,模型输出的矩形框对于所有类别,格式都是统一的。
大致 1.jpg —— model—— rectangle——XML或者TXT或者JSON
三、检测
检测(又称目标检测)模型可以看作在定位中加入了分类功能的模型,与分类不同的是,检测的输入是定位模型输出的矩形框内的图像。也即先定位后分类。
大致 1.jpg —— model—— rectangle——XML或者 TXT或者JSON——model——XML或者TXT或者JSON(With category) 或者 1.jpg —— model—— XML或者TXT或者JSON(With category) model中同时包含两种功能。
四、分割
不同于分类对整张图像给出类别,检测对矩形框内图像给出类别,分割任务针对的是图像内的每一个像元。对每一个像元,分割模型都要输出一个类别。 大致 1.jpg —— model—— Polygon或1_Label.jpg
分割任务大致可以分为实例分割(Instance-level segmentation)和场景分割(scene-level segmentation)两种。两者在模型构建上差别不大。主要差别是舍弃还是保留未被归类的像素。
|