观点|如何做好计算机视觉的研究?

2024-04-28 20:38

本文主要是介绍观点|如何做好计算机视觉的研究?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



简单说一下这篇文章的背景:从我去年(2015年)回到微软亚洲研究院之后接触到很多聪明的实习生。一方面感受到他们对计算机视觉研究的热情,另方面也有感于他们对计算机视觉研究认知的局限性,或者说大一点,是基本研究方法和思路上的局限性,就有想法要对如何做好计算机视觉的研究写点什么,但一直也没有找到合适的机会。最近计算机视觉领域国际权威、加州大学洛杉矶分校的朱松纯老师发表了一篇关于计算视觉的三个起源和人工智能的评论,引起了很大的反响。朱松纯老师的评论全面深刻,我想借着这个机会,结合朱老师评论的内容和我在计算及视觉领域15年的研究经历,也来谈谈如何做好计算机视觉的研究,希望对领域内的学生和年青的研究员能有所帮助。如何做好计算机视觉的研究? 


要回答这个问题,我们先要对这个问题的关键词进行分析:如果去掉“计算机视觉”这个限定词,这问题就变成了“如何做好研究?”那么,要回答这个问题,我们就要知道“什么是好的研究?”而要定义什么是好的研究,必须回到根本,先要知道“什么是研究?


我们的讨论就从这个问题开始。


什么是研究?


一个被普遍接受的对研究的广义定义为:研究是为了产生新的知识或者是为已有的知识设计新的应用的系统性的工作。因为我们今天的讨论其实更多集中在科学研究上,先确定狭义的研究的定义为:利用科学的方法来调查解释一个现象或者获取新的知识。


综合这两个定义,可以看到科学研究从本质上是由三个基本的要素构成:1) 目的:产生新的知识或者是设计出新的应用; 2)手段:科学的方法。缺少这两个要素任何之一都不构成科学研究; 3) 成果:新的知识。所谓新的知识,必须是前人不知道的东西。


我们很多同学和年轻的研究员认为研究就是写论文、研究成果就是论文,这其实是在观念上走进了一个误区。论文是系统阐述新的知识、新的应用,以及阐述获取这个新知识或者新应用用到了什么样的科学方法的一个载体。论文,作为阐述研究成果的主要手段,必须经过同行的评议通过才能正式发表和被认可。


在人工智能进入第三个热潮之际,我们看到各种各样关于AI的各种媒体报道层出不穷,一方面,这对大众普及了AI各方面的知识,是积极的。但从另一个方面讲,很多观点没有经过仔细的推敲,也没有同行的评议,一些谬误或者是夸大的观点可能因为广泛传播而被大众接受,结果产生负面的社会影响。这就提醒我们相关领域的研究人员,在对大众媒体去做一些评论的时候,必须仔细斟酌,尽量不传播没有得到检验的观点。


这就谈到第二个问题:


什么是好的研究?


不同领域的研究员对这个问题可能会有不同的看法。


从计算机科学的角度来讲,尤其是计算机视觉的研究,无论是理论的还是实践的,我们的研究成果最终是要解决现实世界的问题的。在这个方面,我印象比较深刻的还是我在西安交通大学读研究生的时候,沈向洋博士2001年在西安交大做报告提到的一个观点:最好的研究员发现新问题;好的研究员创造新方法解好问题;一般的研究员跟随别人的方法解问题——大家在多次这里看到“新”这个关键词,创新是研究的本质。


有了这些铺垫,我们首先定义什么是最好的研究。通常认为一个领域中对于某一个问题最好的研究工作有三种:第一篇论文 (The First Paper),最好的一篇论文 (The Best Paper),以及最后一篇论文(The Last Paper)。这第一篇论文的含义是说这篇论文率先提出了一个好的问题和方向。最好的一篇论文是什么?那一定是开创性地提出了一种解法,启发了最终解决这个问题的途径。至于最后一篇论文,那一定是彻底把这个问题解决了,从此以后这个问题不再需要继续做进一步的研究。


从计算机视觉领域举一个具体的例子来讲,Harris Corner Detector属于最早的一批在图像中检测角点的论文,可以归为第一篇之列。David Lowe博士的SIFT特征检测和局部描述子,可以归为在这个方向上最好的论文之列。那么这个方向的最后一篇呢? 我认为可能还没有出现。具体到我自己的研究工作,在局部描述子这个方向上,我跟我的同事Matthew Brown和Simon Winder在2007年到2009年之间所做的一系列用机器学习的方法来建立描述子的工作,也实际上为提高局部描述子的性能提供了一个新的思路和方法。


对于我们很多研究员和学生来讲,一辈子可能都做不到这三种最好的研究工作之一。那是不是就等于说你不能做好的研究工作或者根本不用考虑做研究了呢?肯定不是这样。科学研究是一个共同体。这些最好的研究工作也是在前面很多很多非常扎实(solid)的研究工作的基础上发展出来的。因此,对于年青的研究员和学生而言,应该胸怀大志,去追求做最好的研究工作,但从实际执行上来讲,还是要把一项一项具体的工作先做扎实了。


