首页 > 其他分享 >AI_综述----图像分割综述

AI_综述----图像分割综述

时间:2023-08-14 20:33:38浏览次数:42  
标签:github 综述 AI arxiv ---- https org pdf com


综述调研ppt:

http://syzhang.me/post/surveysegmentation/

CNN图像语义分割基本上是这个套路:

  1. 下采样+上采样:Convlution + Deconvlution/Resize
  2. 多尺度特征融合:特征逐点相加/特征channel维度拼接
  3. 获得像素级别的segement map:对每一个像素点进行判断类别

即使是更复杂的DeepLab v3+依然也是这个基本套路。

AI_综述----图像分割综述_Mask

图13 DeepLab v3+

Image Segmentation(图像分割)网络结构比较

网络

 

父辈

生辰

 

增加的结构

丢弃的结构

优势

劣势

 

 

VGG16

 

FCN的灵感来源

 

 

 

 

 

 

 

 

FCN

 

VGG16

2014

 

一个Deconv层(从无到有)

所有fc层

简单

粗糙

 

 

DeconvNet

 

FCN

2015

 

Unpooling层(从无到有)、多个Deconv层(层数增加)、fc层(从无到有)

 

 

 

 

 

SegNet

 

DeconvNet

2016

 

每个max_pooling的max索引

所有fc层

 

 

 

 

DeepLab

 

FCN

 

 

 

 

 

 

 

 

PSPNet

 

 

 

 

 

 

 

 

 

 

Mask-RCNN

 

 

2017

 

 

 

真正做到像素级

 

 

 

Image Segmentation(图像分割)族谱

FCN

  • DeepLab
  • DeconvNet
  • SegNet
  • PSPNet
  • Mask-RCNN

按分割目的划分

普通分割

将不同分属不同物体的像素区域分开。 
如前景与后景分割开,狗的区域与猫的区域与背景分割开。

语义分割

在普通分割的基础上,分类出每一块区域的语义(即这块区域是什么物体)。 
如把画面中的所有物体都指出它们各自的类别。

实例分割

在语义分割的基础上,给每个物体编号。 
如这个是该画面中的狗A,那个是画面中的狗。

论文推荐:

 

图像的语义分割(Semantic Segmentation)是计算机视觉中非常重要的任务。它的目标是为图像中的每个像素分类。如果能够快速准去地做图像分割,很多问题将会迎刃而解。因此,它的应用领域就包括但不限于:自动驾驶、图像美化、三维重建等等。

AI_综述----图像分割综述_卷积_02

语义分割是一个非常困难的问题,尤其是在深度学习之前。深度学习使得图像分割的准确率提高了很多,下面我们就总结一下近年来最具有代表性的方法和论文。

Fully Convolutional Networks (FCN)

我们介绍的第一篇论文是Fully Convolutional Networks for Semantic Segmentation,简称FCN。这篇论文是第一篇成功使用深度学习做图像语义分割的论文。论文的主要贡献有两点:

  1. 提出了全卷积网络。将全连接网络替换成了卷积网络,使得网络可以接受任意大小的图片,并输出和原图一样大小的分割图。只有这样,才能为每个像素做分类。
  2. 使用了反卷积层(Deconvolution)。分类神经网络的特征图一般只有原图的几分之一大小。想要映射回原图大小必须对特征图进行上采样,这就是反卷积层的作用。虽然名字叫反卷积层,但其实它并不是卷积的逆操作,更合适的名字叫做转置卷积(Transposed Convolution),作用是从小的特征图卷出大的特征图。

这是神经网络做语义分割的开山之作,需彻底理解。

DeepLab

DeepLab有v1 v2 v3,第一篇名字叫做DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs。这一系列论文引入了以下几点比较重要的方法:

第一个是带洞卷积,英文名叫做Dilated Convolution,或者Atrous Convolution。带洞卷积实际上就是普通的卷积核中间插入了几个洞,如下图。

AI_综述----图像分割综述_池化_03

 

它的运算量跟普通卷积保持一样,好处是它的“视野更大了”,比如普通3x3卷积的结果的视野是3x3,插入一个洞之后的视野是5x5。视野变大的作用是,在特征图缩小到同样倍数的情况下可以掌握更多图像的全局信息,这在语义分割中很重要。

 

