深度学习小样本分类选用什么网络?_ArcGIS API for Python:深度学习模块概览

 前段时间体验了ArcGIS Pro中的深度学习,最近体验一下ArcGIS API for Python中的深度学习模块。反正我不管,敲起代码来就可以装作很厉害的样子966b1636bc1fb7c5997ba91ee2dc7c41.png

之前看到网友留言说,有的文章对于新手来说太不友好了,完全不知道整篇文章在说什么。因为刚开始写文章所以不是很熟练,所以慢慢改进。争取大家看了文章后都能学到东西。 本篇文章是一篇 概览性的文章,首先会从两个部分给大家介绍计算机视觉与深度学习:
  1. 计算机视觉

  2. ArcGIS API for Python深度学习模块

01

计算机视觉(Computer Vision)

首先得唠叨唠叨计算机视觉是啥,可能大家对这个词汇比较陌生。简单的说,计算机视觉其实就是让机器像人一样识别与理解图像/视频中的内容。举个最简单的例子:图片中的人物是老王还是老张?这就是计算机视觉领域要做的事情之一。(PS:让我想起12306中的图片验证码)

深度学习小样本分类选用什么网络?_ArcGIS API for Python:深度学习模块概览_第1张图片

在本文中主要关注的计算机视觉领域四大基本任务,分别是 图像分类、目标检测、语义分割以及 实例分割,分别对应着下图中的a,b,c,d。

深度学习小样本分类选用什么网络?_ArcGIS API for Python:深度学习模块概览_第2张图片

为了方便理解,列一个小表格通俗的说一下这四类任务在做一件什么事情:

序号

分类

详情

a

图片分类

判断图片中有杯子等物体

b

目标检测

找到图片中杯子的位置,并用矩形框标注出来

c

语义分割

将图片中每个像素归类

d

实例分割

将图片中每个像素归类,并且归类到某一类的某一个物体上

除了这四大基本任务之外,还有别的任务但是在GIS领域中不常见,在这里就不详细说了,有兴趣的话可以问一下度娘。当然完成这些任务是肯定会有难点的。比如说一个杯子,人知道杯子都有几个特征:有一个把手、一个圆柱形状,那计算机肯定是不晓得的嘛。后来有人提出了卷积神经网络CNN(深度学习中的一个网络模型),很好地解决了提取图像中的特征。PS:其实计算机视觉就是深度学习中的一个领域。所以大家可以经常看到计算机视觉领域深度学习落地的应用:人脸识别等等。可以说深度学习在计算机视觉领域的发展很成熟了。本部分参考链接:https://zhuanlan.zhihu.com/p/31727402

02

ArcGIS API for Python深度学习模块

在上一部分主要给大家讲了计算机视觉主要任务,其实是为了这部分做准备的。考虑到很多人可能不太理解深度学习这个概念,所以先给大家科普一下深度学习:深度学习其实是一类模式分析方法的统称balabalabala。。。好吧,其实一时半会也是说不清楚的,慢慢实践起来你就懂了。我们需要知道的就是:想要通过深度学习可以让计算机从视频、图像中找到我们想要的东西,需要分为三步。第一步准备好我们想要的东西样本(图片)、比如说汽车;第二步,把第一步准备好的样本(汽车图片)丢进深度学习网络中;第三步,把我们想要识别的视频或者是图像给第二步中的深度学习网络,他给我们结果。这三步是深度学习常见的三步骤:准备样本->训练模型->推理。文字理解起来可能是比较晦涩的,所以建议大家有条件的话实践一下,可以参考之前的文章:ArcGIS Pro深度学习初体验(下)。那么在GIS领域中,对应着四大基本任务的应用如下:

深度学习小样本分类选用什么网络?_ArcGIS API for Python:深度学习模块概览_第3张图片

围绕着这些任务,我们来看一下ArcGIS API for Python中深度学习模块。

深度学习小样本分类选用什么网络?_ArcGIS API for Python:深度学习模块概览_第4张图片

接口文档链接:

https://developers.arcgis.com/python/api-reference/arcgis.learn.htm

我们主要关注点在模型上,以场景与任务分类来概述这些模型。 要素分类(类似图像分类):主要应用场景:在已有建筑物矢量面的情况下,通过影像判断违建建筑物是否已拆除。 深度学习小样本分类选用什么网络?_ArcGIS API for Python:深度学习模块概览_第5张图片模型:
  • FeatureClassifier

目标检测: 主要应用场景:提取目标位置

模型:
  • SingleShotDetector

  • RetinaNet

  • FasterRCNN

  • YOLOv3

  • MaskRCNN(比较特殊)

语义分割: 主要是用于土地利用分类等,也可用于建筑物提取。 深度学习小样本分类选用什么网络?_ArcGIS API for Python:深度学习模块概览_第6张图片 模型:
  • UnetClassifer

  • PSPNetClassifier

  • Deeplab

实例分割: 可以应用于建筑物提取、房屋提取、沉船提取等。 深度学习小样本分类选用什么网络?_ArcGIS API for Python:深度学习模块概览_第7张图片 模型:
  • MaskRCNN

点云分类: 用于分类点云 深度学习小样本分类选用什么网络?_ArcGIS API for Python:深度学习模块概览_第8张图片 模型:
  • PointCNN

超分辨率:主要增强影像分辨率 深度学习小样本分类选用什么网络?_ArcGIS API for Python:深度学习模块概览_第9张图片模型:
  • SuperResolution

机器学习:适用于机器学习领域,通常解决表格类问题(DataFrame)模型:
  • FullyConnectedNetwork

  • MLModel

以上总结使用到的图片均来自于ArcGIS开发者网站上,大家有兴趣的可以去看看上面的案例。后续我会抽几篇示例实践一下,然后后分享给大家。参考网址:https://developers.arcgis.com/python/guide/
另外大家如果有想讨论的在此模块中讨论了:

深度学习小样本分类选用什么网络?_ArcGIS API for Python:深度学习模块概览_第10张图片

你可能感兴趣的:(深度学习小样本分类选用什么网络?_ArcGIS API for Python:深度学习模块概览)