怎么做到把研究工作做扎实了?首先,你必须对你要解的问题有一个全面深刻的了解,包括为什么要解这个问题、解这个问题有什么意义呢、以前有没有试图解决同样或者类似问题的先例,如果有,你就要全面了解前人都提出了什么样的解法、他们的解法都有什么样的优势和缺陷……最后,你的解法解决了前面这些解法不能解决的问题呢,或者是你的解法处理了什么样的他们不能处理的缺陷了?这些问题的答案如果都有了,那么,在写论文的过程中要注意的就是,1)你的假设是什么?2)你怎么验证了你的假设?这个验证既可以是理论上的证明,也可以是实验的验证。我们很多学生和年青的研究员,写论文的时候没有找到内在的逻辑关系,很多观点都是似是而非。或者说重一点,在论文撰写方面的训练严重不足。你的研究如果到了写论文的阶段,那就必须要有明确的观点提出来。这个观点必须明确无误,只有这样你才能被称为形成了新的知识。你的每一个观点都必须在理论上或者是实验中得到验证。另外,论文的撰写是为了让人看懂,不是让人看不懂,所以我们在撰写过程中必须尽量保证不去假设读者已经拥有了某些方面的知识。做好了这些,基本上你就有很大的可能性能够做出扎实(solid)的研究工作。


然后回到我们讨论的主题:


如何做好计算机视觉的研究工作?


其实,要回答这个问题,将我上面讲的所有观点加上“计算机视觉领域”这个限定词就行了。我这儿结合计算机视觉研究的一些现状及朱松纯老师的一些观点来进一步谈谈我的观点。


首先谈谈我观察到的一些现象。很多年轻的学生,现在讨论问题的时候都用这样的谈话:我发现用FC6层的特征,比用FC7层的特征,在某个图像数据集上比现在最好的算法提高了1.5%的识别精度,老师我们可以写论文了(如果大家不能理解这句话,FC6和FC7是表示AlexNet的两个中间输出层)。我想请问,你在这个过程中发现了什么样的普适的新的知识吗,又或者,在不是普适的情况下,你在什么限定条件下一定能够看到这样的识别精度提高了?


不错,提高识别精度是一个很好的目标,但要注意,计算机视觉的研究是要解决识别的问题,不是解某一个图像数据集。这些图像数据集提供了很好的验证你的假设和方法的手段,但如果你没有遵循科学的方法和和手段去设计你的算法和实验,你也不可能得到一个科学的结论,从而也不能产生新的知识,更不用谈对这个领域做出贡献。朱松纯老师在他的评论中提到,很多学生认为,计算机视觉现在就是调深度神经网络的参数,也就是说的这个问题。


所以,具体到对于刚开始从事计算机视觉研究的学生来讲,要做好这方面的研究,我觉得第一步还是要系统学习一下计算机视觉的课程,全面了解一下计算机视觉这个领域的来龙去脉、这个领域都有哪些基本的问题、哪些问题已经解得比较成熟而哪些问题还在初级阶段……这里,推荐所有的学生学习两本经典教材《Computer Vision: A Modern Approach》和《Computer Vision: Algorithms and Applications》,可以先读完第一本再读第二本。



只有对这个领域有了一个初步的全面了解,你才能够找到自己感兴趣的那个问题。在众多的问题当中,你是希望做三维重建,还是做图像识别、物体跟踪,又或是做计算摄影呢?做研究其实不是一个完全享乐的的过程,你必须要有足够的兴趣来保证你能持续地走下去,这在你感觉自己当前研究的思路走不下去的时候尤其具有重要意义。当你确定你感兴趣的问题,你应该首先全面调研一下这个问题的来龙去脉。这就意味着你不能只读过去五年的论文。你可以从过去一年的论文开始,慢慢追溯回到过去很久的相关的论文。有些时候,你会惊讶地发现前人想问题的深度。研究的英文单词是Research,拆开是Re-Search,用中文直译就是重新搜索和发现,而不是直接发现,其实就是说你要首先对这个问题做追本溯源。朱松纯老师提到的我们很多学生现在不读五年以前的论文,说的也是这个道理。


当你做好了这些,你必须钻进计算视觉的一个小的领域。人的精力是有限的,这就意味着你不可能把很多事情同时做好,所以在你选好方向之后,就要把你的精力集中在你感兴趣的一个问题上, 努力成为这个方面的专家。研究是一项长跑,很多时候,你在一个方向上比别人坚持久一点, 你就有机会超越他而成为某个方面的专家。