AI_综述----图像分割综述_池化_04

Pyramid Scene Parsing Network

Pyramid Scene Parsing Network的核心贡献是Global Pyramid Pooling,翻译成中文叫做全局金字塔池化。它将特征图缩放到几个不同的尺寸,使得特征具有更好地全局和多尺度信息,这一点在准确率提升上上非常有用。

AI_综述----图像分割综述_Mask_05

其实不光是语义分割,金字塔多尺度特征对于各类视觉问题都是挺有用的。

Mask R-CNN

Mask R-CNN是大神何凯明的力作,将Object Detection与Semantic Segmentation合在了一起做。它的贡献主要是以下几点。

第一,神经网络有了多个分支输出。Mask R-CNN使用类似Faster R-CNN的框架,Faster R-CNN的输出是物体的bounding box和类别,而Mask R-CNN则多了一个分支,用来预测物体的语义分割图。也就是说神经网络同时学习两项任务,可以互相促进。

第二,在语义分割中使用Binary Mask。原来的语义分割预测类别需要使用0 1 2 3 4等数字代表各个类别。在Mask R-CNN中,检测分支会预测类别。这时候分割只需要用0 1预测这个物体的形状面具就行了。

第三,Mask R-CNN提出了RoiAlign用来替换Faster R-CNN中的RoiPooling。RoiPooling的思想是将输入图像中任意一块区域对应到神经网络特征图中的对应区域。RoiPooling使用了化整的近似来寻找对应区域,导致对应关系与实际情况有偏移。这个偏移在分类任务中可以容忍,但对于精细度更高的分割则影响较大。

为了解决这个问题,RoiAlign不再使用化整操作,而是使用线性插值来寻找更精准的对应区域。效果就是可以得到更好地对应。实验也证明了效果不错。下面展示了与之前方法的对比,下面的图是Mask R-CNN,可以看出精细了很多。

AI_综述----图像分割综述_池化_06

 

 

 

U-Net

U-Net原作者官网

U-Net是原作者参加ISBI Challenge提出的一种分割网络,能够适应很小的训练集(大约30张图)。U-Net与FCN都是很小的分割网络,既没有使用空洞卷积,也没有后接CRF,结构简单。

AI_综述----图像分割综述_卷积_07

图9 U-Net网络结构图

整个U-Net网络结构如图9,类似于一个大大的U字母:首先进行Conv+Pooling下采样;然后Deconv反卷积进行上采样,crop之前的低层feature map,进行融合;然后再次上采样。重复这个过程,直到获得输出388x388x2的feature map,最后经过softmax获得output segment map。总体来说与FCN思路非常类似。

为何要提起U-Net?是因为U-Net采用了与FCN完全不同的特征融合方式:拼接!

 

AI_综述----图像分割综述_卷积_08

图10 U-Net concat特征融合方式

与FCN逐点相加不同,U-Net采用将特征在channel维度拼接在一起,形成更“厚”的特征。所以:

语义分割网络在特征融合时也有2种办法:

  1. FCN式的逐点相加,对应caffe的EltwiseLayer层,对应tensorflow的tf.add()
  2. U-Net式的channel维度拼接融合,对应caffe的ConcatLayer层,对应tensorflow的tf.concat()

 

综述介绍

图像语义分割,简单而言就是给定一张图片,对图片上的每一个像素点分类

从图像上来看,就是我们需要将实际的场景图分割成下面的分割图:

 

AI_综述----图像分割综述_Mask_09

不同颜色代表不同类别。经过阅读“大量”论文和查看PASCAL VOC Challenge performance evaluation server,发现图像语义分割从深度学习引入这个任务(FCN)到现在而言,一个通用的框架已经大概确定了。即:

 

AI_综述----图像分割综述_池化_10

  • FCN-全卷积网络
  • CRF-条件随机场
  • MRF-马尔科夫随机场

前端使用FCN进行特征粗提取,后端使用CRF/MRF优化前端的输出,最后得到分割图。

 

前端

为什么需要FCN?

