A 2021 guide to Semantic Segmentation 译


A 2021 guide to Semantic Segmentation 译

原文网址:https://nanonets.com/blog/semantic-image-segmentation-2020/#use-cases-of-image-segmentation;

在这里插入图片描述

介绍

在以图片作为数据时,深度学习表现的十分成功,并且在多个用例上也处于表现优于人类的阶段。一直以来,人们对于计算机视觉比较关心的问题是:图像分类(image classification)、目标检测(object detection)和分割(segmentation),三者的难度随着顺序而递增。

在图像分类领域的较过时的任务当中,我们仅仅只对图像中所有对象获得的标签感兴趣。在目标检测领域中,我们进行了更深入一步的尝试并且通过在图像中对各个物体进行画框操作来辅助我们的理解。图像分割则更进一步,它着力于寻找出物体的精确边界(而非边框)。
在这里插入图片描述

在这篇文章中我们会介绍图像分割的相关概念,讨论其相关的现实用例,用于达成目的的不同的神经网络架构,结果衡量标准以及相关的数据集。

什么是图像分割(语义分割)

我们都清楚图像不过是由一个个像素组合而成。图像分割的过程就是将图像中各个像素进行明确的分类因此图像分割可视作为像素级的分类问题。这里有两类图像分类技术:
在这里插入图片描述

1.语义分割(Semantic segmentation)

语义分割即是将每个像素进行明确分类的一个过程。对于同一个对象的不同实例,它的分类类别没有区别。例如图上有两只猫,那么语义分割会赋予这两只猫所占的像素为同一类别。

2.实例分割(Instance segmentation)

实例分割与语义分割的不同点在于其会给图像中同一对象的不同个体赋予不同的标签。正如上图中所示,两只狗被标记成了不同的颜色即意味着不同的标签。但若是语义分割,则两只猫会被标记为同一种颜色。

这个时候就需要了解一下下述的算法了(

图像分割的用例

手写字体识别

Junjo 等人在他们2019年的研究论文中展示了如何使用图像分割来从手写文档中提取单词和每行字体来进行手写字体的识别。

在这里插入图片描述

paper source:https://arxiv.org/pdf/1906.05229.pdf

谷歌肖像模式

在许多的用例当中,将前景与背景进行分离是十分重要的。例如在谷歌肖像模式中,我们可以看到背景变得模糊的同时前景保持不变,营造了一种 cool 的效果。(不太清楚这里的 cool 应该如何译,故保留)
在这里插入图片描述

Source:- https://ai.googleblog.com/2018/03/mobile-real-time-video-segmentation.html

Youtube stories

谷歌最近发布了一个具有特色的 Youtube stories,提供给内容创作者在创造故事时可以切换不同背景功能。
在这里插入图片描述

Source:- https://ai.googleblog.com/2018/03/mobile-real-time-video-segmentation.html

虚拟化妆

有了图像分割的帮助,虚拟化妆画口红也成为了现实!
在这里插入图片描述

Source:- https://www.theverge.com/2017/3/16/14946086/sephora-virtual-assistant-ios-app-update-ar-makeup

虚拟试穿

虚拟试穿衣服是一个非常有趣的功能,在使用特质软件的商店中可以通过创建3D模型来实现虚拟试穿。但随着深度学习和图像分割的发展,可以由2D的图像来实现相同的效果。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L4wkgf0Q-1669311437053)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/2b1b2cc0-a3cd-4e44-a4cc-f1f7a734b1d4/Untitled.png)]

Source:- https://arxiv.org/pdf/1807.07688.pdf

视觉图像搜索

在电子商务的搜索算法中,使用了一种将衣服进行单独分离以便于搜索的想法。举个例子,Pinterest/Amazon 允许你上传任意的图片然后通过基于图像分割的搜索,你就可以获得相关的相似的产品了。

在这里插入图片描述

Source:- https://github.com/paucarre/tiefvision

自动驾驶汽车

自动驾驶汽车需要对其周遭的环境有一个精细至像素级别的理解。因此,图像分割被应用在自动驾车汽车领域来达到区分道路和其他的重要信息的作用。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2uDPXCcf-1669311437055)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/a900c3ca-ee8d-4077-a484-69d1fc329ce0/Untitled.png)]

Source:- https://medium.com/intro-to-artificial-intelligence/semantic-segmentation-udaitys-self-driving-car-engineer-nanodegree-c01eb6eaf9d

Methods and Techniques

在深度学习之前,传统的机器学习算法比如SVM、随机森林、K-means 聚类会被应用来解决图像分割的问题。但与大多数图像领域相关的问题所表现出来的一样,深度学习的方法全面领先于之前存在的算法,并且已经成为了在解决语义分割问题时的一个“标准答案”。让我们来回顾一下曾经/现在所使用过的算法和模型。

全卷积网络(Fully Convolutional Network)

CNN(Convolutional neural network)的整体框架包括几个卷积层和池化层,在结尾则是几个全连接层。全卷积网络的论文在2014年发布,其说明结尾处的几个全连接层可以被看作是在覆盖整个数据范围的1X1卷积操作。

在这里插入图片描述

Source:- https://arxiv.org/abs/1411.4038

因此,原模型里的密集层可以被卷积层所替代,并且能够达到相同的效果。但这样做同时还有一个好处,即输入图像的尺寸不再需要被修正至同一大小了。当使用原模型的密集层时,输入图像的尺寸会被严格限制,因此与其不同尺寸大小的图片必须经过预先的裁剪或放大。但通过将其替换为卷积层,这个约束也就不存在了。

同时,当输入图像是一个更大尺寸的图片时,产生的输出会是一个特征图,而并非是像普通输入尺寸图片的一个类输出。(不太懂这句话的意思)此外,最终特征图的观察行为表现为所需分类的一个热普图,即对象的位置会在特征图中被高亮显示。若特征图的输出是一个所需对向的热普图(热图),因此它就是我们在图像分割用例中所需要的信息。

由于我们的卷积设置,特征图在输出层获取的数据是进行过降维的数据(即维度降低),因为我们需要使用插值技术(反卷积)来对其进行升维。双线性向上采样(Bilinear up sampling)可以实现这一目的,但在原文中作者提倡使用反卷积来完成升维,因为反卷积甚至可以学习非线性的向上采样。

在网络架构中,下采样的部分又被成为 encoder,上采用的部分被成为 decoder。这是一个我们在许多网络架构中都能看到的技术,即在 encoder 部分进行下采样操作然后在 decoder 部分进行上采样。理想条件下,我们会让图像保持同一个尺寸大小并且不去进行下采样操作,但这样会导致网络存在巨大量的参数,无法完成计算。

在这里插入图片描述

Source:- https://arxiv.org/abs/1411.4038

尽管输出的结果看起来还不错,但观察到的输出比较粗糙且不平滑。这个情况出现的原因是由于在最后的特征层使用了卷积层进行32倍的下采样,图像的部分信息出现了丢失。当大部分信息都丢失之后,若之后要再进行32倍的上采样,则很难做到。这个结构被叫做 FCN-32。

为了解决这个问题,论文中提供了另外两个网络结构:FCN-16和FCN-8。在FCN-16中,在池化层之前的数据会与最终特征图一起进行使用,因此这个网络的任务是学习16倍的上采样,这样做会优于FCN-32的做法。FCN-8试图从更前一个池化层中获取信息,来达到更好的效果。

U-net