最后,我也来谈谈深度学习对计算机视觉的影响。在这里,我对马里兰大学Rama Chellapa教授在Tom Huang教授80岁生日论坛上表达的观点非常认可,他认为,深度学习网络就像一个Pasta Machine:你把该放的东西放进去,它能给你产生好吃的Pasta。同时它也是一个Equalizer:无论你在计算机视觉领域有40年的经验还是0年的经验,只要你会用Caffee,你在一些问题,比方说图像识别上,都能产生差不多的结果。他开玩笑说这有点伤自尊 (It hurts my ego!),但我们还是应该把它作为一个好的工具拥抱它。我想,他的言外之意,是我们的研究应该做得更深,要去理解这个工具为什么能够工作得比较好,从而产生新的知识去指导将来的研究和应用。


我认为,对于年轻的学生来讲,从深度学习的方法开始学习没有什么问题,但必须要进一步去了解一下其他的数学和算法工具,像统计贝叶斯的方法、优化的方法、信号处理的方法等等等的。计算机视觉的问题,其本质是不适定的反问题,解这一类问题需要多种方法的结合。这里面有深度学习解得比较好的问题,像图像识别,也有深度学习解不了的问题,像三维重建和识别。


任何研究领域包括计算机视觉的研究,对处在研究初期的学生而言, 更重要的是掌握足够的数学工具,培养一种正式思维(Formal Thinking)的能力,这样,遇到实际的问题就能以一种理论上正确的思路去解决这个问题。


作为结束语,我想对在从事或者有志于从事计算机视觉研究的学生说,计算机视觉的研究处在一个非常好的时期,有很多我们原来解不了的问题现在能够解得比较好了,像人脸识别,尽管我们其实还没有从真正意义上达到人类视觉系统对人脸识别的鲁棒程度。但我们离真正让计算机能够像人看和感知这个世界还有很远的距离。在我们达到这个目标之前,深度学习的方法可能是这个过程中一个重要的垫脚石,同时我们还要将更多的新的方法和工具带入这个领域来进一步推动这个领域的发展。

这篇关于观点|如何做好计算机视觉的研究?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/944207

相关文章

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

关于Java内存访问重排序的研究

《关于Java内存访问重排序的研究》文章主要介绍了重排序现象及其在多线程编程中的影响,包括内存可见性问题和Java内存模型中对重排序的规则... 目录什么是重排序重排序图解重排序实验as-if-serial语义内存访问重排序与内存可见性内存访问重排序与Java内存模型重排序示意表内存屏障内存屏障示意表Int

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

如何做好网络安全

随着互联网技术的飞速发展,网站已成为企业对外展示、交流和服务的重要窗口。然而,随之而来的网站安全问题也日益凸显,给企业的业务发展和用户数据安全带来了巨大威胁。因此,高度重视网站安全已成为网络安全的首要任务。今天我们就来详细探讨网站安全的重要性、面临的挑战以及有什么应对方案。 一、网站安全的重要性 1. 数据安全与用户隐私 网站是企业存储和传输数据的关键平台,包括用户个人信息、

计算机视觉工程师所需的基本技能

一、编程技能 熟练掌握编程语言 Python:在计算机视觉领域广泛应用,有丰富的库如 OpenCV、TensorFlow、PyTorch 等,方便进行算法实现和模型开发。 C++:运行效率高,适用于对性能要求严格的计算机视觉应用。 数据结构与算法 掌握常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、搜索、动态规划等),能够优化代码性能,提高算法效率。 二、数学基础

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww

生信圆桌x生信分析平台:助力生物信息学研究的综合工具

介绍 少走弯路,高效分析;了解生信云,访问 【生信圆桌x生信专用云服务器】 : www.tebteb.cc 生物信息学的迅速发展催生了众多生信分析平台,这些平台通过集成各种生物信息学工具和算法,极大地简化了数据处理和分析流程,使研究人员能够更高效地从海量生物数据中提取有价值的信息。这些平台通常具备友好的用户界面和强大的计算能力,支持不同类型的生物数据分析,如基因组、转录组、蛋白质组等。

开题报告中的研究方法设计:AI能帮你做什么?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 大家都准备开题报告了吗?研究方法部分是不是已经让你头疼到抓狂? 别急,这可是大多数人都会遇到的难题!尤其是研究方法设计这一块,选定性还是定量,怎么搞才能符合老师的要求? 每次到这儿,头脑一片空白。 好消息是,现在AI工具火得一塌糊涂,比如ChatGPT,居然能帮你在研究方法这块儿上出点主意。是不

研究人员在RSA大会上演示利用恶意JPEG图片入侵企业内网

安全研究人员Marcus Murray在正在旧金山举行的RSA大会上公布了一种利用恶意JPEG图片入侵企业网络内部Windows服务器的新方法。  攻击流程及漏洞分析 最近,安全专家兼渗透测试员Marcus Murray发现了一种利用恶意JPEG图片来攻击Windows服务器的新方法,利用该方法还可以在目标网络中进行特权提升。几天前,在旧金山举行的RSA大会上,该Marcus现场展示了攻击流程,