我们分类使用的网络通常会在最后连接几层全连接层,它会将原来二维的矩阵(图片)压扁成一维的,从而丢失了空间信息,最后训练输出一个标量,这就是我们的分类标签。

而图像语义分割的输出需要是个分割图,且不论尺寸大小,但是至少是二维的。所以,我们需要丢弃全连接层,换上全卷积层,而这就是全卷积网络了。具体定义请参看论文:Fully Convolutional Networks for Semantic Segmentation

前端结构

FCN

此处的FCN特指Fully Convolutional Networks for Semantic Segmentation论文中提出的结构,而非广义的全卷积网络。

作者的FCN主要使用了三种技术:

  • 卷积化(Convolutional)
  • 上采样(Upsample)
  • 跳跃结构(Skip Layer)

卷积化

卷积化即是将普通的分类网络,比如VGG16,ResNet50/101等网络丢弃全连接层,换上对应的卷积层即可。

AI_综述----图像分割综述_卷积_11

上采样

此处的上采样即是反卷积(Deconvolution)。当然关于这个名字不同框架不同,Caffe和Kera里叫Deconvolution,而tensorflow里叫conv_transpose。CS231n这门课中说,叫conv_transpose更为合适。

众所诸知,普通的池化(为什么这儿是普通的池化请看后文)会缩小图片的尺寸,比如VGG16 五次池化后图片被缩小了32倍。为了得到和原图等大的分割图,我们需要上采样/反卷积。

反卷积和卷积类似,都是相乘相加的运算。只不过后者是多对一,前者是一对多。而反卷积的前向和后向传播,只用颠倒卷积的前后向传播即可。所以无论优化还是后向传播算法都是没有问题。图解如下:

AI_综述----图像分割综述_池化_12

但是,虽然文中说是可学习的反卷积,但是作者实际代码并没有让它学习,可能正是因为这个一对多的逻辑关系。代码如下:

layer {
  name: "upscore"
  type: "Deconvolution"
  bottom: "score_fr"
  top: "upscore"
  param {
    lr_mult: 0
  }
  convolution_param {
    num_output: 21
    bias_term: false
    kernel_size: 64
    stride: 32
  }
}

可以看到lr_mult被设置为了0.

跳跃结构

(这个奇怪的名字是我翻译的,好像一般叫忽略连接结构)这个结构的作用就在于优化结果,因为如果将全卷积之后的结果直接上采样得到的结果是很粗糙的,所以作者将不同池化层的结果进行上采样之后来优化输出。具体结构如下:

AI_综述----图像分割综述_池化_13

而不同上采样结构得到的结果对比如下:

AI_综述----图像分割综述_池化_14

当然,你也可以将pool1, pool2的输出再上采样输出。不过,作者说了这样得到的结果提升并不大。

这是第一种结构,也是深度学习应用于图像语义分割的开山之作,所以得了CVPR2015的最佳论文。但是,还是有一些处理比较粗糙的地方,具体和后面对比就知道了。

SegNet/DeconvNet

这样的结构总结在这儿,只是我觉得结构上比较优雅,它得到的结果不一定比上一种好。

SegNet

AI_综述----图像分割综述_卷积_15

DeconvNet

AI_综述----图像分割综述_卷积_16

这样的对称结构有种自编码器的感觉在里面,先编码再解码。这样的结构主要使用了反卷积和上池化。即:

AI_综述----图像分割综述_卷积_17

 

AI_综述----图像分割综述_池化_18

反卷积如上。而上池化的实现主要在于池化时记住输出值的位置,在上池化时再将这个值填回原来的位置,其他位置填0即OK。

DeepLab

接下来介绍一个很成熟优雅的结构,以至于现在的很多改进是基于这个网络结构的进行的。

首先这里我们将指出一个第一个结构FCN的粗糙之处:为了保证之后输出的尺寸不至于太小,FCN的作者在第一层直接对原图加了100的padding,可想而知,这会引入噪声。

而怎样才能保证输出的尺寸不会太小而又不会产生加100 padding这样的做法呢?可能有人会说减少池化层不就行了,这样理论上是可以的,但是这样直接就改变了原先可用的结构了,而且最重要的一点是就不能用以前的结构参数进行fine-tune了。所以,Deeplab这里使用了一个非常优雅的做法:将pooling的stride改为1,再加上 1 padding。这样池化后的图片尺寸并未减小,并且依然保留了池化整合特征的特性。