U-net 是建立在上述的全卷积网络之上。它被创建的目的是为了寻找肺和大脑里可能存在的肿瘤。它同样也包括一个 encoder 来对输入图像进行下采样以获得特征图,还有一个decoder 通过反卷积层来将特征图还原至和原输入图像相同的尺寸大小。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z59BNaYc-1669311437057)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/cb7f1652-8f28-46f0-b69f-82f749020d75/Untitled.png)]

U-Net 结构的主要贡献是其缩短了层之间的连接。在上图中我们可以看到,在图像进行下采样操作后,我们会丢失许多信息并且这些信息在 encoder 部分也不能被轻易的恢复。FCN 尝试通过在数据经过最终特征层之前,可以从池化层获取信息来解决这个问题。

U-Net 提出了一种新的解决信息丢失问题的方法。正如上图所示,它建议可以通过对应的下采样层获取信息并提供给每个上采样层,因此可以捕获更加精细的信息同时还可以保持降低的计算量。由于在 encoder 的前部分层具有更多的信息,在后续的下采样过程中,这些数据通过提供与输入图像一致的精细的信息来达到提升上采样效果的操作,最后也能够大大的改善结果。这篇论文也建议了使用一个新型的损失函数,下文我们会继续讨论这个。

DeepLab

来自谷歌的一群研究人员提出了DeepLab 模型,其提供了多种方法来改进现有的成果并且以较低的计算量获得了更加精细的输出。文章中有3点很重要的改进,如下:

  1. 空洞卷积(Atrous convolutions)

  2. 基于空洞卷积的空间金字塔池化(Atrous Spatial Pyramidal Pooling,ASPP)

  3. 通过条件随机场(Conditional Random Fields,CRF)来改善最终结果

空洞卷积

FCN模型中存在的一个较大的问题是由于存在连续的池化操作,导致数据被过多的降维。在经过连续的池化操作后,输入图像被下采样32倍,同样,再进行32倍的上采样以获得最后的结果。进行32倍的下采样会导致我们丢失对于语义分割任务能否获得一个较好的输出来说十分重要的信息。同时,由于在学习上采用过程中会额外需要更多的参数,使用反卷积进行32倍的上采样操作对计算量和内存要求都很高。

这篇论文提出了空洞卷积,又称扩张卷积(dilated convolution),来达到使用相同数目的参数,对更多的内容有相同的认知。

在这里插入图片描述

Source:- https://www.mdpi.com/1424-8220/19/24/5361/htm

空洞卷积的工作原理是通过在参数之间填充0来扩充过滤器的大小。在过滤器的参数之间所填充的0/空洞的数量又被成为扩充率(dilation rate)。当扩充率为1时,它就等同于一个普通的卷积。当扩充率为2时,会在每一个参数之间插入一个0,使其变成一个5x5的卷积。如此一来,其就获得了5x5的卷积内容容量但却只有3x3的卷积的参数量。当扩充率为3时,感受野则扩充至7x7。

在Deeplab中,最后的卷积层的步幅(stride)被替换为1,而并非原文的2,因此下采样的倍率为8倍。然后Deeplab使用一系列的空洞卷积来捕获更大的信息。为了进行训练,输出标记掩码同样也进行8倍下采样操作以比较每个像素。(不太懂这里的数学操作)与反卷积进行上采样操作相比,双线性上采样不需要额外的参数,因此使用双线性方法来进行上采样,需要较少的计算量和内存量,并且也可以达到足够好的效果。

ASPP

空间金字塔池化(Spatial Pyramidal Pooling,SPP)是一个在SPPNet中提出的概念,用于在特征图中捕获多维度的信息。(此处的多维度指的是不同 size的图像)在引入SPP的概念之前,为了达到捕获多维度信息的目的,会提供各个尺度大小的图片作为输入,并将计算出的特征图一起使用,但这样做会花费大量的计算量和时间。空间金字塔池化则可以通过一张输入图像来捕获到多维度的信息。
在这里插入图片描述

Source:- http://kaiminghe.com/eccv14sppnet/index.html

通过SPP模块,网络会产生3个不同维度的输出,1x1,2x2和4x4。将这些数据转化为1d数据后进行级联,以达到从多维度捕获信息的目的。使用SPP的另一个优点是其对于输入图像的尺寸并无硬性要求。(注意区分SPP和ASPP)

ASPP采取了相仿的概念,它将不同尺寸的信息进行融合,并将其应用至空洞卷积当中。ASPP对输入进行不同扩充率的空洞卷积操作,最后再将得出的结果全部融合在一起。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zXyjvcOx-1669311437058)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7a549e06-62ae-492f-aa38-038f2c40fb96/Untitled.png)]

如上图所示,我们可以看见,输入数据通过3x3的卷积核来分别进行扩充率为6、12、18、24的空洞卷积操作,并且将结果融合在一起,因为它们的尺寸大小是一致的。(这里不太明白尺寸大小为何是一致的)同时,1x1 的卷积结果也会被添加至这个融合的结果当中。为了提供全局的信息,GAP(global average polling,全局平均池化)的结果也会在进行上采样过程后添加至其中。融合后的3x3的不同扩张输出,1x1和GAP的结果都通过1x1的卷积来获得你需要的通道数目。

由于要被分割的图像可以是输入中的任何尺寸大小,因此通过ASPP来获取多尺度的信息可以有效的改善结果。

通过CRF改善结果

池化操作可以有效地帮助减少神经网络中的参数数量,但它也随之带来了不变性(Invariance)。不变性是神经网络不会受输入的轻微变化而改变的一个性质。由于池化操作所带来的这一特性,由神经网络分割的结果会变得粗糙并且边界也会变得不清晰。

在这里插入图片描述

为了解决这一问题,这篇论文提出了使用图形模型CRF。条件随机场运行一个后处理步骤并且尝试通过使边界清晰化来改善结果。在这里,CRF的工作原理是不仅仅通过一个像素的标签来对其进行分类,还要根据其相邻其其他像素的标签。正如上图所示,由神经网络所产生的图片拥有很粗糙的边界,在经过CRF模块后则变得更加清晰了。

Deeplab-v3在残差模块当中引入了批标准化(batch normalization)并且建议扩充率需要乘以(1,2,4)。同时,在上文中,也提倡将图像级别的功能加入至ASPP模块中,这一点在上文的讨论中已经进行探讨过了。

在这里插入图片描述

Source:- https://arxiv.org/pdf/1706.05587.pdf

Deeplab-v3+提倡拥有一个 decoder,而不是简简单单的进行双线性的16倍上采样。这里的decoder设计灵感来自于U-Net中的网络架构,即decoder可以从encoder层中获取信息来改善结果。encoder的输出结果通过双线性上采样4倍,并且将其和encoder中得到的特征进行融合,同样,这个特征是在经过3x3的卷积操作后再进行4倍的上采样而得。这种方法得到的结果要优于直接进行16倍上采样所得到的结果。此外,这篇论文中还提出了修改后的 Xception 架构(译者也不太清楚这个是甚么架构),这个架构用于取代Resnet(残差网络),来作为encoder的一部分,同时在空洞卷积上使用深度可分离卷积(不懂),以达到减少计算次数的目的。

全局卷积网络(Global Convolutional Network)

在这里插入图片描述

Source :- https://arxiv.org/pdf/1703.02719.pdf

语义分割同时包括执行以下的两个任务:

  1. 分类

  2. 定位

