暂时未有相关云产品技术能力~
欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、最新论文解读、各种技术教程、CV招聘信息发布等。关注公众号可邀请加入免费版的知识星球和技术交流群。
本文将介绍一篇很有意思的论文,该方向比较新,故本文保留了较多论文中的设计思路,背景知识等相关内容。
本文介绍了Siamese (连体)网络的主要特点、训练和测试Siamese网络的步骤、Siamese网络的应用场合、Siamese网络的优缺点、为什么Siamese被称为One-shot分类,以及Siamese的损失函数。
OCR文字识别在目前有着比较好的应用,也出现了很多的文字识别软件,但软件是面向用户的。对于我们技术人员来说,有时难免需要在计算机视觉任务中加入文字识别,如车牌号识别,票据识别等,因此软件对我们是没用的,我们需要自己实现文字识别。
在本文,将介绍另一个基于同样出发点的注意力模块,即Pyramid Split Attention (PSA)。PSA具备即插即用、轻量、简单高效的特点。该模块与ResNet结合,通过PSA替代ResNet的bottleneck中的3x3卷积,组成了EPSANet。
在计算机视觉中存在很多的专业术语,如先验知识,语义信息,embedding,head,neck等。这些术语的解释无法直接在网上搜到,也没有在哪一篇论文中定义它们的概念和意义,因此,对于第一次听到这些术语的读者来说会非常的困惑。
在很多情况下,我们想实现一个模型来跑自己的一个任务,但不得不做很多重复的工作,例如图像预处理,搭建网络,可视化输出,计算推理时间等。
对于任何想要创建可扩展服务的人来说,部署大内存的深度学习算法是一项挑战。 从长远来看,云服务是昂贵的。 在边缘设备上离线部署模型更便宜,并且还有其他好处。 唯一的缺点是它们缺乏内存和计算能力。
归一化相关技术已经经过了几年的发展,目前针对不同的应用场合有相应的方法,在本文将这些方法做了一个总结,介绍了它们的思路,方法,应用场景。主要涉及到:LRN,BN,LN, IN, GN, FRN, WN, BRN, CBN, CmBN等。
知识蒸馏是一种在繁琐的模型中提炼知识并将其压缩为单个模型的方法,以便可以将其部署到实际应用中。AI的教父Geoffrey Hinton和他在Google的两个同事Oriol Vinyals和Jeff Dean于2015年引入了知识蒸馏。
transformer在视频理解方向的应用主要有如下几种实现方式:Joint Space-Time Attention,Sparse Local Global Attention 和Axial Attention。这几种方式的共同点是采用ViT中的方式将图像进行分块,而它们之间的区别在于如何用self attention来处理这些块。
本文是何凯明在18年发表的论文,论文提出了BN中存在的问题,即模型性能受到Batch Size的影响,当batch size比较小时,模型性能退化严重,且BN的存在使得在受到内存限制的应用很难使用预训练。 本文基于这些问题提出了Group Normalization,GN很好地避免了这些问题,模型性能不会受到BatchSize的影响。 此外,在论文中作者将两者与其它一些归一化方法(如Layer Normalization、Instance Normalization)进行了介绍与实验对比。
这是一篇19年何凯明发的论文,论文基于目标检测、实例分割和人体关键点检测三个方向进行了多项实验,比较了从零使用随机初始化开始训练与使用预训练进行fine-tuning的效果,并得出了一些结论。 在本文将介绍论文的主要思想,主要结论,一些细节和作者基于实验结论上的讨论。
transformer用于图像方面的应用逐渐多了起来,其主要做法是将图像进行分块,形成块序列,简单地将块直接丢进transformer中。然而这样的做法忽略了块之间的内在结构信息,为此,这篇论文提出了一种同时利用了块内部序列和块之间序列信息的transformer模型,称之为Transformer-iN-Transformer,简称TNT。
这是实例分割中的一篇经典论文,以往的实例分割模型都比较复杂,这篇论文提出了一个简单且直接的实例分割模型,如何设计这种简单直接的模型且要达到一定的精度往往会存在一些困难,论文中有很多思路或思想值得借鉴,因此十分值得一读。 在本文中,为让各个方向的读者都能看得懂并抓住重点,较为详细地介绍了本文的创新或改进思路,而对一些细节不予赘述。
什么是注意力?就是只写有用的,只留下值得关注的部分。对于已经过时的结构或论文,不为了刻意做到“史上最全的...总结”,“全面综述....”,而将其写在文章中,让读者产生这篇文章很有价值的感觉,但实际上看下来,读者很容易被无关紧要的内容、过时的内容、过于详细的内容所耗费精力,而真正重要的内容什么也没学到。 什么是真正重要的内容?那就是模块的设计思想,改进思路,具体结构,这样设计的优点,解决了什么问题。 这是这篇总结与其它综述的不同之处。
最近几年,注意力机制用来提升模型性能有比较好的表现,大家都用得很舒服。本文将介绍一种新提出的坐标注意力机制,这种机制解决了SE,CBAM上存在的一些问题,产生了更好的效果,而使用与SE,CBAM同样简单。
本文针对anchor-free模型用于行人搜索中会出现三个不对齐问题:Scale misalignment,Region misalignment,Task misalignment提出了相应的解决方案,进一步提出了一个更简单更有效的anchor-free模型--AlignPS。
特征金字塔是目前用于目标检测、语义分割、行为识别等方面比较重要的一个部分,对于提高模型性能具有非常好的表现。 不同大小的目标都经过了相同的降采样比例后会出现较大的语义代沟,最常见的表现就是小目标检测精度比较低。特征金字塔具有在不同尺度下有不同分辨率的特点,不同大小的目标都可以在相应的尺度下拥有合适的特征表示,通过融合多尺度信息,在不同尺度下对不同大小的目标进行预测,从而很好地提升了模型的性能。 本文将介绍特征金字塔的两种构建方式,介绍目前特征金字塔的主要改进思路和方案,主要有:ASPP, FPN, PANet, RFB, ASFF, FPT, YOLOF等。
构建特征金字塔最普遍使用的方式是FPN,FPN的成功主要有两点,一是多尺度特征融合,二是分而治之,所谓分而治之就是对不同尺度的目标在不同的分辨率上检测。
前两篇对一些经典模型和轻量化模型关于结构设计方面的一些创新进行了总结,在本文将对前面的一些结构设计的原则,作用进行总结。 本文将介绍两种提升模型的表示能力的结构或方式,模型的五条设计原则,轻量化模型的四个设计方式。
上一篇介绍了经典模型中的结构演变,介绍了设计原理,作用,效果等。在本文,将对轻量化模型进行总结分析。 轻量化模型主要围绕减少计算量,减少参数,降低实际运行时间,简化底层实现方式等这几个方面,提出了深度可分离卷积,分组卷积,可调超参数降低空间分辨率和减少通道数,新的激活函数等方法,并针对一些现有的结构的实际运行时间作了分析,提出了一些结构设计原则,并根据这些原则来设计重新设计原结构。
在本文将对这些经典模型的结构设计演变做一个总结,旨在让读者了解一些结构的设计原理,产生效果的原因。在面对一个具体任务时能够准确地选择一个合理的特征提取网络,而不是随便选择一个。在自主设计网络时,也能根据总结的原则和经验设计出合理的结构,避免随心设计。
前面介绍了可视化的三种方法--特征图可视化,卷积核可视化,类可视化,这三种方法在很多提出新模型或新方法的论文中很常见,其主要作用是提高模型或者新方法的可信度,或者用来增加工作量,或者用来凑字数,还有一些作用是帮助理解模型针对某个具体任务是如何学习,学到了哪些信息,哪些区域对于识别有影响等。 本文将介绍一些可视化的项目,主要有CNN解释器,特征图、卷积核、类可视化的一些代码和项目,结构可视化工具,网络结构手动画图工具。
上篇文章我们介绍了特征图可视化方法,对于特征图可视化的方法(或者说原理)比较容易理解,即把feature map从特征空间通过反卷积网络映射回像素空间。 那卷积核怎样可视化呢,基于什么原理来可视化?卷积核的尺寸一般只有3x3, 5x5大小,如何可视化?本文将介绍这个两个内容。
前面我们介绍了两种可视化方法,特征图可视化和卷积核可视化,这两种方法在论文中都比较常见,这两种更多的是用于分析模型在某一层学习到的东西。在理解这两种可视化方法,很容易理解图像是如何经过神经网络后得到识别分类。
在CV很多方向所谓改进模型,改进网络,都是在按照人的主观思想在改进,常常在说CNN的本质是提取特征,但并不知道它提取了什么特征,哪些区域对于识别真正起作用,也不知道网络是根据什么得出了分类结果。
池化是一个几乎所有做深度学习的人都了解的一个技术,大家对池化如何进行前向传播也都了解,池化的作用也了解一二。然而,池化如何回传梯度呢,池化回传梯度的原则是什么呢,最大池化与平均池化的区别是什么呢,什么时候选择最大池化、什么时候选择平均池化呢。 主要用的池化操作有平均池化、最大池化、全局平均池化,全局自适应池化。此外还有很多,如RoI池化、金字塔池化、重叠池化、随机池化、双线性池化等。 在本文中将会对这些内容一一总结。
前面我们介绍了transformer的结构,这一篇是将transformer思想用于CV中的论文,创新点不多,值得写的地方也不多,但还是决定写一下,因为这篇论文可以用来给大家看看transformer用于CV会起到一些什么样的作用,以及transformer可以怎样用于CV中。 介绍transformer结构的时候提到了transformer最大的一个点是可以处理长距离的文本之间的联系,在CV中可以用于处理更大范围的感受野的信息,而不需要通过一层一层的堆叠卷积核来扩大感受野。在NLN中提出构建一个non-local block来实现这一点。
本文介绍了一个在空间和尺度上全活跃特征交互(fully active feature interaction across both space and scales)的特征金字塔transformer模型,简称FPT。该模型将transformer和Feature Pyramid结合,可用于像素级的任务,在论文中作者进行了目标检测和实力分割,都取得了比较好的效果。为了讲解清楚,若有transformer不懂的读者,关于transformer可以在公众号中看另一篇文《Transformer解读》
在本文中,我们通过将这些Visual Transformer模型按不同的任务分类,并分析了这些方法的优缺点,提供了文献综述。主要类别包括基本图像分类,high-level vision,low-level vision和视频处理。由于self-attention是Transformer的基本组成部分,因此也简要回顾了计算机视觉中的自注意力。包括将Transformer推向实际应用的有效Transformer方法。最后,我们讨论了Visual Transformer的进一步研究方向。
前几日,华为诺亚,北京大学,悉尼大学共同发表了论文《A Survey on Visual Transformer》,本文针对其重点内容进行翻译概括如下。文末附论文原文和本文完整版下载方式。
transformer在这两年大火,CV界广泛应用transformer模型,充分吸收其idea到自己的领域。考虑到transformer本是应用于NLP的论文,其中很多内容都形成了共识,因此在论文中并未提及,就好像CV中论文提到图像预处理使用center crop , color jitter,但不会详细介绍这两个,这就是CV领域的共识,其他领域的人看到这两个将会很困惑,作为CV中人读transformer会被很多共识内容所折磨,包括很多介绍transformer的博客知乎,都是站在NLP领域的角度写的,因此共识部分都是一笔带过,本文的出发点是要让CV人读得懂。
传统的卷积网络在一个前向过程中每层只有一个连接,ResNet增加了残差连接从而增加了信息从一层到下一层的流动。FractalNets重复组合几个有不同卷积块数量的并行层序列,增加名义上的深度,却保持着网络前向传播短的路径。相类似的操作还有Stochastic depth和Highway Networks等。 这些模型都显示一个共有的特征,缩短前面层与后面层的路径,其主要的目的都是为了增加不同层之间的信息流动。DenseNet基于此提出了一种新的连接模式--Dense connections。
Inception_v2和Inception_v3是在同一篇论文中,提出BN的论文并不是Inception_v2。两者的区别在于《Rethinking the Inception Architecture for Computer Vision》这篇论文里提到了多种设计和改进技术,使用其中某部分结构和改进技术的是Inception_v2, 全部使用了的是Inception_v3。
继MobileNet_v1和v2提出后,在2019年,MobileNet_v3在众人的期盼下出来了,MobileNet_v3论文提出了两个模型,MobileNet_v3-Large和MobileNet_v3-small,其主要区别在于层数不同(其余设计都一样),此外还包括一个用于语义分割的MobileNet_v3-Large LRASPP模型。
这是一篇类似于《Rethinking the Inception Architecture for Computer Vision》(即Inception_v2)的论文,在Inception_v2论文中提出了四条设计卷积网络模型的原则,Inception_v2就是基于这些原则上设计而来。同样,shuffleNet_v2(即《Pratical Guidelines for Efficient CNN Architecture Design》,一看这名字就知道很值得一读)指出了四个影响模型实际推理速度的操作,并在尽量避免这些操作的基础上提出了ShuffleNet_v2结构。
shuffleNet_v1在MobileNet_v1后,MobileNet_v2前提出。ShuffleNet系列也是针对移动端部署而提出的模型。 ShuffleNet_v1结合了深度可分离卷积和分组卷积,提出了包含pointwise group convolution 和channel shuffle两项操作的ShuffleNet Unit。其中depthwise separable convolution来源于Xception,分组卷积概念来源于AlexNet, 在ResNeXt和DeepRoots中得到很好的应用。
MobileNet_v2提出了一些MobileNet_v1存在的一些问题,并在此基础上提出了改进方案。其主要贡献为提出了线性瓶颈(Linear Bottlenecks)和倒残差(Inverted Residuals)。
Non-Maximum Suppression(NMS)非极大值抑制,也有个别地方称之为非最大值抑制。个人认为前者更为贴切,因为其具体实现原理是找到所有局部最大值,并抑制非局部最大值,而不是找全局最大值,后文会介绍代码。从字面意思理解,抑制那些非极大值的元素,保留极大值元素。其主要用于目标检测,目标跟踪,3D重建,数据挖掘等。 目前NMS常用的有标准NMS, Soft NMS, DIOU NMS等。后续出现了新的Softer NMS,Weighted NMS等改进版。
Inception系列之Inception_v1 Inception系列之Inception_v2-v3
Inception系列之Inception_v2-v3 Inception系列之Batch-Normalization
论文原称:R-C3D: Region Convolutional 3D Network for Temporal Activity Detection(2017)
论文原称:Zhang B, Wang L, Wang Z, et al. Real-time action recognition with enhanced motion vector CNNs[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 2718-2726.
论文原称:Simonyan K, Zisserman A. Two-stream convolutional networks for action recognition in videos[C]//Advancesin neural information processing systems. 2014: 568-576
python更改默认版本
ubuntu16安装ROS(包括win10子系统ubuntu同样能用)
tensorflow-gpu2.1.0报错 so returning NUMA node zero解决办法
opencv--ORB::create
百度上找半天各种标定的方法,然而复制代码下来各种报错,或者就是没讲清楚到底怎么操作。 后来我突然想到opencv自带的例程说不到也有标定的代码,很幸运在sample/python/下找到了calibrate.py这个程序。
安装依赖项libqglviewer-dev出问题 原因: ubuntu16.04或者14.04不能直接sudo apt-get install libqglviewer-dev. 使用三个包来安装。双击进去点击安装即可。(按顺序)