但是,事情还没完。因为池化层变了,后面的卷积的感受野也对应的改变了,这样也不能进行fine-tune了。所以,Deeplab提出了一种新的卷积,带孔的卷积:Atrous Convolution.即:

AI_综述----图像分割综述_Mask_19

而具体的感受野变化如下:

 

AI_综述----图像分割综述_池化_20

a为普通的池化的结果,b为“优雅”池化的结果。我们设想在a上进行卷积核尺寸为3的普通卷积,则对应的感受野大小为7.而在b上进行同样的操作,对应的感受野变为了5.感受野减小了。但是如果使用hole为1的Atrous Convolution则感受野依然为7.

 

所以,Atrous Convolution能够保证这样的池化后的感受野不变,从而可以fine tune,同时也能保证输出的结果更加精细。即:

AI_综述----图像分割综述_Mask_21

总结

这里介绍了三种结构:FCN, SegNet/DeconvNet,DeepLab。当然还有一些其他的结构方法,比如有用RNN来做的,还有更有实际意义的weakly-supervised方法等等。

 

后端

终于到后端了,后端这里会讲几个场,涉及到一些数学的东西。我的理解也不是特别深刻,所以欢迎吐槽。

AI_综述----图像分割综述_卷积_22

AI_综述----图像分割综述_卷积_23

二元势函数就是描述像素点与像素点之间的关系,鼓励相似像素分配相同的标签,而相差较大的像素分配不同标签,而这个“距离”的定义与颜色值和实际相对距离有关。所以这样CRF能够使图片尽量在边界处分割。

而全连接条件随机场的不同就在于,二元势函数描述的是每一个像素与其他所有像素的关系,所以叫“全连接”。

关于这一堆公式大家随意理解一下吧... ...而直接计算这些公式是比较麻烦的(我想也麻烦),所以一般会使用平均场近似方法进行计算。而平均场近似又是一堆公式,这里我就不给出了(我想大家也不太愿意看),愿意了解的同学直接看论文吧。

 

CRFasRNN

最开始使用DenseCRF是直接加在FCN的输出后面,可想这样是比较粗糙的。而且在深度学习中,我们都追求end-to-end的系统,所以CRFasRNN这篇文章将DenseCRF真正结合进了FCN中。

这篇文章也使用了平均场近似的方法,因为分解的每一步都是一些相乘相加的计算,和普通的加减(具体公式还是看论文吧),所以可以方便的把每一步描述成一层类似卷积的计算。这样即可结合进神经网络中,并且前后向传播也不存在问题。

当然,这里作者还将它进行了迭代,不同次数的迭代得到的结果优化程度也不同(一般取10以内的迭代次数),所以文章才说是as RNN。优化结果如下:

AI_综述----图像分割综述_Mask_24

AI_综述----图像分割综述_池化_25

AI_综述----图像分割综述_池化_26

这个结构的优点在于:

  • 将平均场构造成了CNN
  • 联合训练并且可以one-pass inference,而不用迭代

 

高斯条件随机场(G-CRF)

这个结构使用CNN分别来学习一元势函数和二元势函数。这样的结构是我们更喜欢的:

AI_综述----图像分割综述_卷积_27

AI_综述----图像分割综述_Mask_28

 

感悟

  • FCN更像一种技巧。随着基本网络(如VGG, ResNet)性能的提升而不断进步。
  • 深度学习+概率图模型(PGM)是一种趋势。其实DL说白了就是进行特征提取,而PGM能够从数学理论很好的解释事物本质间的联系。
  • 概率图模型的网络化。因为PGM通常不太方便加入DL的模型中,将PGM网络化后能够是PGM参数自学习,同时构成end-to-end的系统。

 

完结撒花

引用

[1]Fully Convolutional Networks for Semantic Segmentation

[2]Learning Deconvolution Network for Semantic Segmentation

[3]Efficient Inference in Fully Connected CRFs with Gaussian Edge Potentials

[4]Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs

[5]Conditional Random Fields as Recurrent Neural Networks

[6]DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs

[7]Semantic Image Segmentation via Deep Parsing Network

[8]Fast, Exact and Multi-Scale Inference for Semantic Image Segmentation with Deep Gaussian CRFs

[9]SegNet

 

 

图像分割 (Image Segmentation) 重大资源:

入门学习

  1. A 2017 Guide to Semantic Segmentation with Deep Learning 概述——用深度学习做语义分割
  1. 从全卷积网络到大型卷积核:深度学习的语义分割全指南
  1. Fully Convolutional Networks
  1. 语义分割中的深度学习方法全解:从FCN、SegNet到各代DeepLab
  1. 图像语义分割之FCN和CRF
  1. 从特斯拉到计算机视觉之「图像语义分割」
  1. 计算机视觉之语义分割
  1. Segmentation Results: VOC2012 PASCAL语义分割比赛排名

进阶论文

  1. U-Net [https://arxiv.org/pdf/1505.04597.pdf]
  2. SegNet [https://arxiv.org/pdf/1511.00561.pdf]
  3. DeepLab [https://arxiv.org/pdf/1606.00915.pdf]
  4. FCN [https://arxiv.org/pdf/1605.06211.pdf]
  5. ENet [https://arxiv.org/pdf/1606.02147.pdf]
  6. LinkNet [https://arxiv.org/pdf/1707.03718.pdf]
  7. DenseNet [https://arxiv.org/pdf/1608.06993.pdf]
  8. Tiramisu [https://arxiv.org/pdf/1611.09326.pdf]
  9. DilatedNet [https://arxiv.org/pdf/1511.07122.pdf]
  10. PixelNet [https://arxiv.org/pdf/1609.06694.pdf]
  11. ICNet [https://arxiv.org/pdf/1704.08545.pdf]
  12. ERFNet [http://www.robesafe.uah.es/personal/eduardo.romera/pdfs/Romera17iv.pdf]
  13. RefineNet [https://arxiv.org/pdf/1611.06612.pdf]
  14. PSPNet [https://arxiv.org/pdf/1612.01105.pdf]
  15. CRFasRNN [http://www.robots.ox.ac.uk/%7Eszheng/papers/CRFasRNN.pdf]
  16. Dilated convolution [https://arxiv.org/pdf/1511.07122.pdf]
  17. DeconvNet [https://arxiv.org/pdf/1505.04366.pdf]
  18. FRRN [https://arxiv.org/pdf/1611.08323.pdf]
  19. GCN [https://arxiv.org/pdf/1703.02719.pdf]
  20. DUC, HDC [https://arxiv.org/pdf/1702.08502.pdf]
  21. Segaware [https://arxiv.org/pdf/1708.04607.pdf]
  22. Semantic Segmentation using Adversarial Networks [https://arxiv.org/pdf/1611.08408.pdf]

综述

  1. A Review on Deep Learning Techniques Applied to Semantic Segmentation Alberto Garcia-Garcia, Sergio Orts-Escolano, Sergiu Oprea, Victor Villena-Martinez, Jose Garcia-Rodriguez 2017
  1. Computer Vision for Autonomous Vehicles: Problems, Datasets and State-of-the-Art
  1. 基于内容的图像分割方法综述 姜 枫 顾 庆 郝慧珍 李 娜 郭延文 陈道蓄 2017

Tutorial

  1. Semantic Image Segmentation with Deep Learning
  1. A 2017 Guide to Semantic Segmentation with Deep Learning
  1. Image Segmentation with Tensorflow using CNNs and Conditional Random Fields

视频教程

  1. CS231n: Convolutional Neural Networks for Visual Recognition Lecture 11 Detection and Segmentation 
  1. Machine Learning for Semantic Segmentation - Basics of Modern Image Analysis

代码

Semantic segmentation

  1. U-Net (https://arxiv.org/pdf/1505.04597.pdf)
  1. SegNet (https://arxiv.org/pdf/1511.00561.pdf)
  1. DeepLab (https://arxiv.org/pdf/1606.00915.pdf)
  1. FCN (https://arxiv.org/pdf/1605.06211.pdf)
  1. ENet (https://arxiv.org/pdf/1606.02147.pdf)
  1. LinkNet (https://arxiv.org/pdf/1707.03718.pdf)
  1. DenseNet (https://arxiv.org/pdf/1608.06993.pdf)
  1. Tiramisu (https://arxiv.org/pdf/1611.09326.pdf)
  1. DilatedNet (https://arxiv.org/pdf/1511.07122.pdf)
  1. PixelNet (https://arxiv.org/pdf/1609.06694.pdf)
  1. ICNet (https://arxiv.org/pdf/1704.08545.pdf)
  1. ERFNet (http://www.robesafe.uah.es/personal/eduardo.romera/pdfs/Romera17iv.pdf)
  1. RefineNet (https://arxiv.org/pdf/1611.06612.pdf)
  1. PSPNet (https://arxiv.org/pdf/1612.01105.pdf)
  1. CRFasRNN (http://www.robots.ox.ac.uk/%7Eszheng/papers/CRFasRNN.pdf)
  1. Dilated convolution (https://arxiv.org/pdf/1511.07122.pdf)
  1. DeconvNet (https://arxiv.org/pdf/1505.04366.pdf)
  1. FRRN (https://arxiv.org/pdf/1611.08323.pdf)
  1. GCN (https://arxiv.org/pdf/1703.02719.pdf)
  1. DUC, HDC (https://arxiv.org/pdf/1702.08502.pdf)
  1. Segaware (https://arxiv.org/pdf/1708.04607.pdf)
  1. Semantic Segmentation using Adversarial Networks (https://arxiv.org/pdf/1611.08408.pdf)

Instance aware segmentation

  1. FCIS [https://arxiv.org/pdf/1611.07709.pdf]
  1. MNC [https://arxiv.org/pdf/1512.04412.pdf]
  1. DeepMask [https://arxiv.org/pdf/1506.06204.pdf]
  1. SharpMask [https://arxiv.org/pdf/1603.08695.pdf]
  1. Mask-RCNN [https://arxiv.org/pdf/1703.06870.pdf]
  1. https://github.com/jasjeetIM/Mask-RCNN [Caffe]
  1. RIS [https://arxiv.org/pdf/1511.08250.pdf]
  1. FastMask [https://arxiv.org/pdf/1612.08843.pdf]

Satellite images segmentation

Video segmentation

Autonomous driving

Annotation Tools:

Datasets

  1. Stanford Background Dataset[http://dags.stanford.edu/projects/scenedataset.html]
  1. Sift Flow Dataset[http://people.csail.mit.edu/celiu/SIFTflow/]
  2. Barcelona Dataset[http://www.cs.unc.edu/~jtighe/Papers/ECCV10/]
  3. Microsoft COCO dataset[http://mscoco.org/]
  4. MSRC Dataset[http://research.microsoft.com/en-us/projects/objectclassrecognition/]
  5. LITS Liver Tumor Segmentation Dataset[https://competitions.codalab.org/competitions/15595]
  6. KITTI[http://www.cvlibs.net/datasets/kitti/eval_road.php]
  7. Stanford background dataset[http://dags.stanford.edu/projects/scenedataset.html]
  8. Data from Games dataset[https://download.visinf.tu-darmstadt.de/data/from_games/]
  9. Human parsing dataset[https://github.com/lemondan/HumanParsing-Dataset]
  10. Silenko person database[https://github.com/Maxfashko/CamVid]
  11. Mapillary Vistas Dataset[https://www.mapillary.com/dataset/vistas]
  12. Microsoft AirSim[https://github.com/Microsoft/AirSim]
  13. MIT Scene Parsing Benchmark[http://sceneparsing.csail.mit.edu/]
  14. COCO 2017 Stuff Segmentation Challenge[http://cocodataset.org/#stuff-challenge2017]
  15. ADE20K Dataset[http://groups.csail.mit.edu/vision/datasets/ADE20K/]
  16. INRIA Annotations for Graz-02[http://lear.inrialpes.fr/people/marszalek/data/ig02/]

比赛

  1. MSRC-21 [http://rodrigob.github.io/are_we_there_yet/build/semantic_labeling_datasets_results.html]
  2. Cityscapes [https://www.cityscapes-dataset.com/benchmarks/]
  3. VOC2012 [http://host.robots.ox.ac.uk:8080/leaderboard/displaylb.php?challengeid=11&compid=6]

领域专家

  1. Jonathan Long
  1. Liang-Chieh Chen
  1. Hyeonwoo Noh
  1. Bharath Hariharan
  1. Fisher Yu
  1. Vijay Badrinarayanan
  1. Guosheng Lin

 

标签:github,综述,AI,arxiv,----,https,org,pdf,com
From: https://blog.51cto.com/u_12667998/7081022

相关文章

  • unity中Input.GetAxis()用法
    usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassTransformPointTest:MonoBehaviour{publicTransformCube;voidFixedUpdate(){//vector3.clampMagnitude(vector,maxlength)//返回原向......
  • 博弈论
    博弈论%%happyguy笔记nim游戏堆异或和取最大的一堆后异或和为零,变为先手必败。枚举所有可能情况作为有向无环图,直到全为0,必败。全败,必败。有胜,必胜。此例子,123为一个环,平局,尽头为先手必败(已经败了),可以向上递推。arc143c两个人都在一堆取,此堆至少(x+y)个。必胜的一方......
  • 机器学习数据集:UCI Maching Learning Reposirity 473
    ......
  • Java中常用的设计模式
    Java中常用的设计模式有以下几种:单例模式(SingletonPattern):确保一个类只有一个实例,并提供全局访问点。工厂模式(FactoryPattern):通过工厂类创建对象,隐藏对象的实例化过程。抽象工厂模式(AbstractFactoryPattern):提供一个创建一系列相关或相互依赖对象的接口,而无需指定具体类。建造者......
  • Springboot中实现适配器模式
    当在SpringBoot中实现适配器模式时,可以按照以下步骤进行详细的实现:1.首先,定义一个目标接口(TargetInterface):publicinterfaceTarget{voidrequest();}目标接口定义了适配器需要实现的方法。2.创建一个适配器类(AdapterClass),实现目标接口,并适配一个已有的类或接......
  • Step-by-step to LSTM: 解析LSTM神经网络设计原理
    Ps:喂喂喂,你萌不要光收藏不点赞呀_(:з」∠)_emmmm...搞清楚LSTM中的每个公式的每个细节为什么是这样子设计吗?想知道simpleRNN是如何一步步的走向了LSTM吗?觉得LSTM的工作机制看不透?恭喜你打开了正确的文章!零、前置知识1:在上一篇文章《前馈到反馈:解析RNN》中,小夕从最简单的无......
  • 关于VSAN集群主机报"检测到物理网卡错误率较高"告警处理过程
       VSAN集群主机报"检测到物理网卡错误率较高"告警:    1、使用命令检测物理网卡的丢包情况:esxclinetworknicstatsget-nvmnicX。也可以通过主机->监控->VSAN->性能->物理适配器->选择物理适配器观察丢包率和吞吐量情况。     例如:NICstatisticsforvmnic0 ......
  • NLP、炼丹技巧和基础理论文章索引
    玩家你好恭喜你捡到了一个来自上古时期的*七*星*炼*丹*炉*,只见炉壁上镶嵌着自然语言处理、推荐系统、信息检索、深度炼丹、机器学习、数学与基础算法等失传已久的江湖秘术。熔炉中虽然已有一层厚厚尘土,却依然掩盖不住尘埃下那一颗颗躁动不安的仙丹。ps:喂喂喂,你萌不要只收藏不......
  • 七月学习之Firewalld区域配置
    4、Firewalld区域配置4.1、区域基本概念4.2、查询区域及规则firewalld启动后,我们需要知道使用的是什么区域,区域的规则明细又有那些#1、通过--get-default-zone获取当前默认使用的区域firewall-cmd--ger-default-zone#2、通过--list-all查看当前默认区域配置了哪些规则firew......
  • 多态(一)
    多态多态就是多种形态,具体点就是当不同的对象去完成时会产生不同的状态。把virtual加在一个虚函数的前面,我们叫做虚函数。虚继承和虚函数没有关系。函数名相同,参数列表相同他们叫做重写或者覆盖,这里没有重载的关系,重载必须在同一个作用域。#include<iostream>usingnamespac......