分类网络设定的目的是不会受到平移和旋转的影响,因此不会重视于位置信息;然而定位则包括关于位置的具体信息。从本质上来说,这两个任务是完全相反的。大多数语义分割算法会更加重视位置信息,即如上图的第二种,因此会导致丢失全局信息。在这项工作中,作者提出了一种方法在给予分类任务一定的重要性的同时,也不会丢失定位的相关信息。
在这里插入图片描述

作者提出可以通过使用大kernels(原文:large kernels,啥东西)来作为网络的一部分,从而实现更加紧密的连接并且获取更多的信息。由上图可知,这一点是通过GCN 块来实现的。GCN 块可以被看作是一个K值大于3的一个KxK的卷积核。为了将KxK的卷积核的参数数量降低,其被进一步的分为1xK 和 Kx1 的模块,然后将这两个模块进行相加。因此通过提高K的取值,可以捕获更加丰富的信息。

另外,作者提出了一个边界细分模块,这个模块由一个短连接和残差连接构成,并且通过两者的叠加来得出结果,这个构造和Resnet中的 residual块很相似。通过观察可知,再加入一个边界细分模块(Boundary Refinement block)之后,语义分割相关的边界处理的结果有了提升。

结果表明,GCN块由于能够捕获更大的信息量,因此在处理靠近物体中央的相关信息时,其像素分类的精度有了较大的提升,而边界细分模块则是提高了靠近边界的像素分类精度。

See More Than Once-KSAC for Semantic Segmentation

(由于翻译过来会比较奇怪,因此保留)

Deeplab这一系列的架构通过使用ASPP并调节不同的空洞卷积的扩张率,来拥有多个感受野。尽管ASPP对语义分割的结果已经有了一个非常明显的提升,但随之也带来了一些问题。在ASPP的各个平行层中并不存在着信息共享,因此会影响每个层中的kernels的泛化能力。同时,因为每个层都被给予的是不同的训练样本(小样本对应小扩张率,大样本对应大扩张率),所以每个平行层所获得的数据量会减少从而影响整体的模型的普遍性(普遍适应能力)。另外,网络的参数数量也会随着参数数量的增加而线性增加(这句应该是原文错误?),因此可能会导致过拟合发生。

在这里插入图片描述

Source :- https://arxiv.org/pdf/1908.09443.pdf

为了解决这些问题,作者(文中的各个作者并非指的同一个作者,而是该标题下的paper投稿人)提出了一种新颖的网络结构,叫做核共享空洞卷积网络(KSAC)。正如上述的图像可知,与ASPP架构中每个平行层拥有自己的kernel不一样的是,这个架构共享单个kernel,以此来提升网络的泛化能力。通过使用KSAC而不是ASPP架构,在使用(6,12,18)的扩充率时,可减少约62%的参数数量。

使用KSAC架构的另一个优点则是参数的数量与扩张率的使用量无关。那么我们可以尽可能地使用更多的扩张率且不用担心增大模型的负担。ASPP框架在使用扩充率(6,12,18)时可以最好的结果,但随着扩充率按6,12,18,24变化,准确率在逐渐下降,说明可能发生了过拟合。但KSAC架构的正确率在这种情况依然在上升,说明该模型的泛化能力也在增强。

由于单个kernel被应用了多个扩充率,因此这个核共享技术/算法同时也可以被看作时应用在特征空间中的一个增量(不太懂)。与输入增量能够获得更好的结果相同,将特征增强应用于网路中也可以提高网络的表示能力(representation apability)。

Video Segmentation

诸如自动驾驶汽车,机器人技术等实例,我们有必要需要对观察到的视频进行实时分割。到目前为止我们所讨论的所有架构,都着重于分割的精度而并非速度。所以如果我们将上述的架构在视频上按每帧进行应用,结果的得出会相当缓慢。

与上述的架构只分析一帧的图像不同,在一段视频中,连续帧的场景会出现许多重叠的画面,这一点可以被用于改善训练的结果和速度。通过这些线索,让我们接下来来讨论特别适合于视频处理的架构们~

STFCN

空间-时间FCN(Spatio-Temporal FCN)提出了将FCN和LSTM结合使用来完成视频分割。我们已经明白在分割图片时FCN是如何被应用于抽取特征的。LSTM是一种可以随之时间变化捕获连续信息的一种网络。STFCN结合FCN和LSTM来同时捕获空间信息和时间信息。
在这里插入图片描述

Source:- https://arxiv.org/abs/1608.05971

正如上图可以看到,STFCN由FCN,空间-时间模块和反卷积组成。由FCN网络产生的特征图被送至空间时间模块,同时,该模块也拥有其前一帧的模块的输入。空间时间模块会基于这些输出同时捕获时间信息和空间信息并且发送至对面(send it across),使用上采样(与我们在FCN中完成的一样)将其尺寸还原至原始图像的大小。

当FCN和LSTM被同时应用在一起时,STFCN网络可以完成端到端训练并且结果也优于单帧分割的方法(所得出的结果)。也有类似的方法比如将LSTM替换为GRU(不太懂是什么)但理念是一样的,即同时捕获时间和空间信息。

Semantic Video CNNs through Representation Warping

在这篇论文中,作者提出了使用跨越相邻帧的光流(CV-光流法)来作为额外的输出,以此来提升分割的结果。

在这里插入图片描述

Source:- https://arxiv.org/abs/1708.03088

这个方法可以作为一个插件应用在任何一个标准框架当中。其中起着关键作用的部分是NetWarp模块。为了计算分割图,我们需要计算当前帧与前一帧之间的光流(optical flow),我们将其记作Ft,并将其传递至FlowCNN架构,最后得到结果 Λ(Ft)。这个过程就叫做流式转换(Flow Transformation)。这个值(Λ(Ft))会被传递至wrap模块,这个模块会将通过网络计算的中间层的特征图作为输入。通过上述操作,我们可以得出一个warped的特征图,然后将其与当前层的中间特征图相结合,在整个过程中,网络都是端到端训练的。(什么是端到端训练呢?)这个架构在CamVid和Ciyscapes视频基准数据集上达到了SOTA结果(当年)。

Clockwork Convnets for Video Semantic Segmentation

这篇论文提出一个方法来改善神经网络在分割任务上的执行速度,即在一个视频中,分割信息要远远比像素级信息改变的慢(个人理解是可以考虑拍摄人像/狗狗的录像),因此与起始层相比,结束层的信息变化的更慢(特征即所需的分割对象被提取/保留到最后)。
在这里插入图片描述

Source:- https://arxiv.org/abs/1608.03609

上图表示的是mid level layer pool4和deep layer fc7的变化率。如左图我们可以看到,随着图像的变化,尽管两个层都有所变化,但pool4的变化更加剧烈。在右图我们可以看到,随着帧的变化,Difference值没有太大的改变。因此pool4可以显示出边界变化而fc7几乎是零变化(nil change)。

作者利用这一点进行了研究,并且建议在不同的帧之间无太大的变化的情况下,我们就没有必要对特征和结果进行再计算,并且可以有效地利用前一帧的暂存值。由于变化率随层的变化而变化,因此我们可以为不同的层设置不同的clock值。若在clock值之前计算出了新的结果,则使用该结果,否则则使用暂存值(cached results)。时钟值可以是静态设置的也可以是动态学习的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pad4YmhC-1669311437063)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/c6e8e9af-f30e-46f4-9e31-987bb2414dce/Untitled.png)]

Source:- https://arxiv.org/abs/1608.03609

