icml,人工智能顶刊是什么?
人工智能方面的顶刊或者顶会(比如cvpr,iccv)。除此之外还有一个小网站可以查看期刊的IF:lethub。
中国计算机学会推荐国际学术刊物(人工智能)
A类
1 AI Artificial Intelligence Elsevier http://dblp.uni-trier.de/db/journals/ai/
2 TPAMI IEEE Trans on Pattern Analysis and Machine Intelligence IEEE http://dblp.uni-trier.de/db/journals/pami/
3 IJCV International Journal of Computer Vision Springer http://dblp.uni-trier.de/db/journals/ijcv/
4 JMLR Journal of Machine Learning Research MIT Press http://dblp.uni-trier.de/db/journals/jmlr/
中国计算机学会推荐国际学术会议(人工智能)
A类
1 AAAI AAAI Conference on Artificial Intelligence AAAI http://dblp.uni-trier.de/db/conf/aaai/
2 NeurIPS Annual Conference on Neural Information Processing Systems MIT Press http://dblp.uni-trier.de/db/conf/nips/
3 ACL Annual Meeting of the Association for Computational Linguistics ACL http://dblp.uni-trier.de/db/conf/acl/
4 CVPR IEEE Conference on Computer Vision and Pattern Recognition IEEE http://dblp.uni-trier.de/db/conf/cvpr/
5 ICCV International Conference on Computer Vision IEEE http://dblp.uni-trier.de/db/conf/iccv/
6 ICML International Conference on Machine Learning ACM http://dblp.uni-trier.de/db/conf/icml/
7 IJCAI International Joint Conference on Artificial Intelligence Morgan Kaufmann http://dblp.uni-trier.de/db/conf/ijcai/
SCI(科学引文索引)
SCIence Citation Index,简称 SCI,由美国科学信息研究所(Institute for Scientific Information, 简称 ISI)在美国费城创办的引文数据库,创始人为情报专家尤金·加菲尔德。目前SCI由信息提供商汤森路透公司(Thomson Reuters)负责运营。
世界著名的三大科学统计与科学评价检索系统——SCI(科学引文索引)、EI(工程索引)、ISTP(科技会议录索引)中,SCI 最为重要。被SCI收录的学术期刊称为SCI期刊,收录于SCI期刊的科技论文称为SCI论文。它以布拉德福(S. C. Bradford)文献离散律理论、以加菲尔德(E. Garfield)引文分析理论为主要基础,通过论文的被引用频次等的统计,对学术期刊和科研成果进行多方位的评价研究,从而评判一个国家或地区、科研单位、高校、期刊、个人的科研产出绩效,来反映其在国际上的学术水平。
软件工程师如何转行做人工智能?
感谢阅读!
我是一名C++软件工程师,而且也在学习人工智能。分享一下我是怎样学习的。不一定适合你,仅供参考,不对的地方还望批评指正!
我研究生是研究模式识别方向,图像处理领域。学过《模式识别》《机器挖掘》等类似的课程,对我学习AI有一定的帮助,但是对于学习AI也有一定的难度。我的学习过程是这样的:
01 学习PythonPython的学习是转行人工智能的基础,这个是一定要学的。如果你是C++或者Java工程师,学python会非常快,因为都是面向对象的语言。基本一周就可以看机器学习的开源代码。学习编程语言对于程序员来说很easy了,这里不再多说。
可以简单的学习一些机器学习基本Python库,比如numpy,scikit-learn,Theano,Tensorflow,Caffe2等等。选择就是,用到再学!
02 从项目出发机器学习分为:图像识别,语音识别,自然语言处理等方向,选择一个自己感兴趣的方向,然后找对应的项目。从项目出发并不是说从做项目开始,对于没有领域知识的程序员,写代码是很痛苦的。从项目出发的本意是:
不要从学习概率论,高等数学等基本理论开始。我之一阶段就是从这些基本理论开始,效果很不好。这些理论枯燥,没有针对性,没法理解这些理论跟AI到底是什么关系。因此,很容易放弃。
从项目开始:找个开源项目,比如GitHub上的开源项目OpenFace,去读源码,看人脸识别是如何做到的。读源码的时候一定会碰到各种机器学习的Python库,一些机器学习算法。以此为出发点,熟悉Python库的使用 。碰到的机器学习算法这就是开始学习AI的切入点。
从项目开始的好处是,能将理论和实践相结合,比单纯学习理论更能理解理论的妙处!
03 学习碰到的理论在项目中碰到的机器学习算法,要想清楚明白是怎么来的,就要去论文中追本溯原,学习算法的使用环境,算法实施过程,算法的数学推导。这个时候就是学习数学基础的时机,只学习对应的章节,用不到的暂时不用学。
学习算法,还借助一些介绍机器学习算法的基础,把算法彻底弄懂。系统学习基本算法基础,比如卷积人工神经 ,反向传导,线性回归,贝叶斯 ,支持向量机SVM,决策树等等。这也很有帮助!
04 一定要动手!算法动手:
在学习理论知识,机器学习的算法时,都会碰到算法的实现过程。一般现在很多Python库已经提供了算法的实现,直接调用即可。但是如果自己有时间还是要实现一下算法,能加深理解。作为程序员都知道,只有在亲自动手的时候,才发现问题。
应用动手:
学习机器学习,一定要自己动手,真正用机器学习解决一个问题。但是现在机器学习对硬件要球较高,训练时间也很高。因此,我建议,无需用巨大的数据集,用非常小的即可,只要能解释过程即可。
05 坚持坚持再坚持!对于上班族来说,时间很宝贵,所以要从996的时间之外挤出时间学习十分不容易,因此就要十分有毅力,有恒心。既然开始,就不能轻易放弃,要养成固定一个在一个固定时间点学习,比如每晚10点学习两小时,那就每晚都学,即使没状态哪怕看看以前的也要学。这样,固定的时间做固定的事,坚持下来概率较大!
做一名程序员不易,要转行的程序员更不易!任何时候,身体健康之一!且行且珍重!如果有需要的资料,可以私信我,希望能给你提供帮助!
深度学习主要是学习那些方面的?
深度学习已经在语音识别、图像处理等方面取得了巨大成功。从2013、2014年开始,也在自然语言处理领域出现深度学习的应用浪潮,例如今年ACL上有人(应该是BBN公司?)利用深度学习极大地提升了统计机器翻译的性能,颇值得期待。
关于深度学习的挑战与方向,其实可以关注深度学习重要学者们的相关综述文章和专著,例如Yoshua Bengio曾经写过的Learning Deep Architectures for AI (2009年)、Practical Recommendations for Gradient-Based Training of Deep Architectures(2012年)、Representation Learning: A Review and New Perspectives (2013年)。
限于自己的研究方向和兴趣,我比较关注的一个方向如下,希望与大家交流。人们一般认为深度学习在语音识别和图像处理方面能够取得长足进度,是因为这两个领域的相关特征信息都是相对低层次的,可以借助深度学习的强大学习能力学习其中的复杂信息;而到了自然语言处理领域,人们利用深度学习做过很多尝试,发现很难取得像语音识别和图像处理那么大的突破,原因在于自然语言的相关特征信息都是相对高层次的(如自然语言的基本单位——词汇——本身就有丰富的语义内涵,与图像中的“线条”、“纹理”等特征相比尤其如此),在深度学习之前就由语言专家编制了很多精致而复杂的知识库,如WordNet等,这些知识已经将相关处理性能推到了较高层次。因此,当深度学习进入自然语言时,如果还是像语音识别、图像处理那样从零知识开始做特征学习,相当于将丰富的语言知识弃之不用而另起炉灶,是不符合自然语言处理特点的。所以,深度学习的一个可能重要的发展方向是,如何在深度学习框架中高效地融合人们已经构建出来的丰富先验知识(包括语言知识、世界知识)。
需要注意的是,与LDA(latent Dirichlet allocation)等之前流行的机器学习算法不同,深度学习不是某个具体算法,而是采用”深度“学习思想的一系列算法的统称,在机器学习领域中(如ICML、NIPS),貌似很少有论文会以deep learning命名,而是具体算法的名称,如autoencoder,等等。因此,建议首先阅读一些tutorial,了解深度学习中的主要算法和人物,然后再去了解具体算法。
深度学习还是好找工作的,一般学成出来工资都不会低,而且现在的语音识别,机器识别等都离不开深度学习,应用领域宽广,包括电商,医疗,安全,游戏等。所以你没有必要学习其他领域,转到其他方向,要能做个好的项目,找工作绝对不用发愁。
神经 是什么?
更多科技资讯,尽在云栖科技联播~
摘要:对神经 概念还很朦胧?来看看阿里技术大牛的分享!神经 和深度学习技术是当今大多数高级智能应用的基础。在本文,来自阿里巴巴搜索部门的高级算法专家孙飞博士将简要介绍神经 的演变,并讨论该领域的最新发展。本文主要围绕以下五个方面:
神经 的演化;感知机模型;前馈神经 ;反向传播;深度学习基础知识;1.神经 的演变在我们深入研究神经 的历史发展之前,让我们首先介绍神经 的概念。神经 主要是一种计算模型,它以简化的水平模拟人类大脑的运作。这种类型的模型使用大量计算神经元,这些神经元通过加权连接层连接。每层神经元都能够执行大规模并行计算并在它们之间传递信息。
下面的时间表显示了神经 的演变:
神经 的起源甚至可以追溯到计算机本身的发展之前,之一个神经 出现在20世纪40年代。本文将通过一些历史来帮助每个人更好地理解神经 的基础知识。
之一代神经 神经元作为验证者:这些神经元的设计者只是想确认他们可以构建用于计算的神经 。但,这些 不能用于训练或学习,它们只是充当逻辑门电路。它们的输入和输出是二进制的,权重是预定义的。
神经 发展的第二阶段发生在20世纪50年代和60年代:这涉及Roseblatt关于感知机模型的开创性工作和Herbert关于学习原理的工作。
2.感知机模型我们上面提到的感知机模型和神经元模型相似但有一些关键差异。感知机模型中的激活算法可以是中断算法或S形算法,并且其输入可以是实数向量而不是神经元模型使用的二进制向量。与神经元模型不同,感知机模型能够学习。接下来,我们将讨论感知机模型的一些特殊特性。
我们可以将输入值(x1...xn)视为N维空间中的坐标,而wTx-w0=0是N维空间中的超平面。显然,如果wTx-w0<0,则该点低于超平面,而如果wTx-w0> 0,则该点落在超平面之上。
感知机模型对应于分类器的超平面,并且能够分离N维空间中的不同类型的点。看下图,我们可以看到感知机模型是线性分类器:
感知机模型能够轻松地对AND,OR和NOT等基本逻辑运算进行分类。
我们可以通过感知机模型对所有逻辑运算进行分类吗?答案当然不是。例如,通过单个线性感知机模型很难对异或运算进行分类,这是神经 在之一个峰值之后很快进入开发的低点的主要原因之一。包括明斯基在内的一些大牛就感知机模型的主题讨论了这个问题。然而,很多人在这个问题上误解了作者。
实际上,像明斯基这样的作者指出,可以通过多层感知机模型实现异或运算;然而,由于学术界缺乏有效的 来研究当时的多层感知机模型,神经 的发展已经进入了之一个低点。
下图直观地显示了多层感知机模型如何实现异或操作:
3.前馈神经进入20世纪80年代,由于感知机模型神经 的表达能力局限于线性分类任务,神经 的发展开始进入多层感知机阶段。而经典的多层神经 是前馈神经 。
从下图中可以看出,它涉及输入层,具有未定义数量的节点的隐藏层和输出层。
我们可以通过多层感知机模型表达任何逻辑运算,但这引入了三层之间的加权学习问题。当xk从输入层传输到隐藏层上的加权vkj,然后通过像sigmoid这样的激活算法时,我们可以从隐藏层中检索相应的值hj。同样,我们可以使用类似的操作使用hj值从输出层导出yi节点值。为了学习,我们需要来自w和v矩阵的加权信息,以便我们最终可以获得估计值y和实际值d。
如果你对机器学习有基本的了解,你就会明白为什么我们使用梯度下降来学习模型。将梯度下降应用于感知机模型的原理相当简单,如下图所示。首先,我们必须确定模型的损失。
该示例使用平方根损失并寻求缩小模拟值y与实际值d之间的差距。为了方便计算,在大多数情况下,我们使用根关系E=1/2(dy)^2 = 1/2(df(x))^2。
根据梯度下降原理,加权更新周期的比率为:wj←wi+α(d-f(x))f'(x)xi,其中α是我们可以手动调整的学习率。
4.反向传播我们如何学习多层前馈神经 中的所有参数?顶层的参数非常容易获得,我们可以通过比较计算模型输出的估计值和实际值之间的差异并使用梯度下降原理来获得参数结果来实现参数。当我们尝试从隐藏层获取参数时,问题出现了。即使我们可以计算模型的输出,我们也无法知道预期值是什么,因此我们无法有效地训练多层神经 。这个问题长期困扰着研究人员,它导致20世纪60年代以后神经 的发展不足。
后来,在70年代,科学家独立地引入了反向传播算法的想法。这种算法背后的基本思想实际上非常简单,即使当时没有办法根据隐藏层的预期值进行更新,也可以通过从隐藏层传递的错误来更新隐藏层和其他层之间的权重。在计算梯度时,由于隐藏层中的所有节点都与输出层上的多个节点相关,因此前一层上的所有层都被累积并一起处理。
反向传播的另一个优点是我们可以同时对同一层上的节点执行梯度和加权,因为它们是不相关的。我们可以用伪代码表示反向传播的整个过程如下:
接下来,我们来谈谈反向传播神经 的一些其他特性。反向传播实际上是一个链规则,它可以很容易地推广任何具有映射的计算。根据梯度函数,我们可以使用反向传播神经 来生成局部优化解决方案,但不是全局优化解决方案。然而,从一般的角度来看,反向传播算法产生的结果通常是令人满意的优化解决方案。下图是反向传播算法的直观表示:
在大多数情况下,反向传播神经 将在范围内找到最小的可能值;但是,如果我们离开那个范围,我们可能会发现更好的价值。在实际应用中,有许多简单有效的 可以解决这类问题,例如,我们可以尝试不同的随机初始化 。而且,在实践中,在现代深度学习领域中经常使用的模型中,初始化 对最终结果具有显着影响。迫使模型离开优化范围的另一种 是在训练期间引入随机噪声或使用遗传算法来防止训练模型停止在非理想的优化位置。
反向传播神经 是一种优秀的机器学习模型,在谈到机器学习时,我们不禁注意到机器学习过程中经常遇到的基本问题,即过度拟合的问题。过度拟合的一个常见表现是,在训练期间,即使模型的损失不断下降,测试组中的损失和错误也会增加。有两种典型 可以避免过度拟合:
提前停止:我们可以提前分离验证组,并在训练期间针对此已经验证的组进行运行。然后我们可以观察到模型的损失,如果损失已经在验证组中停止但仍然在训练组中下降,那么我们可以提前停止训练以防止过度拟合。正则化:我们可以在神经 中为权重添加规则。目前流行的dropout 涉及随机丢弃一些节点或侧面。我们可以将这种 视为正则化的一种形式,在防止过度拟合方面非常有效。尽管神经 在20世纪80年代非常流行,但不幸的是,它们在20世纪90年代进入了发展的另一个低谷。许多因素促成了这一低估区。例如,支持向量机,它是20世纪90年代的流行模型,在各种主要会议上登台亮相,并在各种领域得到应用。支持向量机具有出色的统计学习理论,易于直观理解。它们也非常有效并产生近乎理想的结果。
在这种转变中,支持向量机背后的统计学习理论的兴起对神经 的发展施加了不小的压力。另一方面,从神经 本身的角度来看,即使你可以使用反向传播 在理论上训练任何神经 ,在实际应用中,我们注意到随着神经 中层数的增加,难度训练 成倍增长。例如,在20世纪90年代初,人们注意到在具有相对大量层的神经 中,通常会看到梯度损失或梯度爆炸。
例如,梯度损失的一个简单例子是神经 中的每个层都是S形结构层,因此在反向传播期间它的损失被链接成S形梯度。当一系列元素串在一起时,如果其中一个渐变非常小,则渐变将变得越来越小。实际上,在传播一层或两层之后,该梯度消失。梯度损失导致深层中的参数停止变化,使得很难获得有意义的结果。这是多层神经 很难训练的原因之一。
学术界已经深入研究了这个问题,并得出结论,处理它的最简单 是改变激活算法。在开始时,我们尝试使用整流激活算法,因为S形算法是一种索引 ,很容易引起梯度损失问题。另一方面,整流取代了sigmoid函数并替换了max(0,x)。从下图中我们可以看出,估计值大于0的梯度为1,这可以防止梯度消失的问题。但是,当估计值低于0时,我们可以看到梯度再次为0,因此ReLU算法必须是不完美的。后来,出现了许多改进的算法,包括Leaky ReLU和Parametric Rectifier(PReLU)。当估计x小于0时,我们可以将其转换为类似0的系数。
随着神经 的发展,我们后来提出了许多 来解决在结构层面上传递梯度的问题。例如,Metamodel、LSTM模型和现代图像分析使用多种跨层链接 来更容易地传播渐变。
5.深度学习基础从20世纪90年代到2006年发展的第二个低谷期,之后神经 再次进入群众视角,这次影响力比以前更大。神经 兴起期间的一个重大事件是Hinton包括Salahundinov在内在多个学术论坛提交的多层神经 (现在称为“深度学习”)的论文。
其中一个论文解决了为神经 设置初始化值的问题。简单来说,解决方案是将输入值视为x,将输出值视为解码x,然后通过此 找到更好的初始化点。另一篇论文提出了一种快速训练深度神经 的 。实际上,有许多因素促成了神经 的普及,例如,计算资源的巨大增长和数据的可用性。在20世纪80年代,由于缺乏数据和计算资源,很难训练大规模的神经 。
神经 的早期兴起是由三个巨人驱动的,即Hinton,Bengio和LeCun。Hinton的主要成就是Restricted Boltzmann Machine和Deep Autoencoder,Bengio的主要贡献是使用元模型进行深度学习的一系列突破。这也是深度学习取得重大突破的之一个领域:
2013年,基于元模型的语言建模已经能够胜过当时最有效的 -概率模型。LeCun的主要成就是与CNN有关的研究。深度学习在NIPS、ICML、CVPR、ACL等一些重要的峰会上,吸引了不少关注。其中包括Google Brain,Deep Mind和Facebook AI的出现,这些都将他们的研究中心放在深度学习领域。
深度学习进入爆发期后的之一个突破是在语音识别领域。在我们开始使用深度学习之前,所有的模型都是在先前定义的统计数据库上进行的。2010年,微软使用深度学习神经 进行语音识别,我们从下图中可以看出,两个错误指标都下降了2/3,这是一个明显的改善。基于最新的ResNet技术,微软已将该指标降至6.9%,并逐年实现了改进提升。
在图像分类领域,CNN模型在2012年经历了ImageNet形式的重大突破。在ImageNet中,图像分类使用海量数据集进行测试,然后分类为1000种类型。在应用深度学习之前,由于Hinton和他的学生在2012年使用CNN所做的工作,图像分类系统的更佳错误率为25.8%(2011年),仅降低了10%。
从图中我们可以看出,自2012年以来,该指标每年都经历了重大突破,所有这些突破都是使用CNN模型实现的。
这些巨大的成就在很大程度上归功于现代系统的多层结构,因为它们允许独立学习和通过分层抽象结构表达数据的能力。抽象的特征可以应用于各种任务,对深度学习的当前流行做出了重大贡献。
接下来,我们将介绍两种经典和常见类型的深度学习神经 :一种是卷积神经 (CNN),另一种是递归神经 (RNN)。
卷积神经卷积神经 有两个核心概念。一个是卷积,另一个是池化(pooling)。在这一点上,有些人可能会问我们为什么不简单地使用前馈神经 而选择CNN。例如,以1000x1000图像为例,神经 在隐藏层上将拥有100万个节点。那么,前馈神经 将具有10 ^ 12个参数。在这一点上,系统几乎不可能学习,因为它需要绝对大量的估算。
但是,大量图像具有这样的特征:如果我们使用CNN对图像进行分类,那么由于卷积的概念,隐藏层上的每个节点只需要连接并扫描图像的一个位置的特征。如果隐藏层上的每个节点连接到10 * 10个估算,则最终参数数量为1亿,如果可以共享多个隐藏层访问的本地参数,则参数数量会显着减少。
看下图,前馈神经 和CNN之间的区别显然很大。图像中的模型从左到右依次为完全连接、正常、前馈、完全连接的前馈和CNN建模神经 。我们可以看到,可以共享CNN神经 隐藏层上节点的连接权重参数。
另一个操作是池化。CNN将在卷积原理的基础上在中间形成隐藏层,即池化层。最常见的池化 是Max Pooling,其中隐藏层上的节点选择更大输出值。因为多个内核正在池化,所以我们在中间获得了多个隐藏层节点。
有什么好处?首先,池化进一步减少了参数的数量,其次,它提供了一定量的平移不变性。如图所示,如果图像中显示的九个节点之一要经历转换,则在池化层上生成的节点将保持不变。
CNN的这两个特性使其在图像处理领域中流行,并且已成为图像处理领域的标准。下面的可视化汽车的例子是CNN在图像分类领域中应用的一个很好的例子。在将汽车的原始图像输入CNN模型后,我们可以通过卷积和ReLU激活层传递一些简单粗糙的特征,如边缘和点。我们可以直观地看到它们距离最上面的输出层的输出图像越近,它们越接近汽车的轮廓。此过程将最终检索隐藏的图层表示并将其连接到分类图层,之后它将接收图像的分类,如图像中显示的汽车、卡车、飞机、船舶和马。
下图是LeCun和其他研究人员在早期手写识别领域使用的神经 。该 在20世纪90年代在美国邮政系统中得到应用,有兴趣的读者可以登录LeCun的网站查看手写识别的动态过程。
虽然CNN在图像识别领域已经变得非常受欢迎,但它在过去两年中也成为文本识别的工具。例如,CNN是目前文本分类更佳解决方案的基础。在确定一段文本的类别方面,所有人真正需要做的是从文本中的关键词中寻找指示,这是一项非常适合CNN模型的任务。
CNN具有广泛的实际应用,例如在调查、自动驾驶汽车、分段和神经风格中。神经风格是一个不错的应用程序。例如,App Store中有一个名为Pri***a的流行应用程序,它允许用户上传图像并将其转换为不同的样式。例如,它可以转换为Van Goh的Starry Night风格,这个过程在很大程度上依赖于CNN。
递归神经至于递归神经 背后的基本原理,我们可以从下图中看到,这种 的输出不仅依赖于输出x,还依赖于隐藏层的状态,隐藏层的状态根据先前的输入x进行更新。展开的图像显示了整个过程,来自之一个输入的隐藏层是S(t-1),它影响下一个输入X(t)。递归神经 模型的主要优点是我们可以在顺序数据操作中使用它,如文本,语言和语音,其中当前数据的状态受先前数据状态的影响,使用前馈神经 很难处理这种类型的数据。
说到递归神经 ,我们不能提出我们前面提到的LSTM模型。LSTM实际上并不是一个完整的神经 ,简而言之,它是RNN节点经过复杂处理的结果。LSTM具有三个门,即输入门,遗忘门和输出门。
这些门中的每一个用于处理单元中的数据并确定单元中的数据是否应该被输入,遗忘或输出。
最后,我们来谈谈神经 的跨学科应用,这种应用正在获得广泛认可。该应用程序涉及将图像转换为图像的文本描述或描述它的标题,我们可以首先使用CNN模型来描述具体的实现过程,以提取有关图像的信息并生成矢量表示。稍后,我们可以将该向量作为输入传递给已经训练过的递归神经 ,以产生图像的描述。
总结在本文中,我们讨论了神经 的发展,并介绍了该领域的几个基本概念和 。上述文章基于孙飞博士在年度阿里云计算大会上发表的演讲。他目前正在致力于研究推荐系统和文本生成 。
都看到这里了,关注一下呗?
现在很迷茫不知道正确有效的科研 是什么?
一言以蔽之,视觉SLAM技术是一种空间几何再描述的工程技术。目前来说,受到业界肯定的比较成熟的开源算法主要是:
1、西班牙Universidad de Zaragoza的ORB_SLAM2:raulmur/ORB_SLAM2
2、港科大的VIO:HKUST-Aerial-Robotics/VINS-Mobile
3、Google的SLAM:googlecartographer/cartographer
一般涉及1特征点跟踪,2重定位,3局部与全局优化,4回环检测等四个模块。其中,特征点跟踪是帧间图像特征匹配关系,重定位是帧与关键帧的匹配关系,局部与全局优化是更优估计技术,回环检测是重定位与全局优化技术的工程应用。这里面容易出成果的就是重定位模块,其次是跟踪模块,都容易与深度学习技术结合提高现有算法精度,功夫在于准和快,这两者本身属于对图像的处理分析技术;其次是相机姿态的优化技术,这种技术属于更为数学范畴中的数值分析部分的优化估计策略,对图优化及更优估计等数学理论及应用上需要有突破;回环检测本身属于上述两者的结合,更多的是一种软件工程技术。
对比此种工程性比较强的应用研究,更好的学习和研究 就是测试并研究目前业界开源算法,并综合各种优缺点的同时,必须结合应用领域进行针对性的优化改进。也就是说,先看代码,问题无法解决时多看论文,再将论文 编码为软件能力进步测试。从实践中来,到实践中去。
上述内容对于硕士研究生可以作为应用研究方向,但对于博士研究方向显得单薄了,但基于SLAM点云的场景语义分析才刚刚开始,属于更接近高层图像内容理解部分,这里面涉及的语义理解内容的深度和广度就非常大!
首先,目前理解的语义的定义先明确下:
1)图像的标注,即特定目标的识别定位与三维重建,并将定位信息与识别标签与SLAM的位置信息结合,实现基于SLAM的三维空间的场景物体打标与模型构建,即图像的内容结构化; 2)标注图像与场景其他物体之间的关系,即所说的场景理解,将整个场景的图像内容以故事描述的方式串联起来,构成完成的图像场景信息,及图像内容的语义化。
第二部分基本属于纯粹的语法语义理解的范畴,脱离图像信息的研究内容,目前工作涉及不多,暂就之一部分及语义理解内容涉及的结合点简单讲述下: 1)SLAM对应的是3维点云信息; 2)图像语义信息的低层级信息,即为特定对象的目标识别定位; 3)特定对象的分割、识别定位信息与3DSLAM点云信息的结合,实现3D模型跟踪与重建; 4)将3D目标对象插入到SLAM得到的空间位置序列中。
这里有一个泡泡机器人中发布的文章可以参考入门:
【泡泡机器人翻译专栏】 单目语义SLAM(上)
【泡泡机器人翻译专栏】 单目语义SLAM(下)