Low-Latency Video Semantic Segmentation

这篇论文改善了上述的讨论,即通过自适应选择帧来计算分割图,使用暂存结果而不是使用固定计数器或启发式算法。

在这里插入图片描述

Source:- https://arxiv.org/abs/1804.00389

这篇论文提出将网络分为两个部分,低级特征获取部分和高级特征获取部分。在低级特征部分的计算成本要远远低于高级特征部分。该研究建议可以将低级特征网络作为分割图变化的一个指标。在他们的观察中他们发现,在低级特征和分割图的变化之间存在着强相关性。因此,为了探究高级特征部分是否需要进行计算(该部分翻译可能有误),作者找到了两帧之间的低级特征的区别并且在他们要超过一个特定阈值时将他们进行比较。这整个过程由一个小型的神经网络自动完成,它的任务是利用两帧的低级特征进行预测,来判断是否需要计算高级特征部分。由于这个网络的决策要基于输入帧,因此与上述的方法相比,这个架构的决策(是否计算xxxxxx)是动态变化的。

Segmentation for point clouds(点云分割)

由激光雷达等传感器得到的数据被称为点云(Point Cloud)。点云只不过是一连串无需的3D数据(或者是任意维的数据)。由于它是3D场景的一种稀疏表示(不太懂什么叫稀疏表示),因此在这种场景下不能直接应用CNN。同样,任何试图利用点云数据的架构都应该考虑到点云是一种无序的数据集,其会出现许多种可能的排列。基于这点,网络应该具有置换不变性(permutation invariant)。点云中的点可以通过它们之间的距离来进行定义,因此距离越相近的点会携带对于分割任务更有用的信息。

PointNet

在点云研究历史上,PointNet是一篇十分重要的论文。其使用深度学习来解决分类和分割的任务。那么我们来学习一下PointNet的架构吧。

在这里插入图片描述

Source:- https://arxiv.org/abs/1612.00593

该网络n个点输入为一个nx3的矩阵。通过使用一个多感知层(全连接网络),我们将nx3的矩阵映射至nx64,随后在以此映射至nx128,nx1024。通过最大池化来1024向量,这个向量随后通过大小为512,256,k的MLP转化为k输出。最后k类的输出的产生就和其他的分类网络相类似。

分类任务只需要处理全局特征,然而分割任务需要全局特征和局部特征。因此将来自中间层的nx64的特征与全局特征进行融合以得到一个nx1088的矩阵,随后将其传送至512和256的mlp(mlp是什么?)以获得一个nx256的结果,再之后将其传送至128和m的mlp以得到点云中每个点的m输出分类。

此外,这个网络还包括一个输入变化和特征变化,其任务是不改变输入数据的形状,但是对其仿射变化(affine tansformation)增加不变性,诸如平移,旋转等。

A-CNN

在这里插入图片描述

Source:- https://arxiv.org/abs/1904.08017

A-CNN提出使用环形卷积(Annular convolutions)来捕获空间信息。我们都从CNN可知道(真的么),卷积操作可以捕获对于理解图像来说相当重要的局部信息。A-CNN设计了一种叫做环形卷积的新型卷积,并将其运用在点云中的相邻点中。

这个架构将nx3个点作为输入,并找到它们之间的法线(normals),用于来对各个点进行排序。使用FPS算法抽取点的一个子样本,并最后得到ni x 3个点。在其之上应用环形卷积,将其的维度增至128。环形卷积是在邻接点上进行的,而邻接点的判断是用KNN(k-近邻)算法确定的。

再次进行一次上述操作,维度变化至256。随后运用mlp将维度变化至1024,然后使用池化来得到一个类似于点云的1024维的全局向量。这一整个部分被视作为encoder。对于分类任务而言,encoder的全局输出会被传递至mlp以获得c分类输出。对于分类任务来说,与PointCNN相同,全局特征和局部特征都需要被考虑,两者通过mlp后,点云中每个点获得m分类输出。

Metrics(衡量标准)

接下来我们讨论一下关于评估模型结果常用的衡量标准。

Pixel Accuracy(像素精度)

在用于验证结果时,像素精度是一个最基本的衡量标准。准确度由正确分类的像素与全部像素的比率可得。

Accuracy = (TP+TN)/(TP+TN+FP+FN);

使用像素精度进行衡量的一个主要缺点是若其中一类的数量远远超于另一类时,结果可能只是看起来还不错。例如:若背景图占据了输入图像的90%像素点,那么我们即使判断每个像素都为背景,也会有90%的正确率。

Intersection Over Union(交并比)

IOU的定义是既定事实(ground truth)和预测分割的交集与它们并集的比率。如果我们要为多个类进行计算,我们会为每一个类计算IOU值并取他们的平均值。相比于pixel accuracy来说,IOU是一个更加优秀的衡量标准。和上面的例子相同,我们若判断每个像素为背景,则IOU值为(90/100 + 0/100)/2 = 45%。与90%的正确率相比,IOU的结果更具有表示性。
在这里插入图片描述

Source:- https://www.pyimagesearch.com/2016/11/07/intersection-over-union-iou-for-object-detection

Frequency weighted IOU(频率加权IOU)

这是一个mean IOU的拓展版本(此处的mean指的是权值平均,而并非平均值),主要用于对抗分类的失衡。像上述举的背景的例子,若其中一类在数据集的图像中占据绝大部分位置,那么与其他类相比,就需要进行权值削弱。我们根据每个类在数据集中所占的区域的频率来进行权值平均,而并非简单的取所有分类结果的平均值。

在这里插入图片描述

(该图像来自于网络搜索,并非出自原文)

F1 Score

在分类时普遍使用的衡量标准 F1 Score 也可以用于分割任务中,同时也可以解决分类失衡的问题。

在这里插入图片描述

Source:- https://en.wikipedia.org/wiki/F1_score

Average Precision(平均精度)

召回曲线下的面积,即选定不同类别的的阈值IOU的精度的平均值,用于验证结果。(原话很难理解,其实比较简单)

Loss functions(损失函数)

损失函数是用于让网络朝着最优化前进滴!接下来我们会讨论几个常用于语义分割任务的损失函数。

Cross Entropy Loss(交叉熵损失)

图像中的每个像素的交叉分类损失的简单平均值可以作为一个整体函数(overall function)。但这种方法同样会无法解决分类失衡的问题,FCN架构建议通过使用类的权重来纠正这一点。

UNet试图通过给予图像边界附近的元素更高的权重(weight-age)来改进这一点,因为与图像的内部像素相比,这些像素位于图像的边界位置。这样做可以使得网络更加专注于边界的识别,而并非仅仅的给出一个粗略的输出。

Focal Loss(焦点损失)

焦点损失设计是为了通过给予网络更多的 weight-age(不太清楚该如何翻译)来使得网络关注于其中训练较困难的例子(hard examples),同时也解决了在单阶段物体检测器(single-stage object detectors)中出现的分类极端失衡的问题。同样,焦点损失也可以运用在语义分割领域当中。

Dice Loss

Dice损失和F1 score没什么区别,只不过Dice损失试图对F1 score进行优化。同样的,也可以使用这种方法对 directIOU进行优化。

Tversky Loss

它是Dice损失的一个变形,其对FN和FP赋予了不同的权重。

Hausdorff distance

这是一种用来衡量预测和既定事实(ground truth)的边界的相似性的技术。它的计算方法是找出其中一个边界中任何一点到另一个边界的最近的一点的最大的距离。

Reducing directly the boundary loss function(直接减少边界损失函数)是最近的一个趋势,并且已经被证明可以提供更好的结果。尤其是在类似于医学图像分割这样的使用案例上,对于边界的清晰识别有着至关重要的作用。

与基于区域的损失(如IOU和Dice损失)相比,使用边界损失(boundary loss)的的优势在于其不会收到分类失衡的影响,因为整个区域不会被考虑用于进行优化,只有边界会被考虑。

(ps:由于后续内容主要设计工具和数据集的介绍,因此不再进行翻译)

Annotation tools(标注工具)

LabelMe :-

Image annotation tool written in python.Supports polygon annotation.Open Source and free.Runs on Windows, Mac, Ubuntu or via Anaconda, DockerLink :- https://github.com/wkentaro/labelme

https://nanonets.com/blog/content/images/2020/08/2011_000006.jpg

Source :- https://github.com/wkentaro/labelme

Computer Vision Annotation Tool :-

Video and image annotation tool developed by IntelFree and available onlineRuns on Windows, Mac and UbuntuLink :- https://github.com/opencv/cvat

Vgg image annotator :-

Free open source image annotation toolSimple html page < 200kb and can run offlineSupports polygon annotation and points.Link :- https://github.com/ox-vgg/via

https://nanonets.com/blog/content/images/2020/08/via_demo_screenshot2_via-2.0.2.jpg

Source :- https://github.com/ox-vgg/via

Rectlabel :-

Paid annotation tool for MacCan use core ML models to pre-annotate the imagesSupports polygons, cubic-bezier, lines, and pointsLink :- https://github.com/ryouchinsa/Rectlabel-support

Labelbox :-

Paid annotation toolSupports pen tool for faster and accurate annotationLink :- https://labelbox.com/product/image-segmentation

Datasets

As part of this section let’s discuss various popular and diverse datasets available in the public which one can use to get started with training.

Pascal Context

This dataset is an extension of Pascal VOC 2010 dataset and goes beyond the original dataset by providing annotations for the whole scene and has 400+ classes of real-world data.

https://nanonets.com/blog/content/images/2020/08/2008_001997.jpg

Source :- https://cs.stanford.edu/~roozbeh/pascal-context/

https://nanonets.com/blog/content/images/2020/08/2008_001997L.png

Source :- https://cs.stanford.edu/~roozbeh/pascal-context/

Link :- https://cs.stanford.edu/~roozbeh/pascal-context/

COCO Dataset

The COCO stuff dataset has 164k images of the original COCO dataset with pixel level annotations and is a common benchmark dataset. It covers 172 classes: 80 thing classes, 91 stuff classes and 1 class ‘unlabeled’

https://nanonets.com/blog/content/images/2020/08/687474703a2f2f63616c76696e2e696e662e65642e61632e756b2f77702d636f6e74656e742f75706c6f6164732f646174612f636f636f7374756666646174617365742f636f636f73747566662d6578616d706c65732e706e67.png

Source :- http://cocodataset.org/#home

Link :- http://cocodataset.org/

Cityscapes Dataset

This dataset consists of segmentation ground truths for roads, lanes, vehicles and objects on road. The dataset contains 30 classes and of 50 cities collected over different environmental and weather conditions. Has also a video dataset of finely annotated images which can be used for video segmentation. KITTI and CamVid are similar kinds of datasets which can be used for training self-driving cars.

https://nanonets.com/blog/content/images/2020/08/koeln00.png

Source :- https://www.cityscapes-dataset.com/

Link :- https://www.cityscapes-dataset.com/

Lits Dataset

The dataset was created as part of a challenge to identify tumor lesions from liver CT scans. The dataset contains 130 CT scans of training data and 70 CT scans of testing data.

https://nanonets.com/blog/content/images/2020/08/eDN20ck.jpg

Source :- https://competitions.codalab.org/competitions/17094

Link :- https://competitions.codalab.org/competitions/17094

CCP Dataset

Cloth Co-Parsing is a dataset which is created as part of research paper Clothing Co-Parsing by Joint Image Segmentation and Labeling . The dataset contains 1000+ images with pixel level annotations for a total of 59 tags.

https://nanonets.com/blog/content/images/2020/08/example.jpg

Source :- https://github.com/bearpaw/clothing-co-parsing

Source :- https://github.com/bearpaw/clothing-co-parsing

Pratheepan Dataset

A dataset created for the task of skin segmentation based on images from google containing 32 face photos and 46 family photos

https://nanonets.com/blog/content/images/2020/08/Photos6.png

Source :- http://cs-chan.com/downloads_skin_dataset.html

Link :- http://cs-chan.com/downloads_skin_dataset.html

Inria Aerial Image Labeling

A dataset of aerial segmentation maps created from public domain images. Has a coverage of 810 sq km and has 2 classes building and not-building.

https://nanonets.com/blog/content/images/2020/08/chi1.jpg

Source :- https://project.inria.fr/aerialimagelabeling/

https://nanonets.com/blog/content/images/2020/08/chi2-300x300.jpg

Source :- https://project.inria.fr/aerialimagelabeling/

Link :- https://project.inria.fr/aerialimagelabeling/

S3DIS

This dataset contains the point clouds of six large scale indoor parts in 3 buildings with over 70000 images.

https://nanonets.com/blog/content/images/2020/08/Example-of-classified-point-cloud-on-S3DIS-dataset-Left-classified-with-MS3-DVS-right.jpg

Source :- http://buildingparser.stanford.edu/dataset.html

Link :- http://buildingparser.stanford.edu/dataset.html

Summary

我们讨论了不同算法的分类方法,它们的贡献和局限性。这些算法可用于解决语义分割的用例,无论数据集是图像、视频还是点云。我们还研究了评估结果的方法和可以使用的数据集。这应该会使人们对语义分割这一主题有一个全面的了解。

若想更多的了解语义分割的相关内容,可以点击下方链接:https://github.com/mrgloom/awesome-semantic-segmentation。

Further Reading

https://www.jeremyjordan.me/semantic-segmentation/;

https://towardsdatascience.com/semantic-segmentation-popular-architectures-dff0a75f39d0;

https://divamgupta.com/image-segmentation/2019/06/06/deep-learning-semantic-segmentation-keras.html;

更多相关推荐


AI语音编程来了!GitHub 势要颠覆程序员开发

发布时间:2022-11-10 GITHUB 人工智能
作者|王启隆    出品|CSDN(ID:CSDNnews)十五年前,GitHub的第一行代码诞生。从那时起,GitHub的开源先驱将全球开发者集体视为目标,提供开发者们所需的一切,这一使命在GitHub平台的每次迭代中都保持不变。如今,软件正在吞噬世界,开源正在吞噬所有软件,随着软件的不断进步,开发者们也迎来了一个转折点——在今年的GitHubUniverse开发者大会上,GitHub宣布将颠覆...

机器视觉系列--工业相机与一般相机的区别

发布时间:2006-12-22 图像处理 机器视觉相关 产品 算法
工业相机(IndustrialCamera)的确比较贵。工业相机与普通相机(DSC)的区别:(1)工业相机的快门时间非常短,可以抓拍快速运动的物体。  例如,把名片贴在电风扇扇叶上,以最大速度旋转,然后用工业相机抓拍一张图像,仍能够清晰辨别名片上的字体。用一般的相机来拍摄,是不可能达到这样效果的。这里边的技术问题相当棘手,不在此赘述了。(2)工业相机的图像传感器是逐行扫描的,而一般摄像机的图像传感...

bp神经网络是用来干嘛的,bp神经网络是什么网络

发布时间:2022-10-10 深度学习 网络 神经网络 PHP
1、什么是BP神经网络?BP算法的基本思想是:学习过程由信号正向传播与误差的反向回传两个部分组成;正向传播时,输入样本从输入层传入,经各隐层依次逐层处理,传向输出层,若输出层输出与期望不符,则将误差作为调整信号逐层反向回传,对神经元之间的连接权矩阵做出处理,使误差减小。经反复学习,最终使误差减小到可接受的范围。具体步骤如下:1、从训练集中取出某一样本,把信息输入网络中。2、通过各节点间的连接情况正...

人工神经网络建模步骤,人工神经网络模型定义

发布时间:2022-09-02 深度学习 算法 机器学习 神经网络
利用人工神经网络建立模型的步骤人工神经网络有很多种,我只会最常用的BP神经网络。不同的网络有不同的结构和不同的学习算法。简单点说,人工神经网络就是一个函数。只是这个函数有别于一般的函数。它比普通的函数多了一个学习的过程。在学习的过程中,它根据正确结果不停地校正自己的网络结构,最后达到一个满意的精度。这时,它才开始真正的工作阶段。学习人工神经网络最好先安装MathWords公司出的MatLab软件。...

利用ros服务设置ros动态参数

发布时间:2022-11-01 ROS 人工智能 LINUX C++
1.设置动态参数服务器client,名称设置为具体的命名空间2.发送到client前,先回调订阅完整的dynamic_reconfigure:config,再用__fromMessage__()转化为TebLocalPlannerReconfigureConfig3.修改所需参数4.用client.setConfiguration发送最新修改...

R| Raincloudplots=Scatter+violin+boxplot

发布时间:2021-07-25 可视化 大数据 人工智能 PYTHON JAVA
前言如标题所示,它的实质就是Scatter+Violin+box,在数据点之间加上连线就能很好的展示前测后测,纵向数据。中英文的教程都很多,而且还有不错的shiny应用(https://gabrifc.shinyapps.io/raincloudplots/),功能还比较全面,重点是可获得生成该图的R代码。但是可以从该shiny运用提供的模板来看,并不支持多数据点之间的连线。这里推荐的教程在云雨图...

您已关注公众号满一年,诚邀您加入医学科研交流群!

发布时间:2022-11-15 人工智能
非常感谢大家对我们的长期关注和喜爱,SCI是我们完成学业或是晋升的拦路虎了,专业学习和训练,可以大幅度提高我们科研的效率。今天给大家赠送1门关于科研技巧学习(生信发文、数据库、文献阅读、SCI写作等等)这个课程是个可以重复观看的录播课程,课程非常系统完善。👇医学人,扫码免费报名👇限时200个名额 讲课老师有着丰富的实战经验,干货多,且普适性比较高,无论你是零基础的小白,还是经验丰富的大师,都可以在...

寻找相似集的最大匹配方法-SILKMOTH

发布时间:2019-06-30 人工智能 数据结构与算法
论文题目:Anefficientmethodforfindingrelatedsetswithmaximummatchingconstraints论文作者:DongDeng AlbertKim  论文单位:MIT概要:分析集合间的相似性是一个重要的研究领域,主要用于数据清洗,数据挖掘,搜索引擎(如页面去重)等领域。一般的方法是使用最大二分图匹配,分析两个集合间的相似度,这种方法鲁棒性高,但是时间复...

OpenCV画矩形框

发布时间:2022-11-18 计算机视觉 OPENCV 人工智能
//g++rect.cpp`pkg-configopencv--cflags--libs`-orun#include&lt;opencv2/opencv.hpp&gt;#include&lt;iostream&gt;usingnamespacestd;usingnamespacecv;intmain(){cv::Matimg=cv::imread("1.jpg",1);cv::rectangle(...

YUV格式详解

发布时间:2018-05-28 人工智能
工作中经常会使用一些颜色空间,最主要的就是使用RGB空间和YUV空间,把两空间的一些知识记录在此。1.什么是RGB?RGB是红绿蓝三原色的意思,R=Red、G=Green、B=Blue。2.什么是YUV/YCbCr/YPbPr?亮度信号经常被称作Y,色度信号是由两个互相独立的信号组成。视颜色系统和格式不同,两种色度信号经常被称作U和V或Pb和Pr或Cb和Cr。这些都是由不同的编码格式所产生的,但是...

使用pycaffe解析mean.binaryproto中的均值图像并显示

发布时间:2022-11-20 算法 人工智能 PYTHON CAFFE 均值算法
点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达mean.binaryproto文件生成用Caffe框架训练图像相关的视觉任务时候,在预处理的时候会先求图像的均值,这个均值其实是整个数据集的图像均值,Caffe中提供了一个工具来计算数据集的均值,该工具就是compute_image_mean,只要调用一下,就会生成一个mean.binaryproto文件。compute_im...

Github复现之TransUNet之踩坑

发布时间:2022-11-23 深度学习 开发语言 TRANFORMER PYTHON
Github复现之TransUNet代码复现TransUnet可以看这篇文章,博主写的还是很详细的。复现TransUnet,博主提供的数据集是10241024的用的时候要裁剪成256256以下是在调试代码时候遇到的一些踩坑问题CUDA的问题根据自己的显卡配置CUDA环境,配置CUDA可以看这篇文章,这里注意的是安装的torch要安装gpu版本,最好去官网下载。如果要换cpu计算的话,将torch换...

【深科信动态】科技创新与产业发展政策研究院揭牌成立!

发布时间:2022-11-22 大数据 科技 人工智能
为整合内部和外部资源,更好地深入研究和解读国家、广东省、深圳市及各区出台的科技创新与产业发展相关政策,协助企业理解好和利用好相关政策的水平和能力,经深科信科创服务集团研究决定,成立“科技创新与产业发展政策研究院”。2022年11月21日上午,科技创新与产业发展政策研究院举行揭牌仪式。仪式由深科信科创服务集团董事长刘科浪主持,并作研究院情况介绍。政策研究院的主要职责有:收集各级政府发布的科技创新与产...

【VS开发】【图像处理】RGB Bayer Color分析

发布时间:2016-07-23 人工智能
RGBBayerColor分析   Bayer色彩滤波阵列    拜耳色彩滤波阵列(BayerColorFilterArray,CFA)是非常有名的彩色图片的数字采集格式。色彩滤波器的模式如上图所示,由一半的G,1/4的R,1/4的B组成。拜耳色彩滤波器的模式、序列、滤波器有很多种,但最常见的模式是由Kodak提出的2*2模式。  当ImageSensor往外逐行输出数据时,像素的序列为GRGRG...

快速入门数据科学竞赛

发布时间:2022-11-12 人工智能
上期给大家介绍了数据科学竞赛是什么这期跟大家聊聊-为什么要参加数据科学竞赛竞赛?- -如何入门数据科学竞赛?- -为什么要参加数据科学竞赛竞赛?一、核心:自我提升1.可以提升自己的代码能力、建模能力、思考能力、沟通能力和解决问题的能力。2.通过真实的数据,检验自己对于书本知识的掌握情况,检验顶会文章是否真的work。二、结识志同道合的朋友,拓宽人脉1.这些竞赛的选手可能是高校在读的优秀学生,也有可...

科大讯飞CTR预估挑战赛Top3方案总结

发布时间:2022-11-17 人工智能
‍‍前一阵子,老肥参加了科大讯飞AI开发者大赛的部分比赛,主要包括结构化、音频、文本以及图像这四大类型,总体来看都是较为简单的任务并且解题方案也较为简单,后续会跟大家一一分享。今天要分享的是结构化的赛题-创意视角下的数字广告CTR预估挑战赛。赛题任务广告的CTR预估需要强大的数据作为支撑,本次大赛提供了讯飞AI营销云海量的现网流量和创意数据作为训练样本,参赛选手需基于提供的样本构建模型,预测测试集...

失败告终!历经 8 年研发的 Python 代码补全神器 Kite 停止开发

发布时间:2022-11-24 人工智能 开发语言 PYTHON
AI编程距离程序员还有多远?如果说GitHubCopilot的到来,让众多开发者看到了希望,那么初创公司Kite的倒闭,也让我们认清了现实。Kite是一家使用AI帮助开发者编写代码的初创公司,也是Python代码自动补全的神器。一直以来,因为其在「IntelligentSnippets」功能的加持下,可以帮助Python程序员减少一半的操作,而备受大家喜爱,甚至此前Python之父Gudiovan...

测试技术网站分享

发布时间:2015-11-19 测试 人工智能
http://bdonline.sqe.com/一个关于网站测试方面的网页,对这方面感兴趣的人可以参考http://citeseer.nj.nec.com/一个丰富的电子书库,内容很多,而且提供著作的相关文档参考和下载,是作者非常推荐的一个资料参考网站http://groups.yahoo.com/group/LoadRunner性能测试工具LoadRunner的一个论坛http://groups...

思特沃克与康拓达成战略合作,加速中国企业全球贸易融资数字化

发布时间:2021-04-08 网络 比特币 大数据 区块链 人工智能
近日,全球软件及咨询公司思特沃克(ThoughtWorks)与全球贸易融资网络公司康拓(Contour)达成战略合作。中国用户通过思特沃克(ThoughtWorks)的定制化集成服务,可以实现与区块链贸易融资网络康拓(ContourNetwork)的无缝集成,利用区块链为信用证等传统贸易金融业务提速,助力中国企业快速接入全球贸易金融生态,把握数字化和国际化双重机遇。传统贸易融资行业依赖纸质流程,普...

智慧社区平台建设应该从哪几个方面入手?

发布时间:2022-09-14 大数据 人工智能
智慧社区是指利用信息化设施、互联网、物联网和云计算等现代通信技术,在社区管理、视频监控、车辆管理等诸多领域为管理者和居民提供智能化、信息化的生活空间,是智慧城市的重要组成部分。1、强化智慧社区平台顶层设计。科学合理的顶层设计是智慧社区大数据平台建设的重点,需要从落实国家宏观政策出发,根据地方实际需求,综合考虑平台目标、数据权属、关键技术、功能实现等方面,进而高效开展智慧社区平台的顶层设计,保障城市...

Material Design 设计规范总结(2)

发布时间:2018-11-12 前端 VIEWUI UI 人工智能
本文是MaterialDesign设计规范总结的第二部分,是进行UI设计与前端开发的必备参考资料。八、布局(1)所有可操作元素最小点击区域尺寸:48dpX48dp。(2)栅格系统的最小单位是8dp,一切距离、尺寸都应该是8dp的整数倍。以下是一些常见的尺寸与距离:顶部状态栏高度:24dpAppbar最小高度:56dp底部导航栏高度:48dp悬浮按钮尺寸:56x56dp/40x40dp用户头像尺寸:...

什么是数字经济,它是如何改变商业模式的?

发布时间:2022-07-19 人工智能
数字化转型是全球经济持续变化背后的基本驱动力之一。数字经济是人、企业、设备、数据和流程之间数十亿次日常线上连接所产生的经济活动。以下是数字化转型的一些关键领域。我们所知道的世界在不断变化,其中一个根本驱动力是数字化转型。从本质上讲,数字化转型与互联网“独角兽”无关。数字化是关于使用最新技术来做你已经做的事情,同时可以帮助已经在做的事情变得更好。“独角兽”是指成立不超过10年,且估值超过10亿美元的...

tf.keras.Model之model.fit

目录model.fit的作用model.fit的示例model.fit的作用model.fit可用于以指定的迭代次数训练模型。可以设置的参数很多,重点理解黄色标注的参数,这些比较常用。x=None,y=None,batch_size=None,epochs=1,verbose='auto',callbacks=None,validation_split=0.0,validation_data=No...

降维PCA技术

发布时间:2015-03-31 PYTHON 人工智能
降维技术使得数据变得更易使用,并且它们往往能够去除数据中的噪声,使得机器学习任务往往更加精确。降维往往作为预处理步骤,在数据应用到其它算法之前清洗数据。有很多技术可以用于数据降维,在这些技术中,独立成分分析(IndependentComponentAnalysis,ICA)、因子分析(FactorAnalysis)、主成分分析(PrincipalComponentAnalysis,PCA)比较流行...

TransMVSNet阅读笔记

发布时间:2022-11-29 深度学习 CVPR 2022 OPENCV 人工智能
——————————————————写在前面:本人研一小白,处于懵懂,潜心向老师师兄师姐学习的阶段,第一次发博客,也是一时兴起(向师兄学习,很羡慕师兄师姐们的能力和水平),因为是个人的笔记,当时记得时候也查阅了许多预备知识,有一些杂乱,主要还是按照论文章节记的。推一下一作大神在b站的会议直播录像,在有一定知识储备后听完会有一种通透的感觉https://www.bilibili.com/video/...

2022亚太赛题浅评

发布时间:2022-11-24 算法 人工智能
2022年亚太今日已经正式开赛,为了帮助大家更好的选题建模,这里首先对ABC三道题目进行浅要评析,以方便大家更好的择题。同时相关资料也会后续进行补充。预计明日公布各题统计选题人数以及较为完善的资料。今天作为第一天重要的是择好题,避免中途换题的问题。今年的ABC感觉难度不低难度已经可以与电工妈杯这种比赛的赛题难度有一定的相似了。因此,这对于大家来说并非是个好消息。塞翁失马焉知非福,难对于大家来说都难...

人员跌倒识别检测算法

人员跌倒识别检测算法是基于视频的检测方法,通过对目标人体监测,当目标人体出现突然倒地行为时,自动监测并触发报警。人员跌倒识别检测算法基于计算机识别技术,配合现场摄像头,自动识别如地铁手扶梯/楼梯、老幼活动区等公共场所人员摔倒行为,准确率高于90%,及时救援,提高人工监管效果,保障生命安全。自动识别地铁车站内如扶梯、楼梯等意外场所的人员摔倒事故,实时预警,及时救援,有效减少人力监管误差与成本,提高公...

智能捡乒乓球机器人

发布时间:2022-11-24 机器人 人工智能
本文素材来源于物理与电子电气工程学院作者:丁文龙、王小军、任剑杰、张钊铭指导老师:康彩一、项目简介    随着人们对机器人技术智能化本质认识的加深,机器人技术开始源源不断地向人类活动的各个领域渗透。在这其中,服务机器人作为一个重要分支,在国内外研究领域已经得到普遍重视。服务机器人的应用范围很广,主要从事维护保养、修理、运输、清洗、保安、救援、监护等工作。但至目前为止,乒乓球捡拾器在国内外市场上的发...

智能晾衣架(二)--功能实现

发布时间:2022-11-23 机器人 人工智能
本文素材来源于红河学院工学院作者:赵德森 张艺锦 潘志慧 曹紫康指导老师:江洁 张龙超1.自动升降功能    我们设计时采用了热释电传感器(人体红外传感器),在热释电传感器感应到有人靠近时,晾衣架通过四杆机构自动下降到合适人身高的位置,这时人们便可以开始悬挂衣物,在悬挂结束后使用者只需走出相应位置,晾衣架就能自动升高到适合晾晒的位置并开始晾晒。2.原地晾晒功能    通过电机来作为动力原件,滑轨作...

windows安装gym[atari]时踩的坑

发布时间:2020-12-24 C++ ANACONDA PYTHON 人工智能 UBUNTU
  参考资料:  https://zhuanlan.zhihu.com/p/92578711  https://github.com/openai/gym/issues/1726  https://blog.csdn.net/qq_27297393/article/details/105349229  先说一下我碰到的问题吧,gym是一个python上的人工智能实验环境。运行一下代码后报错:imp...

简单记录ResNet网络,pytorch+ResNet+CIFAR10

发布时间:2022-07-30 网络 深度学习 PYTHON PYTORCH 机器学习
引言ResNet有效地解决了深度神经网络难以训练的问题,可以训练高达1000层的卷积网络。网络之所以难以训练,是因为存在着梯度消失的问题,离loss函数越远的层,在反向传播的时候,梯度越小,就越难以更新,随着层数的增加,这个现象越严重。之前有两种常见的方案来解决这个问题:1.按层训练,先训练比较浅的层,然后在不断增加层数,但是这种方法效果不是特别好,而且比较麻烦2.使用更宽的层,或者增加输出通道,...

resnet

发布时间:2018-08-24 人工智能
深度引起的退化问题特征表示的深度(或者说网络的深度)对于许多视觉识别任务而言至关重要.VGGNet,GoogleNet也都说明了深度对于神经网络的重要性.那么堆叠越多的层,网络真的能学习的越好吗?下面来看看一组实验数据可以看出当网络深度到达一定程度时,在训练集上,深层网络的训练误差也浅层的高,总体表现不如浅层的网络,对于这种现象我们称为退化问题(degradationproblem).残差网络...

深度前馈网络(四)架构设计

架构设计架构(architecture)一词是指网络的整体结构:它应该具有多少单元,以及这些单元应该如何连接。大多数神经网络被组织成称为层的单元组。大多数神经网络架构将这些层布置成链式结构,其中每一层都是前一层的函数。在这些链式架构中,主要的架构考虑是选择网络的深度和每一层的宽度。即使只有一个隐藏层的网络也足够适应训练集。更深层的网络通常能够对每一层使用更少的单元数和更少的参数,并且经常容易泛化到...

Python 这么简单还用学吗?

近几年,Python成为编程市场上最流行的语言,学习Python的程序员越来越多了,许多人学习Python也是为了进入人工智能或者大数据等前沿领域发展。很多对Python不熟悉的人,认为Python的兴起只是运气,看看近两年国内的Python有多主流:自2018年3月起,在全国计算机二级考试中加入了“Python语言程序设计”科目从2018年起,浙江省信息技术教材将不会再使用晦涩难懂的VB语言,而...

走进常熟东南相互电子,看AI如何深入产业让工厂更智能

发布时间:2022-11-24 互联网 人工智能
苏州常熟一家4万多平方米的生产车间内,一块块指甲盖大小的PCB电路板,在装有人工智能算法模型的的摄像头下,快速精准地完成外观检测,让头发丝大小的瑕疵无处可藏。成立于2006年的东南相互电子,是一家集半导体与元器件专用材料开发、生产、加工为一体的高新制造企业,专业生产硬板(PCB)和软硬结合版(RFPCB),其产品在CCM(摄像头模组)行业位列市场前三。生活中常见的手机摄像头、单反相机、打印机、无线...

人工智能前沿——深度学习热门领域(确定选题及研究方向)

近年来,人工智能发展迅猛,其主要动力来自深度学习。深度学习的炙手可热源自于它对人工智能技术发展的整体促进和在广泛应用场景中的巨大应用价值。毫无疑问,深度学习仍旧是当今时代人工智能前沿技术的核心。目录一、计算机视觉(CV)1.图像分类2.目标检测3.目标分割二、自然语言处理(NLP)1.文本分类2.生成式任务3.语音识别一、计算机视觉(CV)计算机视觉(Computervision,缩写作CV)是人...

IAR Systems 与嘉楠科技达成合作,支持RISC-V内核高精度AI芯片

发布时间:2022-11-24 人工智能 科技 RISC-V
最新版IAREmbeddedWorkbenchforRISC-V支持K510芯片,简化下一代图像处理器开发嵌入式开发软件和服务的全球领导者IARSystems与领先的端侧AI芯片研发供应商嘉楠科技(NASDAQ:CAN)今天共同宣布,IARSystems最新推出的EmbeddedWorkbenchforRISC-V3.11.1版本已支持嘉楠勘智K510芯片,助力开发双核RISC-V64位AI端侧推...

刘国军:Imagination支持中国创“芯” 推动汽车百年大变革

发布时间:2022-11-24 汽车 IMAGINATION 人工智能
日前,首次由工业和信息化部、安徽省人民政府联合主办的“世界集成电路大会”在合肥市举办,ImaginationTechnologies副总裁兼中国区总经理刘国军在“全球化时代汽车芯片生态论坛”上发表了题为“面向汽车的异构计算”的主题演讲,介绍了Imagination对当前汽车市场和产业正在发生的、以智能化为特征的重大技术变革的看法,以及公司提供的完整的异构计算IP解决方案,从而帮助中国芯企业面向自动...

边缘计算将如何从5G技术中受益

发布时间:2022-06-13 边缘计算 网络 人工智能
 随着5G技术的发展,越来越多的国家和地区开始引进和应用,并且越来越多的人关注5G将给技术世界带来的变化。   如果使用5G和边缘计算的公司没有采取预防措施来维护边缘计算的网络安全,那么5G和边缘计算带来的许多好处可能会黯然失色。    5G将帮助边缘计算发展   分析人士认为,5G的到来将导致边缘计算进入一个新的时代。5G网络的速度比4G网络的速度快10倍。这种改进为远程传感器提供了即时更新连接...

DeeplabV3实战:基于tensorflow搭建DeeplabV3实现语义分割任务

 任务描述:语义分割是一种典型的计算机视觉问题,其是将一些图像作为输入并将它们转换为具有突出显示的感兴趣区域的掩模,即图像中的每个像素根据其所属的感兴趣对象被分配类别。如下图中左图所示,其语义是人骑自行车,语义分割的结果如右图所示,粉红色代表人,绿色代表自行车。数据集:使用图像语义分割任务中常用的PASCALVOC2012数据集,PASCALVOC2012数据集可以从 http://host.ro...

【绊脚石】squeeze引发的报错

发布时间:2022-11-22 深度学习 人工智能 绊脚石 PYTHON
问题描述.batchsize为1时使用squeeze报错。或者在第一轮训练结束时报错。问题分析和解决办法```importtorchinput_data=torch.ones(1,3,299,299)#batch为1的输入,shape=(1,3,299,299)mid_features=torch.reshape(input_data,(1,3,1,299*299))#中间层数据变化,shape=...