GAMES002-图形学研发基础工具 - P7:网站搭建基础 - GAMES-Webinar - BV1cC411L7uG
OK哈喽大家好嗯,今天这节课我们来讲一下网站搭建的一个基础。
然后这一章可能比较简单,作为这个games整个这个图形学辅助的工具,下面的一环网站可能并不是,就是大家经常会涉及到,但是呃我们在安排大纲的时候,还是加入了这一节,就是作为一个小小的补充。
然后我们可以首先来看一下这个呃,本次课的一个目录吧,对啊我们大概会讲简单的讲一下这三个部分嗯,首先是web服务的原理,然后包括前端是什么,后端是什么这种呃,这些原理性的知识做一个概括性的介绍。
可能就是之前如果不熟悉啊,网页的它的一些服务的原理的话哦,那么我们会对这里做一些补充,但是如果要做一些深入的一些理解,或者展开的话,需要大家根据自己的情况去了解相应的框架,或者呃相应的这个这个库。
然后后面我们将介绍两个,这个主要的web服务的分类,一个是基于本地IP的,然后这种web服务一般来说是给呃,我们做科研开发,或者做一些这个本地开发的时候,会使用到的一些功能。
然后以及另外一种是开放了公网IP的,一个web服务,然后这种web服务的话,就面向的是就互联网上的所有用户,然后会有更多的一些配置和更多的一些要求,然后那么我们来具体看一下,呃首先的话web服务。
它其实是有一套复杂的机制的,可能我们平时在上网的时候,呃,比如说浏览网页,然后呃网页的一些呈现,以及网页上面的一些按钮,一些交互功能,在大家看来可能是一个非常自然的一个,呃一个东西。
但是实际上它背后有一系列复杂的一个机制,就比如说这张图,这张图是我从那个CSDN里找的,然后哦它上面标了网页,就是一次web服务完成的11个步骤,相当于说嗯我们首先作为我们自己是一个用户。
然后用户在浏览器上啊,浏览器是用户唯一能够直接看到的一个,web服务的一个接口,然后它在上面去啊看到,比如说网页渲染出来的结果,以及网页上可能有一些按钮,然后你去点击或者有一些文本框,你去输入。
然后做一系列的操作都由浏览器来这个处理,然后用户会把他的这些操作输入到浏览器,然浏览器负责哦,实际上就是比如说我要去哦,真正的服务器上去采数据,然后我要知道这个网页长什么样。
然后我要把这个网页给渲染到用户的电脑,屏幕上,这些过程都是浏览器内部已经帮你做好了,然后简单来说它就是通过呃,这个就相当于我们的网页,它往往是部署在比如说百度网页,那它就是部署在百度的服务器上。
然后比如说这个北京大学的主页,他就是部署在北京大学自己的服务器上,然后我们要显示这个网页,需要让浏览器向这个服务端的程序,发起一个请求,然后获取到它的网页,比如说长什么样,然后有哪些元素。
然后这些请求通过一系列的这个底层,它由TCP呃建立连接,然后呃TCP的上面一层,它其实是用了一个HTTP协议的呃一个格式,然后来把所有的请求和这个响应,全部给包装起来了。
也就是说我们其实比如说用户随便做一个操作,然后浏览器它其实做了,首先做了三件事,就是先建立了TCP的连接,然后呢他去把呃用户需要请求的一些数据,然后打包成HTTP格式,然后最后通过TCP传给这个服务器。
然后服务器内部也会有服务器自己的一个处理,然后它会解析用户,比如说比如说我访问这个网址,然后服务器会得到这个URL,然后他就去解析,根据这个网址,我要返回给你什么东西,然后他执行了567步。
然后得到了一个结果,再通过同样的方式经过网络,然后再传回给本地的浏览器,然后最后浏览器得到了这个HTTP格式的一个响应,之后,它就会把相应的东西给渲染出来,然后这就是一个整个的呃。
web服务的一个基本原理,然后比如说我们我们以CSDN的这个网页为例,然后呃像这个网页我们点进,比如说你在浏览器里输入这个网址,我们点进去的过程中,然后它显示出了这个页面,显示完成的时候。
其实它就已经经过了上述这11个步骤,然后呃得到了你最终的一个网页,结果,这个时候比如说你要再点一些其他的按钮,比如说我要点一个这个订阅专栏的这个按钮,然后实际上又会完成一次呃。
刚才一模一样的11个步骤的一个,这个从浏览器到服务器,再到再回到浏览器,然后被用户看见的这样一个流程,所以总体来说外服务其实没有特别复杂的原理,因为经过其实它经过这么多年的发展呃。
不管你用什么语言或者嗯比如说C加加或者Python,其实web服务都有了成熟的一些框架和API,相当于我们不用做非常底层的一些操作,然后就可以完成一个这个web服务的提供。
然后这里的话其实web服务是简单的,要分成前端和后端的,因为呃就像刚才这个过程,其实你可以明显的感觉到哦,这里可以,这里其实是有两个部分,一个部分是说呃我浏览器,我浏览器怎么把这个网页的内容给显示出来。
也就是说比如说呃像这个CSDN的界面,然后它其实是有它自己的布局,然后它字体的大小,然后包括它的一些按钮的形状,然后按钮的颜色等等等等,这些其实都是一个,相当于是可视化给用户的一个东西。
然后而比如说它的另一些功能,比如说这个,如果我们要在这个搜索框里去做搜索,这个搜索其实是在那个CSDN,它自己的服务器上完成的,也就是说俗称我们俗称的后端,就是说呃相当于前端。
它可能就包括用户和浏览器之间的这样一个,可视化和交互的一个部分,而后端更注重于服务器自己后面怎么处理,比如说我的一些特殊功能,我的一些网址的一些解析这种,所以我们基本上可以把一个web服务。
分成前端和后端两个部分来理解,然后前端的话其实呃大家可能已经听说过了,它有一些像是JAVASCRIPT或者typescript一样的语言,然后这个语言是运行在这个浏览器上的。
然后它其实就负责了你浏览器的一些复杂的,交互功能,然后以及我们其实浏览器,它有一个原生的一些功能,就是用来显示出我们浏览器上的元素的,比如说显示出这个按钮或者显示出这些文字,然后它都是需要通过一个。
一个这样的可视化框架,相当于呃如果如果你什么都就是,什么框架都不引入,只用浏览器原生的功能,那其实就是HTML5,然后加上CSS3这两种呃语言结合在一起,或者说这两种格式结合在一起。
然后组成的一个这个呃可视化的一个功能,然后但是其实现在也也有非常多,成熟的一些框架,比如说额这个U或者react这种呃,这种相当于是成熟的一个框架了,然后他能够给你提供一个哦这样的一个通。
比如说你通过JAVASCRIPT或者type script,然后再通过这两种框架,就能非常容易的去实现出。
比如说像这里展示出来的这样一个界面,然后这个是前端的一个基本情况呃,前端的话最简单的来说,其实它的原生的HTML5加CSSS3这种语言啊,已经其实现在已经比较过时了,基本上没有人会就直接手写这种呃。
纯的原生代码,但是作为了解就是就你可能不直接写它们,但是如果你要做哦,一个网页的简单的前端开发的话,可能还是需要了解一下,然后比如说网上其实也有很多资料,像菜鸟教程。
然后他其实就做了一些讲解,然后以及,我们可以看到它的一个基本的格式,就是通过呃这样一个,比如说这样,这其实叫一个tag,然后以及这样呃,它有一个有一条杠的,这个这样两个东西组成起来。
它就是一个成对的一个态度,然后这两个tag,它中间的部分就是这个tag的呃内容,然后整个HTML它基本上都是用这种方式来做一,个渲染的,然后就是说相当于你后台你写了这些代码,然后它就代表了一个网页。
然后浏览器得到了这些代码之后,他把这些代码去解析起来,然后比如说如果他看到了一个title,那么他就知道这里应该放一个呃放一行字,并且这个字体要比较大,可能还需要加粗。
然后比如说如果你在这里放了一个video的tag,然后浏览器就知道,要在这里放一个内嵌的一个视频,然后这个视频的具体参数,其实它也可以从这些后续的参数里得知,然后总而言之的话。
HTML5还是一个比较简单的,然后呃,大家就是如果涉及到了web的前端的一些编写。
可以去简单的了解一下,然后但是实际上我们真正开发的过程中,可能还是会用一些更加复杂的一些框架,像是呃最著名的就是这这两种框架,然后也都有成熟的这个中文的文档,然后如果后续深入这个。
比如说你需要编写前端代码的话,可能就会涉及到这些,然后除此之外,web前端其实还有一些额外的一些功能,就是哦相当于如果你真的要做开发的话,然后它会涉及到更加复杂的,像是包管理,这个包管理指的是呃。
就比如说你要用之前我所说的一些框架。
甚至是要用一些比如说组件的库,然后比如说你的button,不想自己直接手写一个button,而是用一个别人已经写好的一个成熟的组件库,然后那里有button,有slider。
然后有各种各样的呃web前端的组件,这个时候这些组件库怎么样去管理,我们可能就需要一个这个专用的包管理工具,然后这个其实是呃有一个node点JS的运行时,然后加上NPM这个工具。
然后来做一个常见的一个包管理,然后呃这个东西在可能就相当于,比如说VC里面的VCPKG,然后哎我这里不太方便写,这样吧,就相当于如果在C加加里的话,可能就是这个呃VCPKG,然后在Python里的话。
可能就是这个呃pipe或者康达,然后像这种包管理的话,就是用可以用来帮你呃简单的去管理这个呃。
这个项目里涉及到的依赖库。
然后以及我们还有一个其实是包管理的,或者说是node的版本的一个管理,这个node是什么呢,node可以简单理解为它是一种运行时,就是说呃我的我的JAVASCRIPT。
它其实是运行在某一个版本的node上,然后呢这个node本身版本之间可能差异也比较大,然后导致你最后会需要去管理这个node的版本,然后这样就需要用到一些呃专用的工具,然后以及我们可能构建项目的时候。
需要用到一些模板,就比如说怎么样快速的去做一个个人主页,然后这种时候可能会涉及到一些,就是快速的模板的一个呃使用,然后这种的话可能就会有一个项目构建的一个,一些专用的工具,所以说前端其实还是比较复杂的。
然后嗯具体在学习的过程中,可能我们会呃推荐,就比如说你先了解一下HTML的基本基本功能,然后去了解一下CSS,然后最后在这个基础上去开始接触,两种框架中的一种,然后去做一个这个简单的学习。
然后这个是一个web前端的一个入门的一个路径,然后除此之外web其实还有它的一个后端,那么这个后端的话就是之前所说的呃,我把前端的请求发送给后端之后,我们后端要做些什么事。
然后可能这里就涉及到了两个最主要的东西,一个是服务器,服务器就是说你比如说发起了一个请求之后,比如说我想要呃,我在百度上我要点击一下搜索,其实这个点击的过程,就向服务器发送了一条请求。
然后怎么样处理这些请求,是需要后端部署一个专用的server的,然后这个server的话,比如说这里以Python语言为例,可能就有一些专用的框架,像flask或者jungle这种框架来专用的处理。
然后以及如果呃你的这个web服务更加复杂一点,它可能有这个数据库的一个需求呃,当然有时候你可如果是简单的web应用,它可以不需要数据库,就是呃你直接不不用任何数据库。
但有时候也需要呃使用一些简单的数据库,甚至是像MYSQL一样更复杂的一个数据库,然后这种的话额也是需要额,根据自己的情况来具体配置的,然后说了这么多的话,我们来看一下。
就是所谓的web服务到底对我们来说有什么意义,嗯之前也说到,web服务可以简单的分成,本地IP和公网IP的两种服务,所谓本地IP就是说呃这个web服务,它的地址部署在你的本地这个回环地址上。
然后只有你这台机子能够看见,或者说能够访问这些web服务,然后公网IP的区别,就是说相当于我们,比如说我们如果要把自己的一个主页,或者一个一个博客,或者一个这个公司或者学校的呃,这个主业给放到互联网上。
然后让所有人都能看到的话,你就需要给你的这个呃web服务部署到公网上去,然后这个公网的话呃基本上是呃有两种形式,它一一种形式是一个数字组成的一个公网的IP,然后另一种形式就是我们日常能够见到,这种网址。
然后嗯基本上呃这两种web服务,各自有各自的特点,然后也有各自的不同的用途,像是前面这种本地IP啊。
我们其实经常会遇到呃,也也不能说也不能说一定经常会遇到吧,但是在我自己开发的过程中,我其实会经常性的使用到,为什么呢,这是因为呃,我们经常,比如说像我自己做一个深度学习的时候。
然后有时候这个服务器就是我们之前学到的,这个服务器,它是一个远程服务器,然后你必须呃用比如说vs code去做一个远程连接,或者用命令行去做一个远程连接,然后这种时候。
比如说我们是很难在服务器上打开一个,可视化的图形窗口的,然后呃导致说,比如说我需要做一些可视化的时候,我就没有办法说我在本地运行,因为我本地运行不了这个代码,我只能放到服务器上运行。
但是服务器本身又没有办法,比如说呃它它没有一个图形界面,没有办法显示一些可视化的一些呃功能,所以这种时候呃,我就会用到这个web服务的一个功能,就比如说我把我在我在远端的服务器上,部署一个web服务。
然后把它的端口转发到我的本地,相当于这个服务是在我本地完成了一个部署,然后比如说呃像这一行Python命令,就我自己开发过程中遇到的,然后呃它里面是打开了一个web服务。
这里可以看到在本地的这个回环地址上,打开了一个web服务。
然后如果去点击它的话,就会得到一个就会你就会在浏览器里,然后打开一个这样的一个界面,然后并且可以进行一些可视化的一些交互,然后这个就是啊,这个其实说的就是我们的一个本地web服务的,最主要的功能。
就是当你在开发自己的一一些工程的时候,可能说呃,你的服务器上不能直接打开一个可视化的界面,这个时候你就需要嗯去布置一个简单的web服务,然后把这个web服务转发到本地。
这个转发过程vs code会自动的帮你做,然后呃经过这个转发之后,呃,本地的这个你你就可以在本地的浏览器上,打开你的一个交互界面,然后在上面去和远程服务器渲染的结果,做一些交互对。
然后这里可能呃就如果我们要自己去编写代码。
还是挺困难的,但是基本上其实有很多成熟的这种呃代码框架,比如说我这里列举一个哦,Nerve studio,这是一个NERF相关的一个代码框架,大家可以不用具体的知道这个框架是干什么的。
但是呃但是它的基本功能就是说,它可以把我远程服务器上的一些,三维的一些数据,然后给它显示到我的一个本地的浏览器上。
那么比如说他的read me里给出了几个例子。
然后我们可以简单的看一下对,像是这个例子,他就是在远程呃重建了一个三维场景,然后呢这个三维场景呃,背这个背这个框架给他部署了一个web服务,这样我们就可以在本地打开浏览器,在浏览器里拖动整个场景。
去观察这个场景的一些可视化的一些情况,然后这个可能就是一个最主要的一个功能,然后以及你甚至可以,就是你在你在你的网页端,设置一些可以调整的一些系数或者参数,然后这些参数会和就是后端的这个服务器。
去进行交互,然后等于说你只需要在本地的网页上去,简单的点几个按钮,或者调整几个数据,然后就可以去操纵你在远程服务器上的,一些三维的一些资产。
然后呃这个可能是一个Python语言的一个库。
大家可以就是根据自己的需求。
比如说如果你确实有一个呃,这种需要做web服务的一个需求,比如说你在你的远程服务器上,有一个这个三维的,或者有一个或者有个图形学算法,得到的一个结果,然后你需要去对它做一个可视化。
甚至是你需要跟他去交互,这种时候取决于你使用的语言,你可以自己决定,就是使用这个语言下的哪一个框架,因为像是Python,比如说这个框架它就是一个Python的框架。
然后因为我的代码用的也是Python,所以我很自然的就直接用它了,然后像是比如说如果你用你用的不是Python,你用的是C或者C加加去做了一个呃开发的话,然后你遇到了这个需求,可能嗯应该也有很多。
就是C或者C加加的这种呃,web服务的一个一个一个库,然后大家可以在GITHUB上也能找到,然后就直接去使用他们提供的一些API,然后把你的远程服务器上的结果放到本地去交。
互可可视化就可以,然后比如说呃这个也是Python的一个功能,叫jupiter notebook,可能大家都已经比较熟悉了,呃,这个jupiter notebook的话呃对于Python开发人员来说。
其实还是蛮熟的一个东西,因为它其实是提供了一个呃,最主要的就在对于我们初学者来说,可能他最主要的一个好处,就是说它能够把呃,我远程渲染出来的图片,直接放到这个呃网页里去显示出来。
而不是说像我们之前在命令行呃,很难直接查看某一张图片对。
然后jupyter notebook的话,其实本质上也是一种我刚才提到的这种呃,把web服务放到本地去转发的一个呃,这样一个框架,然后它也是提供了一些非常方便的功能,比如说你可以在网页里去编写代码。
然后或者在网页里去查看图片,去和这个图片去做交互,比如说有一些库,它其实是可以就是在jupiter notebook里显示一个,可以交互的一个东西,就好比说下面这个三维物体,你可以拖动它。
你可以直接在网页里拖动它,然后就可以看到一些更丰富的一些可视化结果,总体而言总结一下我们的web服务,它部署在本地IP的时候,基本上都是为了项目开发而服务的,可视化其实是图形学里非常重要的一环。
然后我认为就是当我们实在比如说你遇到困难,比如说你在远程的服务器上,没法做一个直接的图形界面,没法直接可视化的时候,使用web服务其实是一个非常方便的功能。
然后这里代码的编写就一个很简单的例子吧,以Python为例,就是说比如说我是我自己的程序,然后我想要提供一个web服务,这该怎么做呢,就其实Python有一个非常简单的一个命令。
就是任何你只要安装了Python,你就可以输入这个,然后打开一个简非常简单的本地web服务。
然后这里可以举个例子,嗯对比如说我在这里,我在这里,嗯打开一个,打开一个这样的web服务,然后呃大家都可以看到,就是我指定的端口是7007,然后我在浏览器里,简单的输入这个呃7007的话就可以看到我。
我把这个我的这个根目录下,所有的文件全部列出来了,然后这种情况下,其实就是你成功的打开了一个web服务,然后你可以去呃,比如说点击里面的某一个HTML文件,然后就可以得到一个全新的网页。
然后这里我可以我可以举个例子,就是,就是我在本地打开一个用来可视化,三维场景的一个网页,然后大家可以看到这个目录下,是有一个叫index的HTML的,这种情况下呃,我们的网页会直接去解析到它。
呃换个端口吧,好像有点卡,哦我知道了这个这可能不能用这个来做例子,因为这个,这个是用了一个框架,所以不能用这个来做例子,好吧哦,那换个例子吧,就是就是比如说我这里。
如果用我们我刚才提到的那个node点JS的运行时,去运行这个地方。
嗯然后就可以在我的网页里打开一个这样的。
一个呃三维的可视化的一个窗口。
然后并且你可以去拖动它,去查看里面的细节。
对这个就是一个很简单的一个呃应用的例子。
然后这个的话基本上就是本地IP的一个呃用途,那么实际上,当我们遇到一个,需要把你的项目给放到互联网上,或者把你的呃个人主页给放到互联网上的时候,这个情况下,其实就需要额部署我们另一种web服务了。
这种web服务叫这个公网IP的web服务,然后它可能有一些更加麻烦的配置,就是它需要去呃配置你的域名,然后配置你的这个,如果你你需要一个安全的HTTP协议的话,你就需要一个呃。
支持这个HTTPS的一个证书,然后并且你需要购买一台专用的服务器,然后呃这个这是有这三个东西之后,你可能需要用这个额NGINX,然后去配一个端口的转发,或者去去相当于是去代理一下呃。
整个web服务的一个请求,当然这些就过于复杂,其实呃已经超出了我们同心学这个呃辅助工具,需要去讨论的一个范围了,但是其实公网IP还是有另一些,非常简单的部署方法,就是说我们可能大家可以见到有一些呃。
像是个人主页好。
这里举个例子,你想想举个谁呢。
哦举个陈老师的例子吧,对像陈老师的这个个人主页,其实这种主页就可以通过我们的一个这个呃,公网web服务来完成支持,然后像是我自己的一个主页的话,呃其实是用了他的一个框架。
就等于说我一点都没有编写前端的代码,然后去完全的用这个框架,呃我找一找,这里GITHUB上其实这种库蛮多的,就是它提供一个直接帮你一键生成网页,然后你只需要改动一些非常简单的地方。
就可以呃得到一个你自己的主页这种东西啊,包括包括我们可能在比如说一些项目的主页上,能够见到类似这种的主页,然后它上面可能有很多demo。
然后呢有一个GITHUB的跳转链接,然后可能有一些这个呃有些可视化的结果,然后长得其实都很像这种。
其实也都是用一个呃GITHUB的配置的模板来生成,那么具体来说,其实GITHUB配置它是一种特殊的GITHUB的提供的服务呃,原理就是说GITHUB提供这个服务器加上域名,加上证书,就这一切他都包了。
然后你只需要去根据呃GITHUB配置的一些要求,然后简单的配置一下你自己的项目信息,就可以完成,然后呃这种项目主页或者包括一个呃文档主页,其实都可以用这种方式来配置。
然后这里的话基本上就是我们可能涉及到的,公网IP的一个呃,主要的一个应用,OK那么总结一下,其实呃我们这个涉及到的这个网站搭建基础,其实呃主要包括几个部分,第一个部分就是,如果呃你需要搞清楚你的项目里。
是否需要用到网页服务的这样一个呃事,就比如说嗯我们本地IP的web服务,它其实是基于这个本地端端口的转发,然后他的面向对象是,你在开发这个自己的程序的时候,需要使用一些端口转发。
然后来完成你在远程服务器上的可视化,这种时候是需要本地的一个web服务,然后另一种情况是说,你有你的项目或者你的个人主页,或者你的个人博客,或者你的项目文档需要挂在互联网上的时候,你这个这种时候。
你需要一个公网IP的一个web服务,然后嗯这两种需求,基本上就涵盖了我们图形学中涉及到的,所有的网站配置的一个需求,特别是呃比如说对于公网IP来说,特别是比如说我们有一个项目需要做一个demo。
然后这个demo要放到网上可以给大家看,然后这种时候,你可能就需要一个公网IP的web服务,然后或者说呃,你本身要写一个很简单的可视化程序,但这个可视化程序没法在远程服务器上运行。
有时候你可能就需要一些可视化的方法,去把它放到本地的浏览器上去显示,然后这两种情况呃基本上都涵盖在这里,然后大部分时候我们其实不需要去搞清楚呃,他们其中的细节,然后你可以直接用你自己使用的那种语言下。
对应的一些web服务的一些库,然后就可以简单的完成这件事,然后但是呃面对一些复杂的需求,可能就需要我们去了解一下呃,具体的web服务原理,包括它的前端,然后包括它的后端。
甚至你需要去学习具体的前端语言和后端语言,然后去对它做一个整体性的开发,然后最终比如说咳我自己的项目经历是呃,曾经就是有有时有一个呃,相当于我们做一个课题的时候,用到了一个小程序开发的一个功能。
然后那里其实就相当于是一个web服务了,因为微信小程序它其实是涉及到你的呃,比如说微信小程序的界面怎么写,然后前端怎么显示,然后以及后端连接一个数据库,然后这里可能可以给大家简单的看一下。
然后这个就是当时用jungle搭建的一个数据库,然后里面可能会有一些呃,管理员支持的一些功能,然后像这些呃这些功能的话,基本上当时都是用Python加jungle,这两个框架来完成的。
然后这个项目它涉及到的前端和后端,就更加复杂一点,然后相当于我们如果真的有这么复杂的,比如说编写小程序的需求,可能才需要你去仔细的了解web服务的原理,然后仔细的了解它的前端和后端。
甚至说去学习这个微信小程序,开发的一个呃文档,然后除此之外的大部分情况,我们都可以通过呃,简单的使用别人提供好的API和库来完成嗯,OK那么今天的内容其实非常简单。
就是简单的给大家介绍一下web服务的原理,然后总体来说呃,我们图形学中涉及到的外服务并不是特别多,然后大家可以着重把握,就是我举我,我这个在本地IP和公网IP举的两个例子,然后最后我们本次没有作业。
然后大家下次应该会呃,下次会布置一次作业,然后今天的课程就可以先到这里,然后大家有什么问题可以在弹幕告诉我,OK网页显示三维模型的例子哦,我这里我想一想,嗯这里举个例子吧,就是比如说嗯。
比如说我们本地怎么查看三维软件呢,我们可能是用一个这个cloud compare呃,像是我自己会用这个软件,然后或者你你们可能涉及到一些math lab。
或者涉及到一些blender,然后这种软件。
它其实是没有办法在远程服务器上打开的对吧,然后比如说我想看一个点云,或者我想看一个mesh,它其实是不能够在这个呃,它就是你其实你需要把,比如说比如说我这里有一个工程。
然后我在上面有一个呃这个点云软件呃,有一个点云文件,然后我我要去看这个点云文件长什么样,我可能就要把它从服务器上下载到本地,然后用本地的这个呃这个这个东西,这个可视化软件去打开,但是而另一种方式。
就是说我可以直接跳过下载这一步,而是我通过在远程服务器上部署一个web服务,然后我把这个web服务转发到我本地的端口,最后我在本地的浏览器上去打开,这样也是一种方式嗯,这里具体举一个例子的话。
就比如说就比如说我呃我找一个,这里有一个东西叫3D高斯嗯,他反正不管怎么说,它是一种这个类似点云一样的一种三维的,这个呃物体物体对象吧,然后呢我们要怎么对它做可视化,其实比如说我这里的,我这里的例子。
就是我这里有一个代码,然后它能够呃,直接在这个远程服务器上去部署一个web服务。
然后部署完web服务之后呃,我点击这个主页,然后就可以去做一个哦它的一个显示。
然后这个显示是在我本地浏览器里可以打开的,并且我可以去对它做一些交互。
去做一些查看,然后以及呃我们如果比如说你涉及到的是呃,普通的那种mesh或者点云的话,然后呃相当于我这里reference到的一个呃一个库,它可以完成这件事哦,那么我们来可以来具体看一下。
我这里应该也有他的一个demo,我来看一下,这个demo要怎么修。
有这玩意,OK那这样吧。
好像不是特别方便,我试一下,我在本地区,OK然后这样应该就可以去查看了,哦我知道了,应该还可以看一些别的例子,比如说,啊好吧,不好意思,我这边好像暂时看不了这个例子,就是基本上就是刚才那个例子吧。
就是我们可能可以,就是比如说这这里通过一个简单的调用,然后就可以产生一个端口转发,然后我们在本地就可以打开浏览器里的一个,去做一个显示,相当于说嗯我们我们正常来讲,你应该通过本本机上的一个渲染文件。
或者一个三维查看文件去打开一个点云或者match,但是可能呃这种方式如果不奏效,比如说你的远程服务器没法做这件事的时候对,然后你就你就应该对,可以通过一些别的方式,比如说最最简单的就是把它下到本地。
然后重新查看,然后第二种就是说我,我我觉得可以提供一些方法,然后你在本你在远程打开一个web服务,然后这种情况下,我们可能就可以在本地更方便地查看,OK然后那么今天基本上我们就到这里。
然后大家要是还有什么问题的话,就可以呃扫描我们的二维码,或者到我们games的002的一个主页上去,添加这个群,然后我们可以在群里做一个打印,然后呃如果没有其他问题的话,那么我们今天就到这里。
GAMES002-图形学研发基础工具 - P8:三维处理软件 - GAMES-Webinar - BV1cC411L7uG
大家好,今天是我们Games002课程的倒数第二节课。
然后我们根据大刚的安排来讲一下,三维处理的工具,关于三维处理工具其实是指的是我们图形学中,遇到的一些专门用来做比如说几何处理,做渲染和做一些重建的软件。
然后我们今天的内容大概可以分成这三个部分来进行。
首先我们会介绍一下基本的几何处理软件,然后包括Cloud Compare,然后包括MeshLab这些比较知名的软件,然后其次我们会介绍一下怎么样用一些其他的,比如说吊库的方式来做结合处理。
比如说使用Open3D相当于是一个代码库,然后第二部分我们将介绍渲染工具,然后这里会有一些常见的比如说像Blender,或者KeyShot这样的渲染工具,然后第三部分我们最后将会介绍一下。
几何重建的一些工具,包括最常用的CodeMap和一个商用软件,Context Capture,然后这样的话,基本上就是我们今天的全部内容,然后最后会有一次作业的布置,好的。
首先我们来讲一下几何处理的软件,Cloud Compare这个软件其实它从名字上大家就可以看出来,其实是用来做点云的一个处理的,只不过它也支持一些额外的功能,比如说去做一些网格的处理。
但它最主要的功能是对3D的点云去做一个几何处理,比如说包括你想要去对这个点云做一些变换,然后对它做一些过滤,都是可以用Cloud Compare这个软件,然后这个软件它是一个开源的软件。
可以在网上找到它的C++源码,所以等于说其实如果你要写一个C++的程序,你是可以直接去调用它的一些函数的,然后同时它作为一个软件,本身是自带图形化界面的,所以给我们一些很方便的功能。
比如说它有一系列插件,能够比如说你给出一个点云,然后它就能估计它的法项,然后或者去做一些点云的过滤,比如说剔除掉一些异常的点,然后以及做一些点云的分割。
然后这个插件在Cloud Compare里还是挺通用的,就是可能它有一系列的标准插件,然后你也可以做一些实现一些自己的自定义的插件,然后一系列插件组成了Cloud Compare的一个扩展功能。
然后它的基础功能就是一个点云的显示和查看,比如说像这幅图里面,展示的是用我的电脑在Mac上,直接对这个点云做的一个显示,然后Cloud Compare基本上就是一个这样的3D查看界面。
然后它最基础的功能就是显示点云,然后显示坐标轴,然后显示一些比例尺,然后你可以在左侧和上方,它有很多按钮,然后这些按钮都是用来做一些点云编辑,或者一些点云的处理,然后具体的功能大家可以查看。
这个Cloud Compare它的一个主页,然后这个东西它应该是,基于OpenGL来做的渲染,然后底层应该是调用了C++的一个处理库,应该是PCL处理库,然后刚才的这个Cloud Compare。
它其实基本上只能做点云的一个处理和渲染,然后但实际上我们可能平时更通用的一种数据格式是,三角网格或者说就是MeshLab,这名字里的Mesh,然后MeshLab的话它就比刚才提到的。
这个Cloud Compare更加通用一点,MeshLab不仅可以去做点云的一些处理,它也支持对三角网格进行一些处理,它本身最主要的功能,都是集中在对网格的一些处理上,然后它本身也是一个开源软件。
用C++编写的,并且除了图形化界面以外,MeshLab实际上提供了一系列的Python API,也就是说你甚至可以在Python的代码里,去调用MeshLab的一些API,然后实现你想要的一些功能。
就不需要在图形化界面上进行手动操作,然后MeshLab它也支持各种网格算法,因为毕竟它本身就是专门做网格处理的,然后包括一些网格简化,然后包括一些网格的一些图包计算,然后这些的一系列功能。
然后也可以在MeshLab的主页上,查到它的官方文档,然后这里展示一个MeshLab的例子。
然后这个就是MeshLab的一个界面,然后这图是我从网上找的,大家可以看到它基本上显示网格,就可以像图中这样的形式,然后这里是一个Stanford的,它的一个Bunny的一个模型。
然后这个也是作业中会用到的一个模型,然后它在这里可以显示出这个网格的,首先是每个顶点,然后其次它把三角面片,以这种wireframe的形式显示出来,并且MeshLab能提供的最重要的一个功能。
就是说你能把这些网格给显示出来,并且你还能去选取这些网格,对它做进一步的操作,比如说对它做剔除,或者对它做一些其他的一些变换,然后像图中这个例子,其实就是用了MeshLab的一个一系列功能。
比如说在这里列出来的,实际上是一系列选取的功能,然后它图中显示为红色的这些三角面片,都是已经被选取出来的,然后可以看到其实作为一个三维的,这种可视察看软件,然后MeshLab最主要的功能就是。
你能够直接在上面去编辑3D数据,然后比如说对网格去做一些选取这些功能,可能如果我们要从代码上其实是很难实现的,所以尽管有时候大量的库,已经提供了健全的一个集合处理的函数。
但是真正需要去做一些可视化的分析的时候,可能我们也会借助到像MeshLab这样的一个,带有图形界面的软件,然后我们去做一些这种能够直观的,去做一些网格的一个编辑操作,然后这个基本上就是另一个。
几何处理工具MeshLab,然后这里我可能每一个软件,不能够特别细致的去介绍,因为大体来说他们的功能都是类似的,就首先他们有一个3D查看的功能,然后其次他可以对他所支持的数据结构,进行一些简单的编辑。
然后进行一些复杂的或者说复杂的处理操作,比如说刚才提到的网格简化,图包计算或者说一些更加复杂的一些网格算法。
然后这里的话我们可能重点会把比如说,如果讲几何处理工具,我们会讲有哪些几何处理工具,然后他们的网站是什么,然后他们的大概用法是什么,然后给大家做一个相当于工具书式的一个引导,就是根据自己的需求。
然后比如说你要处理网格,你就可以去找MeshLab工具,然后你要处理点云就可以去找Cloud Compare的工具。
然后他们的一些特点也在这里列出了,就是有的软件它是开源的,然后你就可以直接去看它的代码,甚至修改它的代码,把它的代码放到你自己的项目里去,然后有的软件它可能是商用的,这个时候可能对。
就是如果像商用软件的话,后续会遇到一些版权问题,就是如果你在没有许可证的情况下,肯定是有版权问题的,然后这又取决于这个项目具体的一个情况,比如说如果我们做一个学术论文的话,基本上要用也是用开源软件。
然后如果要用商业软件的话,是需要去购买它的使用权的,然后这里也是一个区别,然后其次还有一些区别就包括,像是图形化界面以及它的API支持上的区别,就是有的软件有的工具,它可能并不是一个软件。
它没有一个图形化的交互界面,而另一些工具它可能有图形化交互界面,但是没有方便的API调用,就比如说cloud compare,它可能只能支持,它确实有一些python绑定,但实际上本质上来说。
它还是一个纯c++的一个软件,然后你可以调用它,但是你也只能用c++的方式去调用它,如果你想用python的方式调用它,那就需要一系列复杂的过程。
然后另一些软件它是有直接的python API能够使用的,比如说我们这里的mesh lab,然后这个软件的话,你基本上就可以既方便的用c++去调用,然后也方便的用python API去调用。
然后最后我们会给每个工具介绍它的大概的,比如说一个例子,然后以及一个支持的算法,然后这个基本上就是我们今天讲课的一个逻辑,因为更主要的是一个提纲式的形式,然后每一个工具大家想查看它的具体文档。
都可以通过下方的网址来进行查询,然后说到说回mesh lab,然后它是有一个python绑定的,这个绑定工具就叫py-mesh-lab,然后这个东西应该是比较方便。
就能用pipe或者conta给安装起来,然后安装了之后,你实际上就可以去调用mesh lab的一些内置的一些,函数了,比如说像这里展示的这个例子,它可以首先import了mesh lab之后。
然后你就可以去做一些比如说load mesh这些操作,或者说计算它的图包这个操作,然后以及把当前的mesh保存下来,然后做一系列的编辑,这些编辑都可以通过python。
这个python函数调用的形式来完成,然后py-mesh-lab它的一个文档也在这里,然后里面可以列出它的所有支持的一些API和功能,然后这里有一个例子,就是我觉得还是蛮特别的,对于这个集合处理来说。
因为这里的例子是,它在讲py-mesh-lab的一个特殊功能,就是说它可以定义一个过滤器,然后这个过滤器是怎么说,它可以大家可以看这一段。
然后它是比如说首先我用py-mesh-lab生成一个mesh set,然后它可以在上面做一系列的操作,比如说这里有一个可以坐标做一个拉普拉斯的平滑,然后可能中间省略号的部分,它还做了一系列额外的操作。
最终它把这一系列的操作,都可以通过save filter script来保存成一个本地的文件,然后这个文件里就记录了你所有做的这些操作,然后下次你想要复刻同样的操作的时候。
你就可以直接load来这个文件,然后就可以去对它做同样的一系列操作,而使你的输入的网格在不同的网格上,也就是说它提供了一个方便的定制脚本的一个功能,然后我觉得就这种功能。
其实还是在mesh-lab里比较实用的,所以最终总结一下我们mesh-lab的话。
它其实兼顾了它的图形化界面,和它的一个编程化的一个管理方式,然后你可以先在这个图形化界面中做一些操作之后。
然后使用一些它的API去做一个调用,可视化的界面可以比较方便的验证你的正确性,而后续的脚本化的操作,能够帮助你批量的处理这些几何的单元,然后这样的话基本上就是我们要讲的,两个主要的几何处理工具了。
然后实际上除了刚才提到的那两个软件以外,其实还有另一个,这个其实不能叫做真正的几何处理软件,但是它确实是一个几何处理上的一个非常方便的工具,它就是Open3D。
然后Open3D的话它本身是没有图形化界面的,就是它不是一个软件而是一套代码库,它支持的就比mesh-lab可能更加通用一点,它是做一个3D的几何处理,等于说所有的基本上所有的三维处理。
它可能都有所设计,然后本身Open3D它是用C++来写的一个代码库,但是它其实提供了一个python的绑定,所以说想要从python调用它其实是非常容易的,然后它是支持各种3D算法。
包括前面提到的点云处理,网格处理以及可能还有一些它额外的一些处理,比如说它可以做射线求交等一些计算几何的一些算法,然后它的文档是在它的主页上写的,其实还算是非常清楚的。
然后Open3D本身也是一个强大的几何处理工具,它是有一系列的可视化的一个函数,相当于说我们在之前的几何处理工具里,是通过软件打开一个可视化界面,然后你在这个界面里进行操作,而Open3D里则不一样。
它一开始就是一个代码库,然后你要调用它的代码去产生一个图形化的窗口,然后在窗口里可以查看Open3D的一些结果,这个是Open3D它作为一个代码库的一个特点,可能本身来说我们在平时使用的过程中。
会结合起这种MeshLab和Open3D,因为MeshLab它本质上还是一个软件,如果你要在你的比如说你写的python代码里去调用MeshLab,其实还是有点复杂的。
然后相当于Open3D就作为你的代码中的替代品,就是如果你要在代码里嵌入你的几何处理,比如说你想要处理一个点云或者简化一个网格,然后Open3D它作为一个代码库,提供了非常方便的一个API。
然后这里它的官方文档上是有一些python的examples的,就是说比如说每个功能,它可以比如说这个example里包括了,Open3D可以做的有哪些事情,然后每一个Open3D可以做的功能。
它都会有一个专门的py文件,然后里面会写好一个example的代码,然后可以参考代码去进行一个学习,比如说Open3D它是怎么样去处理camera的,它是怎么样去处理相机的一个轨迹。
这里就给出了一个样例代码,然后实际上Open3D支持的功能也有很多,比如说包括各种点云和网格的处理,都可以在这个geometry里找到,然后它对这个点云数据的对网格数据的一些读取,都在IO里可以找到。
然后以及一系列的可视化功能,这些都是比较常用的,所以Open3D对我来说可能是一个,比起前面几个软件更加通用的一个代码库,然后前面几个软件平时就更多的用于,提供一个直观的可视化结果。
然后这里Open3D其实也支持了非常多的功能,然后大家可以大概了解一下,它可以做一些最主要的,首先是它可以打开一个可视化的界面,然后去查看我们的三维物体,这个就和软件像MeshLab一样。
然后它支持一些额外的一些事,比如说像对机器学习里的一些操作进行支持,然后或者说去提供一些三维处理的算法,比如说网格处理或者做一个ICP的匹配,然后以及它支持对3D data的一个读取和保存。
然后它可以支持一个CPU和GPU的计算,然后总体而言的话,我们总结一下几何处理工具,基本上可以分成两种,一种是说更注重它的可视化,像MeshLab一样,然后这种可视化可以让你在开发初期。
最快的确定你的一个正确性,或者确定你的方法的一个可用性,然后在你确定方法可用了之后,可以通过像Open3D这样的库,然后去做一些真正把几何处理变成你的代码的,一个几何计算的库。
然后在讲完了几何处理工具之后,我们可以来看一下渲染工具,渲染工具的话,这里可能我们最主要的就是Blender工具了,因为Blender实在是渲染中非常重要的一种工具,所以我们几乎所有的事情。
都是可以在Blender里去完成一个渲染的,然后像Blender本身的话,它应该是一个开源的软件,然后并且是有Python代码来写的,然后它能提供一个图形化界面和它的Python API。
因为它本身就是Python代码写的,所以它肯定是有Python API,然后以及Blender的一个图形化界面。
可以在这里看到一个例子,然后Blender图形化界面的话,大家可以看到它其实已经是一个非常复杂的一个系统,然后支持各种各样的功能,然后基本上比起之前的MeshLab,MeshLab可能在几何处理上。
更多的是一个比较简单的一个开源工具,而Blender的话在渲染工具里,其实算得上是一款工业级的渲染工具了,然后它这里就更加复杂,然后Blender的上手难度也会比MeshLab要难得多。
因为之前的Cloud Compare和MeshLab的,它们的功能和使用方法都非常简单,所以刚才就没有怎么介绍,这种基本上像之前那两款工具,基本上你上手了就马上知道怎么用了。
但是Blender其实并不是这样,Blender它本身因为支持特别多的功能,然后有一个特别复杂的一个软件系统,所以其实我们还是要花很多时间,来学Blender的一个使用方法。
然后这里下面这个网址是Blender的一个,官方提供的一个中文手册,然后大家可以在上面找到一些它的官方教程。
然后除此之外,其实也有非常多的关于Blender的教程,然后我这里列举了一些,首先是在学术使用上,如果你要把Blender作为一个学术上渲染的一个工具,那么这里实际上,就有GitHub上有个库。
它是专门做学术渲染的,然后Blender Toolbox里,有非常多的一个example的一个脚本,然后可以进去学习一下Blender的一些使用,然后以及Blender本身的教程。
包括这里列举的一个比较知名的知乎教程,然后在知乎教程里,它也提到了下面这两个教程,这两个教程分别是YouTube上的一个博主,和B站上的一个博主,然后实际上像这样的教程,在网上还有非常多。
然后大家基本上大同小异吧,然后我觉得Blender的学习,其实还是需要一个比较长时间的积累的,因为它毕竟确实是一个非常复杂的工具,然后大家可以根据自己的需求,去搜索相应的教程。
而除了Blender的这种工具以外,其实也有非常多的其他的一些渲染工具,比如说非常知名的一个工具就是Houdini,然后它是做电影特效和游戏特效的,然后本身。
Houdini可能是一个更加高门槛的一个工具,然后我们本节课就没有介绍这个,然后可能下一节课会介绍一下Houdini,这个我不确定,我会后续和另一名讲者商量一下我们的大纲。
然后以及另外一种工具就是不像Blender,它可能基于一些光线化的渲染为主,然后另一种工具像KeyShot这种工具,它的目标并不是说我提供一个高效的渲染,而是KeyShot这种工具它更注重真实感渲染。
所以它其实采用的是一个光追算法,然后本身KeyShot也是一个非常重量级的双页软件,然后它提供的主要是这种光线追踪的真实感渲染,然后除了Houdini和KeyShot之外,应该也有一些其他的渲染工具。
但是我们平时日常中接触到最多的,可能还是Blender的这种渲染工具,然后以及一些比如说像UE4或者Unity这样,真正本身就包括了非常多的功能,然后渲染是它的一小部分的这样的工具。
然后最后来介绍一下我们的重建工具,重建可能并不是一个大家都知道的一个功能,重建这个词本身其实指的是三维重建,三维重建是说我从一系列的照片中,生成我的一个3D模型。
大家知道3D模型的数据获取来源其实有两种,一种是通过,比如说你在CAD里去手抠,去自己去相当于一个艺术家去给他创作出来,一个三维的模型,然后另一种方式是通过一些算法,从真实的世界中恢复出来三维模型。
这种算法可能是一些雷达的扫描,可能是一些基于图像的一些重建,然后我们今天要讲的重建工具里的重建,其实指的就是刚才提到的,我们从图像中恢复出一个物体的三维模型,相当于说最常见的case就是。
我们对一个物体或者对一个场景,进行照片的拍摄,然后最后把这些照片拿来放到算法里,算法就自动生成一个,你所拍摄场景的一个三维模型,然后这里要介绍的首先第一个是重建,是重建里最重要的一种工具。
它叫CodeMap,然后CodeMap的话,它本身是一个,其实是本身是一篇学术论文附带的一个工具,然后目前来说,它能处理的一些功能就是包括未知的估计,就是说你每张图片之间,你首先得确定它的相机姿态。
然后你才能做进一步的重建,然后这里就涉及到你要怎么确定这个相机的姿态,基本上CodeMap是一个最主流的方法来做这件事,然后在确定相机姿态之后,CodeMap支持两种渐进式的重建,第一种是做稀疏重建。
第二种是做稠密重建,稀疏重建就是CodeMap会根据这些相机的姿态,然后它大概的估算出三维物体所在的一个位置,并且对三维物体上的一些特征的一些点,然后进行它的位置的确认,然后最终你得到的一个稀疏的点云。
就是稀疏重建的一个结果,而这些点云可能本身并不能很好的做一个可视化,然后这就需要我们去做进一步的稠密重建,然后使用一些像婆松重建之类的一些方法,然后去把之前的这些未知和稀疏点云。
给它变成一个稠密的一个点云或者变成一个网格,然后总体来说,CodeMap就是一个这样的一个重建工具,然后它本身是一个开源的软件,可以在GitHub上找到它的代码,以及它是用C++编写的。
然后可能会有一些比较复杂的一些包的依赖,然后本身CodeMap也可以在CUDA上运行,它提供一个途径化界面,就像右下角所示的非常简单的一些界面,相比于Blender来说。
CodeMap因为是更主要用在学术上的一个工具,所以它本身的界面大家可以看到就非常的简单,然后以及它能提供一个也同样非常简单的Python API,然后这些资料都可以在CodeMap的主页上去找到。
然后这里是它的一个具体的界面,这里简单来说就是它围绕了一个物体,拍摄了很多很多图像,然后最终它把这些图像所拍摄的那个物体给重建了出来,然后就是中间的这个雕像,然后以及这些它所拍摄的这些照片。
它们的相机都已经被确认了出来,也就是这个界面中这些红色的这些锥体,其实就是CodeMap最终确认出来的一个相机的一个位置,然后我在这个B站上找到了一个简单的例子,这个例子上的话就是展示了这个up主。
他用他拍摄的一系列照片,比如说这里是一个石狮子的雕像,然后对这个雕像环绕一周进行一个拍摄,最终把这个拍摄的这里应该是,27张图片,然后拿过来去用CodeMap做了一个重建。
然后可以看到重建效果其实还是可以的,然后最终他把这个模型拿到MeshLab中进行渲染,就是右图所示的这个样子,然后这里基本上就是比较完整的展现了CodeMap的一个用法,然后这个用法的话。
对就体现了首先是它的一个位置估计的功能,然后其次它生成了一个可以导入MeshLab的模型,就是后面这两步,稀疏重建和稠密重建得到的结果,然后刚才提到的主要是CodeMap。
然后它更多作为一个学术上的一个比较好用的工具,而实际上在商用领域,其实还有一个更加重量级的一个工具,它叫Context Capture,然后和CodeMap的区别是,这个工具并不是开源的。
它是需要付费使用的,然后它是一个这样的商业软件,然后并且它支持的更多是户外的一个实景,然后比如说甚至是你的一个无人机航拍的一个结果,然后它可以对这些拍摄的结果进行专业的一个,怎么说呢。
就是它相当于为了工业级应用而设计的,一个更加专业的一个位置估计和重建方法,然后Context Capture,它本身是提供一个图形化界面,加上Python的API,这里可以看到它的一个基本界面。
然后这个界面可能我使用的时候,感觉操作还是比较简单,然后不像Blender特别难上手,Context Capture基本上还是一个比较自然的过程,当然它也需要经过CodeMap所说的那几步。
就是首先你需要去确定相机的位置,然后对它进行一个西数重建和稠密重建,最终得到的也是同样的网格模型,然后只不过Context Capture,它比起CodeMap有一些优势就是,因为它是工业级的一个软件。
所以它很多算法的细节上进行了性能的一个调整,一方面来说Context Capture,能够生成更准确的相机的姿态,然后另一方面来说它也对最后生成的网格,做了非常多的精细化处理。
所以最后其实是能生成非常精美的网格的,然后Context Capture,它的文档可以在下面这个链接里找到,然后这个链接的话,基本上就是它的一个官方提供的一个中文文档。
然后提供了一个非常简单的一个用户手册,以及Context Capture它本身是支持一个Python调用的,对之前这里也提到的,然后这个Python的调用也同样在它的用户手册里有所提到。
然后等于说你其实可以直接从Python代码去使用它,然后这里是从网上找的一张例子,这里是展示了这个Context Capture,它对一个真实的户外场景进行重建的结果,这个照片应该是从无人机里拍出来的。
但是最终Context Capture就把这些无人机拍的照片,恢复成了下图这张非常精美的三维模型,然后它实际上大家可以看到,这个模型还是有非常高的逼真度的,就不像可能有时候你用CodeMap得到的。
只是一个非常粗糙的模型,然后Context Capture它有一个更加强大的功能,对他这里说了是哪里,对是Brown University,然后除了刚才说到这两种重建工具以外。
其实还有一些别的重建工具像MetaShape以及MeshRoom,对然后这些工具本身来说,可能并没有前面所提到的那些工具那么知名,然后大家可以根据自己的情况去选择使用,OK那到这里的话。
基本上就是我们今天要讲的这些工具的一个主要内容,然后这个作业的话我稍微后面也来介绍吧,这里先跟大家简单讲一下,就是图形学中的这个三维处理工具的话,其实肯定不止我们列出来的这三种。
就是除了几何处理除了渲染除了重建,可能你还会遇到一些比如说针对于图形学中某一个细节领域的一个专用的工具,然后我们这里只是做一个概括性的介绍,就是列出了一些最常用的一些工具。
然后以及他们的一些特点和使用文档,然后这里的话,并不是所有工具都需要你非常仔细的去了解,像是Cloud Compare或者MeshLab这种工具,基本上为了我们可视化而服务的。
然后你可以只需要把它软件下载下来,然后自己去尝试一下,就有一个初步的一个使用了解了,然后像Open3D和Blender这种工具,可能还是需要细致的去查看它的官方文档,然后以及甚至在网上去寻找一些教程。
或者一些样例代码来辅助自己的学习和理解,然后最后像ConvMap和Context Capture这种工具,在图形学里其实并不是那么通用,因为几何处理和渲染可能是非常通用的。
但是重建的话只是因为刚好是我所熟悉的领域,所以我拿出来讲一下,然后像这样的工具肯定还会有很多,这里的话我们要对这些工具进行使用,最主要的还是要看自己的需求,比如说刚才提到的它是否是开源软件。
然后它提供了图形化界面,然后是否提供了这些Python的API,都是到时候需要考虑的,然后以及软件本身的性能对比,可能也是一个非常重要的部分,所以简单来说在这个图形学的学习中。
我们肯定是要借助非常多的工具的,然后对于这些工具之间的一些区别,可能需要首先做一个比较详尽的了解,然后再选择一个适合你的需求的三维处理工具,然后去进行深入的研究,然后最后像对我来说的话。
我可能目前为止比较熟悉的,比如说像几何处理的时候,我比较熟悉的就是OpenCD这个工具,所以我遇到了很多问题都可以用OpenCD来解决,然后像大家也可以在学习的初期就都尝试一下。
然后在等到你逐渐熟练逐渐掌握的时候,然后选择一项你认为最好的工具,然后去往下继续的深挖,然后最后等你成为比如说这个工具的专家的时候,然后后续再出现类似的问题,其实你都可以这个举一反三。
然后以不变因万变很好地去解决了,然后最后的话我们来讲一下今天的作业,今天的作业的话也比较简单,这个可能是最后一次作业了,然后这里的话有两个简单的这个作业说明,第一个是是说我们做一个几何处理。
比如说对这个Stanford的Bonding模型,去做一个网格的简化,然后简化最终我们需要得到一个面片数量在,比如说你需要得到一个非常简化的模型,它的面片数量应该在100到1000之内。
然后以及一个这个稍微不那么就是粗糙的,更加稍微精细一点的简化结果,它的面片数量在1000到1万之间,然后这两个模型都是一个作业一的一个需求,然后最终需要把这个模型的OBJ。
或者POY或者什么格式的一个文件给上传,然后作业二的话是一个附加的分数,就是这个+6的部分,然后它是需要你使用这个任意软件对这个模型进行渲染,比如说我们之前提到的Blender。
或者我们提到的KeyShot,然后你可以去更改这些模型的材质和光照,因为Bonding模型本身它是没有一个材质的,就是它只提供这个网格之间的连接关系,然后你可以给它添加上你自己定义的材质。
然后尝试不同的这种材质和光照,最终对比效果把这个渲染结构的图片给上传,然后我们的这个作业三也需要提交一个PDF文件,然后需要注明这个序号,如果涉及到这个编写代码的部分,比如说你是用Open3D来做的。
或者你是用Python API调用Blender来做的,那需要将代码复制到文档中,然后如果你是用软件来操作,就需要把操作的一个示意图,以这个截图的形式复到文档中。
然后最后我们的截止日期和之前的作业也是一样,在6月4号的晚上23点59分,然后这个基本上就是我们今天的全部内容了,大家要是还有什么问题可以在弹幕问我,然后我看一下。
然后大家要是这个需要进一步的交流和讨论,或者说有什么对课程本身的一些疑问,都可以扫描我们屏幕右上角的这个二维码,然后去到我们课程主页上去添加微信群,添加QQ群。
然后也可以在QQ群里对这个主讲者进行一些询问,然后我看看有一位同学说,有没有网页光线追踪算法渲染的工具,这个我还真不了解,因为现在网页端的计算能力其实非常有限吧,就是你如果要想在网页端做光线追踪。
可能对于比如说对于webGL来说是不太实际的,然后后续Chrome那边应该是搞了一个对webGPU的支持,然后这个webGPU的话,后续说不定能够去支持网页端的光追,然后这个我本身因为不是做渲染的。
所以就不是很清楚,对,对,我是做三维重建的,然后,所以其实今天讲的这个第三块,就是我们涉及到的一个重建工具,然后这块就是我主要比较熟悉的三维重建,然后以及另外主讲者。
他是相当于他的方向是物理的一个仿真和模拟,然后后续可能他会介绍一下,这个一些比如说物理仿真的软件,或者介绍一些像Houdini这样的软件,嗯,OK,那今天的课程就到这里,然后后续有问题也可以像之前说的。
加入我们的课程群。
嗯,今天就说到这里啦。
GAMES002-图形学研发基础工具 - P9:仿真渲染软件 - GAMES-Webinar - BV1cC411L7uG
OK那我们今天就开始吧,今天给大家带来的内容呢是仿真渲染软件啊,我们为什么要讲这么一个内容呢,其实主要就是因为在这个图形学的科研,过程当中啊,最后的一个最后总是需要一个结果的展示的。
就是无论是通过视频或者是一个什么样的模型,而呃一般都会展示一个呃3D的最终的结果,对呃这也是图形学他这个直观的体现之一啊,就是我们一般最后都可以做出一个很呃,做出一个成品来。
然后是大家可以直接去看到的呃,那么在这种科研进行到调试结果的过程的时候,呃,一般会经历这样一个这样一个这个图所示的,这样一个过程啊,首先呢你是用这个算法去生成一个3D的模型,或者是序列,然后你会呃。
你需要把这个3D模型和序列,去进行一下可视化呃,因为3D的绘制呢其实是比2D要难很多的,呃因为呃对,因为它涉及到这个三维的一些透视变换呀,什么的事情,就是你你用人眼去观察一个3D的模型。
和你用人眼直接去看一张平面的画,那肯定是不一样的对吧,所以在32D的绘制,你很有可能是自己就可以写,虽然也有很多方便的API,但是2D的话就难度会小很多,但3D换到3D的话,你可能自己写的话。
就会每次都自己写的话就非常麻烦了,所以这个时候我们往往都需要借助一些软件啊,和呃一些工具去很方便的去可视化你的结果,额,那可视化之后呢,就你会预览一下结果,然后根据这个结果看他哪里出了问题。
然后再反过去调试呃,调试你的算法对吧,然后经过呃经过若干轮迭代之后,你终于产生了一个满意的结果了,你把算法改到足够鲁棒了,那么这个时候你就到了最后一步,就是把这个预览的结果,渲染成一个很很漂亮的样子。
就预览的结果呢它往往是一个,比如说呃我拿我的物物理模拟来举例子,一般我我们可做流体的话,很可能是用呃有一种方法叫做粒子法对吧,就是把流体去去离散化成一堆粒子,那么预览的结果。
很可能就只是把那些粒子在三维的位置中,打出来,就是你在三维中有这这样一个例子,那就在这上面显示个点,那呃在在预览的时候,可能流体就是一堆散点,但是在渲染的时候,我们就需要把这些散点呢。
转化成流体表面的样子,让它看上去真的像水或者像烟雾这样子的事情,嗯对,那么我们今天讲的内容呢,其实就是针对后面这个预览结果和渲染结果,这样的一呃两两个工具,那么也是按照惯例,我先关掉呃。
我的摄像头为了不挡后面的PPT哈,呃行行,我们今天讲的内容呢其实可以分为两部分,主要是通过两个例子去分别的去介绍两个软件,第一个要介绍软件的是胡迪尼的用法,第二个是介绍power view的用法,呃。
首先我们会通过渲染流体动画的一个例子,来给大家介绍如何去使用HDI,这只是大家带家一个入门,今天展示只只能说是展示胡迪尼的很小一部,很小很小的一部分功能,它还有很多强大的功能呃。
也是大家可以自己去探索的。
呃,我在这个PPT里呢也给出了胡迪的官网,大家可以呃在课后下载直接去看官网的,是官网的上面,你可以点到这个learn学习,然后再呃learn下面会拉出一个单呃菜单。
然后你选到learning paths,就可以找到这个呃右边这样一个页面啊,这里面就是一个很详细的,也是case by case的一个教学,就你点进去他就会带你去完成一个例子。
然后通过这个例子去给你介绍,胡迪尼有哪些强大的功能,OK那么我们直接呃,先先给大家介绍一下胡迪尼的界面吧,就是你打开HDI这个软件之后,它弹出的窗口就是这样的一个布局呃,主要有几个区域。
我来给大家介绍一下,首先最左边这个最大块的面积叫是场景视图,现在我们还没有加任何东西,所以这个场景视图它只有一个呃地地平线对吧,就是D平面,也就是Y等于零的一个平面,然后这个平面也是它划分了一些网格。
然后右上角呢额这一小块是参数视图呃,一般我们呃后面就会看到啊,就是在我们需要调试,比如说光照啊,相机或者是物体的这个位置,和它的旋转等等这些这些属性的时候,这些需要参数的东西。
一般都是在这个视图里去调的,然后右下角呢是节点网络视图呃,节点网络视图呢是胡迪尼他的一个工作的模式,它就是一个呃拖拽节点,拖拽模块的一个方式呃,就有点像那个就是拖模块,去进行编程的一个感觉。
就每个模块呢它会有一些接口,一些输入接口和一些输出接口,然后你通过串联他们的输入输出,来把这些模块串起来,从而让它形成一个完整的工作流,然后呃包括胡迪尼,你去加载一个正常的几何图形什么的。
也都是通过节点去加载的,就一个几何它可能对应的一个节点呃,最最后还有下面这一条长条的东西,我们看到他其实有一个进度条的显示,然后还有左下角这边有一个播放,快进停止这些按钮,这其实就是当你在胡迪尼去导入。
一个序列的时候,它可以就是像动画一样,一帧一帧的给你播放出来,这个对于我们直接去可视化的话是非常方便的。
然后大家呃接下来我就开始讲具体的用法了,就是我直接带大家去展示一下,如何用胡迪尼去渲染一个呃就是水滴的动画,就是我现在已经有一个水滴动画的素材,然后教大家怎么去导入胡迪尼,并且去渲染成一个很漂亮的结果。
然后如果在这个过程中,大家有问题就随时弹幕提问,就好好的,第一步呢我们需要添加这个物体,就是在胡迪尼中去添加一些物体,添加物体的方式,就是在我们刚才右下角那个部分是叫呃,就是那个网络模块。
节节点网络模块在呃节点网络视图,不好意思,在节点网络视图当中,我们去插入一个模块,就可以添加一个物体,这个模块叫做geometry,那我们其实就是在这个网络视图当中按下tab。
然后他就可以给你让你输入一些字母,然后根据你输入的字符去查找呃,相应的模块我们直接输入JAMECH,它就可以给你找到,然后你放置好模块之后呃,你再双击进入那个只要木取的模块呃。
它又会进入一个这样的空的页面,你在这再在这个页面下,继续插入一个叫file的模块呃,file模块的意思呢就是它会去给你导入一些,导入一个或者多个文件,如果你想导导入多个文件,那相当于它是按帧给你导入的。
就是你可以把你的呃,把你的这个文件名命名成一个呃字符串,然后加一个数字,然后点后缀名的一个这样的形式,比如说这里红框所展示出来的,大家可能看不清楚,我可以给大家放大一点呃,我不知道哦。
好像我这里没办法放大,那那就大家就看一下吧,就是这个红框里的内容呃,我们可以看到最后他这个文件名其实叫做,Surface particles,百额dollar f,点OBJ。
然后这个dollar f在HOODINI里面,它就会替换成这种0123,一直到你呃,你文件有多少个,它就会给你到多少的标号,就是它会按照这样的时呃,按按照这样,就是它相当于是哎。
dollar f会给你匹配一个数字,然后他就按照这个数字的顺序,给你加载所有的这个OBJ文件,呃,然后呢,我给这里可能需要大家不太了解OBJ文件,我简单说一下呃。
就是OBJ文件呢其实就是一个33D的描述,一个3D模型的一个文件,比如说你在游戏当中可能遇到很多人物,他呃人物的这个模型就是整个人物的模型,它一般都是用三角mesh来完成的,那这个三角的mesh就是呃。
一般来说就是要存这些三角,三角形的顶点所在的坐标,然后以及这个每一个三角形,它的三条边的连接关系,那么OBJ文件就可以去描述这样一个呃,三角mesh的一个数据结构,然后另外呢呃他也可以去描述粒子。
就是粒子,其实就是相当于你只把顶点坐标列上去,然后不给任何连接关系对吧,那就是粒子了,额,所以我们这今天这个例子呢,其实就是一个用粒子表述的,一用力粒子描述的一个流体,一个水滴。
然后这个水滴里包含很多粒子,然后这些粒子呢,就是被放在了一个OBJ文件里,然后呃,每一帧我们都会对应这样一个OBJ的文件,所以当你导入一个序列的时候,相当于你把整个这个水滴的动动态。
每一个粒子的动态都已经导导入进来了,好的这是呃,这是我们在刚才插入这个file模块之后,呃,在这个file模块所对应的这个参数下面,我们在参数视图中就可以去修改它呃,它所需要读取的文件。
然后呃就是这样指定之后,你其实就可以在左边,就是刚才我们说到的这个场景视图里。
就可以看到这些粒子的位置了,他就可以给你可视化出来呃,那么在指定文件之后呃,有可能就是有可能。
你你你比如说你场景中有很多个水滴对吧,然后每一个水滴你都只有一个一个OBJ文件,那这个时候你可能需要,如果需要把所有的水都渲染出来的话,你需要把所有的粒子合并在一起。
那这个事情其实就是在我们geometry模块里面,去加上这么一个merge mermerge模块,也就是合并模块,嗯刚才我们加的是surface particle。
然后它对应的是左上角这样一个文件的节点,然后比如说我们现在还有inner particles,就是surface particles,在我这里呢是指流体这个表面的一些粒子。
然后inner particles是呃流体内部的粒子,然后我需要渲染整个流体的话,我就需要把表面粒子和内部粒子去合并起来,那我们就直接把这两个file模块,文件模块,就呃,它的输出去。
导入到一个合并这个merge模块的输入上,那这样的话,他就可以直接把这两个OBJ文件去呃,求个病对吧,他就把所有的粒子都加进来了,嗯那就是接下来呢我这个场景里可以看到啊,就是像右下角这个图。
我这个场景里其实很简单,就一个水滴,然后再加上一个圆锥体,然后我们想要可视化,最终可视化的结果呢其实就是这个水滴,它往下落往下落,并且然后接下来被这个水滴刺破,然后刺穿这样的一个动态,到最后会有视频呢。
大家可以呃,最后视频的话大家可以看一下,所以场景中其实就两两种东西,一两个几何,一个是我们刚才这里插好,插入好的一个呃粒子的粒子,合并好的这样一个几何,然后另外一个几何呢,我们就插入一个圆锥体就可以了。
然后在圆锥体也是同样的,我们会呃,我们在这个参数视图当中,去指定这个圆锥的底面半径啊,然后它的中心点以及它的高度呃,这些这些参数就可以了,额那么加好了这些所有的物体之后。
我们的场景其实已经set up好了,在这个就是在这个状态下。
你们已经就可以去点击呃,刚才说的那个底下那个绿色的部分,你就可以直接点击播放,然后就已经可以看到动画效果了。
但现在呢这个动画效果,它只是给你展示了正确的动态呃,看上去还是很丑的,因为那个水还是一堆粒子,然后呃这个底下的圆锥也没有任何的材质,就是一个光秃秃的东西。
呃那么接下来的一步就是,我们把刚才的一堆粒子去呃。
变成流体的表面,让它看成看看上去很像一个流体,呃,那么我们要做的事情呢,就是在刚才那个例子的那个geometry模块当中。
我们其实刚才只有上半部分对吧,我可以给大家稍微画一下,我们刚才其实只有红框框出来的这上半部分,然后呃,上半部分其实只是把两个文件里的粒子再呃,读进来,并且再合并到了一起。
那接下来呢我们需要把它粒子去转化成表面,我们的思路是这样的,我们把每一个粒子都去扩充成一个,有一定半径的小球,那许多粒子都会有那么相邻,粒子之间其实就会有一些交集对吧,那么我们把这些相交的这个球的表面。
提取一个公共的表面出来,那么我们就可以想象对于一个很大的水滴呃,就一个很大的水滴里面充满了粒子,那相当于额每一个粒子都会扩充成一个球,那这个呃这些球的表面合并在一起,就相当于是一个大的大的水滴的表面了。
这个这个大家应该没有什么问题吧,只不过现在有个问题呢,就是在这个大的水滴的表面上,它可能会有这种很小的这种凸起,因为我们求的是每一个粒子都是一个球嘛,然后每一个粒子的球的表面直接求胶的呃。
直接求并的话嗯,就不可避免地会产生这样一些小小的凸起,所以到了这个particle to v dB的这个过程,其实就是我们这个呃把这个粒子扩成球,再把球的表面合在一起的过程,OK我再清一下,好,呃。
哦这里这里的不好意思,这里的PPT做错了,有点那个做错了,这个红框框的有点问题啊,呃就是第一个这个第一个这个参数视图,其实对应的是下面这个呃,其实对应的是这个particle to v dB。
就是其实是这样的一个关系,嗯这里这里PPT做了点出了点问题,但大家明白就好,就我们刚才我刚才所解释,这个过程其实是在particle to v dB,这个模块里做的这个模块所做的事情,呃。
也也是有参数可以调的对吧,就就比如说你刚才的那个每一个粒子,它可以扩充到一个多大的球体,这里都是可以调的,你像呃它对应的就是这里point radiscale这个参数,这个参数越大,也就是就就意味着。
你每一个粒子扩充的那个球的就球的半径越大,如果这个东西太大了,就是太大了,它可以给你得到一个,其实这个表面就不会凸起,就不会这么明显,但是它会导致你这个额,你这个表面往外也也会往外扩充太多。
就你这个水滴会比原来大很多,这就很不好看,这这就这不是不好看的问题,这是会出问出会出错,到后续就会有这个穿模的问题,因为你水滴碰撞到那个锥体的时候,是粒子碰撞到锥体,那个粒子是严格在那个锥体表面的。
而你把粒子已经往外扩充了,很扩充了很多的话,那相当于你扩充的表面,已经嵌到那个锥体里面了,就相当于出现了穿模,所以这个不宜过大,那也不宜过小,过小的话就是你如果说你的粒子的半径。
就你粒子扩充那个球的半径,比你粒子之间的间距还要额,间距的1/2还要小的话,那相当于你的粒子就是这样子的,对吧,呃sorry,这画的有点难看了,你的两个粒子就是这样的呃,你的你这两个粒子之间就没有交。
所以说它的表面就会变成这两个球体的表面,那你其实本质上还是看上去还是一对粒子,就不可能把它合并成一个水的表面了,所以我们要调到一个合适的这个呃合适的半径,那么幸运的是。
我们其实可以直接点击右边这样一个区域,点击右最右边这个小的小的按钮,然后点击之后呢,左边的那个视图就可以嗯,他就会去给你直接去可视化这个呃,就是这个这个操作之后的结果,你就可以看。
你可以去拖动这个进度条去看一下,你这个现在的半径是过大了还是过小了,所以这个问题就不大,然后需要注意的啊,就是这里有一个voxel size,这个voxel size最好是要额。
比这个radius scale要小一些,因为呃至少它不能比它大,因为它相当于voxel size,其实就相当于你的三维的图像的分辨率,如果说这个呃这个这个0。01呢,其实就代表的是网格的边长。
如果你的网格边长,比你的粒子扩充的半径还大的话,那相当于你这个网格会非常的粗糙,你根本就没办法表示出呃,你根本就不够精细,你根本就没办法表示出你想要的那个表面好,那么转化成v dB之后呃。
接下来是这个smooth模块呃,接下来就是因为为什么我们要做这个smoothing,就是刚才说过了,我们刚才就是直接得到的,这个表面是很bumpy的,是有这种凸起的,所以我们需要做一个呃平滑平滑处理。
这里也有一个参数啊,就是呃去调它呃,这个就是平滑,按照多大的领域去平滑,这个参数也是有一个合适的值的,大家也可以是直接去可视化它,然后去拖动,去自己手调这个参数,看哪个值是最合适的。
然后下面这个iteration呢就是它的迭代次数,这个迭代次数呢也不是越高就越好,反正越高肯定是越慢的,但是越慢其实并不一定越好,就这个事情也是呃自己呃,你们自己调的时候,实践的时候就可以调好。
呃那么在smooth之后,最后我们还需要呃在smooth之后,我们其实得到的这个数据结构呢,是v dB的一个结构,这个v dB结构其实并不能用来直接渲染,就是我们还是要把它转化成这种。
polyon mesh的结构,也就是一个多边形的呃,一个一个网格,多边形网格就像那个三角形网格一样,把它转化成一个polygon mesh的一个样子,所以就对应了最后一个节点。
这个节点呢它就是呃大家注意,就是把这个这个节点叫做convert v dB节点,然后这个convert v dB节点,它其实可以把v dB转化成各种各样的数据类型。
大家注意把这个convert to这个参数设成POLYG,确保它能够转化成一个多边形,match的一个数据结构就好了,好的就是从这个粒子获得流体表面的过程,大概就是这样子。
我们的思路就是把粒每个粒子变成一个小球,然后把小球的表面融合在呃,融合在一起,合并到一起,然后再进行一个平滑,最后转化成mesh,这样一个过程大家都清楚了吗,最后就是做完了之后。
我们可以看到这样一个结果,场景视图就变成这样,刚才这个上面这个圆球呢是一堆的粒子,现在就已经变成一个连续的表面了,大家有问题就可以呃,随时问,这里的PPT我后面会改一下,这这三个红框都分别往上框了。
一格应该往下,应该直接往整体往下移一格,好如果没有问题,我先继续啊。
呃我们在,就是刚才把这个流体变成了一个连续的表面,那接下来呢它这个表面其实看上去还是很,就是不透明的对吧,就是你因为你没有赋予它任何材质,所以相当于在可视化的时候,胡迪尼会按照一个默认的材质。
就是什么都没有,一个白色的一个呃,一个一个,它一个一个应该是它的默认的一种模型,去给你去可视化,那接下来呢如果要让它看的看上去,真的很像一个水,那我们就需要给这个水的表面去附上赋予材质。
那么首先呢我们需要从这个材料库里面去找,找到一个我们想要的材料,这个材料库呢其实也是在右下角的那个额,整个界面右下角的那个网络视图当中,网络视图当中其实它会有多个小标签,我们可以注意到啊。
呃我们看到其实我们现在选的是第三个标签,叫做matmaterial pale,就是材质面板,你选到这个材质面板之后,左侧它就会有一系列的蝴蝶里自带的一些呃,材质,这里面还是挺丰富的,然后对于水来说。
我们一般用它的,用这个glass就是它的玻璃这个材质,因为水其实和玻璃很像嘛,它都是透明的,只不过它可能折射率呃,然后反反射率那些不太一样,所以我们只需要改些参数就行了。
总之这个和glass这个透明是很像的,然后最后你如果渲染出结果,你会发现直接把它当做当做玻璃来渲染,也是很像水的,因为你这个水的动态很丰富,所以呃它只要是透明的,就就很就很合理呃。
你把这个想要的材质拖出来就可以,然后包括呃你下面不是还有个锥体吗,那个锥体你也你你可能会用另外一种材质呃,我这里面可能用的是那个金子,金子构的,那你就把这个go的也拖过来就好了,然后这相当于是准备一下。
你所需要的材料有哪些,你只是在这里准备一下,那之后呢就需要至少我们还需要调一下,我们需要的那个材质的属性,具体的属性,那这个属性其实就是在右上角的那个呃,参数视图里去改的,你直接点击这个材质glass。
然后在右上角就会变成这样一个参数的面板,那这里面其实就是反映了这个材质的这个,各种属性,包括reflection,折射,transparency是它的透呃透明度。
然后还有很多emission是它的发光发光度对吧,呃这些东西也都是呃渲染中的一些术语,如果了解过渲染的同学,应该会对这些很熟悉呃,然后具体来说那个我们可以调一下,如果你想做一个很像水的一个材质的话。
咱们把这个IOR调成1。33,他之前默认是1。5,然后把这个折射呃,Reflection,这反射反射度去额改成0。2,然后透明度0。8,然后我们这个emission它原来是零,我们调调到0。04。
让它轻微的发一些光,然后这个光的颜色是蓝色,让它稍微的发一点蓝光,然后就可能看上去比较像水,或者说至少很像动画一般动画里的水了,好这个我们配置完材质的属性之后,配置完材质属性之后,其实我们就已经准备好。
我们所需要的所有材质了,那这个时候我们需要把这个右下角的这个呃,叫什么,这右下角这个网网络视图呢,去切换到我们刚才的OBJ这个里面,也就是说我们刚才插入几何的这些界面,我们可以看到其实在这个几何的界面。
我们已经插入了两个几何对吧,一个是我们的水,一个是那个圆锥锥体,然后呃如果说我要改水的材质,你就选中它,选中这个水所对应的几何模块,然后在上面上面这个参数面板中,选到这个render标签。
选到render标签之后,下面会有一个material的属性,material就是材质的意思,你把这个材质指定成刚才我们拖进来的那个glass,就好了,然后包括下面这个圆锥体,如果你想把它变成一个金子。
金子做的,那你就把这个圆锥所对应的材质,设成那个刚才拖进来的gold就可以了,那这个材质配好之后呢,嗯还还是不够,因为你要去完整的渲染一个场景。
你还需要两个必备的属性,必必必备必备的元素,那就是相机和光,照,相机呢就是指你拍摄的这个视角是什么呃,添加相机的方法呢,就是在我们的这个左边的这个大片的浏览,这个预览视图,也就是场景视图当中。
右上角其实有一个NO cam这样一个标记,这个表示的是它NO can表示的是,就是你现在是一个自由的视角,和和任何一个相机都没有关系,那么在这个里面我们点下去,就可以去添加一个新的camera。
添加一个新的这个相机呃,添加这个新的相机之后,我们可以选择这个tie view to camera or light,他的意思就是说我把当前的这个呃这个视图,这个场景视图的视角。
和我插入的这个相机去绑定到一起,这样的话你再拖拽,你在后续拖拽整个场景的时候,你的视角不是会变吗,那你的相机其实是跟你的视角同步去变化的,这样就可以让你很方便的让呃,把你的相机设置成一个你想拍摄的视角。
那么调完之后,你再把这个tie view to camera or light,给取消勾选就可以了,这个相机其实就设置好了,那么右边其实在右边的那个网格视图当中,在点了new camera之后。
其实就会多出这么camera一个模块,然后你这边左边你调好它的话,它右边模块的一些属性,其实也是自动帮你更新好的,就不用管它呃,接下来我们就需要添加的是光照了,在光照的话也是在右边去。
在右边这个网格视图中,你按tap,然后去输入一个light,去找到和所有和light相关的模块,它这里面也是胡迪尼所支持的所有的光照,额,这里的话我们可以去我们这个例子里,选的应该是环境光照啊。
environment light就是相当于是这个环境,它有一个包围盒,然后这个包围盒其实是呃一个六面体,你可以理解为一个长方体吧,然后这个长方体把我们整个场景,包括这个水滴以及这个圆锥体都框在里面。
这个包围盒很大,然后这个light呢就是这个整个包围盒所发出的光,然后在这个light你选择这个light之后呢,一般来讲默认参数像这种environment light,它默认参数一般就可以渲染了。
但是你可能还是需要首调一些参数,才能让你就是让它达到你所期望的结果,比如说起光照的强度,光照的颜色以及包括environment light的话,它还可以去选择,你是不是可以去啊。
是不是在最终渲染视图中可以看到这个光源,如果你选没有选择能看到,那你的背景其实就是黑的,但是你的呃,但是你的物体是被照亮的,这个大家能懂我的意思吗,就是如果说你没有光照。
那你其实渲染出来是一个完全黑的图片,呃如果你说你添加了一个光照,但是你看不到光源,那么这个时候其添加了一个环境光照,然后看不到光源,那其实你的物体其实是已经被环境光照亮的,但是渲染的背景是黑的。
如果你选了可以看到光源,那其实就是你你这个物体不仅被照亮了,你的背背景也是也是亮的,这个大家就是回去试下就可以,我现在是因为设备的原因呢,没办法带着大家一起做这做这些事情。
所以我就呃我就我就做了这么一个PPT,把所有的图能截的图都给大家截下来,希望大家能听懂啊,如果听不懂的话,随时打断我,就或者哪个操作不详细的话,就随时打断我,呃,对我们配置好所有的这些OBJ。
就是这些对象之后呃,就可以开始渲染了呃渲染的话,其实胡地里它有两种渲染器,主要有两种渲染器,一种是mantra,另外一种是KARA,我们先介绍mantra,mantra渲染,它的特点是只支持CPU。
但是它比较的功能比较的全额,就他只是比较慢而已,它它的各种参数也都非常的灵活,在这里的话,如果我们想添加一个mantra的渲染器,还是要在这个网络视图当中,我们去点击这个OBJ的这个这个标签啊。
然后切换到out标签,这out其实用,就是用来给你插入这些渲染器模块的,在这个模块当中,我们直接搜索mantra m a n t r a,然后插入就可以了,呃在这个对于这个mantra这个模块。
我们还是可以去调一下它的一些参数,就是在参数视图当中,images的标签页下,它的它里面会有一个output picture这样一个属性,这个属性指的是你应该输出什么样格式的文件。
就比如说在这个图里所示的,它就是呃在HIP这样一个目录下输出的,这个名字是,输出的名字是这样一个格式,它是一个点EXL的文件,这里你可以把后缀直接改成PNG,他就会直接输出嗯,PNG图片,对的。
然后接下来你可以切换到这个rendering的标签下,然后这个rendering,它主要就是配置一些渲染的参数,比如说这里面有一个sample,Pixel sample,它就指的是每一个像素去给它。
sample就是采样多少次,这个采样次数越高呢,也是你渲染的结果会越精细,然后噪声也会,一般来讲噪声也会越低,呃,但是呢带来的代价就是,会渲染的一帧都非常的慢,然后包括这后面也是ray sample。
ray sample就是指你一条射线去呃采样多少次,这些都是一些呃渲染的这个参数了,然后渲染其实我懂得也不是特别的深,所以呃很多参数呢我也不能给你们解释是什么,具体是什么,大家可以有兴趣的话。
可以自己去查一下,嗯好配置好metal的渲染器之后,我们就可以就是切换到渲染视图。
这个渲染视图呢,其实也就是刚才的场景视图的一个平齐的标签,刚才场景视图其实亮的是最左边这个,same view的标签,你直接切换到这个render view。
这个标签就可以看到我们mantra渲染的结果了哦,当然你需要先点击一下render这个按钮,你点击render按钮,它会出现一个进度条,然后它会慢慢的就是给你把这张图片去打出来。
就是刚开始你可能刚点击render,它这个图片会只有几个像素点,然后慢慢的把这个图片的填充起来,然后噪声很多,然后再再随着进度条继续往后推移,它这个噪声会越来越小,因为它相当于是在不断的采样。
然后呃不断的采样,并且计算颜额,每个像素点的颜色嘛,所以它会随着采样数越来越多,这个最后的渲染结结果也就越来越准确,额对,最后一步呢就是我们可以在这个呃,render view下去预览。
就预览我们一帧渲染是什么样子,如果说比如说这一帧我预渲染效果,我觉得已经很棒了,那我就可以去导出一整个系列,对对,那我们就可以去导出整个序列呃,整个图片序列,然后最后可以做成视频呃,导出的方法呢。
就是还是我们去点击刚才的mantra节点啊,这里配置这个路径,刚才已经说过了,就是在这个上面,下面去配置它的这个路径以及文件名,然后你后面可以改它的扩展名,你可以输出JPG文件,可以PNG文件。
或者是它默认的excel文件嗯,对然后我们不要忘了,就是在这里有一个就是在这个参数视图下,其实还有一个叫valid frame range,它默认像是是说render current frame。
就是说只渲染当前帧,那这样的话,你其实最后渲染它只会给你输出一张图片呃,我们要把这个选改改一下,改成这个改成这个我们要渲染一个范围,这样的话你就可以指定一个起始帧,一个中指针。
然后渲染这个这个区间内的所有的帧数对吧,渲染这个区间内所有的所有的图片,然后最后我们点一下render to disk就好了,这个你点击之后,它就会开始批量的渲染,从第一帧开始,从你指定的第一帧开始。
到你指定的最后一帧结束呃,它会给你展示一个进度条,但是在一些参数的设置下,它可能会比较慢,我自己实践的时候,其实就这个video其实我渲染了大概三个多小时。
三个半小时,三小时40分钟,应该是它只有很短的一段,然后这个其实是呃,这个这个demo其实是我上一篇工作就是SEAGRAPHASIA,2022年工作的呃的一篇工作。
我们我们做的是一个position based呃,就是PPT fluid的框架下做了一个表面张力,这里也是小小的打一个广告,然后这是其中的一个demo,我在这个胡迪尼给大家复现了一下。
当然在我们原文当中,这个demo可能会更好看一点,因为当时跑的用的粒子数也多,然后呃,当时那些材质的话也会更加精挑细选一些,好接下来去讲这个,接下来我们就讲这个卡尔玛渲染啊,卡尔玛制这个渲染器。
它的好处就是它支持CPU和GPU混合渲染呃,也就是说它能让用GPU给你的渲染进行加速,额这个用commas渲染的方式呢,就是我们首先要去切换到一个它,它相当于有一个另外一套工作的流程了。
跟刚才的mantra不太一样,刚才mantra是我们直接在那个网络视图当中,切换到out标签,在那里面插入一个mantra节点就可以,但是现在不太一样,现在我们需要在左边的这个。
这就是整个窗口左上角的这个选项卡当中,这有一个build,那我们需要把这个build这个视图切换成SOLARIS,那切换成索拉瑞斯之后,整个窗口其实布局就会变了,它会变成一个对它会。
它会在下面其实会多出一些一些功能区呃,但是右边的右上角的那个参数视图,和右下角的这个网络视图还是还是都在的,所以我们在这个时候,我们把网络视图切换到stage就可以,刚才是out。
现在我们要切换到stage呃,在这个stage里面,首先呢我们需要把刚才的场景,就这个stage其实是一个新的环境了,在这个环境下,它其实不知道你刚才做的所有操作的。
所以我们需要导入刚才所插入的所有的呃,几何物体,包括以及包括相机和光照呃,几何物体,就是刚才的那个水滴和那个圆圆锥体对吧,水滴粒子和圆锥体呃,然后还有我们插入了一个环境,光照以及一个相机呃。
这些东西都需要全部导入进来,然后这个导入的方式呢,就是我们在这个stage这个标签下去,插入一个sin import模块,它叫做场景导入,sin破的模块当中,上面的参数有一个objects。
在这个objects,你把这个刚才的OP j里边的所有东西,都放到这里,用空格隔开就可以了,这里对这里大家应该都明白吧,就是你看这里也其实包括四个东西,一个是水,一个是那个底下的圆锥体。
然后一个是环境光照,一个是camera,就是相机,那导入进来之后,就可以接下来插入一个karma renders。
Camera,karma的一个模块,你在插入karma模块之后,它其实会自动的给你生成一个连好的两个模块,一对啊,连连好的两个模块,第一个模块呢是这个karma render settings。
它是做一些camera渲染的设置的,然后他这里需要接接收输入,接收你这个场景import thing的输入,这样你就相当于把刚才导入的场景,全都告诉卡尔玛渲染器告诉你,我有这些光照,有这些相机。
有这些物体,接下来呢就是选中这个render setting这个模块,我们就可以去参数视图中去调它的一些属性了,同样的也是在这个输出的output picture下,我们可以配置这个输出路径和文件名。
然后camera这里我们要指定一下,是我们我们import进来的这个camera one,就告诉他我用哪个视角去渲染呃,后面也可以调它的图片的RESU呃,分辨率。
还有你需要你需要把这个render engine,就是这个渲染引擎调成XPU引擎,因为它默认的话其实是CPU引擎,CPU引擎的话他就没有用到GPU,所以它的速度还是会很慢的,后面也包括有一些参数。
就是sample,就是采样的数量在下面也会有一些更多的这个,更多的这个图像处理,包括render的一些参数,呃最后呢也是跟mantra一样啊,就是呃这些东西都配置好之后,呃,你就这些东西都配置好之后。
你再点这个刚才这个ka setting这个模块,下面这个红色的模块,你点这个这个叫run usd render roo p,这个这个模块下面它有这样一个render to disk的。
render to disk的一个呃按钮,然后你点一下它就会续一一帧一帧的给你渲染,然后同样的,你也是要把这个渲染调成你想要的这个区间,渲染的范围调成你想要的区间呃,然后你想你可能会问。
就是karma这个渲染器要怎么去怎么去预览对吧,因为mantra刚才有一个预览的阶段,这个coma其实它就是实时渲染的,就是你切换到这个呃,我们刚才是切换到这个地方,so laris这个界面下。
你索拉瑞斯右上角其实是有一个那个view。
是我可以给大家倒一下SOARIS上哦,对,右上角其实它也是有。
像这张图里面这两个东西呃,这两个标签同样的东西,左边这个标签是你可以调成那个卡尔玛,x p u render的那个view,那你调完之后,它就立刻,这个场景就会变成卡尔玛渲染器渲染的结果。
然后这个结果你可以直接去拖视角,它不一定是必须绑定在你这个camera上的,它是一个实时渲染结果,你可以拖一下视角,然后他会呃,立刻的随着你的视角去给重新给你渲染。
行卡尔玛渲染对comma渲染就是这样子,但是大家要注意的就是。
卡尔玛渲染的结果,很可能会跟那个mantra渲染的不不太一呃,不一样,因为有些呃mantra里能支持的东西,在common里是不能支持的,它可能需要重新配置一下参数,比如说有些光照。
有些材质可能呃材质应该还好,就主要是光照,你可能需要在coma里重新配一下,重新配的话,也就是在这个呃stage,这个,直接在这个stage这个标签下去拖这些模块就好了,行。
这就是胡迪尼我们今天讲的这个例子,然后我们其实最终期待的效果,就是刚才这个视频啊。
你可能有些细节不一样,哎sorry可能会有些细节不一样。
但总体上说这个水像水,然后这个圆锥体系有点金属光泽就好了,然后有点这种反光的效果就可以了,然后你你如果有兴趣的话,可以去调一些参数,让它特别好看,这个胡迪尼的这个部分大家有什么问题吗。
我接下来就要讲para view了,OK如果没有啥问题的话,我们就继续啊,呃接下来我们是通过另外一个例子,是一个叫速度场,体数据可视化的这样一个例子。
去给大家介绍一下power view的基本的使用方法,呃PARAVIEW也是同样的,我把这个官网和他的文档教学,这这些都附到PPT里,大家要是想要了解一些高级功能的话,就可以点进去看。
首先我什么是体数据可视化呢,呃体数据的意思呢,它其实就是一个三维的场,就是呃比如说啊呃怎么说,比如说一个速度场吧,就是一个流体流体,它是占据一定的三维空间的,然后在这个空间在这个定义域下面。
其实会定义一个向量场呃,也就是流体的速度场呃,这个场在自然界当中,一般都是肯定是一个连续的场对吧,它是在这个定义域内处处都有额,处处都是有定义的,每一个点它都会给你一个速度的值,但是在计算机里。
这个体速去就就往往都需要转化成体速,就是VOXEL,其实就是把它变成一网格化,然后我们只存每个网格格点处的一些坐标值,然后格点之间的话往往都是差值来做的,差值来计算的额,那这里就引入一个叫做提速的概念。
体速其实就是对应二维中的像素的概念,它指的就是网格中的一个格点,好的额,那常用的就是体数据可视化的方法呢,就是指就有三种吧,第一种是体渲染,也就是我们接下来要介绍的这个方法,然后还有一些其他方法。
包括等直面提取以及切片可视化这些方法呃,然后这个体数据可视化的技术呢,也是在图形学之外也是很广泛的,这也是为什么我们可视化会呃,会有这么一个课题,就是去研究,专门去研究怎么可视化体数据更直观一些。
包括我们右边展示一个图啊,就一个是医学成像呃,然后另外一个应该是材料的一个设计,它是一种类似皮肤一样的材料的设计,然后呃这个图片来自于para view的官网,他应该是体现了给你去可视化的这个呃。
这个这个skin这个材料的一个形变,就是它的应力张量一样一些东西,可视化这样一些东西,sorry应该是应变,他是string对应应变的一些东西,然后左边的话大家应该可以看出来这是个肺吧,对呵。
然后呃应该是一个肺,然后左边应该我推测应该是一个切片的可视化,右边呢应该是一个等值变提取的,这个可视化的方式,总之的话呃这些可视化也是很强大,它可以把这个人体内的一些很精细的结构,都给你一览无余额。
那么在进入我们的例子里面,我们例子其实就是想要做出一个,就是做出两个涡环进行碰撞的一个效果,呃然后我们不是要可视化流体的速度场吗,那其实速度场是一个三维的三维的体数据对吧,它是一个呃三维的向量场。
也就是说呃在这个斗may里,在这个玉里面的每一个点,它其实都是一个对应于一个三维的向量,但我们一般来讲,体数据可视化都是会可视化一个标量场,那怎么办呢,我们这个只能去牺牲一些信息。
我们选择可视化这个流速场的呃涡量,涡量的意思也就是说他就是嗯涡量,它的意思就是这个流体的嗯,嗯流体形它是描述这个流体它这个转的有多快,这个通俗的来讲啊,就是描述这个流体在某一个点处。
它转的有多快的一个物理量,然后我们其实涡量来讲,在三维里面涡量其实也是一个向量,我们现在呃可视化的是这个涡量的这个模长,这个模长越大,代表这个流体在这一块它就转的越快,如果越小就代表它转的越慢。
那么我们这个呃对,我们现在假设我们已经拿到这个涡量场了,也就是说这个涡量场它是一个呃一个三维数组,一个浮点的三维数组呃,把它存到一个VNP当中,让每一个维度,其实就对应这个网格的每一个维度。
然后每一个值其实就是网格格点处的一个值额,那么假设这个这个,我们这整个定义域的坐标范围呢,是从X面到x max,然后Y坐标是外面到y max,Z坐标是Z面到z max这样一个大小。
然后分辨率呢也是XXN乘,YN乘ZN的一个分辨率啊,所以我们这个VNP的数组的形状,三维数组的形状应该就是XN乘YN乘ZN,额然后然后我们需要把这个VNP,这个VNP其实本身是一个number派的数组。
那我们需要把这个number派数组,首先转化成一个VTI的格式,VTI的格式,然后写入到这个VTI的文件当中,这样才能被我们的para view所接收并可视化。
那这个转化的方式呢就是用一段Python的脚本呃,主要借助的是Python里的VTK的包,所以我们需要先import一下VTK,然后用一些这样的代码,就是首先你先把它转化成一个,VTK格式的数据。
V t k data,然后接下来你再把这个v t k data去用一个writer,写到呃,我们指定的VTVTI文件当中啊,这个细节呢,这个细节我只是把这个代码放在这里,它不太重要。
所以呃如果大家真的想实现一下,就是真的想去可视化某一个呃是三维数组的话,三维体数据的话,大家可以去查一下VTK这些接口该怎么用,好吧,但是如果你说只是实现一个,和本节课一样的功能的话。
你其实就用直接复制这段代码就好了,你只需要记注意那个每一个参数的意含义,就可以嗯,那生成这些VTI文件之后,我们就可以去导入这个parr view,然后进行可视化了。
呃para view它的界面是这样子,他应该会比胡迪尼要简单许多,呃,他首先他不需不是那种脱模块的那种,工作方式了,他其实就是一些文件,然后把这些文件去整个混合到你整个场景里呃,那首先第一步呢。
就是我们需要把这个刚才生成的一堆,VTI文件直接拖拽到现在这个框框框里,框框这个范围里,然后呃我们如果说要导入一个序列,那我们就按顺序选中所有的VTVTI的文件,然后一起拖进来,然后我们会发现呃。
就是这里边他这个文件名最后带个芯对吧,带个芯就表示它是一个文件组,它是一组文件,它是一串序列,然后如果你不想拖拽的话,也可以直接右键啊去open一个呃,去打开一个一些文件,然后你指定路径之后。
你也可以是直接选择一系列的文件,然后直接导入过来就好,那导入之后其实你拖拽过来之后,你直接点这个左边的这个眼睛的小图标,它眼睛默认是闭上的,就是它不会它会隐藏的,你点击之后它就会显示,但是刚显示的时候。
因为你是一个网格的数据对吧,它其实只会显示出整个外面的一个包围盒,也就是一个正方体,也就是长方体的棱,呃,如果说我们想显示出其中内容的话,我们需要把这个上面这个,这里有一个可视化的方式。
它其它其实会点一下,会有一个下拉条嘛,然后我们就选择volume,也就是说体数据的可视化方式,那选完之后,你就会发现它立刻就变成了这样一个形式器,呃,这样一个啧对吧,这样一个一个图像,然后他的意思呢。
就是说我们可以看到这是两个环状的东西,呃,环状的形状它也就是呃它代表的就是两个涡环,然后这个涡环也是越靠内部对吧,越靠内部它是颜色越偏红,然后在右下角我们也可以看到它越偏红,表示它的窝量越大。
然后越偏蓝表示窝量越小,也就是说这两个涡环它其实是呃越越越靠中心,它转的是越快的,嗯那接下来就可以在中间这个视图里面去,你去拖鼠标,像胡迪尼和胡迪尼很像,你就直接拖去调整视角就好了,在这里面。
我们其实是没有一个所谓的camera的概念的,因为呃在PARAV里,它其实默认就是以你当前的视角,作为这个相机视角去进行渲染,呃在这个这个情况下其实已经可以做可视化了,你直接点这个播放的这个图标。
点这个播放,它就可以直接把你导入的整个VTI的呃,导入的是整个VTI序列,一帧一帧的给你显示出来,所以如果你导入的是一个连续的动画,那它就会啊展现出这个涡环的动态啊,对这个呃我想一下。
对这个这个这个播放是很快的,这个是比胡迪尼要快的,这是PARAVIEW的一个好处,就是当然可能也跟你现在这个例子有关啊,但是总体我使用的感觉就是PARAVIEW,它会更清亮一点,就是你直接导入进来之后。
你直接点播放,它就可以很流畅的开始给你播放了,它是很快的一个东西,但是额胡迪尼的话,你刚导入粒子的时候,你点播放它其实一帧一帧会会给你卡一下,每帧都给你卡一下,就看起来不是很流畅。
额那接下来就是我们可视化之后,如果说你觉得这个结构比较好,就可以开始渲染了对吧,呃渲染的话,我们其实就是其实也就是说多呃引入一些东西,然后再改一些参数,就可以让他呃变成渲染了,首先呢也是经过以下的步骤。
第一步呢是我们可能需要,因为我们需要实现这种阴影的效果对吧,这种呃在密度越深的,就是在涡量越深的地方下,它相当于会阻挡光线,阻挡越厉害,然后从而在地上形成一个阴影,那形成阴影其实你不能是个虚空。
所以你需要导入一个地平面对吧,你需要导入一个平面,刚才我们有阴影,就是刚才我们有那个水滴的阴影是下,因为下面我们有一个圆锥体,所以在这个圆锥体上可以映出这个水,水滴的一些倒影什么的。
那现在我们其实呃是相当于你可以理解为,中间这两涡环是两团烟雾,那你需要一个依托才能去展,打出他们的倒影,然后这个方式呢其实很简单,你就是加一个平面,加一个很大很大的平面就可以了,这个平面的话。
你可以自己直接自己写一个OBJ文件,它其实平面就是一个正方形嘛,然后正方形是由两个三角形组成的,那这两个三角形其实构成了一个mesh,就是我们想要的平面,大家自己写就可以了,呃添加完这个平面之后呃。
我们需要对,我们需要就是在左边左下角这个properties,这个标签下,你往下拉,你会发现最后一个其实是它默认呃,最后一个是这个retrace rendering,这样一个题目。
在这个标题下有一个enable ray tracing,它默认是不勾选的,因为它只是给你可视化一下,就没有开启这个呃光光线追踪的渲染呃,为了因为这也是为了这个效率,然后你如果想生成高质量的结果。
你就把这个勾上,他这样的话就可以开始给你光追渲染,然后就给你呃,就是把这个效果会提升很多,然后然后你再接下来把这个,下面这个shadows也勾上,这样的话就会出现这种阴影的投射的效果,对你额。
然后你勾选上这两个东西之后,你会发现这个PARAVIEW瞬间变慢了,你拖拽视角什么的,或者说是播放序列都会变得一卡一卡的,这个时候你就尽量不要去修改中间的这个,不要去拖中动中间的东西了。
你直接在右边继续去添加我们的光源,添加光源的意思是呃,其实PARAVIEW它会默认给你有一个光源叫light kit,这个呃like kid,前面这个box它是默认是框上的,是勾选上的,你把它取消掉。
我们添加自己的光源就好了,呃添加完这个光源之后,我们就选一下,你自己选一个你想要的光源,是点光源还是平行光,现在我们这里是directional,directional的意思就是平行光,然后平行光。
它这个光束的方向呢就是从这个light point,light position设到这个focal point这样一个方向,然后这样的话大家就可以看到,其实我们现在加了这么一个光源之后。
这个光其实相当于是从呃,右上角这个位置打过来的对吧,因大家可以看这个坐标系,坐标轴就是原点是在怎么说左下角,然后以及屏幕向里的方向,那所以光源相当于是原点相对的位置,就屏幕向外。
并且在右上角这样一个方向,所以他打出的阴影就正好是在呃,就就是在像现在这个位置一样啊,嗯OK这样其实大概就可以配置好这个场景了,接下来我们的目的,接下来我们的任务就是把这个动画导出导出,也就很简单。
你直接file,然后save animation,然后你选定一个额,选定一个路径,选定一个文件名之后,它会弹出来一个这样的选项,就是呃保存它的选项,然后你会发现这里有一个suffix format。
就表示说它其实生成的也是像胡迪一样,会生成一系列图片,从零第零帧到第一帧,然后一直到若干帧,然后这个帧与帧之间命名它是怎么做的呢,就是通过给你这个文件后面加一个后缀。
就是呃如果说是像这样百分号点04D的话,相当于它就会呃第零帧是点0000,第一针是点0001,然后00021直以此类推,这样去生成下去,然后接下来你也是你把那些文件直接用啊。
FFMPG这个工具给串起来就好了,呃FFMPG这个这个东西,我其实在第一次作业也是给大家留过的,如果大家做了那个的话,应该就呃挺熟悉的,应该也会不陌生,这东西,这个其实就是命令行中的一个工具。
你直接敲个命令行,它就可以把呃相应的一系列图片给你串成视频,还还是很方便的,最后这个效果呢也就大概是这个样子,好的好,今天的这个内容大概就是这么多,大家有什么问题吗。
关于HOUDINI和power view的使用方法,其实我们我今天讲的也是很小的一部分,只是他们的冰山一角呃,它们实际上的功能要强大了许多,我只是用一些,用两个很简单的例子,给大家展示一些基本的用法。
然后大家如果有更多的需求的话,还是需要上网去找一下,官方的教程和它的文档的,好的大家有什么问题吗,可以现在问一下,然后今天我们也是会给出这个,这次课的最后一次作业,今天本身也是最后一次课嘛。
嗯所以呃我们也是在下一周就会截止DDL,其实前三个作业按照原定计划,今天应该是已经截止DDL的对吧,就DDDL是到今天为止,然后由于上周呃上周我们停了一次课,所以呃最后一次作业我会再延一周。
到下周的这个时间,这也就是到6月11号,然后我们第四次作业的要求,其实就是想让大家也去使用一下,胡迪尼或者power view去生成一段动画,然后大家可以自己去找一个,随地物理模拟的结果。
然后其实你可以去网上,找一些现成的物理的动画,就是只要是那种OBJ文件或者是v ti文件,这种格式就是可以导入到呃,呃可以导入到HDI或者power view的格式都可以。
就你如果说网上有这样现成的动画序列的话,你可以直接用网上的序列,但是你一定要在那个呃报告当中去呃,引用一下,就是引用一下你这个来源是哪里,你可以找网上现成的动画,你也可以找网上。
比如说一些GITHUB仓库里会实现一些物理模拟,你也可以去跑一下他们的代码,去生成一些动画序列,然后再者你就可以,你可以是直接用胡迪尼里边的物理模拟功能。
它其实里面胡迪尼可以直接去跑simulation,然后他可以给你直接生成动画,所以胡迪尼是非常强大的,呃这些这些方式生成的物理模拟结果都可以啊,只要你在呃最终的文档中去指明,你这个动画是哪来的就行。
然后也是最后报告是要求用latex来展示,用latex来生成PDF,然后这个the text其实也是我们呃,也也是我们我我上一次课对吧,也是几周前给大家讲过,希望大家没有忘掉。
嗯对我们作业要求大概就是这样,对这个作业和内容有问题的,大家可以在弹幕里积极发一下发言啊,哎上次作业要传工程文件吗,呃你说的上次作业是我留的,上次作业还是叶开留的,是是如果是另外一位额。
另外一位讲者流的话,那可能你得问下他,但是我留的作业应该都是只需要交PDF就可以了,就是你如果比如说你需要找你,你可能需要展示一些视频或者结果什么的对吧,代码结果的话,那其实你你我们要。
我们也是要求你把它融到报告里,比如说在这里,今今天这个作业你可能会生成一个动画,但是这个网站不能上传视频,所以我们会要求你抽一些关键帧,然后放到就截图,截图放到报告里,第三次作业的话,应该不是我留的。
你可以去问一下另一位讲者,或者说一般来讲,我觉得就的作业不应该去要求你们展示代码,如果你们实在是需要展示代码,你们就截取代码最那个什么的部分,最呃最核心的部分贴贴到报告里,但一般来讲。
这个贴代码这个事情是一个很不优美的事情,就因为没人知道你写的是什么意思,所以尽可能的用自然语言描述,OK今天讲的内容呢,其实是一个我觉得是很实用的啊,虽然呃今天很遗憾不能带大家一起去实践一下。
这两两款软件,由于设备的这个限制啊,呃但是我还是很希望大家就是课后的话,能够自己去试实践一下这两款中任意呃,这两个任意当任意的一个软件,就是他们在你后续科研当中,应该还是非常实用的。
OK我们还有什么问题吗,如果我看大家今天的弹幕,好像都没有怎么发言啊,是没有跟上还是什么原因呢,前置课程没有前置课程,这个课程已经是这个课程,本身已经是前置课程了,不能再有前置课程了。
我觉得已经挺挺容易的吧,就是内容来讲应该还是比较呃,应该还是比较入门级的,就是大家如果有什么问题的话,我觉得也不要藏着,就因为如果说你现在从入门开始,就已经积攒问题的话,到你后续做科研的话。
可能就会积攒太多的问题,导致后面寸步难行,所以你现在如果有什么问题,一定要及时提出来,哦点云啊,这样子,嗯点云的话,其实这次课也有点设计,就是我们最开始不是去呃,稍等啊,我怎么对。
我们最开始不是讲了那个呃粒子法的流体,去怎么渲染吗,最开始我们也是导入了一些一堆粒子。
其实这些粒子你就可以理解为是点云,点云它其实很简单。
就是呃三维场景中有一些一一堆点。
有N个点,然后这N个点每个点都有一个三维的坐标,所以所所以整个点云其实就包含N乘,三个数字对吧,它就是N个三维坐标,表示N个点的位置,然后在在物理模拟当中呢,它指的就是粒子,就是一个粒子系统,因为然后。
因为这个粒子可能会带上一些其他属性,除了他的位置,可能还有速度质量,然后它的密度等等属性,这个,对那图形学中的一些很基本的概念呃,我觉得嗯我不知道这位同学,你会不会有很多这样的呃这样不了解的东西。
如果如果有很多的话,我觉得你要是加群的话,可以在群里去请去去提出问题,然后我和叶开也会在这个群里,然后也会有其他的同学会帮助你,对如果有问题的话,可以在群里提出来,然后如果问题不多的话。
你可以去自己找一下,像这个点云这种概念,其实网上搜一下就有,Ok,嗯对之前没接触过这个事情,我很理解,所以也是这种课,我觉得还是也是以这个实践为主,我觉得要鼓励大家实践,包括我就我我自己讲的这些课啊。
就包括从最开始的这个呃这个shell,Linux shell,然后到后面windows下的这些命令行,然后以及这个文档编辑工具,然后到现在这些软件,我觉得大家都是可以实践的。
就都可以去把课上讲的东西稍微复现一下对吧,比如说今天讲的东西,你就可以尝试着你就可以去点开你的蝴蝶,你自己去下载一个,然后或者下载一个power view,然后去复现一下这些东西,就是你稍微实践之后。
你才会发现更多的问题,然后解决了之后才会真正的入门,然后包括之前我讲的那些笑什么的,大家也是可以去打开自己的终端,输一下这些命令,看它什么效果的,我个人感觉图形学这个东西。
还是额通过实践入门会会比较快一些,就是不要去专门去学习什么理论,就你如果只学理论,不实践,那肯定是呃肯定是不行的,不知道对不对哦,嗯如果你是和课上讲的那些呃,按照课上讲的那些步骤一步步去实践的话。
你理论上应该达到就是课件上的那些,展示出的结果对吧,如果你说是你改动了一些,然后你又不去,你改动了一些,你做了一些其他的操作,然后你不知道对不对的话,我觉得也是可以发到群里,大家讨论一下的。
我们建群其实就是这个目的,建群就是为了大家嗯,在实践过程中遇到什么问题,可以交流交流一下,乱点,好家伙哦,对好像对那个对好像是一还跟我说,他讲没有特别详细的讲是吧,就上次课好像是没有特别详细的讲。
他只是主要是给你们介绍了一些呃,给你们介绍很多软件,然后呃附上了链接,让你们自己去查,这个可能就对,这个还是可能还是比较考验你们的,需要考验你就是网络上信息检索的功能,对在科研当中。
这个也我觉得也是很重要的,就是在科研当中你要逐渐的学会自学,然后呃学会怎么去检索,在起步的时候,现在可也许你可以在群里问,然后大家可以帮你,但是到后面之后,可能这种呃,这种层面的帮助可能就会越来越少了。
就越来越需要靠自己去解决这些问题,演示胡迪尼渲染流体,我现在我现在这个设备上没有胡迪尼,所以没有办法演示,就大家还是就看一下课件吧,我课件应该是呃比较详细的。
把每一个流程都截出来了,就呃最后那个胡迪尼渲染流体的结果,是这个样子的。
我不知道你刚才是不是miss了,其实我展示了最终那个视频的结果嘛。
是这个就我感觉还能看。
但是你你如果把渲染的材质调好,肯定是会更好看的,OKOK没事,对今天主要的缺陷还是没办法在家一步步实践,就是大家如果说是照着这个PPT的流程做的话,然后哪个步骤出问题了,还是要及时去联系我。
在群里或者直接私信我都可以啊,行我觉得我们时间也差不多了,如果大家还有后续什么问题,就在群里提出吧。
GAMES003-科研基本素养 - P1:L01-课程内容概览&建立领域视野 - GAMES-Webinar - BV1RitTezEa9
然后我们就开始这学期的课程哦。
就是嘶啊,我是今天的讲者叫做彭斯达,然后我们这一门课的话是有四个讲者一起讲的,分别是啊,我自己还有高俊,彭松友和王倩倩三个老师啊,我们的信息已经写在了这个在课程主页上,大家都能看到。
那今天的内容就是去首先是概览一下课程内容,给大家讲清楚,说这节课是想讲啥的,然后的话我会讲第一部分内容,就是怎么去建立一个领域的事业,那我今天就开始正式的内容了,首先我先介绍一下我们这个课程的。
他的一个动机啊,这个课程主要是针对低年级,或者是刚入门科研的同学嗯,就是我我其实我从高年级指导实验室同学啊,以及我工作以来,其实自己有经常体会到一个地方,就好多低年级的同学他不知道怎么做科研。
然后这个东西也没有一个具体的指南嗯,所以的话嗯他他跟本科生课程很不一样,本科生课他是有一个很很系统的教纲的,你学微积分就是从第一步,第二步,第三步怎么学,就知按部就班的去做就好了。
但嗯科研我至少我没有见过这样的一个课程,所以的话嗯,所以就是很多同学他缺少一个研究的策略,导致他他就是像一个无头苍蝇一样做科研,那显而易见,科研是一个很困难的事情,他需要特别多的技能能力。
所以他们很容易就面临着科研困难的问题,呃一般来说好多同学都是觉得自己是有热情,有兴趣做科研的,但只要花三个月或六个月不断的碰壁,遇到各种各样的困难情绪,没有一个正反馈的话,很快就是情绪低落了。
那就可能慢慢的就不做科研的,或者是摆烂躺平了,那针对这种情况的话,我们就希望我们的课程呃,能去教基本的一个科科研方法论,有一个基本的研究策略去教怎么去选题,设计方法,怎么去做实验,怎么去迭代方法。
以及最后怎么去做学术论文的写作与宣传,我我们希望说就是同学们学了我们这个课程,能在科研过程中,就通过这套方法论自我来提升科研能力,嗯至少在做科研中是有正反馈的,是能快快乐乐的,这是我们的一个目动机。
嗯好那这门课的一个课程安排啊,有两大部分,第一个部分就是给同班同学们去讲,这个科研流程去解释每一步,就是哎我从一个从零开始一个project,我们每一步要做啥,同时我能去配合案例去说明。
那科研流程有哪些步骤呢,首先能分成三大方面,一个是去初始化自己project科研课题,然后是去迭代技术方案,最后就是去做论文的写作,那初始化科研课题的话就分三个部分,我要去选一个科研课题。
我首先我要懂得怎么去建立啊,我对这自己科研方向的一个事业,我能知道自自己这个科研方向,有哪些没被解决的问题嗯,有哪些能去做论文的点,就是视野,然后的话我我就是去选一个目前比较重要。
然后也符合自己能力的一些科研课题,有一个具体课题以后,开始去想着解决方案去设计,但很多时候啊就有一个一开始想的技术方案,其实他都是不成熟的,所以的话我们必须要有第二个大的步骤,去迭代这个技术方案。
迭代的话就是有两个部分,首先是我嘶有一个自己的一个技术方案以后,我能基于这个方案去设计实验,呃,对这这里写错了啊,这是基于技术方案去设计实验,然后我能知道怎么做实验以后。
我去基于实验结果来去提升我的一个技术方案,因为很多时候这个实验结果不是那么理想,那我去分析结果,我还去提升自己的方案,那最后的话就是论文写作,论文写作的话包括嗯写作规划,故事梳理,论文画图。
论文写作以及论文评审,嗯嗯除了这个科研流程以外,嗯这个课的最后一两节课,两节课,还希望跟大家去分享,说做科研中所需要的一些软技能,一些非技术相关的一些技巧,比如怎么去做报告啊。
或者一些对自己很有用的一些研究方习惯,好那这边的话还是需要跟大家讲清楚啊,就是大家对这门课的一个预期,得知道我们能教什么,不能教什么呃,首先我先说我们不能教什么吧,就比如说有些同学他是做呃。
三维重建或者是做图形绘制的对吧,我们不可能去教一些具体的技术,具体的一些已有的技术范式,所以的话既然没有这个东西,我们就不会去因,直接让这些同学在三维重建或者是图形绘制上,有想idea的能力。
这是不可能的,然后同时我们也不会去手把手的去教指导说,怎么去编程,怎么去对现在自己project里面的实验分析,实验去分析,这些都是必须要有一个具体的project来去辅助的。
所以既然没有一个这样的手把手教学环节,也不能直接教你们,怎么去在自己的领域里面去做实验,最后的话呃论文写作的话呃,这门课就不像自己导师一样嘛,导师可能会手把手去给你的中文做comment。
这门课也不会只是,所以就是我们不会去教实际的创新能力,技术能力,实验能力和写作能力,这是没法教的,机械能力都必须得通过实验,经实践的经验来培养,那讲完不能教什么以后再讲,我们能教啥嗯,能教什么呢。
我我们这边能去讲清楚,说做一个research project,它一个具体的步骤和过程,比如说我我会想我们会讲一些很通用的方法论,比如说我去做一个三维重建的时候,我怎么去建立他的一个视野。
我相信如果有一个这样的方法论,然后结合自己一些领域的相关的内容,是可以执行的,还有选题,还有设计方法,以及是后面做实验的流程,相如何去做实验,最后的话就是写论文的一些嗯步骤流程,一些技巧。
我们这个整个的一个思路,就是去讲清楚每一步要做什么,有有一些具体的可执行的指南,去解释哪一面的每一步,OK所以的话,如果知道了这个课程,就是能教什么和不能教什么以后,那怎么去最好从这一门课里面去受益呢。
嗯首先就是从这一个课里面去学,这个科研流程中每一个步骤,那的一个方法论,首先是了解科研过程中的每一个步骤,以及每一个步骤它的一个方法论,然后这是我们教给你们的,那自己必须得去根据自己的科研经验去思考。
并总结出自己一套方法论,嗯说实话很多时候嘴上讲一讲都是比较简单的,所以的话嗯必须是通过实践去熟悉,通过就是我不只是知道怎么做,我还知道我还能真正的去很熟练的去熟实践,这些方法论,这是第三步。
然后最后的话当自己做过一些project以后,能去总结出自己的一些研究方法,这是我从我角度能从通过这个四个步骤,通过熟悉方法论,通过实践来最好从这门课里面去受益,好那先接下来就是我会把里面的嗯。
三个就是整个课程的嗯,内容大概的概览一遍,对答案,然后这里面每一步我都会讲的比较的简单,在课程干干染部分嗯,就是因为这里面每一部分,我们后面其实在课程里面都会详细展开。
好那我现在就是先对每一部分都简单的过一遍,首先的话是怎么去初始化科研课题,这边的话分为三个部分,建立领域试验,选择科研课题和设计技术方案,OK那这边讲一下什么是领域的事业啊,嗯首先我们选择某一个领域。
就是其实就是一个特定的科研方向,比如说自己是做三维重建的,做图像生成的3DHC的,他们都是有一个特定的输入和输出,有一个具体的一个科研方向,那什么是对领域的视野呢,这边主要是涉及到两个部分。
第一的话是对于技术演变的一个实验,就是比如我做三维重建嘛,那我知道说三维重建,从2015年到2024年,他在这些年份里面都有哪些呃,技术范式,有哪些里程碑式的论文,然后的话我能去了解说。
这些技术是怎么随着时间的推移而演变的,这是非常重要的,是对整个领域的历史技术发展脉络有非常熟悉,这是一个试验,第二的话是对领域他想解决的问题的实验,就首先我们能知道这个研究方向,它一个终极的目标是什么。
比如说像三维重建,大多是想从图片里面重建出三维形状嘛,那他的一个可能的目标就是说,如果能达到像三维扫描一样的效果,那这这个问题就几乎终结了,那这是他的终极目标,那我能清楚到2024年。
今年这个领域达到什么样的水平,这是自己要回答清楚的问题,如果那么达到这个水平的节点,还有哪些重要问题没有被解决,这也是需要回答清楚了,最后的话我们还能去了解说,比如说2024年。
大家在三维重建领域都会关心哪一些问题,大家都在做什么,这也是非常重要的,那我们为什么需要去建立领事领域视野呢,因为领域视野是其实是所有额科研过程中,几乎每一个部分的一个基础。
首先自己选择某一个课题的时候,肯定要知道说呃,我这个方向还有哪些问题没有被解决,这是课题选择,那在方法设计的时候,因为我们必须得提出新方法,提出有用的方法嘛,所以的话我们是必须得先了解说这个领域。
他已经有的一些技术范式,它一些技术发展的呃,啧一个脉络,因为很多时候如果我们知道技术发展的脉络的,很容易我们就能推测出,接下来一两年他可能继续的一个趋势,这是对方热法设计的帮助。
第三的话是在实验中去迭代提升方法,因为这个对对于跟领域事业的一个关系,在于说唉很多时间过程中,我发现自己也方法它不work,那我这时候怎么去提升呢,就是我因为自己很了解这个领域技术。
我就很有很多的一些经验,跟这个领域特定的经验,知道说它不好是不好在哪,是由什么原因,这是在迭代方法一个嗯,对迭代方法一个帮助,然后第四的话是故事梳理,就是论文写作上的故事学梳理。
我们能知道说诶我要写论文的时候,我肯定得去写一个吸引人的故事嘛,那我肯定要先讲说现在现有领域的SOTA方法,它还不能解决哪些问题,嗯这是领域试验,最后的话就是论文写作,论文写作就跟故事书记是很接近的。
只是说这篇论文写作会涉及到一些更嗯,detail的技术细节,那这时候也是要求我们对这个领域的技术脉络,已有的技术非常熟悉,那一旦说实话,我们做科研,可能在读硕士,读博士的时候。
就是不断的在锻炼这六个方面,那把这个六个事情做好以后,我们就肯定是能成为一个领域的专家了,OK那了解以后了解领域事业的重要性以后,我们就是会,去想说怎么去建立领域的事业,那这边的话我只是大概讲一下。
很可能大家一听还是一头雾水,等一下还会详细展开,就是首先是我们要能去确定这个领域,有哪些底层碑式的论文,然后对每篇里程碑式的论文找到以后,能知道它的前身,它的一个基础性技术是什么。
以及有哪些论文去follow他,继续去做改进的,然后第三步的话就是说,我们能去把每一篇论文都好好读一遍,能去了解这些论文它解决的问题,以及他们具具体的一个流程,以及他们里面的一些inside。
那我当我去把这些论文都读清楚以后,我就可以开始去梳理说这一个领域,它一个技术演变的轨迹是怎样的,我能去跟有一个这是了解技史历史,整理这一个领域的一个历史,了解历史以后,我就是要开始去预测未来。
我能预测接下来可能的新技术,然后去跟踪并预测,这是技术方面,然后的话,第二个大的部分也是去了解这个领域的问题,我能去整理说哎,我们当前领域从2015年到2024年。
他们一直以来的一个关注的问题是怎么变化的,呃,我了解这些问题以后,我就能去预测,也是说了解历史就能去预测未来,我知道以前的问题怎么演变的,我就能知道说哎接下来大一两年内,可能大家会关注哪些新的问题。
好那建立领域事业以后就是去选择科研课题,嗯课题上的选择的话,嗯我们首先我们要知道课题选择,我们要做什么,其实有两两件事情,我们得先去明确说这个project setting,我们去知道输入和输出。
第二的话是能去确定,想了解想解决的一个FAUCASE,机器背后就是我想现在想解决这个setting,它现在SOTA还存在哪些FAUCASE,以及背后的一些技术挑战,深层次的一些技术原因。
这是课题选择上的好,那这边的一个课题选择啊是非常重要的,很多时候一个论文的高度,那论文的高度是由很多东西决定的,包括课题啊,方向啊,研究群体,他的一个技术深度技术创新性,那这边的一个课题。
相当于说是直接影响了后续的一些大部分的,一呃东西,相当于说很很多时候我们都会说,嘶额选择比努力更重要嘛,那这边的课题选择就是这一个意思,一个好的课题会让自己的这个project变得非常容易。
那什么是好的课题呢,我这边有一个自己的定义,首先是说这个课题,他一定是提升空间还是比较大的,第二的话他不是那么卷,就比如如果有十个同学同时跟我们竞争的话,那我觉得其实很多时候不只是十个同学。
可能有100个,全世界有100个,那就是我相信即使这篇论文做出来,也大家也不会觉得很酷,因为会同时有100篇类似的都能做出来,这是第一个,第二的话是任务的难度和个人能力是相匹配的。
有时候我们知道有些课题特别有意思呃,比如举一个极端的,我知道说去发去发明可控核聚变非常重要,但问题是这一事情跟自己的能力不是相关的,所以这也不能做出来,所以如果一些任务任务太难,他就会导致没法去完成。
然后如果任务太简单,就反而可能是一个是影响力不是那么大,第二的话其实做了好像跟没做一样,自己的一个科研水平还是跟原来一样,OK第三的话就是要考虑一个课题,他的一个影响力嗯,就是因为很多时候。
我们肯定是想让这些科研是有学术影响力的嘛,那具体学术影响力就体现在课题上,有些课题非常重要,是这个领域的重点问题,所以他而且他的一个研究群体特别大,那这时候他的影响力就一般比较大,那如果有些问题。
它可它可以发论文,但他的一些问题并不是大家觉得重要的,那他的影响力就不就不大,可能就只是一篇论文,那这边怎么去找到一个好的课题呢,这是我个人的一个理解啊,首先是有四个步骤,先去建立领域事业。
我们能知道这个领域它有哪些关键性的论文,里程碑的论文和技术范式,我们知道这个领域,他们这些技术流程是怎么随时间而演变的,知道哪有哪些重要问题,然后我这时候我们去列出,领域内能仍难有的一些课题就是什么呢。
具体是说这个领域能难被被解决的重要问题,然后有哪些问题是当前时间点最应该去解决的,这是第二大步骤,第三的话是判断说哪些课题是好的课题,能去评估一个课题,他需要去评估一个课题。
他一个竞争程度和一个可提升的空间,第二的话就是去考虑这个任务,他的难度和当前自己的能力是否是相匹配的,最后的话就是在选题上尽量追求更大的影响力,呃当然这是带有我个人色彩的一个选择啊。
就一般说希望说任务它影响力越大越好,然后选择一些更带有技术风险性的课题,一般会有更大的收益,那这边说end time的意思就是最好选一个课题,他刚好超过了自己一个能力,超过一点点。
达到自己能力上限去做的话,一个是他的影响力可能很大,第二的话做这个过程中,也能很大的提升自己的一个技术能力,然后除此之外,我我个人还觉得不同阶段可能嗯不同的同学,他们选择科研课题的方式也不太一样。
首先是就是不管是论文还是资深的一些学生,他可能都要选择一些发展空间大,晋升小的一些课题,但是比如说对于一些低年级初入门的学生嘛,他们最好就是选一些技术风险没那么大了,比较小的一些课题,而对于高年级学生。
他应该去选一些更有更未知的,不知道这个东西能不能做成功的这种课题,然后最后的话是哦,我发现初初年级同学因为他很不了解,不太熟悉整个科研的一个流程嘛,所以最好不要让他们去做这种。
已有defined task,就是可能这个任务的输入输出都没有定义清楚,需要自己去定建立这种benchmark,这种课题对于低年级学生来说是很不友好的,那对于高年级学生来说。
就是我觉得做you define task挺好,相当于是在开坑,很可能就是很多人来follow,那不管是低年级还是高年级的学生,其实很多时候去做well defined task。
我觉得都是一个好的选择,因为一个课题它的好坏,不不在于说他是不是也有define或will define的,而在于说他这里面的问题是否是这个领域,当前时间点觉得重要的嗯,那对于初入门的同学。
我是一直都是推荐先做一个will define task,因为这种任务是往往是有一个一个很好的备赛,也有一个这样的代码,我就很容易去上手去学习好,这就是科研课题初始化的对。
然后到第三个部分就是怎么去设计技术方案,这边讲一下什么是方法设计啊,就是说在选定课题以后,我我我现在有一个任务嘛,那我现在就是还需要设计一个PAPI。
来达到这个setting下面的一个soup performance,这就是反法设计,那为什么要有个方法设计系统性思路思路,首先我我我,其实个人觉得,设计方法是很难有设系统性思路的,因为我们讲创新嘛。
他是无迹可寻的,但有时候突然就发现,某一个方法就特别很有意思,就好像是叫灵感迸发一样,这是我早期的一些想法,但当我去好好整理这门课程的时候,我发现可能创新也是有有迹可循的,它至少是有一些基本的流程。
步骤是需要去遵守的,只是说我们在里面的某一些地方,需要有一些灵感的启发,那这边的话就是假设我我这门课程真的教了,同学们这些系统性的方法设计思路,我相信有一个清楚的思路,是能更有效地解决问题。
达到一个soa performance,第二的话是我们很多时候我们做这个方法,设计方法更有动机能量,最后的论文也很自然自然,而不是一个去讲故事,一个编故事的一个过程。
第三的话就是能去保证自己设计出来的方法,是很normal的,以免最后写作文的时候,审稿人在说他没有任何novelty,这是很不好的嗯,最后的话是,如果我们有一个这样的专门的方法论。
那我相信能很有效的提升我们的一些技术,Insight,这是系统性思路,一个好处四大好处,那怎么去设计方法呢,这边也是讲的很简略啊,就是第三周的时候会讲这个事情,设计方法的话就有一个四个基本步骤。
我们不管设计怎么发吧,首先我们要有一个动机,但这个动机来源于说能知道原先方法,为什么不work,所以需要先分析原因,分析原因怎么分析啊,这边先讲一个词啊,叫第一性原理。
第一性原理就是说不管我要做什么事情,我先去发发掘它的本质,那我们这边要做的就是去分析,为什么当前它的收纳方法效果不够好,这是第一步,知道一个原因以后去设计方法,设计方法。
就是说我根据自己分析到的这个技术原因,我能去有一个靶子,我能或者说有一个钉子,我能找到一把合适的锤子,去找锤这个钉子,设计一种能达到SOTA的一个方法,或者说能解决问题的方法。
第三个就是去说去判断自己提出来的技术,是否合理,因为很多时候我们会考虑不全嘛,这很正常,最后的话就是去改进方法,改进方法就是可以通过跟同学讨论啊,做实验啊,去改进这些事情,那这边有三个要点啊。
就首先我们不是工程师,我们是在做research,所以我们设计方法的时候,一定要保证的方法是很很有创新性了,为什么会有创新性,我后面我第三周会展开讲嗯,第一第二的话是能争取在PAPON层面。
就是去设计具体的一个呃解法,而不是只是说我在某一个小的模块,小的步骤上做小修小改,争取提出新的技术范式,第三的话是我们设计方法时候,我们需要不断的去问自己,说,我去做这个事情有没有足够的技术贡献。
有没有给领域带来新的知识,新的认知,新的观点,有的情况下,这种情况下是真正在做科研,而不是在做工厂好,然后到第一个部分,我这边有个字写错了,是首先是要迭代技术方案嘛,我们要基于现在的技术方案去设计实验。
然后这是怎么去设计实验呢,首先我就讲实验设计是什么,实验设计师去规划要做哪些实验,能去那实验设计有有两个好处啊,一个的话是能让研究变得简单,能让我们想清楚实验的目的明确呃,我我现在要怎么去做这些嗯科研。
第二的话,我很多时候我设计清楚的实验,我能把实实验的难度给降下来,能提高实验效率,那怎么去设计实验呢,这边就有一些核心原则啊,这是我个人的一个经验,我们一定要去减少一个实验中包含的,探索点的数量。
这个探索点是什么意思,就是我可能要做一件事情,里面有两个同时的额风险点,那如果两个风险极点同时存在,一旦实验不work靠,我就不知道是风险点A还是风险点B出现问题,那如果我能有效特别有效降低这些风险点。
那我如果一假设每次实验只有一个风险点,他如果错了,那我就是专门研究这个风险点就好了,这是让自己额事后分析,实验会变得非常轻松的一个方法,那怎么去减少风险点呢,一个的话是我们一定要去分解排败。
一开始我们可能提出来的派派是一个很,一个比较相对复杂的一个排班,那我们要把它拆解成不同的组件,从可控的一些模块开始去添加,具有探索性和创新性的模块,第二的话是也可以去分解实验设置。
就可能我有时候这个数据特别难,或者是数据里面啥都有,我先从一些较为简单的setting开始探索,逐渐增加难度,那我们这边还要去考虑说探索点,它的一些重要性,然后去通过实验做一些优先介意的排序。
那有的一般设计完实验,我们去做实验嘛,然后我们就要去实验去提升方案,那这边为什么要去改进方法,因为很多时候很现实的,我们提出来的idea,可能以为我们一做实验他就会杠。
但实际情况下我们做实验他一般就是不work,所以我们需要不断的去分析,那怎么去改进方法呢,我我我这一个阶段就是把这个改进方法,流程也当做一个嗯HGD优化过程,怎么说呢,就是我提出一个idea以后。
我会去评估的idea,或者是直接做实验,然后这时候我会得到反馈,得到发现它不是我的一个理想的idea啊,那有一个这样误差以后,我再去计算梯度,根据这个梯度去改进这个id。
这是这就是一个典型的一个HGD优化过程,那怎么去改进方法呢,我这边就是泛泛而谈讲一下啊,一般来说有一个idea以后,我们不是直接做实验的,我们要通过学习额外学习来直接改进。
这个idea可能是从文献中学习,也可能是从其他的研究人员那边学习,那去有这样学习,我可能就会去直接在理方法层面,理论层面去迭代改进了,当然也可能有他们先,我可能还会发展出一些更多的一些技术的VARI。
那有了这些以后,我去做实验,一个一个尝试去实现它,设计实验,然后分析实验结果并获得梯度,根据现在的一个分析去改进,那id啊就是一个这样一个流程图,这个的话在第五周会去详细展开好。
那第三个部分的话就是去讲论论文写作,论文写作的话就是有几个部分啊,啊我觉得论文写作应该是做科研里面最简单的,就因为它是一个套路满满的过程,很可能我我现在给你们讲说每一步应该怎么做。
我甚至呢我能抛出一个论文的模板,你们在用GPT结合这个作文模板,就可以写出一篇看着还不错的一个论文,那这边的话论文写作部分有有五个步骤得规划,这些写作,梳理故事,论文画图,论文写就是文字写错和论文评审。
那这边的论文规划,写作规划的话有一般我觉得一个写一篇文论文,它有九个步骤,首先是不管做什么,我先能去把自己的一个排版figure给划清楚,能理清楚方法的流程步骤,同时抵清楚以后。
我就能有一个store在了,有一个出有一个intro的初稿,第二的话是我得先清楚说我这边的问,要做哪些对比实验和applation study,然后清楚以后我就开始去写仿写method部分。
同时去做实验,把method和intro都写完初稿以后,其实论文就基本做好了,那第四个步骤是去改进intro和method的,第五个步骤是呃,我现在实验也做完了,前面也写好了,我开始去写实验部分嗯。
第六我觉得reality work可以在这里面去去写,第七是我现在论文有一个基本完整的稿子,我要自我去评审论文,去改intro,改配置,改experiment。
第八的话就我把论文的abstract写出来,去取个名字,第九的话就是反复的review论文,改论文,这是我个人觉得比较好的九个步骤,那为什么我们需要去规划自己的整个写作呢,哦我发现一个很重要的事情啊。
就是如果能提前一两个月就开始写论文,这篇论文基本是没啥问题的,很可能就是能中的就是能大幅度提高投稿率,第二的话就当自己做的更轻松,就避免最后几天熬夜,说实话我我自己我读博士的时候,我做论文。
我都是提前提前至少一周或两周把论文做完了,所以当时我就从来没有熬夜,也或者是有熬夜也是象征性的嗯,表现给自己导师看,我自己就没有去真正的去熬夜,但是说实话,就是当后面有跟一些低年级同学合作以后。
我就不得不去熬夜帮忙改,但我发现这个这样好像也没有什么帮助,所以我现在又开始变成我干脆不熬夜了,因为我感觉如果需要熬夜去赶的论文也没啥用,都是一些去抽彩票的一个事情,所以的话有一个写作规划。
能提前把论文做好,这才是嗯能让自己科研变轻松,提升自己中考率一个真正有效的方法,然后第二的话是怎么去梳理论文故事啊,我觉得论文故事要梳理清楚啊,必须得把自己的论文图先画画的有一个草图,我们人是视觉动物。
看清楚了这个可视化可能整个流程就清楚了,那这边就是首先是文字简单描述一下,后面是怎么绘制一个非常简单的一个流程图,那这边拿我以前一篇论文来举例子啊,我就能把它每个输入模块一输输,中间输出都讲清楚。
先这么列出来,然后的话我去选一个很简单的排版,这个流程度不用不用很好看,就随便我就列一个特别草的草图,但有这样的流程图,我就大概知道我方法都有哪些模块,它们一个数据流是怎么去构形成的。
那有一个这样的流程以后,我就很容易去梳理论文的故事了,那这边的话就是一般我是怎么喜欢,通过回答问题来梳理故事,我们能去回答清楚自己的派派有哪些贡献,这些贡献有什么好处。
这些我们论文带来什么insight,然后我们能去通过怎么介绍以往的方法,来引述我们关注的技术挑战和insight,那这样的话我就是回答清楚问题以后,我就能把这个论故事给梳理一遍,首先是介绍论文的任务。
然后去通过这讨论以前的方法,来引入我们技术挑战,第三的话是应对技术挑战,我们提出某某贡献,我就是讲方法,然后最后的话我们这些技术贡献都有哪些,技术优势,有哪些insight,这是梳理故事部分。
然后的话是论文画图,论文画图,首先论文里面一般有哪些图片呢,一个是流程图,梯子定量结果定性结果,所以的话嗯那为什么我们要好看的图案,其实很简单,就是为了提升中稿率,就大家应该是有发现。
如果是那种大大主很牛的那种,他们的审美,他们论文质感一般都是比较好的,就是他们相当于技术做得好,论文的展示也做的很好,那怎么画图呢,其实这前面刚刚两个步骤已经讲了,先文字描述拍不烂。
然后去绘制简单的流程图,第三的话就是能可视化,把各个步骤呃个个的输入输出给可视化好看,然后能去配色,最后的话呢继续去优化布局,那我这边就拿这个例子啊,就刚才我们不是画了一个很简单的流程图吗。
那比如说这是我们最初始的一个流程图,那他后面最后一个效果是长这样子的嗯,那这里面的一个线条框图,元素可视化配色都非常重要,那我这边就一个一个讲,首先是线条,我们人他是一个喜欢。
一个是最近一个喜欢的风格是低饱和圆润,所以这边框图一般是有点圆润,有点圆角那种感觉,这是框图,第二的话是元素可视化,比如说我把这些点匀,把这些嗯网格,把这一个渲染过程可视化搞好看,这非常重要。
然后这一般元素可视化也是最难的一部分,但其实不需要创新啊,很多时候我们只要积累就行了,就我们知道点云网格,为什么它按什么可视化好看,我们到时候类似画一个就好了,然后最后配色就整体的配色不要太花。
它有一个和谐的感觉,这配色也非常重要,好,那接下来讲怎么去写论文的方法,我这边因为时间问题,我会讲更简约一些,就当我们画清楚一个pipeline的草图以后,我我们就针对根据这个排版的草图去说。
去把每一个模块,每一个step action讲啥先列上来,然后就开始具体去写每个subsection,我按我个人经验,所有的method subsection都有三个部分,讲清楚具体的设计。
第二的话这个模块它的一个motivation,第三的话就是这个模块,它有一些什么具体的技术优势啊,那很多同学不清楚的是,他可能连怎么描述机线组建,源模块都怎么设计的,不知道,那这边一个很简单的方法。
就是去用这一个句式就能很清楚的讲清楚了,就我给定了什么什么输出输入,第一步做什么,第二步做什么,第三步做什么,最后得到什么样的输出,这是模块具体设计,然后的话是模块的motivation基础优势。
那这边有一个简单案例啊,就以前我的一篇论文,我里面的所有方法都是有这三个元素在的,首先我会去讲清楚我的module design,模块具体怎么设计,然后讲清楚以后,我去讲他的一个技术优势,这是33。
1section,3。24section也是一样的,我会去讲清楚这个motivation,讲完motivation以后,会开始去介绍他具体怎么做的,就是module design,3。
3也是讲清楚model desig,两个三个都是在讲model desig的好,OK然后最后的话是论文自我评审,就是我做完论文以后,我肯定得知道说嗯,审稿人可能会指出哪些潜在问题,那为什么需要自我评审。
也很简单啊,就是我提前预判的,他可能攻击我的地方了,那我防出去了,那我就提升了我论文中稿率,那这边怎么自我评审啊,我觉得这是一个很嘶呃,一个很套路的事情,就是把每个点呃分别过一遍就行了。
这个是一个checklist,OK那就我就把嗯所有流程概览一遍,然后今天讲,今天具体一个内容是怎么去建立领域事业,OK那怎么建立领域视野呢,我这边其实刚才已经讲过了,领域视野。
就是能知道这个领域它一个技术流程,能知道这个重要的问题都有哪些,那我这边举个例子啊,比如我做多视角重建,我如果是一个专家,我能回答清楚这两个问题,这个多视角重建的技术,从2015年到2024年。
他怎么随着时间的推移而演变的,那我能知道说嘶这该方向还存在哪些重要问题,这是所有的专家都能回答清楚的两个问题,那为什么要建立视野呢,刚才也说了,就是有视野以后,我能知道怎么去选择科研课题,怎么设计方法。
怎么迭代方法,怎么去写作,这是视野,那这边的一个案例啊,比如说我能知道,假设我知道2023年one two three four five,它出来的时候,知道当前的一个。
可能接下来会很流行的是这一个技术路线,用diffusion来去帮助三五都市讲三五重建,然后同时我知道这个领域到2023年,技术视角重建还非常重要。
那我可能当时年初就开始用diffusion model去做,可能我在2023年的CPI,就能去做一些这样的事情,就能去引领技术发展,甚至可能更大佬。
比如说我在2022年看到的diffusion model出来,我就能知道,这个技术肯定能用在系数视角重建上,那我在2023年初我就能去引领技术发展,这就是一个领域视野的一个,当自己站在一个足够高的地方。
就能足够超前,OK那这是一个简单案例,OK还有的话怎么去建立领域试验,刚才也说了啊,就是有一个这样的一个流程,我知道这个领域有哪些里程碑的论文,我能知道这些论文的一个前景和follow up。
然后我能去梳理技术流程,能去梳理有哪些重要问题,那这边的话有个例子啊,就比如多视角重建,我能知道最早是call map,传统MATERISTEREO,那2018~2020是n vs net。
2020203是NERF这些方法,然后从20232024,是一些像dust three啊啊,Diffusion model,diffusion model这些的一个流程。
这就是一个经典的一个呃技术范式演变,那怎么去识别milestone paper呢,很很简单,其实就是引用量比较高的,引用就是比较早的一些论文,或者的话就是找找这个领域,经验丰富的人员去推荐,那怎么去找。
说哎之前的论文之后论文那就是向前赘述嘛,说这个论文都印了哪些论文,那向后追溯的话是去看引用了这个论文的论文,他的一些follow up,那怎么去梳理说一个领域,它的一个技术发展脉络了。
那我我这边就又我很喜欢发明一些数据结构啊,就我这边就发明一个词叫视为时间轴思维导图,这是一个印象,我先给大家讲怎么做,怎么梳顶啊,我首先先初始化一个时间轴吗,从2015~2024,然后把论文都列。
根据他们的一个公开时间,都列到时间轴上去阅读每篇论文,然后去确认哪些论文是一个经典的,早期的提出技术拍摄的论文,哪些论文是某博论文的follow up,然后最后总结这些论文嗯。
比如这些maon paper它的一个技术范式,然后follow up paper做出来改进,那比如这就是一个时间轴思维导图嘛,像2016年,像call map,当然我这边没有更早结束啊。
call map肯定是某篇传统multiview stereo改进,然后2018年n vs net,这绝对是第一篇这种登领的技术范式,中文还有2020年的NERF,2021年的PPERCEIVERIO。
嗯这样的工作嗯,这就是一个时间轴思维导图,然后今天的作业也会希望大家能去梳理清楚,这个思维导图,Ok,那怎么去梳理大家所关心的问题的发展脉络呢,我觉得这个很简单,就是记录每一领域。
他大家每一年他们的热点问题是什么,然后能回答清楚这四个问题,我们这个领域它的一个终极目标是什么,这个领域他已经达到什么水平,然后还有哪些重要问题没有被解决,那现阶段的一些热点话题是什么。
那我没这就回到我一开始说的,其实我们上我们这门课,没办法直接给你讲这些问题的答案,但我能给你说,你要做好这件事情,你需要回答清楚哪些问题,比如你不管是做video diffusion model。
图片生成多模态感知,不管你做任何领域,你都必须得回答清楚这四个问题,你才能选择一个好的课题,当然这是带有我强烈个人色彩的,一种研究风格啊,然后最后的话还讲一下说怎么去有效阅读论文。
我觉得阅读论文可以去借助种我,我自己又发明一种数据结构,叫论文解析数来去解决这个问题,就是把阅读论文的过程转变成回答问题的过程,那这个比如说哎我看完摘要吗,我能去解析出这一个数据结构。
我能知道任务是什么,我能知道他们想解决的技术挑战是什么,我能知道说这句这篇论文,他一句话能讲清楚的一个核心贡献是什么呃,呃以及它每一个地方,它一个具体的技术贡献,然后这是intro,Intro。
也是每一个地方就是一个填空,能去回答清楚就好了,呃这是method,也是类似的,然后method的一个很重要的是,我们看完method能自己用口头复述一遍,第一步做什么,第二步做什么。
第三步做什么好,那建立领域事业基本讲完了,最后还打个补丁啊,就我们一般要建立多大的事业,这个其实跟个人能力很有关系啊,就比如自己是很入门的,那就是很很小,很specific的一个领域方向就好了。
那如果是一个大佬或者是高年级同学,他肯定视野越大越好,那初学者一般就是建立一个较为,narrow的视野就好了,那当一个人越来越强。
他看的论文越来越多,他的一个视野肯定是越来越大的,OK那建立领域事业,还有一些额外的方法,就是比如说去跟别人去看一些talk,像一些大佬,他们talk,他们会去讲一些自己对领域的理解。
还有的话是跟别人交流,比如说实验室的同学啊,导师啊,一些知名研究人员对吧,好,然后比较重要的啊,我我刚才一开始就说,我们这个要通过实践来去啊推动自己,那比如我今天给大家讲清楚了。
我自己设计的这种时间轴思维导图,那大家这个作业,就是说自己在做某一个研究方向,能不能去整理一个自己的时间轴思维导图,然后并总结出来,那我刚才问了那四个问题,或者你就回答一个问题就行。
说当前时间点仍然没被解决的,重要问题有哪些好,然后这个可以说有个思维导图啊,有个一些文字放在一个word文档转成PDF,然后提交好,这是这一节课的课程,就是对,就是有很多是可以展开,就是慢慢讲的。
但因为时间有限,我接下来就是进入一些QA环节吧,OK那这个的话我是整理一下,就是我发现有些人问些是入门时候会遇到问题,然后有些人问的是一些做一做,做project时会遇到问题,我先回答一些入门时的问题。
我觉得这个问题特别好,因为我觉得我当老师以来特别重要,就是得知道同学他在科研方面有什么问题,我觉得中国人有一个很大的问题啊,就是好像师生之间的交流是不够充分的,那比如说我们这节课。
能每次匿名的去收集一些问题,能知道学生是想了解什么呢,我觉得这个对当老师是有非常大的帮助的,那我就开始回答这些问题啊,首先是有同学问嘛,说最近开始读论文了,感觉深入理解论文和代码都是有难度的。
有什么建议吗对吧,首先读论文,我刚才已经讲了,你可以把它当做一个填空解题的过程,你这样的话会有一个好处,第二话,其实读论文它很多概念是比较抽象的,那这时候嗯我们还是得去读它的代码。
但很多情况下看代码效率特别低,为什么呢,因为它没有目的性,我即使看完代码,我知道他的逻辑,我不知道这个看代码有什么用,不知道自己满足自己什么需求,导致自己没有收获,那这边我我更去思考过这些事情。
我觉得有一个技巧,就是我不管去学什么论文和改什么算法代码,我都能先去设计一个很简单的改进任务,然后完成这一个任务,这个就跟玩游戏里面新手村的任务一样,我去有一个明确的目标,在完成这个目标过程中。
我把代码论文的算法都学懂了,同时我因为这个任务比较简单,往往是可以完成的,那我就有一个正反馈,觉得自己能行,这是比较好的一个方法,OK还有话说,有同学问,怎么去快速的有效建立对一个领域工作认知。
还有有同学问一个特别具体的问题,比如说三维重建领域怎么系统学习,那我刚才上课已经讲,就是你去构建自己的试验,构建一个这个时间轴思维导图嗯,对于想了解三维重建领域的,可能就是直接拿我这个去学就好了。
这个比较简单好,然后入门时,就是有有同学说自己感觉自己基础不够好,有有些老师他呃可能课题太难了,就不知道反而不知道怎么入手了,我觉得不管是对于新手还是高年级同学,在进入一个新领域的时候。
最简单最好用的方式就是去上手一面,一篇开源的best and paper呃,就因为它开源了嘛,我跑一下,甚至我搞一个小的改进任务,去学习它的代码和算法,我很快就知道这个领域它的需要的,它的概念。
它一些坑在哪,这是最好一定得去上手一篇开源的best sine paper,不要就是一下子就自己瞎,不是瞎嘛,就是不要自己就是天马行空去实现某某方法,因为这样会踩很多坑,这个我在第三周也会讲这个事情。
第五周也会讲嗯,好然后再接下来的话是有一些呃,做一做的时候遇到问题啊,就怎么去选一个具有较长发展,或者是探索前进的研究方向,呃,我觉得我这个问题具有非常强的个人色彩啊,就是自己参考一下就行。
我其实我非常喜欢angel davison,他的一个研究风格,他自己做科研,是有一个明确自己想实验的产品的,就是产品就是落地的产品,然后他会不断的去思考,说当前我的一个研究的SA和我想做好的产品。
还存在多大gap,这个图不是我画的,是angel angel davison,他画的我,我自从听过他那个talk,我觉得我科研就是水平进步太大了,就是我我的科研会有更强的目的性的,我能去。
那这时候比如说我要去选研究方向的时候,我就在想哎,我现在嗯我比如说我想去做实现三维重建对吧,三维重建它一个product可能就是一个三维扫描仪,那三维重建和嗯成熟的三维扫描仪之间,还存在多大gap。
如果发现gap很小,那他可能就没啥好研究的,不过gap还很大,我觉得就很值得研究,然后怎么选择科研课题呢,那刚才已经讲到了吗,你要有视野,然后能知道有哪些问题能去跟人讨论,判断是不是好的课题。
然后尽量追求更高的一个学术影响力,那怎么从怎么在实际工程中提炼科学问题,我觉得这个首先得先判断你这个实际工程,是不是真的有很大的提升空间,读过它就没有提升空间,那不可能有科学问题。
有有大的一个gap才能有科学问题,第二的话是发现仍然存在一些重要问题,能把它列出来,D3的话能通过一些第一性原理,去分析这个问题,他不行,是的本质原因是什么,这样的话就提炼出来的他的科学问题了。
好有同学问的话,是怎么去快速判断一个课题是否值得深入研究,我觉得就是两个吧,这个嗯就是有就有没有就没有的,没有一个方法论啊,就是如果自己的领域试验和实验经验都很充足,就是能判断。
如果没有这两个部分就是没法判断,要么就是找人求助,多跟别人去讨论,OK那怎么去确定最好具体的解决方法,这个第三周会讲,反而这个流程就是分析原因,实际方法,判断合理性,改进方法嘶那有海量的技术路线怎么选。
一个最合适的,那这个跟刚才差不多啊,就是依赖个人的领域事业与实验经验,然后可以多和人去讨论嘛,好然后还有一个project时间规划,我我我个人很喜欢这个问题啊,我我我们实验室内部是有一个这种表的。
但这个表可能井空就可能只有实验室,每个实验室的风格是不一样的,情况也不一样,所以没法直接套用,就一边一般来说我觉得CB领域或者是同学领域,现在因为都用神经网络嘛,工程量小很多。
可能一般六个月是能搞得定的,那每部分要投入哪些时间呢,首先就做一篇论文嘛,就有六个步骤能知道任务,能知道非洲case,能有一个具体idea,能去设计实验,能去把这个事情做好,能去做demo,做展示。
最后能去做论文对吧,这个的话哪个步骤就就列在这边了,可能一般其实规划project task,我这边只写一周是多,不是在我们实验室,可能在其他实验室可能不是那么合理,所以这个是case by case。
这仅供参考就是了,然后比如说其实规划task,有些同同学他只花个一两个月,是两三个月对吧,可能要去找到非洲case,可能又要花两三个月嗯,去设计方法,如果没人带,我相信这个估计啊,两个月可能都不止啊。
怎么去验证,如果没人带,我觉得也是,反正是这时候同通过这个表,就能特别明确的看出,有人一步一步的带,做科研和没有去代做科研是差别很大的,就是时间时间规划上是完全不一样的,好。
这个的话就是额这个这一节课的所有的内容呢,就是包括了QA环节。
那接下来的话就是进入panel discussion的环节啊,我我我这边喊一下其他奖者上来,哎哈总就等一下我把PPT,我我把PPT关掉。
诶,你们能看到对吧,哈喽哎,哈喽就是对,然后就要不嗯应该也不用跟同学自我介绍,就因为那个主页上都写了,然后的话我我就是四个人,我今天就代为主持一下,我自己当做一个主持人吧。
然后panel discussion的话题,就是嗯就是之前的微信公众号上写了,有七个问题,首先先自我营销一下嘛,说我们这门课希望通过怎样的方式来去帮助,帮助想做科研的同学去入门是吧。
那就是要不先请高军老师先开开展,第一个问题,就是怎么通过啥方式,来帮助想要做科研的同学入门,呃对呃,其实我想的是,我们其实想从在我看来,有这么几个角度来帮助大家入门,首先大家如果看这门课的课程设置。
其实我们的每一个每一门,每每一堂课要讲的内容,其实都涉及到一个科研的每一个环节,所以在我看来就是说,当大家能够把我们每一个课程的每一节课,都从头到尾听到尾,其实你是三炮,类。
似于是跟着我们一块走过了整个的科研的过程,从比如说从最开始的怎么想idea呀,然后呢怎么去做实验,去验证你的idea啊,怎么improve你你的idea一直到后面,比如说怎么写paper。
怎么做presentation,其实这是一个这是一个做科研的一个流程吧,然后呢,希望如果说我们能够通过这么一个,通过这么一门课,然后来告诉他大家这样的一个流程,大概是什么样的。
然后这是第一个我觉得能够帮助到大家的点,第二点其实就是说更细节一点,就比如说在每一个环节当中,其实会有很多的在我还是一个信息差的东西,然后所谓的信息差其实就意味着说,比如像我们比较像一些比较新颖的。
可能大家已经经历过这个流程,那么我们会有一些心得,然后说或者说会有一些啊大家踩过的坑啊,或者是大家觉得能够somehow improve,然后使得其他人能够做得更好的一些习惯。
这事情是我觉得我们可以作为一个分享,然后能够把我们的一些经历或者是经验,能够分享给呃,其他的没有经历过这个环节,或者是在这个环节里面碰到一些困难,然后去帮助这些呃,正在就是做科研这些每个环节的呃。
同学们,然后这是第二点,然后第三点,其实我觉得呃其实如果从科研整个角度上,其实科研每个人有自己的风格,每个人会有自己的style,每个人做科研的方法论,其实也会有一点点不一样对吧。
然后这也是为什么这门课,我们会有四个不同的讲者,因为我们也希望能够,从更多的角度来告诉大家说,可能每个人觉得可以这么做,然后另外一个呢可以大家这么做,就是可以更加的有不同的,有多样性。
然后大家能够集思广益,然后希望能够给大家一个更加全面,更加更加更加全面吧,如我们争取能够达到更加全面,但它是不是全面,这个不一定,但我们争取我们能够达到更加全面的,来告诉大家这个做科研的一些经验啊。
方法啊,流程大概是什么样的,然后这是第三点,然后最后一点,其实我觉得另外一点,其实哦做科研这个事情呢,其实我们讲的很多东西,其实更多的其实还是一个比较偏向于,纸上谈兵的过程,所以我其实另外一点。
我其实更加希望的过程当中,就说哦大家可以跟着我,我们这样走过来一个过程当中,但是我其实也很希望大家,比如说当你们之后,如果碰到了可以在某个环节当中,你碰到了相应的困难,你可以回过头重新看这个视频。
那你可能会有一些更加啊新的收获吧,就是这是我觉得就是如果像这个课,因为这个课程他也是online放的,然后大家会有呃呃视频也会在网上,所以当你之后遇到在对应的环节当中,你遇到相应的困难。
你可以回过头来重新再看一遍,我们讲的这些东西,所以那个时候也希望因为你已你已经有了实践,然后当你有了实践,你再去看我们所为什么要谈那些方法,或者为什么要讲那些问题,你可能会有一些更全新的一些收获。
所以这是我觉得呃,这门课能够帮助大家做科研入门的,这个呃四个方向对,嗯嗯我我特别赞同就是高俊老师的的说法,然后呢像曾有宁有什么就是你你你觉得是对,我觉得高高俊说的非常好,就基本上都没有什么可以说的了。
所以难怪也是做教授了,对没有,就但就是其实我自己可能补充一下吧,就可能哎就说这门课程,希望通过什么方式来帮帮助对吧,就可能就像高宁前面说的,我们可能四个人有四个不同的研究风格。
然后我们其实在准备啊课程的时候,我们每个人都在把自己的一些经历放上去,然后每个人的经历其实又不一样,然后有一些可能是完全对立的观念,有些可能是互相补充的东西,然后这样你也可以让你有不同的一个思路。
去思考,诶,你是更喜欢哪一个呃,相来说你的风格或者说怎么样,然后因为本身1000个人做科研,1000个人都有不同的科研风格,所以可能还是要找到自己适合自己的方式嘛,对吧。
就我们可以提供一个大概的一个相来说,框架说好怎么思考,然后怎么怎么做科研,但是具体最后还是落实到你自己,所以可能我觉得这个是一个比较有意义的,就不是说好我有一个人,就你就只能按照一个方式来做科研。
所以我觉得可能这个是一个额外的点,我可以补充的对,然后另外可能还有一个点,就是我们因为也也有这个什么个这么多个群,然后也有答疑呀什么的,所以可能这个也是一个,我觉得是一个挺好的方式。
有什么问题可以大家在群里面问,然后我们如果说可以的话,都会回答对,是大概就这样,那倩倩对我觉得大家讲的都很全面了,然后我补充一点,就是我因为我们讨论的是怎么帮助同科研同学,做科研同学入门嘛。
那很多同学的他可能就是刚刚结束,比如本科,然后是一个以完成学业的方式,在就是就是就是就是比如课堂作业,然后呢就是有分数对吧,所以他的反馈是非常及时的,你看到你的你你的这个考试成绩,你就知道你做的怎么样。
但是其实科研的反馈周期是非常长的,但对我们来说可能没有那么长,因为我们就是六个月或者多长时间,你就呃你要做出一篇工作来,但是这个周期还是,尤其是对于新的同学来说还是很长的。
所以说我觉得如果你知道你有什么问题,能能够及时的,就是这个课程可能提供的是一个,让你对自己做自我诊断的一个过程,就知道什么样是对的,什么样是可能不太好的,然后这样的话就可以及时的给你反馈。
然后你就可以及时更正自己的做法,然后我觉得另外就是说他确实可以告诉你说,做科研需要哪些技能,因为我回想我自己,比如刚开始做科研的时候,我做的不是特别顺利,然后呢我也不知道为什么不顺利对吧。
因为呃如如我现在回头看,我发现我是缺少了一些,就是说独立做科研的的技能,比如说啊独立想idea的能力呀,或者之类的,所以这样的话其实也可以帮助大家去知道,就是说你需要去培养哪些技能。
然后可以及时的查漏补缺,大概是这样哦,我觉得三个老师讲的特别特别好,特别全面,我我这边就是在嗯补充一点,也是想再pr一下嘛,我我这边想强调的是,我们跟就一些大佬分享talk,就是分享经验。
肯定经验会有一些区别,我我经常我读博的时候经常看,包括现在也经常看那些大佬,他们分享的科研经验呃,我觉得可能有一点区别,在于他们很多时候是高屋建领的,就是讲哎呀应该怎么怎么做啊。
就是但他不会说把这个财产拆散成每一步,第一步,第二步,第二第三步,他可能不是一个算法流程,因为他们是大佬嘛,他们很多时候讲一下,他们好多时候带的学生都特别特别优秀,可能就悟了,就是像禅宗一样。
然后我觉得我们这门课可能更多就是想面,面前的是没做过科研的同学,我希望是我们这门课能像算法流程一样,把科研变得更呃代码执行啊,当然我我知道这个这个方式,它可能不适用于一些天马行空,很天才的啊大佬啊。
但我相信是能适用于很多同学的啊,比如我自己,我觉得我就很实用啊,这可能是我们课程跟其他课程,或是其他一些大佬经验分享的一个区别,然后的话我们每节课也是会去布置作业嘛,写以及有一个具体的QA环节。
可能互动性会更强一些,嗯好那这就是第一个第一个议题,然后第二个议题的话是说,入门时大家都遇到什么困难,怎么解决的,然后刚才前两天也有提到,说自己入门时的一些额,是遇有遇到一些小小困难。
那要不就从先前这边开始,对我可以大概介绍一下我个人的情况,就是我是大概就是本科期间做一个科研,然后呢当时就很顺利,因为有人带我,就是周晓薇老师,当时在宾大跟他数研,然后基本上就是说题已经选了。
然后他也大概知道,我说这个东西你就这样做就能做出来,所以呃我其实并不知道科研是个什么样的过程,但是我就很幸运,然后呢我只需要负责,怎么说呢,就是大概111部分就是需要一部分的,就是执行。
就是肯定需要很强的执行能力,但是呢也需要一点点就一点点,就是说像idea的能力,所以我不知道我其实是有欠缺的,然后呢我就是博士第一年,我是当时是就是只能就是说当时的情况是,我直接跟教授做。
然后没有没有人带我,然后呢,呃因为我不具备就是自己独立想idea的能力啊,也没有,就是说就是说执执行,执行整个project这样的一个能力,所以我觉得还是进行的不是特别顺利的。
然后还有一个原因就是当时在呃,就因为方因为一些就是就是founding的限制,就是呃在选题上选的也是一个比较传统的,然后发展比较平缓的,然后研究空间也比较小的问题。
所以说这样就导致就是说难度就会更大一点,然后我又需要去了解这个领域,然后呢我的能力又有限的情况下,就是做的比较慢啊,这这这大概就是我一开始遇到的一困难,所以总而言之就是啊,我的能力并没有到。
能够自己独立的执行一个项目的一个程度,但是呢我又需要去做这样一件事情,对那然后怎么解决的,嗯嗯解决的话我觉得也没有什么,我现在回想起来我也不知道我是怎么解决的,反正就是我觉得就是很踏实。
就是说你就是把它走完一遍对吧,就是嗯然后呢就不要轻易放弃,就是其实每天你都能得到一点点的梯度,每天都得到一点点的gradient,然后日积月累,其实你就已经提升了很多了,但是你要说有什么非常大的转折点。
我觉得好像好像也没有,所以对,好然后那生有你了,我看你是读了硕士,然后在读博士,那对是对对,我其实一开始的情况和亲家还也是有点像,就一开始最开始最最最最一开始做科研的时候,也是哦和一个相应说教授做科研。
然后他其实已经有一个比较明确的id,然后什么都已经相应说帮你搞好了,你就是相信去实现就行,然后对也是一样的一个过程,然后但是中间过程当中也会有很多问题嘛,对吧,就是肯定不可能是真的就一帆风顺的。
但是就整体来说是算是顺利的,但就可能说的这个什么陷入的困难,其实就方方面面都会有困难,比如说好的,那实现我实现不出来,那要怎么debug,这也是困难对吧,这些都是一些困难,然后就我现在也想不起来。
我是具体怎么样子解决啊,这些问题的就是说可能也是说好,你当你遇到这些问题的时候,不一定是一个具体的什么的问题,然后你可能就我觉得可能需要多去交流,就比如说你可以和带你的人一起去多交流。
假设没有真的有人带你的话,你要想方法说好,我这个方这个问题我应该去找谁去聊,然后可以去嗯,可以帮助我解决这个问题,就是现在说你要有一个主观能动性在,因为都是这样子的嘛,对吧,你做科研。
然后你写目标是把这个科研课题做好,然后所以就你往往从方方面面去想想办法,怎么去解决这个问题,然后对可能就是我可能主要就是和别人多沟通,然后然后然后可能慢慢慢慢,然后就会也就走出来了。
对最开始的时候是这样子的,对,那小君你你呢哦,其实我可以讲的事情是这样子的,就是其实我最开始做CD research的时候,我们group其实是在CD这个领域里面,几乎是zero的积累,然后呢。
其实但是这个是我们当时碰到的最大的困难,就是就是大家都没做过,所以相关的research,然后我导师也不是做随意出身的啊,这是我我们当时碰到,所以入门随意对我们其实很艰难的过程,在可能是19年的时候吧。
大概是嗯,然后怎么解决呢,其实我觉得maybe可以有借鉴意义,然后但是他是一个非常specific,就非常特一个特殊的例子,但我觉得他是三炮,可以借鉴的是嗯,就是其实前面松有可能倩倩应该也提到一点。
就是多跟周围人讨论,比如说在我们当时是我们group里面,除了我之外,还有另外三四个我们都大家都是PHD,然后呢大家其实都在往随地方向做,大家基本上都是刚开始往随地方向做,大家都处于入入门的方向。
然后呢,当时大概是比如说像我可能会看很多,跟STUDIREPRESENTATION相关的的文章和paper,然后还有另外一个他专门做,比如说做defensible rendering,就是可微渲染。
还有人做一些专门跟lighting,或者是材质相关的一些东西,还有人可能更偏一些geometry相关的一些东西,就是我们大概有那么三四个,大家就是非常关系,大家都非常nice的朋友在一块。
然后呢我们当时其实是经常的一块讨论,然后讨论的频率可以比如说一天有很多次,然后呢一天可以有很多次,然后一一周有七天,然后七天每天大家都在一块讨论,比如说黄忠讨论形式基本上都是。
比如说是哦我challenge,你你challenge,比如说我觉得你想的不对,你觉得我想的不对,什么什么,大家因为大家我觉得科研讨论就是challenge,没有任何问题的,甚至是比如说大家吃饭的时候。
都是在啊challenge里,比如说大家互相交流,你觉得这个时候什么是对的,大家觉得什么东西是不对的,这样子,因为大家在讨论过程当中,你才能够知道这个fundamental的东西是什么,然后呢。
然后比较nice的事是,大家的expertise也有点不一样,比如说我是representation,别人是是是different,defensible render的。
那我其实可以去学很多different,虽然我不是expert,但我至少能够知道他们那边在干什么,他们怎么能够用到我这边,然后他们也可以从他们角度,问我们这边一些问题,比如说有defender。
他专门做mesh的,有defender给给给给给给implicit function,做difference对吧,然后呢,参保他对representation,也有一些什么什么什么期待呀,要求啊。
表达的就是这种,我觉得是一种类似于叫什么,比如说大家有不同的领域,然后大家互相之间的就是challenge,就是一定要challenge,然后呢这种频率肯定很高,可以大家比如说大家没事。
大家比如大家都到一块吃,吃中午饭了,中午饭没啥聊的,大家聊research对吧,吃完饭大家聊research,大家出去玩时候,开车的时候闲着无聊聊个research对吧,我觉得这都是一些怎么说呢。
就是哦找一些能够跟大家志同道合,大家的方向,其实more or less很接近,因为大家都是做3D嘛,但是呢还是有一点点的区别,然后这样子大家能够有些互补,然后也能够互相帮助。
这个是我们当时嗯怎么样开始积累自己,在3D这个方向的一个一个一个东西,因为那段时间其实大家都很艰难,包括如果大家看我们当时发的一些paper,都是非常的you know。
我觉得是现在来看还是比较啊比较一般的paper吧,但是哦但是大家还是那样慢慢的走过来的,所以我觉得这是一个比较,我觉得可以share给大家的一个一个经历,然后我也很感谢我,我们当时的那些啊那些朋友们对。
OK然后然后我的话就是,首先就是我我相比于三个讲者嘛,我基础开始做科研的时候基础会差一些,我我属于啥都不会的那种,然后所以我我开始入门的时候,我比如我读论文,我读半天,我可能要读一周。
我感觉里面的一些概念都特别晦涩难懂,不过也很一开始也会有点畏难心理吧,那我是怎么去解决的,很多时候就是说,然后当时我的导师嘛都小伟老师,他就鼓励一下对吧,然后就是每天慢慢磨磨,我发现很有意思啊。
就人人好像是有一个界限的,过了某个界限以后,他突然就觉得这些东西变得好简单,就我所以我感觉关键在于,当自己觉得某个论文算法很难,代码很难的时候,就是想像菜根一样,就是坚持去去学,去积累。
到了某个时刻就变得简单了,这是嗯入门时候我遇到一个最大的一个困难好,那我们这个第二个topic就到这里,那第到第三个了,仍然是和困难有关的。
这是不是入门是真的自己一做做research project的时候呃,遇到的我相信大家都会遇到一些困难,停滞不及前,然后想问问是怎么解决的呢,那要不僧友你开个视场哦,对我可能就有一个具体的例子。
就是我之前有一篇paper的时候,就相当说已经做了好长一段时间,就一开始还挺顺利的,就嗯一开始觉得idea不错,然后试了一下,然后试可能就没多久,然后就做出来了。
但后面嗯想要做另外一个application的时候,就是怎么都做不出来,就做了,不知道那个两个月三个月就怎么样都调不出来,就是就做梦都在想这个东西怎么做不出来对,然后后面后面就其实我的解决方式。
就是不做它了,解决方式,最后就是我停下来,因为他反正已经停下来了,就停滞不前了,然后我就想说,那我就脑子我就不想他了啊,就强迫自己去相信,说去帮助其他的同事去做他们的项目。
因为当时正好又有另外一个deadline,然后下来说好,我就以这个为契机,我就把我的项目,自己的项目先停一下,然后去帮助一下我的同事,他的项目,然后哎相来说做了差不多一个月这样子。
然后面我又就那个deadline赶完了,我就回来做自己的项目,后面后面又就相当于又重新看了一下,又想了一下,就说哎为什么我要钻钻这个牛角尖,一定要把这个东西搞出来,然后为什么我不可以换个思路去嗯。
对就去做去去去去approach这个东西对,所以就我解决的方式,就是有时候可能你不去做它,或者说就是放一下,稍微缓一缓,然后换换脑子,有可能你就又又觉得又又可以了,然后可能真的就就就可以了。
所以就我觉得是说如果是真的是卡死了,卡的不行,然后你还不如就先停一下,然后换脑子,一定要把让自己不要想这个事情,然后再回来再看,对可能是我的一个一个项目的这样解决的方式,对嗯好那想想高娟,OK哦。
其实我的我的我的例子跟宋勇非常接近,对对我也碰到过有我,我大概是在我可以讲的,具体点就是大概是在20年到21年,应该是20年到2021年,这个也是这个这个区间的,那是因为疫情的原因了。
也有可能maybe有可能吧,但是但是但是但是就是就是那段时间,我确实非常的一个很bottle neck的一个一个节奏,确实非常嗯,我多段时间大概有大概有快一大半年,大半年甚至接近一年的时间。
在一个一个项目里面没有做出来,对对,然后然后呢怎么怎么克服,那个这个事情是这样子的,是啊是是是一个事情,我首先我很感谢我老板,因为那那段时间我我就跟我导师说。
我觉得我我觉得这个方向不make sense,就是我觉得这个项目不make sense,我觉得idea不make sense,但是我导师问我一句一个一句话是,那我觉得什么是make sense的,对。
这句话让我让我们开始觉得,就开始重新的去思考,说如果说我们要做三维生成什么样,是一个make sense的,3D的生成是什么样,对我而言是更fundamental,我我觉得他是对的,然后呢,然后呢。
这段时间就是就是所以那段时间我我做的事情,就是抛开我们之前大半年做的事,抛开先不管它,我们觉得对这个领域,而对3D生成为什么是最make make sense,那么好,我可能可能花了两两周或者是多久的。
whatever去思考这个问题,然后当然也看了一些paper,然后呢当我有了更多的更CONQU的事情,我该做什么,再去跟我老板去propose,说,我到底该我觉得是make sense。
然后我我导师跟我说那么好,既然我们觉得这是make sense,那我们就换一个方向,我我们去做我们觉得make sense的东西,然后那这是既然之前那个觉得不make sense,那我们就可以。
只要你我能够有一些很好的reason,你说我觉得我为什么觉得觉得他不make sense,以及为什么我为什么觉得他make sense那么好,那我们就换项目,所以在我看来能总结一下。
就是让我跳出那么一个非常struggle的一个阶段,事情是跳出之前的那个圈子,跟宋有竹非常接近,就是跳出之前那个圈子换个脑袋,然后呢想一想啊,zoo提一下,想想对于这个领域而言。
什么是最make sense的future,那么我们就work on那个事情,然后就开始了整个的research,其实就有了一个非常大的转变,在哦21年的时候对,哦哦对,那几天前对。
我记得刚才两位老师说的都特别好,其实就是就是说,其实就是你当你陷入瓶颈的时候对吧,就是需要一定的重构,就需要一定的就是重新的思考,这个可大可小,有的时候是你的这个问题的定义就就有问题。
所以你可能不管怎么样,你你你就是说这是一个错误的方向对吧,你就不应该再是一个错误的方向,所以你应该去重新思考,就这个方向是不是对的方向,那有的时候你遇到一些困难,可能是一些技术的难题。
就是说你的你的方法效果不够好,那可能是你的方法上需要做一些一些改变,或者说需要一些创新,所以我觉得我觉得就这个不同层面的这种,这种瓶颈,在我的就是项目当中我都遇到过,然然后我想说的就是,就你你再做一个。
我就没有一个项目是很顺利的,就是说很开心的做完就基本上会都有一段时间,就是非常非常的煎熬,然后呢就卡住了,对所以所以我觉得首先对我来说,我感觉呃就要有信念,就是说你要相信你能够。
就是说以不管以什么样的形式,你可以你可以解决这个问题,但是这个就这并不是说,你一定要沿着一个方向做下去,而是说你可以去,你可以去,就是找一个新的角度,找一个不同的角度,就是你要相信你之前的努力。
之前的工作不会被浪费,然后你要相信你能找到一条路,就是其实就有很多限制,然后你在这很多的限制当中,你可以找到一条就是能够通向光明的路,就是我觉得这个信念还是要有的对,那具体的一些呃一些就是就是说做法上。
我觉得首先有的时候,我们当我们以为我们陷入了困难,但其实其实可能可能并不是这样,就是所以所以我觉得第一步应该是诊断,应该是找到问题是在哪里对吧,你要确定你是不是真的陷入了瓶颈。
有的时候你可能就是你的代码里,有个有个奇怪的bug,所以如果你因为这个就放弃了,就是你就放弃的太早了,对所以所以我觉得第一步,如果你觉得那陷入平行,你应该先去做一个很深度的,一个一个一个一个一个诊断。
然后你看看就是到到底真正的核心挑战是什么,然后这个核心挑战是不是就是,当然这个就是见仁见智,就是是不是你能够解决的,或者是不是在你的这个能能力和,时间和各种限制范围能够解决的,然后你再决定。
然后你再就在决定,就是说你要做一个多大的跳跃,就是就是说你你是可以沿着这个方向继续走呢,还是说你需要啊稍微改变一下方向,这样子对,所以所以我觉得我的很多项目在做的过程当中,都在在被一直不停的在重塑。
就是说根据我对这个问题的理解,根据我对什么方向更有前景,然后不停的去重塑它,所以我最后最后做的东西,可能跟你一开始想做的东西呃,并不是完全一样,但是这个是我觉得是非常常见的。
就是research的一种常态,对嗯对我,我读博的时候遇到问题跟浅浅应该是一模一样,一模一样,然后解法上也一模一样,那我这边就不重复了啊,好那我们就到第四个议题啊,那大家什么时候开始。
感觉自己科研能力是迅速提升的,我觉得这个问题很有意思啊,我感觉我还我自己本人也能学习一下,啊那要不像高俊老师教授来教教我们吧,没有我还没有成为教授呢,我还是学生,我还没有毕业呢,我我还没有毕业呢。
我还还我毕业还没有答辩呢,嗯OK回答这个问题啊,就是科研突飞猛进,其实也没有突飞猛进,在我看来嗯,我发现首先我讲一个这个事,我我们学校我们学校就多伦多大学,有一个。
就是每个pg都要过一个叫oral qualification的东西,我发现包括我以及我周围的朋友,都是经过了这个all acqualification的洗礼之后呢,都突飞猛进了。
然后呢大概讲一讲为什么大家会突飞猛进,其实跟跟跟跟思达最开始在这门课的讲的,那个就是梳理对整个领域的理解非常有关系,因为在那个all acqualification,大家的要求就是说我选择一个领域。
然后呢把这个领域里面的呃脉络讲清楚,比如说我讲studio representation,那么representation从历史到现在它是什么样的。
这个历史是甚至是是可以before deploying,之前的历史对,然后呢现在是可以就是right now,以及我还要讲明白未来我觉得是不是make sense的。
这是我的我的ORACQUALIFICATION,然后呢我周围的朋友,比如说有人做material estimation,就是他们做light teestimation,那么之前的领域是什么。
然后呢之后是什么,以及这个领域fundamental的问题是什么,因为为什么大家要研究这个领域,首先我们得想清楚,以及为什么大家有不同的方法去解决这些,这个这个领域的东西对吧,有人从这个角度。
有人从那个角度,这个角度的最大的区别是什么,以及它们的联系是什么,我们得把这整个这一套东西给梳理清楚了,其实这个事情是,我觉得就是就是我觉得是一个帮助大家去,首先是两个事情,一个事情是帮。
首先对这个领域而言,你有一个非常全面的认知,不管是历史到现在还有未来该怎么走走,你自己想明白另外一个事情是一个方法论,是说我们通过这样的一个因为这是自己的领域,所以呢我很容易知道怎么样。
就是我我我我能想出来它到底是什么,我能通过这样的一个一套思维的训练吧,就是告诉我们该怎么样的去学会,去看一个big picture该长成什么样子,这个领域的现在到现在是什么样子。
这个picture长啥样子,这些方法之间的connection是什么呀,然后它们的区别是什么呀,他们为什么要这么搞啊对吧,它们的最核心的点在哪对吧,我们把这事儿给梳理清楚了,然后呢。
那么接下来我们如果要做我们之后的research,其实也基本上也都是按照这个,这个这个角度去想,就是他的mental里challenge在哪,我们到底该怎么走对吧,我们现在已经有哪些。
然后这些领域进展是什么,每天每篇每发一篇新的配表,咱们都可以把它归类到我们之前的那个,big picture里面去对吧,他可能improve的这个角度,或者improve的那个角度,Whatever。
所以我觉得这是一个这个all of qualification,是对我周围的,包括我我自己,还有我周围的所有人的一个非常大的,一个非常好的一个帮助吧,对我们的一个洗礼,所以这是啊。
我觉得这是我的这个这个这个这个这个例子嗯,那能听见你呢,嗯对嗯,我觉得就是科研能力,就是它有各个不同层面的的能力对吧,也有一些可能是支持技术层面的呃,就是说你你学一个新的东西。
就OK在这个层面上对我来说,我觉得最快的就是能力提升最快的就是NERF,NERF刚出来的时候,因为在nerve出来之前,我们我们其实就想做就是这个问题,然后他出来之后它效果这么好。
然后我们大家都非常对非常有兴趣,然后都都一起学习,然后然后然后我觉得是在这个跟实验室同学,一起学习的过程当中,其实是你可以收获很多,你可以你可以学到学的很快,然后你可以发现很多他的一些一些特性呀什么。
就就学习他,然后这后面也是就是说,我觉得对我后面的一些研究是呃非常有益的,而且我们当时开始也比较早,所以所以我觉得这是一个比较好的事情,那那我觉得就是还有一些科研能力,是一些更高层高层次的一些能力。
就比如说你的一些习惯呀,或者说你对如何做科研的一些理解呀,然后面对各种情形怎么做这样的一些事情,嗯那那我觉得在这个层面上,我可以能力提升最快的,我感觉我就有点听上去有点矛盾啊,我感觉其实是我科研最不顺。
就是我我的论文就是连着被拒的时候,我觉得这上面能力提升是比较大的,因为因为在这种情就,所以所以我对于有类似遭遇的同学,我觉得他不见得是件坏事,因为他对你来说是一个对你的一种一种督促,对你的一种诊断。
就对我来说,我第一次被拒的时候,确实我觉得那个paper就是确实不行,但第二次就是我运气有点差,对然然后但是两如果两次都被拒了的话呢,你就会你就会怀疑自己,你就会想是不是我在哪些方面做的还是不够好。
对吧,那那这样的话呢你的你的姿态就放的很低,你就特别愿意去从身边的同学身上去学习,然后呢你就会更愿意去积累,然后我觉得对吧,时间长了你就会有一个这样的厚积薄发的过程,所以我觉得你你看起来。
现在对你来说是是坏事的事情,可能长期是一件好事,所以就是说要抓住一些嗯,你你可以静下心来,就是去去学习提升的机会,然后要看到身边的人的优点,然后然后说到这点,我觉得其实PHD或者说你在一个环境里面。
就是大家大家就看看到学习,或者说你你成长很多,你以为就是说从课本,或者说从跟就是说从书或者从论文中学习对吧,其实其实更重要的学习,是从你身边的人身上学习,就是因为因为你身边的人。
你可以看他是怎么是怎么做事的,就是说你可以学到这种方法,然后每个人做事方法都是不一样的,所以我觉得这种这种这种其实是我就是读PHD,或者说在现在我在做post stock,能收获最大的东西对。
因为因为如果你没有看到别人这么做的话,你其实没有办法,你不你意识不到这样是是可以这样做的,但是当你意识到是可以这样做的时候,你会发现其实你也你也可以这样做,你也可以养成好的习惯,对大概是这样好。
那骚扰我觉得没有什么可以说的了,我就倩倩讲的太好了,对,我觉得可能和我这也是,就就是这个反直觉的事情,就是尤其是当你觉得不顺的时候,然后那段时间,然后你可能各方面因为你不慎是有原因的对吧。
就说明你在这个地方欠缺,或者说是就这样那样的原因,然后你解决了这个问题本身,那就是相当于说对你一个提升,比如说甚至就从low level到high level一样嘛,就比如说好。
我一开始觉得自己写文章跟屎一样对吧,然后就就然后那个就写的很差呀什么,然后后面就会思考为什么自己写的这么差对吧,然后但是同时因为有你的导师,或者说就你一起同事,然后带着你或者说和你一起去讨论啊什么这些。
然后你就知道哦,他应该是这样子做这件事情,然后你就会得到提升了,所以我并没有觉得我自己是有一个什么阶段,是觉得自己科研能力迅速提升,从来没有,我都是觉得说哇就是一步一步的,然后就可能你过了一段时间。
然后就回过头来看才意识到哦,哇我好像写文章好像也还可以了,什么这样子的对,就是好我我我的话我觉得甜甜说的特别好,就是可能我们很多时候遇到困难以后,就开始反思,总结以后会迅速提升,所以其实我我我。
我觉得我自己有三次很大的科研提升了阶段,第一次确实跟倩倩一样,就是被论文被拒了,我所说会反反思自己有什么不足,然后第二次和第三次分别是,第二次是我可能博四博五了,我要开始赌了,待一年级同学的对吧。
我发现我好像我的科研经验,是没法用在他们身上的,或者说我那时候没有科研经验,那我这时候他们带他们,他们搞不出论文,或者是他们做出来的论文一直被拒,这是我第一遇到第二个,第一个困难就是在带人上。
后面当我工作以后,我遇到第二个问题是,我发现我好像指导出来的论文都很无聊,好像就是不是就是一篇论文,它没有什么意义,然后我感觉长期以往没有什么不是一个好事情,就没有真正对科研做贡献。
然后这时候我就开始反思,所以的话对第一个我呃,呃其实第一个事情就是催生了,后面为什么会写一个learning research,甚至是为什么要开这门课,我希望说很多时候,我自己都可能以前在带同学之间。
我可能没有那么多套路,我只是因为自己的技术能力强,对这个领域了解很深,但我让我真正去迁移到其他领域,或者是真的让我从头再来,我可能不能那么好的复现,但当我能去从头去思考,我作为一个第零基础的学生。
我要去学一个全新领域,我用什么方法论去做,我能去总结出来的时候,我觉得我能力提升了,我能稳定的去在一个新的领域,在新的技术上去发表论文,但我知道这是一个很最基本的科研素养,所以我们叫科研基本素养课程。
那当我工作以后,我是带来的同学更多了,我视野更广了,我发现如果只是一直发一些即时引用的,我就是没有没有什么好,不是一个好事情,就因为嗯对没没有对领域真的有帮助,这时候我又是开始去提升,去思考我。
我首先是我也是遇到这个困难,我去思考说那领域,那他们那些做的很好的论文,他们是不是真的有一些背和规律,我会去总结去嗯,然后去发现背后的一些原理,然后总结出一套,但这个不会在这门课里面去讲。
但我觉得这个对我来说特别有帮助,总之的话我觉得是有两个大的点,第一个是自己遇到的科研上的困难,这个困难驱动自己去改进,去反思,第二的话总结去发现,某些事情背后的规律是特别重要的。
有为什么有些人总是能发很多东西,他肯定不是运气,在这边,他肯定是有他的一些技巧方法的,只是我们没有人去总结它,我们可以自己去总结,总结过程中自己就学会了这个事情,这是我我的三三个改进的阶段嗯。
best sper很难学,老师对对,其实basa paper我觉得就是很难学,但我觉得比如像三亚啊,或者是像NANGELSK哥,他们总是能发高引用的论文对吧,这个这不用,这是完全百分百的。
好像那都不是运气,每年都是会有,为什么呢对吧,或者像michael black对吧,我觉得这个非常需要学习,那行那就是到第五个一题啊,就是为什么要加速啊,因为不知道就我们一共有多少时间。
因为可能高建那边也很晚,对确实,那我们加速一下,再加速一对好,那为什么现在选择现在的研究方向,嗯就要不高卷你一下哦,哦轮到我了,OK哦为什么,现在研究方向,其实呃其实其实我的研究方向是有一个脉络的。
其实哦我最开始其实并不是做3D的,对我们,但是我其实一开始其实就从我本科时候开始,当时是苏浩带着我们一块考虑事情是什么样,是一个PROMETRIC,就是参数化的表示for anything。
然后呢一开始是研究画的是一维的曲线,然后呢然后呢这是我本科时做的事情,就是一维的曲线非常简单,就是怎么样参数化来表示一个一维的曲线,因为那时候本科嘛啥都不懂,然后呢就做一个非常简单的东西。
然后呢然后呢当我读PHD的时候,最开始呢因为一维的曲线的下一层面,就是二维的,二维的这个这个二维的面对吧,二维的面,然后呢就是然后,所以所以当时PDD,最开始前两年在做二维的面的一些表示。
然后呢做完那些二维的面,做了可能做了两篇paper吧,然后就开始二维的面板之后,那下一步就是就是就三维嘛,然后就开始三维的体对,然后就开始搞三维的体了,这是这是我这边为什么开始做现在。
所以他是一个其实比较偶,也不能说偶然就是第一个做一维的曲线,是个偶然,因为这确实我之前没有预料到会做一维的曲线,但是当我有了一维的曲线开始,后面是一个非常非常非常自然的,一个一个一个过渡,对。
这是大概就是我这边的思路就是没有,可能也没啥可以借鉴的,只能分享一下对,确实好像选择科研方向是比较,我觉得还是挺随机的,借鉴意义上会小一点,要不我们就跳过,因为时间也比较晚,我觉得可以回答最后一个问题。
我觉得这个问题也挺有意思的,就是大家做科研的动力是什么,就是怎么去找到做科研的动力热情,啊这个要不倩倩来,我觉得倩倩应该是我们这里面最卷的啊,没有吧,呃我觉得OK。
首先我觉得做科研的动力肯定是有内部动力,就是说跟你就是自己想做的事情,就是对,就是就是说对,肯定有内部动力和和外部动力对吧,那那内部动力是什么呢,我觉得对每个人都是一样的,就是说你你呃也不一定都一样。
但是我觉得很多情况下,都是你对这个世界的好奇心,就你对新的东西的一种好奇,然后这种好奇驱动你去探索它对吧,那对于我们这个特殊,我们这个这个研究领域来说,其实不仅仅是好奇心对吧,你并并不是只是去理解,你。
还要创造对吧,所以我觉得内部的动力主要就是你的好奇心,还有你的你的创创作欲,有的时候我觉得做做论文和做一个艺术品,是差不多的,在在某些层面上对嗯,所以所以我这两个事是我的啊,也就是内部的研究动力。
那那外部研究动力的话,我觉得在不同的阶段都是不一样的,就比如说你你比较你对吧,你是一个nobody的时候,没有人知道你,你这时候你想证明自己能做科研对吧,然后你证明,然后你发了几篇paper。
你证明自己能做科研之后呢,你又想看,那我能不能做好的科研对吧,嗯或者或者啊K没有说,就是还有一个东西就是你肯定要毕业嘛对吧,你不管在一个什么样的项目,不管在一个什么样的呃情况下。
你肯定是有要满足一些呃基就基本要求的对吧,OK你你证明自己能做科研之后,你又想做好的科研对吧,当当你能做好的科研之后呢,其实你就开始想,就是说怎么能够推动这个真的去做一些事情,可以推动这个领域的发展。
所以所以我现在呃,我现在到到我目前的阶段的话,我觉得我我K这也可以是一个内部的动力,但是我觉得确实就是我是希望能够能够帮助,就是说能够做一些事情,能不能让让,就是真的能够推动这个呃这个领域的发展。
就大概是这样子对哦,那你怂恿你呢,哦哦就是还何倩说的也很类似吧,对我觉得是不同阶段的,就比如说你最开始的时候做科研的动力,就是说好这个有意思,然后我就就想要揍他,或者说就是很酷。
我就想做一个酷的东西出来,他对哎就比之前发的好好很多呀什么的,然后就感觉哇这个太牛了,就觉得就觉得很很好,就这就是不断有这个内驱力嘛对吧,就是这个是一种动力啊,另外一个就是说啊你对某一个task。
然后是有他的好奇心的,就是说好就是我怎么样子去解决它,哎为什么别人都这样解决,我为什么我不可以这样做这件事情呢,对吧,这又是另外一种动力,但是就觉得不同阶段的动力也是不一样的,所以我现在也也想不出。
我现在自己做科研的动力是什么,可能就就觉得说哈哈对我,我做可研的动力是啥啊,现在这个哈哈,所以这时可以补充一句,就是没有动力也是很正常的,就是research就是有起起落落对吧。
就大家如果找不到动力的话,其实我觉得没有什么问题,就是说我自己很多时候也就感觉没有动,就很没劲,做什么都很没劲,所以所以,所以我觉得这是一个很很正常的一个现象,对有时候时候又又特别有动力,然后就到了。
比如突然出了一些片什么paper来说,偶尔这个好酷啊,但是他没有做什么,然后我就很想做这个事情对,然后你就想要解决这些问题,对,或者说还是或者你有一些,比如说你已经有一个很长远的目标。
然后你就不断的往那个目标靠近,就像思达啊,他就是这样,如果对思达的理解没错的话,是有一个long turn go,然后我现在就想不断的朝那个方向靠拢,的时候呢,这个动力就一直在对嗯嗯那高高俊。
嗯呃呃呃我我很同意他们俩,其实就是我先说我的吧,哦我其实我的动力可能跟大家不大一样啊,首先我的做科研的第一个动力是啊,我想告诉大家是我觉得什么是对的,就是我可能觉得有些人做的东西是不对的。
然后我想告诉大家,我觉得东西我觉得我们做的东西是对的,或者是因为其实这可能是,就是可能是我们做旅社的一个风格吧,就是包括最开始的时候啊,我们得想什么东西,是我们自己觉得是make sense。
make sense意味着它是是我觉得合理的,我觉得未来我们应该做这个方向,或者是我觉得未来我们应该,或者是given这个给定这个问题,我觉得应该按照什么样的思路去解决这个问题。
就是我们自己我们自己的想法,然后呢接下来我们需要去做科研,去去去证明我们自己想的东西是对的对吧,当然我们自己想的也可能是错的,但我们需要东西来证明它,但如果你真的是你你自己做的东西。
你自己真的觉得是对的,然后你还证明他做的东西是对的,那么我觉得他是一个非常有valuable的一个,一个research problem,所以在我看来,就是就是我会想很多的一些一些问题。
但是呢包括这个问题一个事情是啊怎么解决啊,然后以及这个领域该怎么走啊,我有自己的想法,然后我希望去去去通过自己做的东西,来告诉大家说,我们就我我觉得这条路是对的,然后我们也证明他是对的。
这是我的第一个第一个第一个驱动率,然后第二个驱动率其实更啊也可以叫矫情一点,说实话,但是呢我觉得是另外一群是是是大家要做什么,这个这个做什么并不简,简,单是做科研是做什么。
而是说就是就是我们这辈子要做什么对吧,然后其实这个问题呢我呃我想了很久,然后呢,其实最让我有感触的事情是是是,是疫情这段时间对,然后疫情这段时间让我想明白一件这个事情。
就是我可能讲过这个这个这个story,然后呢,是我觉得疫情这期间,最伟大的人是是是是疫苗的科研工作者,然后这里面有很多人,不包括是做包不包括做生物的,还包括所有这一一串。
因为他们确实是save the billions,Save the millions of lives in,就是拯救了这个这个世界,我我我觉得自己,我觉得我们需要多亏这些开发疫苗了。
然后呢这些科研工作者是literally,就是真的是拯救了所有人,然后呢他们每个人就是,比如说像我们很难成为牛顿,爱因斯坦这样的这个这种人太难了,但是我们可以成为类似于像这些开发疫苗的人。
的背后的人一样去去去,Do something to change the world,对,这是我做科研的动力,当然我也有些时候会没有动力,就是有些时候太懒了,就是不想干活这事儿,这是人的惰性。
是是是是经常有的,然后我的动力其实我动力不是像松友说的那样,我我我虽然我想实现一些东西能够,但我我自己的动力不来自于这里,因为我不是执着,一定要完成某个目标的这种性格,我的动力我做科研的动力很简单。
我就无聊,我我发现我是一个闲闲不下来的人,所以我得总得找一些事情做,但我发现呃,我虽然我是96年的,到现在快30岁,也挺年轻的,但我发现很多事情我都体验过了,没有没有那么有意思,就好像都是重复的。
做某个事情,好像已经陷入某种循环,但只有在科研上,我总是能找到新的东西,我不想,所以他不会让我觉得无聊,这是我做科研最基本的一个动力,让自己觉得不要让自己觉得无聊,那所以可能对我来说。
我不用找到某个东西,而是说我的一个天性就是这样的,那我我想回还回答一个问题,是可能是怎么去保持自己对科研的热情,我发现好多现在好多博士太卷了,就每天的都干到12点,甚至熬夜去做。
这很我就很担心说他们会不会在读过前几年,做出来那几篇工作就觉得没意思啊,好累啊,还不如去就差不多work life balance一点,所以去保持科研热情,我觉得很重要的是说不要太拼了。
只要让自己开心快乐去做科研就够了,嗯这是我对这个问题的回答,嗯对我我其实这个是我最想说的点对,这就是说你其实是说不到底,是你要从这里面可以获得一些乐趣,或者说,因为其实做科研本身是一个枯燥的过程嘛对吧。
就你99%的时间都是在fail,但是可能你快乐的时候,就是那1%的时间哦,他他work了对吧,但是就是嗯这个过程本身其实就是你努力半天,其实就为了那1%的时间的快乐,或甚至都没有1%。
但这就是可能你那个心中的火苗,然后让你可以一直可以有动力去做,对,那就不要让这火苗熄灭,对嗯对,这这点我也很支持,其实让我最开心的事情是想明白了一个问题,比如说我发现了一个东西啊。
比如说一直发现一个bug,一个东西一直不walk,但是我突然之间想明白为什么他不work,然后的一个很小的fix让他就work了,这是让我非常非常激动的时候,就是可能他就是一些。
就是我觉得事情是增加了我们对这个世界,这个叫什么真理的一个理解,或者是对这个方法的理解,包括不管是NER法JS啊,就是在我们是做实验的都过程当中,我们多了一份新的理解,这是我觉得做科研的乐趣。
对我我我对这个也非常有感触啊,就是我非常同意大家说的,就是如果你你长期想保持这种热情的话,他一定是就一定是能给你带来快乐的,就是你不能就是说让他变得对你,你你不能就把它变成是对自己的一种一种压榨,对吧。
你你就强迫自己每天工作很长时间,那这样是不可持续的,你有你有一天你会觉得对吧,你太不开心了,你想做点别的事情对吧,所以如果你想要长期长久的做科研,保持你的这种热情的话,我觉得就是要找到一个让自己能够。
就是能够就是可持续的一一种一种节奏去去做,然后这是其一,其二就是我觉得我特别同意宋有说,就是说你在做科研,其实99%的时间都都是都是失败对吧,然后呢,但是呢那1%的时间,就当你真的做出来的时候。
这种这种成就感,这种这种愉悦,是是任何事情都没有办法比拟的对,所以所以我觉得这是一个很大,就如果你有这种正反馈的话,其实后面你是会很有信心的,但是在没有这种正反馈的时候,可能会会是比较艰难的。
但是呢另外一种角度就是说,并不是说你在99%的失败的时候,你就你就应该感到沮丧,就你应该享受,就是说当你得到了一点点信息,当你对这个事情多了一点点理解,哪怕是通过失败的情绪去理解它对吧。
你不能把它看成是一种完全的失败,而是说你知道的这条路是行不通的,那那你就相当相当于是你也学到了东西对吧,然后你你可以在就换到别的路,所以我觉得心态上也是一个很重要的点,就是说不要把失败看成是一种痛苦。
就是你就以一种正面的看方法去看他,他其实会把你带到一个正确的道路上,对我特别赞同,我觉得通过这次讨论,我也学到很多好,那我行那行,因为就是那我们今天的panel discussion就到这了。
就是你们那应该也很好玩的啊,辛苦你们了,嗯好那我们就先这样子吧,嗯嗯谢谢大家,谢谢大家。
GAMES003-科研基本素养 - P2:L02-如何选择科研课题 - GAMES-Webinar - BV1RitTezEa9
OK嗯大家好啊,欢迎大家来到这个game,403科研素养课的第二周啊,我叫王倩倩,然后我现在是在加州大学伯克利分校,自我博士后,然后呢我今天讲一下就是怎么选择科研课题啊,因为我们现在是第二讲。
所以呢我还是先讲一些,就是一些比较一些high level的一些东西,比如说对吧,就是科研是什么,这个这个地方我参考了一个呃,这个这个matt mind的一个。
他说是illustrated guy to a p h d,就是他讲的是这个PD是一个什么样的过程,我觉得是一个比较有意思的一个呃,一个一个一个图示,就是说先画一个圈,就是正是我们所有的人类的知识对吧。
然后呢当你上完小学的时候呢,你知道一点点嗯,你上了高中之后呢,你知道的更多了一点对吧,那你呃这个读完你的本科的时候呢,你其实就有了一个一个专场对吧,比如说啊可能很多同学学的是计算机。
或者是跟这个工科相关的,那你就有这样一个一个专长,那比如说如果你现在在读硕士的话,其实你这个这个专长就会更加的深入啊,当然对我们来说啊,很多同学他的硕士可能也是一个啊,就是一科研类型的硕士对吧。
然后呢你通过阅读这个啊论文呢,或者说一些做一些科研相关的一些训练呢,其实这个呢你就来到了,就是说人类知识的一个边界对吧,然后呢在这个边界上呢,你就非常的你就你就就是说你不可能否。
就是你不可能就是关注很多很多的问题,可能就在关注一个问题,然后呢你就不停的去去推动这个这个边界,然后呢直到有一天这个边界它有一个小额鼓包,然后呢啊这个这个这个本来的这个这个呃文献。
他其实讲的是说这个小的鼓包,就是你的博士学位,然后对你对你来说,这个鼓包其实非常的非常的大,但是呢在整个这个圈上来看,这个鼓包就是很小一个鼓鼓包,但是呢我这地方想讲的是啊,其实这就是一个科研的一个过程。
就是说你在探索呃知识还有技术的一个边界啊,这就是一个大概的一个一个一个一个基础对吧,就是我们怎么样去理解科研这个过程,那嗯如果让我去回想,比如说我自己刚刚开始做科研研的时候,其实啊我并不知道科研是什么。
因为我之前就是一个学生对吧,我本科毕业之后呢就开始读博士了,所以呢其实我觉得我一直有个误区,尤其是刚开始的时候,就是尤其是关于就是说怎么从一个学生的思维,学习的一个思维转到一个做科研的思维上面。
所以是这地方我也想简单的讲一下,就是说我在我看来就是说呃,学习和科研有什么样的一个区别,尤其是对一些刚入门啊,做科研的同学来说,首先我觉得就刚才已经说到了,第一个区别就是学习的话。
你是在学习人类已经有的知识对吧,科研的话其实你是要去创造,去去发现,去发明一些新的知识,那第二个区别就是说在你学习的时候对吧,你比如说你学呃这个微积分或者什么的。
所有的课程它都是有个固定的课程大纲的对吧,你学习的东西呢啊你知道考试会考什么,然后你学习的时候,就是按照就是说考试,就是会划定的范围去去学习,但是对于科研来说呢,它是没有一个边界的对吧。
也没有人告诉你说你应该去啊研究什么,没有人给你画这个重点,就是说你连去学习什么都是要你自己去啊,去去去决定的,所以这也是为什么就课也比较难,以及今天我们要讨论怎么选题的啊,一个原因。
然后呢还有一个很大的区别,就是因为学习他是你学一个很很就是已知的,或者说一些比较呃,就是说固定的东西,然后他比较是一分耕耘一分收获,就是说你付出的越多,你就感觉这个这个反馈还是比较及时的对吧。
比如说你啊你你努力学习一下子,然后你可能在期中考试或者考试中,你就可以立竿见影的看到自己的成果,但是科研的周期是比较长的,并且呢它是一个比较随机的过程,就有的时候你可能在一个错误的方向。
就是尝试呢啊即使你付出了很大的努力,就是最后你可能面临的还是一个一个一个,不好的结果对吧,所以呢就是说对于对于一些,比如刚开始的同学来说,他可能觉得很沮丧,就是说啊就怎么总是做不出来对吧。
是不是自己不擅长做科研,是不是啊自己有什么问题,所以说这时候其实对于这个失败的概念的定义,就要做一些转变,就是说不是说一定要做出来才是成功,而是说如果你每天能够学到新的知识,学到新的东西。
然后你对这个问题的理解啊,又增进了一份,哪怕你今天没有,就是说真的做出来什么东西,但是我觉得这也是一定意义上的一个成功,所以说这种思维方式上的转变,其实或者说是心态上的调整,也是一个就是很重要外。
很重要的一个一个场外的因素,那还有一个区别,就是比如说对学习来说,你你学的东西大部分都是真理对吧,就经过大家啊无数次的验证的啊一些东西,但是呢做科研,因为大家都在这个这个边界上对吧。
没有其实实际上没有没有人是以绝对的权威,也没有人能够预测未来会怎么样,所以说呢就做科研的时候,就不能够把别人的话就是奉为圭你,比如说不管是你的老师的说的话,还是所谓的权威说的话,其实你都要去就敢想。
然后敢质疑,就举个例子,比如说之前NERF刚出来的时候,就是大家都觉得啊这种implicit的方法,它非常有前途对吧,就觉得啊要把它发扬光大,然后它的优势很大,就相比传统的这些更更更显示的方法。
那高深SWEDDING出来之后呢,大家又觉得哇这种显示的方法它非常的好,然后很快,然后效果又好,所以所以说就是说大家的这种,就是说嗯我们都是有很大的历历史的局限性的。
就是我们的这个想法也是会被很多东西影响的,所以说我觉得就是说嗯,就是说还是要就是啊比较比较就是说啊,能够批判性的去看待很多事情,包括我今天说的话,或者我的很多观点可能都是啊不是很准确的。
所以大家也要就是能够呃有自己的判断。
OK这是一个就是大概的一个背景上的,每一个一个介绍,那回到我们今天的一个主题,就是说选题这个问问题对吧,首先我想强调一下选题的重要性,然后呢这是一个影片,就是啊我之前也看到过。
就是说杨振宁他讲学术成功的一个,关键因素的一个影片,我觉得比较能够好的就是诠释他,他讲的其实是一个大方向上的选选,择一个重要性,但是呢我觉得同样的道理,也适用于选题的重要性,我现在放一下啊。
在座的年轻的同学呃,我想我有一个建议,就是你们比如说是你去念研究院,这是我所有的研究生,我都跟他们这样讲的,呃,你到研究院去,你到一个还好的研究院去念书的话,你就发现多半你的同学都很好。
都是要不然他不会进到这个学校里来的,可是过了10年,过了20年以后,你就发现他们的贡献悬殊,有的人做得非常好,有的人费了很大的劲不成功,这里头最最重要的一点,不是说是。
哪一个人比另外一个人就聪明的那么多,也不是说一个人比另外一个人就努力那么多,这些当然也有点关系,这都不是最重要的,最重要的是有人走进了有发展的领域,有人走进没有发展的领域,甚至是强弩之末的领域。
这个是每我认为是每一个研究生,对于他自己的前途最重要的一个决策的地方,就是你得走套一个前途能够发展的地方,怎么能够走到一个前途有发展的地方呢,你必须要把你的天线伸得远远的,而且你要能够因为你单是看文章。
这个现在这个文章多的不得了,连这个评论的文章也都都多的不得了,你得要能够啊掌握住哪些是可靠的,哪些是能够发展的,而如果你能够找到这么一个领域,又与你的呃喜好,与你的背景很接近的,那你向这个方向进军。
将来成功的可能性就比较大,我自己就是觉得我是很幸运的,走到了当时正在要发展的这个领域,所以能够在里头做出一些贡献,对所以说就是杨振宁他讲的是,就是说你选择一个大的方向呢。
就是这个对于你一个整个研究生生涯或者,博士生涯的一个重要性,那这个同样的道理也适用于说你在选题的时候,对吧,他对你整个项目的成功的一个重要性,就是你在一个正确的方向上努力,其实啊是非常重要的。
不然的话你可能就是说不管你能力再再怎么强,对吧,有的时候如果这个方向是错误的话,那你就是很难就把它呃做出来,对嗯对。
然后呢下面我就想讲一下,为什么选题是一个很难的一个事情,就是很简单的道理,就是说你在做这个课题的时候,你是不知道将来会发生什么的对吧,因为你是站在一个已知的地方。
你要去你要去相当时你去预测位置会会怎么样,所以它的不确定性非常大的,就是在你刚开始做一个课题的时候,他的命运你是没有办法预测的,尤其是一些你觉得就是有意思比较有意思,或者说呃嗯不是就是说这个有意思。
也是因为他比较未知,所以导致它有意思,那如果你选了一个课题,然后你觉得我就我就能我就能推测出来,他肯定能能能work,那这种情况下,你就会面临一个另外一个问题,就是说你在投的时候对吧。
大家就会觉得啊你这个novelty是不太够,所以说这个就是说它有多就是未知,以及说他啊有多能做出来,它中间是一个啊互相,也就是说就是就是说你要去平权衡的,一个事情啊。
啊所以说就是说这个未知性就带给了很多,就是一个像很大的就是可能不同的走向,一种走向,就是说你可能就根本做不出来对吧,他可能就是条死路,那有一种可能性就是你做着就会发现,诶啊那个可能更更更有希望一点。
然后诶那个可能更有希望一点,然后呢就是说你最后做出来的东西,可能跟你一开始想的东西不完全一样,这也是非常常见的一种情况,那还有一种情况就是说唉,大家都在做同样的一件事情啊。
这个现在在我们这个比较拥挤的领域,其实也是比较常见的呃一种情况,那还有一种情况就是说唉,我这整个整个整个局势,发生了一些比较大的变化,就是比如说我之前我用干做这件事情。
那现在可能啊用diffusion来做就会效果更好,所以说这个也会颠覆,就是说你你的这个小的课题的一个命运,所以说就是选题,它也是一个就是多多人,就是这种玩家的游戏对吧。
它不是一个你自己一个单人的一个游戏,所以说就是有很多因素,你你你会呃需要考虑,那这地方其实我想讲你想强调一个点,就是说啊心态上面,就是说你要能够接受这种不确定性,就你不能说啊我选定了。
我就一股脑就要把它做出来,你也不能说就是说啊,嗯就是或者就是相反的一种做法,就是说我觉得要建立一种正确的心理预期,就是说啊有的是该变的时候呢就要变,然后呢该坚持的时候就要坚持,但这句话说起来比较简单。
实际上做起来还是有很多呃需要把握的地方,第二点就是说我们要做的事情,就是要降低这种不确定性,因为你你对这个知识,对于这个问题的理解越充分,其实你将你将要把你的已知扩的越大对吧,你的位置对你来说就越小。
那你就越能知道就是哪些地方可能比较有希望,哪些地方可能没有希望,所以说不断的更新和加深,加深自己对问题的认知也是非常重要的,那我还是想要就是一个就比较想提到的点,就是说啊其实寻找科研课题。
这这件事情本身也是科研,然后他也是科研非常重要甚至最重要的环节,对我来说嗯,就所以就是对有些同学,他可能觉得哎我有一个想法,我就立马对吧,我就马上跳到这个实现的环节,这样其实也是不对的。
因为你没有仔细的去,就是说去验证你这样一个想法,或者有的同学可能觉得唉,我花这么长时间在读论文上啊,我其他同学都已经开始写代码了,我还在读论文,就这种焦虑也是没有必要的,因为就是说你要把寻找科研课题。
它本身也当成是科研的一个一个很重要的部分,并且呢就是说你找课题的这个过程,其实呃你可能想象中,你觉得哎我就是想到了一个idea,然后呢我设计这个方法,我做实验,然后做出来了就就结束了对吧。
这是一个完全单向的一个一个事情,但其实不是这样的,就是说你你在寻找课题,或者你想idea这件事情本身,它通常会贯穿一个项目的始终,也就是说你对吧,你可能是在呃设计方法的时候发现诶,这方法有点问题。
要要回去去想对吧,你可能啊做做实验验,发现哎有一个地方它有点问题,或者是说有一个小的设计,我需要大家想一想,所以你又又又会去想D,所以说实际上就是说你你这样一个过程,是一个非常循环往复的一个过程。
你要不断的去啊优化自己的一个想法,不管是在大方向上做优化,还是说在一些方法的小的具体的设计上做优化,所以它是一个啊非常非常就是说啊,在一个课题里面,各个阶段都会面临的一个问题,OK这是一个比较啊。
一些比较啊基本的一些我想说的事情,那下面我们就看一看,就是说你在选择课题的时候,有哪些比较关键的因素,首先我想要说的是就是课题的选择,这是一件非常因人而异的事情,因为每个人的情况都非常的不一样对吧。
有一些就是首先不一样的,是你的个人的自身的情况不一样,你可能有不同的兴趣啊,然后不同的背景,然后呢大家所处的阶段也不一样,有的同学可能刚刚入门,有的同学可能已经有一定的经验了对吧。
然后你的目标标也不一样,你是只是想发发表一篇论文呢,还是说你想解决一个非常非常啊核心的问题,那你的这个小环境也有很多的不一样,比如说你们导师对你有什么要求啊,然后他是会给你一个方向呢。
还是会让你自由的探索,然后包括你实验室的情况,就有没有在某一个方向有一定的积累,还是说啊整体上是一个比较起步的一个阶段,包括你的实验室,就是就是你的合作者的情况对吧,你能不能找得到很好的合作者。
或有没有人带你,还是说你需要独立探索,包括整个大环境对吧,就是说整个领域发展到什么样的一个阶段了,整个领域的活跃程度怎么样,然后未来的发展潜力怎么样,所以说我觉得大家都可以去想一想啊,自己的这些啊。
就是自身的情况呀,小环境和大环境,然后接下来可以就是做更好一些判断,那说到这个选选择课题的一些关键因素的话,我觉得主要有这么几个因素,首先就是你个人的兴趣,还有喜好,然后呢。
这个其实是决定了你在做的这个过程当中,你就是说做得开不开心,然后呢,第二个因素我觉得就是一个课题的可行性,就是说他到底能不能做出来,它决定了你这个课题能不能做出来,嗯第三个因素就是它的一个影响力。
或者说你这个课题的一个重要性,那它就决定了你做出来之后对吧,你这个关注度会有多高,所以接下来我就会啊,逐一的去分析这几个关键的因素,首先关于这个兴趣和喜好这个问题,就是我觉得我还是非常想强调一下。
就是你这个兴趣,还有你的这个热情,对于科研的重要性的,就是举一个例子,就是呃一定程度,因为因为我觉得兴趣很大程度上,不仅决定你做的开不开心,它其实也决定了你能不能做出来,以及你做出来之后的影响力有多大。
就他是一个非常一个一个有根本的一个,一个驱动力,然后呢我想举一个我自己的例子,就是说我在博士第一年的时候,我就问过我的老板啊,我在康奈尔读的博士,然后老师是NOAHDAVEY,然后我就说他有没有。
我就问他有没有什么意见对吧,我怎么能够啊读好我的这个博士,然后呢他当时说的是啊,你找一个你非常感兴趣的问题,然后我觉得这个当当时对我来说,我就给我留下了很深刻的印象,因为我原本以为他会说一些。
比如说啊你要养成良好的科研习惯,然后呢,比或者说你每天要工作多长多长时间以上对吧,然后我没有想到是是是这样的一个一个回答,然后我当时其实不能完全的理解他,他就是这样一个一个一个答案。
我觉得是有点奇怪的一一个说法,然后但是当我真的读完了我的PHD之后,我我真的觉得这确实是一个非常根本的因素,因为如果你真的很想把一个东西做出来,如果你真的对它很感兴趣的话,这个这个因素其实是高于其他的。
比如你科研习惯或者什么因素,因为你会想尽办法,你会绞尽脑汁的想要把它给做出来,所以这是一个我觉得更根本的一个一个驱动力,然后呢为了这门课,我也我也问了一下呃,Alashephs,我就是博士后的一导师。
然后他是加州大学伯克利分校的一个教授,然后我就说哎你你就选对于选择课题对吧,你有什么建议,然后她的建议就是说你要做一个,你真正就是享受做的一个事情,因为呢做科研业其实有非常非常多的随机性,对吧。
嗯你可能很幸运对吧,你做如果你的东西,如果你做的东西它变得非常热,热门的话你你是很幸运的,但是呢如果它不是热门的,而且这种情况是非常可能发生的,那至少你还在做的过程当中,你还比较开心。
这这就是你的一个收获对,所以所以我觉得这有一点点啊,有一点点就是说有点理想化了对吧,因为它假设的就是说,你没有任何的外界的限制对吧,你的老板没有对你有要求或者什么之类的,但是对于可能对有些同学。
他确实是一个比较理想的这样一个环境,条件的话,我是非常推荐,就是大家去找一个自己比较感兴趣的问题去做,相比于一个你可能不太感兴趣的问题去做,然后对我自己来说也也是一样的,就是我我自己就觉得,就是说。
当我做一个,我自己兴趣感觉非常一般的项目的时候,就是有点像上班打卡,就是有点当一天和尚撞一天钟的那种感觉,但是当我做一个,我觉得兴趣非常啊浓厚的项目的时候,就是真的是会不自觉的会花很多时间在上面。
比如说你可能吃饭的时候在想这个问题对吧,你可能嗯你洗澡的时候也在想这个问题,所以这样的话就哪怕你中间走一些弯路对吧,哪怕你你你的能力可能没有达到某一定程度,但是你不停的试不停时,我觉得总是就从长期来看。
就是说你你成功的概率还是很高的,因为你有很大的决心,然后你你花了很多的精力,哪怕你有一些错误的尝试,也是会最后回到正正正途上的啊,对所以说啊我刚才强调了说研究兴趣非常重要,那那下面的问题就是说。
哎我怎么找到我的一个研究的兴趣或者热情,对吧,嗯首先我觉得就是啊要了解自己,对,了解自己,其实是一个比大家想象的还要难的一件事情,对吧,就是说很多同学他其实不是非常了解自己,喜欢什么啊。
也不了解自己擅长是什么,所以所以我就首先要了解自己就擅长什么对吧,因为因为喜欢和擅长,他你很难分得清是什么导致的什么,有的时候你可能是因为就是擅长,所以你喜欢,有的时候可能是因为你喜欢,所以所以擅长。
所以我觉得比如说大家可以想想自己有什么,就比如说你可能更擅长编程呀,或者说你动手能力更强呀,或者说你的数理基础更好呀,然后这样的话你可以啊,就是结合这些特点,自己的一些特点来选择一个研究方向。
然后还有一个就是啊,如果就是说你确实就是比较入门,就是不不知道什么特别多的这种呃,关于这个领域的呃的一些呃问题的情况下呢,啊,你至少可以了解一下,你对什么样的风格的问题感兴趣对吧。
有的人他可能比较喜欢唉实用性,他就想要做出有一些,比如说重要的实际应用的东西,提升这个速度和效果,然后这样的话对吧,这样的话就觉得唉这个东西可以给大家用,这个事情让我感觉非常非常非常兴奋。
然后我觉得非常有动力对吧,有的人可能他就是比较喜欢做一些天马行空的,比较新颖的有趣的啊问题,然后就想做大家没做过的,然后呢或者说效果做的非常好,我觉得这也是啊一种一种,就是说一种风格的问题。
然后呢可能还有同学他比较喜欢啊,优就是数学上比较优优雅的,就比较严谨的问问题,或者说能用数学解释的问题,这也是啊一种风格,然后呢我觉得就是说通过读论文呀,和大家交流啊。
一般是可以大概判断自己对哪一类风格的问题,更感兴趣的,对,然后刚刚讲的主要是就是说,对于说你如果你是什么都不知道,然后你刚入门的话,你可以先对自己做这样一些分析,那如果说如果说我如果我想讲一下。
就是说真正的研究的兴趣和啊,这种比较浓厚的比较怎么说呢,比较扎实的兴趣是建立在什么呢,其实是建立在你对一个问题有过真正有过探索,然后产生了深刻理解的一个基础上,因为因为就是说你比如我刚才讲的这些兴趣。
其实它都是一个大致的兴趣对吧,它并不是一个非常非常实在的一个兴趣,但是呢如果你真的去对一个问题,有了啊自己的探索,那你这时候他这个兴趣,他就是一个就比较切实的一一个兴趣。
就比如说啊我我的老板就是NORASAI,他之前是做这个重建的对吧,然后呢他就一直对这种重建有就是对称结构,因为对称的结构它其实是比较啊比较有这个嗯,嗯就比较ambiguous。
就是说你不知道就是到底在看东边还是西边,如果他是一个对称的结构的话啊,为什么他对这个问题有这么浓厚的兴趣呢,就是因为他早期就在他PH的时候对吧,他做这个重建的问题的时候,就是这种对称的呃。
建结构的建筑物的重建总是会失败,也就是说什么呢,也就是说就是当你真正尝试,然后你就看到了这个问题,你就这个问题就一直会在你的就脑海中存在着,然后你就会想,比如说有新的工具出现对吧。
你就会一直想唉这个问题能不能解决,我想要解决的问题,所以当你真正去探索过一个问题之后,你就跟这个问题有了互动,你就有了产生一种连接,然后你就想可能更更想去解决它对,然后呢我觉得还有一种做法。
就是你可以跟大家交流,然后了解别人对什么问题感兴趣,因为他肯定是就是有原因的,就他可能探索过对吧,他可能有自己的原因,他为什么觉得这东西有趣,然后这样的话,其实也可以给你一个大概的一个概念。
就是说什么东西你可能是比较感兴趣的,然后呢,呃我觉得我觉得这个确实就是这种这种热情,或者研究兴趣呢,它并不是一个必需品,就我们时而感觉到没有研究热情,也是一件非常正常的事情,就没有人能够一直保持。
就是对,对于这个呃对你自己的研究非常非常有热情,因为他也是跟你目前在做一个什么问题,是是要有直接相关的,所以我就想说,如果大家目前或者是说在某一个阶段,觉得没有什么研究热情是一件非常正常的事情。
嗯并且呢就是你能如果真能真的能找到一个,自己很感兴趣的课题实习,是一件很幸运的事情,然后呢我觉得就是这种起起伏伏是非常多的,但是呢比较重要的事情,就是要一直保持着好奇心,还有求知欲。
然后如果你是一个有好奇心和求知欲的人,你总是会找到你觉得感兴趣的,有意思的问题,就不管这个领域在发生什么样的变化,我觉得这也都是嗯都是可以的,OK那第二个因素就是一个非常非常重要的因素。
就是说这个课题的可行性到底怎么样对吧,那可行性的话也有非常多的影响因素,一个就是这个课题他本身他的研究空间怎么样,还有难度怎么样啊,竞争程度怎么样,然后包括你自己的背景对吧。
然后包括你能获得的资源和支持,那我们先看一下这个研究空间,对这个研究空间也非常好理解,就是说一般情况下来说,就是说一个新兴的领域,它的研究空间通常比较大,因为它刚刚出现对吧,大家需要去理解它啊,啊。
需要去就在他的基础上做一些呃,一些开枝散叶的工作,那相相应的就是越成熟的领域,它的研究空间通常就比比较小,比如说NERF在2020年刚出来的时候对吧,就是大家有非常多可以研究的一些方向。
比如说你可以对它进行进行重光照呀,你可以把它变得可以泛化呀,你可以把它做到,就是说啊就是in the wild的场景上呀,你可以对它进行加速呀,是做动态场景对吧,就是这是他刚出出来的时候。
那比如说我现在2024年我再去做,那时那我还能做什么呢,因为这些比较好,就是比较比较比较重要的一些方向,大家都已经试过了对吧,你在2024年再做这样问题的话,你你只能在上面。
在他们上面做一些非常小的改进和提升,所以这时候其实就不是一个很好的,去做这个方向的一个时间了,就因为他研究空间就有点太小了,所以说我觉得一个可以衡量的方法,就是你可以针对一个方向想一想。
就是说你还能想到多少个,对你自己来说,你能想到多少个不同的研究方方法或者角度,然后这是大家还没有做过的,这样你可以大概的感受一下这个研究空间,然后第二个我想讲的是这个课题的难度对吧。
嗯首先我想要澄澄清一下,就是说这个课题的难度呢,它其实并不等同于这个问题本身的难度,就是这个问题本身,比如说你现在解决啊,1+1=2呢,还是你在解决,比如说3×5对吧。
它并不是说这个这个科学问题本身的难度,我想说的难度其实是啊,因为因为你要因为你就是说做研究,你还是要提升,就是大家已有的这个认知,然后在前任的工作上做得更好,所以这个难度其实是你相较于前任的工作。
做出更好的效果的难度,所以说比如说越成熟的领域,比如说这个图像分割,你要你要做出更好的效果,难度就会更高,因为已经有SAM种非常非常好的工作存在,那还有一个就是说这个难度其实是,你相比前任的工作。
就是前已经做的工作,你能挖掘出新的角度的这样一个难度,因为有的时候其实你这个领域他不是特别成熟,当然也有可能大家探索的就角度比较全面了,那这时候你再想到找到一个新的角度,可能会比较难。
那这时候你可能坐坐着,这就可能撞车,或者说哎找不到啊,也可以挖掘的方向了,所以这时候我觉得也说明,这个课题的难度会比较大,然后还有一个我想说的,就是说它难道它并不是一个绝对的东西。
就是说啊你的这个所有你在做科研中,很多东西都是可以调整的,包括这个课题的难度,因为比如说如果一个目标太难的话啊,你是可以考虑适当的降低难度,这个也是我们在作业科研当中是啊不停的呃。
就是会遇到的一个问题对吧,你通过简化问题的设定也好呀,或者是说一些其他的方式也好,来降低这个问题的难度,那还有一种情况就是说啊,你在做到一个方法的时候呢,你会发现你这个方法,它在某一些方面虽然有缺点。
但是他在其他方面有很大的优点,那这个时候呢,你就可以想办法把你这个你这问题设定改一改,然后呢让这个设定呢更能够符合,或者更能够让把你的这个方法的优点,来把张扬出来,那这个时候相当于相当于说。
你这个问题难度也降低了,所以你通过调整问题的设定的方法呢,其实是可以啊,调整问题的难度的,然后呢另外一个一个影响因素,就是一个课题的一个竞争的程度啊,通常情况下呢就是大家越关心的问题啊,竞争程度越高。
比如说我觉得去年或者说今年前段时间,或者现在对吧,大家对于三维生成模型的关注度是非常高的,因为他可能有很多的就是呃就是工业的应用呀,或者之类的,所以所以这个问题他就变得竞争非常激烈。
所以大家可以看很多很多的工作对吧,当然也也是跟就是这个这个这个做法,他比较呃比较成熟,就或者说比较呃比较promising有关,那同样的就是说你越容易想到的问题,它的竞争度也比较高。
比如说之前我刚才讲过,就是nurse有一些拓展的方向对吧,那高深SPDING出现之后,这所有的拓展方向,你都可以尝试把它做到高深SPREADDING上面,所以就相当于是说嗯有点有点像感觉。
就是这个啊新瓶装旧酒的感觉,所以说是这种就是说比较啊,直接比较容易想到的课题,他的竞争程度也比较高,然后呢我的一个大概的建议,就是说,我觉得大家还是应该去尽可能的去避免,竞争非常激烈的问题。
而这也是这也是就是阿廖沙,他也也是这么跟我说的,就是说他就觉得你选了一个竞争很激烈的,问题呢,比你随便选都要差,因为竞争很激烈的话,其实就是大家就是就是说,相当于是说你要做的非常好才可以对吧。
但是呢呃如果说你有一个比较独特的角度,就是你觉得这个角度他不是特别容易想到,或者说你有些优势,比如说你你想你要就是你做这个问题,你的背景非常相关对吧,你可能本来就是这个领域的专家,那你可以跟别人搏一搏。
或者说你的手很快,或者说你的合作者,他他他是就是说跟这个这个工作,就是呃他懂得很多或者之类的,在这种情况下你可以试一试啊,所以这还是一个根据你个人情况,你要去判断的一个事情,然后呢然后就是想讲一下。
这是一个课题的一些因素对吧,那还有一个我自己的一个因素嗯,我觉得就可以大家去想一想,就是说你你的一个你的基础的情况怎么样对吧,你的编程能力怎么样,或者你的数理基础怎么样,这个是不管你有没有人帮你想id。
就是啊你在做一个一个项目的过程当中呢,你都是啊需要的一个比较基本的一个能力,就哪怕你是只是执行这个项目,你也是需要这样的能力的,然后呢,再一个就是你对这个研究领域,是不是有充分的了解啊。
如果你要从头去想一个idea的话,我觉得这种这个能力是需要的啊,但是如果说你有别人帮你,比如说你有老师带你啊,那你可能这个了解你就不需要,就非常非常充分啊,所以所以说就是说我觉得,如果你是要从头想的话。
那这个了解还是要达到一个很高的一个程度,还有一个我觉得会影响到啊,呃就是可行性的一点,其实是你对这个科研流程的一个把握的程度,把握的能力怎么样,因为其实做科研有一个比较需要经验的事情。
就是说你要知道啊在什么时间应该干什么,不然的话你可能会花很多时间,在一个比如说不重要的,或者说一个比较比较小的问题上,然后或者是说你应该放弃的时候,没有放弃或者之类的。
所以说这个也是你随着你做科学员比较多,你有经验了之后,你可以更好的判断的一个事情,那如果你没有办法做一个很好的判断,我觉得你就是要需要多跟别人沟通,然后呃看一下别人是不是有一个,比较好的一个建议。
所以说呢我觉得对于刚入门的同学,我觉得啊,还是以就是锻炼自己的这个科研技能为主,然后呢尽可能去选择门槛比较低的,然后难度比较适中的,然后风险也比较低的这样这样的一个课题,然后就说你你的目标是什么。
你的目标并不并不是说哎,我要做一个多么多么好的论文,我觉得主要还是以就是成长这样做一个目标,就是说尽可能去培养自己的科研的技能,然后建立科研的信心,尤其是我觉得就是说对于低年级的学生来说。
如果你啊已经发表了一些论文,你现在心里面就有底了对吧,然后你在高年级的时候呢,你就可以更多的去探索一些比较难的啊,或者说比较有风险的问题,对这个对我来说也是这样这样的一个过程。
但如果你很长时间没有没有一些很好的正的,反正向反馈的话,你可能就没有信心,然后这时候你可能在接下来的时间也会啊,比较挣扎,所以所以我真的建议大家就是说啊,一开始对自己预期不要特别高。
然后就主要主要以培养自己能力为主,然后呢呃有一种可以的做法,其实就是你找一篇你比较喜欢的,然后代码维护比较好的论文,然后你去深入理解它的方法,然后呢去跑它的代码,然后再在这个基础上对它进行改进。
我觉得这是一个啊,至少可以让你熟悉一篇工作对吧,你熟悉一篇工作之后啊,这是你就可以进行一些举一反三,然后呢我觉得也是可以尽可能的去选择,自己能够得到比较足够的支持和指导的课题。
就是因为科研里面有一些东西,其实你知道了一次之后,就是说不管你是通过自己呃尝试的,还是说别人告诉你的,你知道了之后,其实后面可能就啊比较轻松了,就比如说啊一些啊对吧,写作业呀,或者说一些啊。
一些这种这种这种一一这样一个技能啊,所以说我觉得,如果能得到比较好的支持和指导的话,还是应该尽可能的去寻求这样的机会,那么对于有一定科研经验的同学,我觉得你要不然你可以选择去啊。
深度的去挖掘一个问题的难点,因为你可能在一个方向已经进行了一些啊,一些探索和尝试了,然后你可以去尝试解决里面的一些核心的问题,那你也你也可以就是说啊,我这个问题我已经做了一段时间了,我其实对他啊。
已经有点已经有点审美疲劳了对吧,那你可以适当的去探索一些别的方向,这样的话你可以丰富你的,你的技能和知识的储备,然后如果你对两个方向都有好的理解的话,其实你更有可能去产生一些一些新的。
或者说一些可能出其不意的,大家没有问,就是没有很好想到的这样一个一个idea,然后呢其实影响可行性还有很多其他因素,然后这边列举几个啊,一个就是说你这个问题,它的定义的清晰的程度怎么样。
就说你可以试一下对吧,你能不能用比较简洁的语言来描述,你的一个核心的研究问题,有的时候你可能你会发现你这个问题的定义,它就不是很清晰,或者它就不是很合理对吧,你可以呃,你可以就列一下这三个问题。
比如说你要解决的问题,是一个什么样的问题对吧,然后呢你的方法为什么能解决这个问题,然后解决了这个问题之后,他能给你带来能力,这个领域带来什么,就是如果你能把这三个问题都很清晰地,描述出来的话。
其实你觉得你的这个核心的研究问题,可能就是一个比较合理的啊,一个比较unreasonable的一个一个问题,然后指导我刚才也提到了对吧,就是说啊能不能找到有意义的指导,如果不能的话。
能否找到相人来指导我,然后还有一个一个很重要的问题,就是说你能不能及时得到反馈啊,就是说因为有的时候有的时候,比如说如果你做这个问题,你还要提前去收集数据集的话,你可能要等好几个月,你才能知道你这个啊。
你这个想法行不行对吧,所以说有些课题,它每每个课题它的这个特点都不一样,然后呢你要根据它的特点啊来判断,就是说他就是说你能不能及时得到反馈,那肯定是选择,你比较能及时得到反馈的课题会更好。
不然的话你可能又会花花上很长时间在呃,在就是说啊没有没有信息的这样一种情况下,还有就是需要考虑,就是说你这个项目所需的时长,是不是符合你的一个时间安排,比如说如果你要可能马上你要去做实习了对吧。
你现在只有两三个月的时间,那可能就不适合做一个啊非常非常有意义,就是很宏大的一个项目,然后还有就是需要考虑到一些资源上的问题,因为呃有一些课题,它是对计算资源的需求是很高的,比如说如果你要去训这个啊。
一些嗯就是一些foundation foundation models对吧啊,然后有些可能是他他可以租,但是他们没有数据集对吧,所以说这个资源上的考虑,也是大家需要去呃去注意的。
还有一个就是说你这个课题他能不能比较有,有没有一定的灵活性,就是说如果你想到这个id它不work的话,你能不能想到就是你能想到多少个,就是说对它进行变换,或者说一些啊一些备选的一个方案。
或者说你多容易去回收,你已经有了探索的成果,有的课题可能就是说你有一个想法对吧,他不work了,你就就就没了对吧,有的课题可能是哎我有这样一个目标,然后呢呃我就沿着这个目标去做,然后我可以降低我的目标。
所以不同的课题它的灵活性是不一样的,然后呢呃就是可行性方面,然后关于影响力啊,我可以讲一下呀,就是我觉得一个工作的影响力,它是等于就是说这个领域它总体的一个关注度,然后再乘上你这个工作的一个显著流程度。
所以说如果你这个领域,它本来就是一个非常小众的领域的话,那你这工作它总共它这个对吧,总共这个这个基本面就这么大对吧,或者说如果你的工作,其实他在一个非常热门的领域,但是呢他并没有推动很多的话。
那你的影响力其实也是比较有限的啊,通常来说的话就是说你越重要的问题,或者说越越general越普世的问题,或者说当下对吧,大家啊最热门的问题,就这种问题,他的关注度都是比较高的。
那就是举一个比如比较重要的问题的例子,就比如说这个对应关系就是correspondence,它就是一个很重要的问题啊,然后这是一个比较有名的引用,就是这个professor,他就说啊。
这个三个最重要的问题都是APERSONI啊,为什么呢,就是因为这个对应关系呢,它不管是对重建来说对吧,就三维重建来说,还是说对于这个目标追踪来说,或者是对所有的问题,它其实就是都可以。
就是它都都是一个这些问题的一个源头,就是如果你能解决啊,Fundamentally,如果你能解决这个correspondence的问题的话,很多问题其实都可以迎刃而解,然后另外一个例子。
我觉得就是说比如说单目深度,估计也是一个很重要的问题,因为你有了这样的一个关于这个场景的,这个几何理解之后,其实很多问题啊都可以从中受益,那嗯举个小众的问题的例子,就是我我随便编的啊。
就是说啊我要我们要解决这个在鱼眼相机下面,这个马的姿态的估计问题对吧,这这这就是一个很小人的问题啊,问问原因就是说首先这个设定就很多对吧,就是这个或者说一个很具体的一个设定,然后呢这个问题呢大家可能对。
也不是很关心这个马的姿态,估计对吧,我可能更关心人的姿态估计,所以这就是一个非常小众的例子,那你的受众就会比较小,所以说一个可以思考的一个方法,就是说你可以想一想,就是说你研究这个问题呢。
哪一类人群会对我的课题比较感兴趣啊,比如说如果我能做出来一个比transformer,更好的架构的话,那基本上就是所有的这个AI领域的这个从业者,都会对啊我这个课题感兴趣对吧,那如果我能啊。
有一个从视频里面得到更好的,相机参数的算法的话,其实做三三维啊,或者443D和4D重建的问题,或者说做内容生成的人都会感兴趣,因为你如果你知道相机的话,你可以就是提升这个视频,这个模型的一个可控性。
然后呢我还想说一点,就是说影响力它有不同的表现形式啊,如果你能真的把它做的非常有用,就是能解决一些核心的问题和挑战的话,那当然是一个会是一个很有影响力的工作,但是呢我觉得很多时候呃有用它并不是必要的。
就如果你能做出来很特别的工作,然后能给大家留下了很深刻的印象,我觉得这个也是会非常有影响力的,就对我来说,然后呢我想举两个有比较特别的例子,比如说这个就是他就是就是这个。
它叫它叫infinite images,就是说他这个图片它通过一些方法,然后你会感觉它一直啊可以无限的去去延伸,这样子嗯,然后你看到这样一个结果之后,其实他就会给你留下一个呃,一个比较深刻的印象。
因为他有点是这个composition的photography呃,photography的感觉,就是说这个本身它就是一个啊,一个很有意思的事情,然后还有一个例子就是最近的一个一个工作呃。
就是他们就是用diffusion models来做一些啊,一些呃,嗯这个怎么哦对,那来用diffusion mo来做一些illusions嗯,看一下诶,这个就可能有点卡,但是它的大概的概念。
就是说你这个图片在很小的时候,它看起来像另外一张图片,然后放大的时候呃对就小的时候是一张图片,然后放大是另外一张图片,其实这个时候你也可以大概感觉到这个啊,他现在看起来。
就如果你看他这个他的这个低频信号的话,它其实是这个爱因斯坦,如果你看到的高频信号的话,它其实是一个一个一个画对,所以这个我觉得也是一个非常有意思的一个呃,一个工作,然后呢,接下来讲到。
就是说你怎么去扩大你的工作的影响力,首先我觉得根本上,你肯定还是要通过提升你工作的质量,来扩大你的工作影响力,但是我觉得很多时候这个这影响力,他其实有很多啊,跟你工作无关的,也不是无关。
就是说他有很多额,有有很多因素对吧,就是说首先你能控制的因素是,你可以更好的去呈现它,就不管你这个你工作已经做完了对吧,在这种情况下,如果你的工作已经做完了,他是什么就是什么。
那如果你能把它呈现的更好的话,也会让人更啊更多的去关注到你的工作,然后这是通过哪些方式呢,首先我觉得就是说要提升论文的写作,因为你写的越清楚,如果你越能让人感觉到你的一个一个愿景的话。
他们就越容易注意到,就是说他觉得你这工作很好或者很重要,所以我觉得论文写作是很重要的一点,然后呢就是说最好大家能够及时的开源代码,这样的话有代码的话,大家就额可以更多的去去去试试一下。
你的这个方法也会影响提高影响力,然后再一个就是做好这个项目的主页包,包括就是多放一些比较好的结果呀啊,然后更好的这个可视化,来突出自己的工作的这个优势和特点,OK然后这就是讲到了一些。
就是一些选择课题的因素,那那下一面就是讲说啊,到到底要怎么去选择这个课题,就是它到底一个是是一个什么样的过程,首先呃这个是呃啊,四大在第一讲已经讲过的一个点,就是说你需要对领域建立一些基本的认知对吧。
然后呢,你可以去尝试去整理出一个领域的,一个发展脉络啊,就如果你想要去快速了解一个领域的话对吧,你可以找到每一年他的一个关键的论文,然后怎么知道它关不关键呢,你可以通过他的citation呀。
或者说你通过阅读relative work,看大家是怎么概括啊,就是说以往的工作的,然后呢你去整理这些论文之间的联系,比如说哪一篇论文它产生了,就是说他就是说产生别的论文呀。
或者说啊就是论文之间的对比对吧,这个论文有什么这样的优点,那个有什么那样的优点,然后呢尝试去总结,就是每在每个阶段大家都在解决哪一些呃,哪些问题,然后以此来判断,就是说这个领域。
它还有目前还有哪些重要的可以解决的问题,然后呢呃我刚才也提到了,就是说啊你在寻找课题的时候呢,它其实是一个循环循环往复的过程啊,你想idea了之后呢,你要去就是评估这个id对吧。
如果他啊比较promising的话,你可以尝试去深入的去探索它,如果大家不promising的话,其实你又要回到去想idea对吧,也有可能就是说你在深入探索之后,发现A他不work。
那你还要回到这个小AD这个过程,所以说啊我觉得就是寻找课题,两个比较重要的环节,就是说你在你就想想id这个过程,以及你评估id的这个过程,所以说啊我现在也会讲一下,就是你在想idea。
还有评估idea的时候啊,有哪一些啊,就是可以的做法对,其实小店无非就是这么几个啊,这么几个形式对吧,你可以通过阅读的方法去想对吧,你可以跟他人交流,你可以实践,然后你可以做这所有的事情来啊。
来来来想想一个id,我先讲一下这个阅读,就是我觉得在你想id的时候,你去读读一篇论文的时候,如果你现在读一篇具体论文对吧,你其实应该是带着问题去去阅读啊,比如说最最最基本的就是说。
你要就能看到这篇论文它有哪些不足的地方,而这些不足的地方其实就是一个机会对吧,你可以提升他的一些机会,然后除此之外呢,我觉得你还要去看,就是说这个工作它带来了哪些新的机会,就是他有些什么优点。
他开启了哪些新的可能性,然后呢这个这个这个这个工作人员这个对吧,他他的优点,或者说啊,他本身啊,跟我想解决的问题之间有什么样的联系,就是说所以所以说就是说,如果你本来就带着一个你想解决的问题。
去看这些工作的话啊,我觉得会有一个更好的效果,我觉得一定的误区,就是说啊,你可能完全关注在一个工作不足的地方,因为如果如果这个他工作不足的地方啊,是一个很明显的问题,或者说嗯就就就总而言之。
就是说我觉得一个工作他不足的地方,他这个作者他会比你更知道对吧,如果他是一个很容易提升的事情的话,作者可能已经就会把它做了,所以说我觉得呃,就是说需要去关注一个工作不足的地方。
但是呢不能完全的去啊去去去去,就只focus在它不足的地方啊,啊,另外一点,就是说你也不能完全的相信一个论文的结论啊,对啊ELSA说的就有50%的对吧,一个论文有50%的东西可能都是错的。
但这是一个比较啊,就比较比较开玩笑的一种一种说法,但是就是说确实就需要不停啊,就是说自己去比对不同啊论文的一些结论,然后啊包括实践的方法去啊去,就是说去判断呃一个论文里面的一些信息。
然后还有就是说要要广泛的去阅读对吧,你需要去对不同论文之间,但了解的一篇论文之后呢,你你你要对不同论文之间做一些横向的比较呃,整理他们这的脉络,然后识别出来说哎,有哪些东西可能是大家现在还做不好的。
或者说啊没有人做的一些事情,然后呢我还想要呃就是说突出的一点,就是说你其实啊,就是说这个其实很很多人也提到过,就是说你不能就是只读最近一年两年的论文,你需要去呃阅读一些比较比较经典的文。
然后啊这个也是我之前请教廖山,他说的就是说你应该去读这个旧的文章,然后他说这个啊history does not repeat,But it rhymes,就是意思就是说历史不重复。
但是呢它会它会有这种韵律,就是它会有一些嗯就是这个怎么理解,就见仁见智,但是就是说他还是有些相似的地方,也有一些共通的地方对吧,然后呢呃针对这个阅读,这个阅读的话,我其实有一些个人的案例啊。
一个就是关于就阅读,就是说以前的文章呃,方面就我做一篇ISCV的啊,一篇工作叫OMEMOTION,然后呢在这个brainstorm的时候呢,啊我其实就我其实OK我一开始的时候。
我其实就想做一个跟跟motion相关的,就跟这个呃跟tracking相关的,然后呢我就会发现诶,怎么大家要不然是做这个sparts feature,Tracking,就是说它比较的sparse。
但是呢它是可以是long range的,要不然呢就是在做这种dense optic flow对吧,为什么没有人做,就是说既是长时序的,然后又是比较稠密的这种就种啊,这种就是说呃tracking的问题呢。
然后NOVA就推荐我这篇就是18年前的一个工作,叫这个particle video,OK我先放一下我这个结果对,大概就是我们我们这个我们这论论文,其实在做这样一件事情,但这个可能有点卡。
对但是我这边想说的事情就是啊我读了之后,我就发现唉,原来这个大家在18年前就已经想了,想做的,想到了做这件事情,然后呢,嗯然后呢读着问论文,让我感觉就是说,但大家在18年前。
对于这个问题的理解都已经这么深刻了,所以说这个是不受工具的限制的,就是说对这种比较比较核心的比较啊,重要的问题其实可能很久之前很很长时间以前,大家就对他的理解就已经非常深了。
这是我当时呃带给我一个比较大的啊,一个一个呃一个冲击的一个事情,对,所以说我觉得,如果你研究的是一些比较经典的问题的话,其实一些经典的文章里面啊,会些比较老的文章里面,他可能会有深很深刻的见解对。
但如果你研究的是一个非常前沿,就怎么说呢,一个很新的东西,比如说你要研究transformers这种,他可能就本来就是啊最近才出现的东西,那你去看20年前的文章,你可能他这种联系就会啊比较弱一点。
但如果你研究是一个经典的问题的话,我觉得经典的文章还是会有很大的呃,给你很大的启发的,然后刚才说的是一个读经典的文章,那我觉得嗯还有一个同样的一个例子,但是呢是读比如说啊最近的文章。
就是说我在做这个工作的期间呢,其实啊我意识到就是说啊,这个我在找这个对应关系的时候啊,我是希望有一种有一个网络,它能给给我这样一种一致性的,也就是说一个一个点map到另外一个点对吧,然后呢。
因为他们之间应该是一个一个,就是有sal consistency的,所以我希望能够在再把它给卖了回来,然后我就需要找到这样一个一个一个,一个一个一个东西,一个一个网络结构,然后呢这个时候在这个呃期间。
我就读到了这个呃这篇公文叫KDX,然后它里面用的这个一本通大会,其实就是我们需要的,所以说我觉得读到这篇工作,其实解决了我们呃这个呃这个论文里面的,一个技术难点啊,也是我觉得是非常非常重要的一个。
一个一个发现,所以说啊阅读真的是会就是说带给你很多啊,不管是在大方向上的一些灵感也好,还是说帮助你解决一些核心的技术挑战,所以就是说一定要呃广泛的阅读,然后呢当然就是说你在想ID的时候。
也需要跟他人交流,或者说跟他人交流也会给你很大的收获啊,我觉得就是很多时候你需要找到一些,跟你研究兴趣比较相比较相同的,就跟你比较志同道合的同学,然后最好是你们的技能,还有些互补性的同学一起来讨论DS。
然后呢嗯你也可以选择跟你,你也可以就是说同时跟啊老师啊,或者说啊比较资深的研究者来交流,这样的话他们更有一些比较宏观的视野对吧,它你可能想的东西,他们啊这些在不同的场景下,不同的情境下啊。
有过一些探索呀,或者是有过一些体会呀,然后这这种交流也是非常有帮助的,然后再一个就是很多时候啊,你这个idea它其实来自于一些呃,没有目的的一个闲聊对吧,就是你可能并没有啊什么想法。
但是你比如说你午饭的时候,跟实验室同学一起吃,然后这这时候你们在聊一些啊,聊一些research的时候,它可以帮助你啊,了解到一些行行业的或者领域的动态呀,然后也可能会诞生research ideas。
所以我觉得啊很多时候就是要啊,就是多跟大家交流对,然后同样,然后同时就是说你你这个小idea,也是通过你就是真实的去实践来得到的对吧,就是说你你通过上手去跑代码呀,你可以深入的理解一个方法的机理。
然后呢你可以去理解它有哪些不足的,可以提升的地方,那嗯那你想一个新的解决方案来提升这个效果,这个这个过程本身其实也是在想id,所以说你也通过可以通过实践的方式来,来来来想来id,那嗯我还想说的就是说啊。
就是说显然练其实有两种方法对吧,嗯如果你有目目标的话,那你可以就是遵循这个go追分的这种research的方法,就是说你有这样一个目标,然后你寻找这个呃实现这个目标的方法,这就有点像是啊。
你拿着这个钉子找锤子对吧,就是你这是你要解决的问题啊,然后呢,你要找一个合适的锤子去解决这样的一个问题,那另外一种就是做法,或者说一种情形,就是说唉我就想到了一个新的id,我也不知道他会怎么样对吧。
我也不知道他啊能解决什么问题,但是呢我就坐着看,然后啊然后看能不能解决这个问题,所以说这个地方这个idea和你这个go,它中间是一个一个互相匹配的一个关系对吧,就是说你要找到一个好的idea。
然后呢你也你也要找到一个就合理的一个go,然后你可能中间,你可能中间有很多种不同的选择,然后你在不停的去匹配他们,然后最后找到一个匹匹配的方法,就是或者说一种啊,一种组合是你的idea能够很好地实现。
你能够的,或者说他们之间是啊就是非常make sense的嗯,所以说就是我觉得小AD很多时候,就是在不停的从两头往中间就是延伸,然后找到一个他们能够接上的那那那一种方法。
OK我们刚才讲到就是说怎么去啊想id啊,那接下来我们看看,就是说你想了idea之后,比如说你有的人他可能下能想来十几个id对吧,那这时候你就要去评估这些id,然后从里面选选到一个啊。
最有希望的一个idea去进行深入的探索,那评估id的话其实也是一样的,一个一也是一些一样的方,通过一样的方式对吧,通过阅读要跟他人交流或者实践这些方法呃,但是呢这时候你的这个关注的点。
你的这个呃focus的这个点可能不一样,所以呢嗯接下来我就想讲一下关于评估idea的啊,一些一些细节,那首先就是说啊评估id有哪些标准对吧,你从哪些角度去去评估你这个id。
首先第一个就是说他这个新颖性怎么样,或者他的novelty怎么样,然后再一个就是可行性和影响力,但是这个我们在刚开始的时候已经讲过一些了,所以说这时候呃,我们就主要focus在这个新颖性上面。
OK嗯新颖性啊,novelty这个问题啊,其实是一个非常有有争议的问题对吧,包括很多同学,如果有投稿经验的同学,你可能就会感到每一个审稿人,他对于这个novelty的定义都是不一样的,对吧啊。
然后这是一个非常嗯,非常就是大家很难达到一致的啊,1111个事情,然后呢michael black就是这地方呃这边写的呃,他其实写了一篇文章,来来来讲,就是说在在science里的novelty是什么。
然后给review一个一个guide,然后我推荐大家可以去去看一下,然后对我来说,如果我要总结一下他这篇啊这这个blog posts的话啊,我觉得首先就是说嗯很很很自然的。
就是说如果你这个id越是新颖对吧,越意想不到的,那那那确实就会越让人耳目一新,就是说他这个给你的这个啊surprise,一个程度是什么样子,那同意,那那就是稍微有点点啊矛盾的。
就是说哎有的时候大家可能觉得哇,你这个越复杂的idea,它呃它越noble,但其实并不是这样的,因为如因为就是说越复杂的事情,它其实就越有可能有一些有在不同的情形,情形下有一些问题,所以说其实嗯。
我觉得就是说如果一个东西越简单,但是呢它又在在简单的同时又非常有效的话,那这样的idea他的潜力是很大的,因为它很可能就更容易的去被嗯,就是应用到不同的领域,所以我觉得就是说简单和有效这样一个组合。
这种这种这种idea它是有巨大的潜力的,然后呢他也应该是被考虑成NOL的,因为因为就是你发现了一个一个好的,一个一个一个recipe,就你发现一个好的方案对吧,那这个这个方案他一定是他如果真的效果很好。
他一定是有道理的,哪怕就是说他看起来很简单,他表现很简单,但是他的身在它的机理上肯定是有他的,就是独到之处的对吧,那我觉得最好的idea它是一个什么样的形式呢,我觉得对于我来说。
最好的idea就是我看到那篇文章的时候对吧,我我看完之后,我觉得哇这个非常的合理,对吧,这个问题就应该是这么去解决啊,怎么之前没有人这么解决,或者说怎么我之前没有想到,所以这这个对我来说是嗯。
让我觉得比较normal的一些工作的一些特点,然后然后对于NAUDIO还有一些呃自己的看法,就是我觉得我的观点是比较啊比较宽松的,就是对我来说能够给领域带来一些新的增量的,一些工作都是脑补的工作。
那这个增量可以是比如说一些信息的增量对吧,比如说什么东西不行,什么东西行啊,或者说带来新的知识或者带来新的技术,这种就是只要能够就是有些新的东西的话,那其实都是我觉得有novelty的工作。
然后呢其实在一定程度上来说,所有的工作都是A加B对吧,因为所有的工作他都不是就是空中楼阁,他都要站在巨人肩膀上,他都会,他都要就是说汲取前人工作的一些一些优势,然后啊也会有前人的工作的影响。
因为因为就是说呃很很经常的,就大家对一个工作的now,所以批判的是A你这个工作就是A加B,所以五我这边有一个呃,我的个人想法,就是说所有的功能英雄上都是都是A加B,那但是不同的是什么,就是什么。
导致有一些工作可能大家觉得更恼火,有些工作没有那么novel,其实我觉得是一看你这个组合,就是你这个组合,它是不是有你就是要解决的问题所带来的一种,怎么说所驱动的一种自然是必然的解决方案。
如果你的这个解决方案,它就是就对你的问题要解决问题,他是一个浑然天成的一个一个解决方案的话,那那我觉得这个就是说,就这个这个这个这样一种设置,这样一种选择,本身它就是novel的。
因为你必然是尝试了很多不同的就是方法对吧,那你找到了一种最好的解决方法,那这种最好解决方法,它本身就是有很大的信息量的对吧,那嗯那我觉得但是呢在那种情况下,就是说你如果你是A加B的这个组合。
是大家在一些类似的情况下,已经验证了能够能够work的,那大家就会觉得你这个NT就会比较低对吧,因为这个结论,或者说你并没有带来一些新的新的信息,新的增量,因为大家可能一看就觉得啊啊这很大概率。
这是可以成功的,或者或者之类的对吧,所以说这个组合是不是一个比较嗯怎么说呢,要大家不不知道的,就是说不知道答案的那种组合啊,也是一个影响,然后呢,嗯然后呢,关于就是说你怎么去培养你的这个研究品位,对吧。
就是说这也是呃一个呃一个一个,一个很大的问题,就是说嗯一开始你可能没有研究评论,但是随着就是你研究就是说就时间越来越长,你可能就是会逐渐形成自己的研究品位,但是呢呃这地方其实就是有一些啊。
可以练练习的方法啊,然后这这段我就举几个,也就是培养的研究品位的一些练习方法啊,这是看了这样这这一篇啊文章对吧,嗯他说的第一个方法就是什么呢,就是说你先写下来啊,一些研究的想法。
然后呢你找一个你比较你表比较崇拜,你就比较较尊敬,比较信任的一个一个一个导师或者一个mentor or,来去评价你的这个啊你的想法从1~10,然后呢,你看看就是说嗯你看就是说你啊哪些地方。
你跟他们的你的意见不一样,然后呢然后再去再去进行反思,所以这样其实就是你这个你可以通过去they still,你这个导师的这个研究想法来啊,提升你的这个呃研究品位,提升你自己的研究品位。
或者就是说用种种方法,就是说你去啊看看就是别人试过哪些,你想到过的想法对吧,那这个,然后然后你看看他这个结果,跟你的预期是不是符合的,因为这是一个很好的啊,对你来说一个很重要的信息。
因为你想到过这个id对吧,你其实是想知道就是这这个idea,它最后会会变成什么样子的,如果你能建立这样一种联系的话,就是说你这个idea和就产生了结果,这个联系的话。
其实你就在train你自己的一个一个一个就是啊,预测一个模型,那你下次再有啊一个研究idea的时候,你可能就会有一个比较好的直觉,就是说你的这个你的这个想法,他会造会带来一个什么样的结果。
所以说你收集这样的啊这样的信息,就是说你的这个想法和结果,这个信息可以去帮助你去提升你的这个呃,学术的直觉,嗯然后呢嗯这个是说你可以去对吧,多去啊采访别人对吧,采访他们的研究品位是什么。
就他们为什么要做他们现在在做的工作啊,在座的问题,然后他们是怎么选择问题呢,然后他们对于他们的这个research的,一个长远的一个愿景是什么对吧,这个也是可以让你了解到,比如说啊就大家的研究。
学术评委为是是什么样子的一种方法,然后这个说的是啊,你可以去读一些啊,就是科学史的一些书,这个我我没有做过,所以我也不知道这个啊会不会有帮助,但这个可能是稍微有一点点啊过于宏观了对。
但是呃如果对于历史比较感兴趣的同学,也可以尝试做一下这种事情,还有一个就是说啊,你可以尝试就比较批判性的去去反思,你自己的一个学术品味,或者说你周围这个大家的这个学术品位,就是说嗯这样的话。
其实也是一个比较好的一个纠纠正的一个啊,一个一个一个做法,因为你的学术品位,很可能是受你周围的人的影响,比如说你的这个啊合作者呀,你的老师的影响,然后你可能并没有意识到你的你的学术品位。
可能是有一定的有一定的偏差或有一定的误区,所以你通过就是说去反思,去批判自己的研究评论也可以啊,实现一定的就是啊纠正的一个一个一个功能,然后呢这个地方我就啊因为我这已经超时了,我就不仔细讲了。
反正就是你就是通过啊阅读和啊跟他人交流,你可以判断你的问题没有做过呀,然后啊有没有成功的经验呀,然后嗯你可以通过设计最简单的实验,来验证你这个核心的想法,然后这个设计实验验这个。
接下来我觉得啊接下来的课程会提到,所以这地方我就不展开了啊,然后影响力这个呃一个最简单的想法,就是说你可以去设想一下好吧,如果你觉得啊难点所有的难点都解决了,你最后的效果是不是足够的惊艳。
嗯对这个我就啊快速的讲一下,然后呢嗯然后执行层面上来说来说的话,就是说这这这是一个大概的流程,但是具体的每一个每一个决策,每一个节点你要怎么做,其实是有很多种策略的,对吧。
嗯啊有的人就是我观察我周围的这个不同的呃,就是researchers,有的人他可能是他同时他有很多id,很多想法,然后呢他都会对他们做过一些初步的尝试,然后呢在这个之后呢再选一个最promising的。
然后做一个深入的探索,就是它有点像有点多线程,那有的人他会大概谨慎地,选择好一个大概的方向,然后他确定这个方向呢它是有研究空间的,然后呢他在这个方向里面再去根据实际的反馈,对这个id进行行调整和提升。
嗯所以我对我来说,我觉得我比较偏向于是第二种,就是说我可能会大概想一想哎,我确保就是说这地方它有研究空间,然后我对这个问题感兴趣,然后呢啊在这个前提下面啊,我再去啊去不停的去refine。
我的idea就通过做实验,然后通过啊对这个问题加深理解,然后最后可以做出一个呃一个就是一个东西来,所以说这个地方的策略,大家也可以根据自己的这个特点来进行选择,那啊这个时候也会有一个非常嗯。
非常非常棘手的一个问题,然后也是我觉得啊,就是包括到现在不到任何一个时间节点就到了,就是说不管你多么的啊自身你都要去啊判断,就是说什么时候应该放放弃一个idea,然后这也不是一个啊非常简单的事情啊。
那我觉得什么时候应该放弃来验呢,首先就是当你觉家里有硬伤的时候,你可能就要放弃它了,那什么叫有硬伤呢,就一个就是说如果你是核心的对吧,你最想要卖的这个有卖地点的,这个核心卖点已经被人做过了。
那你确实就啊不能继续做下去了,或者说你这个id你试了对吧,这个核心的这个id它不work,那也没有办法继续做下去,或者说你这个的contribution不够对吧,如果你有一个目标的期刊或者会位移。
然后呢,你可以尝试把你现在有的一些contribution,给列出来,然后你判断一下这个contribution,是不是达到你的这个目标期刊和会议的标准,那如果你自己判断不了的话,那你可以求助。
比如说啊有经验的人,或者说发表过这些期刊和论呃,论文或者会议的人来来帮你判断,然后在一个论文,在一个就是项目陷入行陷入瓶颈的时候,这其实是非常常见的啊,一个情况对吧,在项目的任何阶段,你都可能陷入瓶颈。
然后这时候我觉得如果他没有这种很严重的,这个硬伤的情况下,我是建议不要完全放弃的啊,因为什么呢,因为就是说啊,瓶颈是每个人都会遇到的一种情况对吧,嗯如果你不经过这个瓶颈的话。
你你就是说很多人可能是在这个瓶颈地方,停下来了,所以说就是说我觉得嗯,你可以你可能通过再多试一点,你就可能就是说越过这个瓶颈,然后你就可能能够就是呃,就是说有一个比较好的解决方案。
所以说我觉得第一个就是说你陷入瓶颈的时候,你要去就是尝试所有能想到的解决方案,对,就是说你能把你,你要把你能想想到的东西都都试一下对吧,然后呢如果他们都不能解决问题的话,你要总结一下。
他们不能解决问题的原因都是什么,然后看看这些问题,这些原因呢他是不是啊一些致命的原因对吧,然后呢嗯或者说嗯有的时候,如果你实在是卡住了对吧,你应该去啊跳远一点,就是说啊从远处去看一下你。
你整个的就是整个的这个项目的情况对吧,是不是你哪地方思路有些不对,所以说这个时候可以就考虑做,对这个问题做一些大的一些一些重构对吧,嗯重新调整一下它,然后呢也有可能就是说哎我有个固定的。
我有特定的功能或者特定的模块,现在没有工具能够实现这一点,那这个时候你可以把它放一放,对吧啊,你可以去做别的事情,但是呢你一要一直的去啊关注这些事情啊,因为一旦这个工具真的出现了啊,然后呢。
这个工具又是解决你这个问题非常重要的啊,一个东西的话,那那这个时候你你你就可以成为最快的去啊,用这个工具来解决这个问题的人对,所以说啊,大家都说这个机会是给有准备的人对吧,那你之前的这些探索。
你对这个问题的理解其实并不会被浪费掉,而是说啊你需要就是说啊,你这之前这个积累,其实就是啊给你提供了一个很好的啊,就这也可以说是一个对吧啊,就是说啊,就是说呃就是follow新的技术。
或者追赶热点的一个能力,因为呃因为就是说你你把这个热点,或者是一个新的技术,就跟你之前想做的东西做一个很好的结合对,然后呢哦我再说一些啊,一些就是一些建议对,首先或者说一些我。
我就是发现这位同学一些常见的一个错误,一个就是说对这个领域了解不够,或者说对这个前沿了解不够,导致就是说你研究的方向呃,其实明显不不能达到SOTA,但是呢你自己却不知道。
你可能在沿着这样一个啊本来就比较呃,没有没有很有前景的方向来继续研究,那这个呃,比如说你没有在最好的方法基础上进行改进,或者说你没有用最先进的工具,那这个其实解决方案也非常简单,就是你要去多读多问。
然后多了解对吗,然后呢还有一个比较常见的错误,就是说你在深入探索一段时间之后,就在你深入有一定深入探索的情况下,然后你去放弃了它,然后呢去做一个啊不相关的项目,这样不好,原因是什么呢。
是因为你浪费了在一个方向上积累的一些一些,Insights,还有一些技能啊,这个说的就是说如果你已经深入探索一段时间,不是说你一开始就放弃了,所以所以所以说在这种情况下。
我觉得啊还是要尽可能对这个项目进行重构,然后找到一个相关的项目,然后再重复的利用在你这个项目里面,学到的知识和技能,因为就是说你就是这基,有点像是在做research的一个过程。
就是说你其实已经探索了很多了,但是你就是离离就是说你挖到这个这个矿,可能就是差一点点,但是呢因为你没有一直没有反馈,所以你就觉得啊我好像什么都没有获得,所以说这就是啊,我觉得就大家不能轻易放弃的原因。
就是因为你已经积累了很多的啊技能,很多的这个对这个问题的理解了啊,所以说如果能够重新的利用它的话,其实是啊,就是说对你自己这个科研的成长,是比较有帮助的,嗯然后还有最后一点。
最后几点就是说啊我觉得啊我在想id的时候呢,会去维护一个文档,然后把我所有的想法都记录下来,然后这样的话你其实每次一打开你就能看到,你就能回想起来,哎我有这么几个id嗯,然后呢他这个记录的本身呢。
它可以帮助你理清思路,比如说哎我为什么要做这个对吧,然后啊我要怎么做这个,然后他做有什么好处,就是你可以把它都就整理下来啊,你的资源会更清晰,然后呢,这时候然后呢,在一个文档里面有很多不同的idea呢。
也方便你对这些这些idea做事做一些啊,比较还有融合,然后这样的话,其实啊你更可能会产生一些新的idea,或者说更容易进行比较的,就是你更喜欢哪一个,或者说你觉得哪一个更有前景好。
OK这就是我准备的一些内容了,然后呢,啊接下来就是说呃一些同学在群里面提问,提问的问题,包括上次呃在那个panel上面的一些问题,然后第一个问题就是啊,大家问我要我分享一下。
在ccv best student paper的经历,那我可以这都大概把我这个这个paper的一个情况,给分享一下啊,首先我为什么要做这个东西,对我做这个东西的原因是,因为我在做上一篇工作的时候嗯。
我给three moments,它是什么,它就是把两张图片,然后变成一个啊一个一个一个4D的,一个一个小动画的一样的感觉,然后呢其实你就要去把他的这个几何呀,就是说这个这个场景的death。
还有这个motion给这种给用起来,然后呢,在这时候我就发现,这motion其实是一个最大的难点,就比如说当你你这个你可能并没有觉得,一个很大的一个人的运动,都会给他造成很大的困难,所以这这就让我导致。
就是这就是导致我对这个motion的问题,产生了很大的兴趣,然后呢一开始呢我们是想尝试做这个呃,4D的重建,也就FORECONSTRUCTION,然后发现太难了。
因为你要做food construction的话,你要把camera给factor出来,就是你要你要把KA的motion,还有这个场景的motion给大家给分开啊,这难度太大了。
所以呢我们就打算就是OK,那就降低这个问题难度对吧,我们就不把就是说相机的运动,还有这个场景的运动给分开,我们就啊确保就是说他这个在2D会上的投影,就是说啊这个这个问题。
就是只要这个2D的CORRESPONSE对就可以了,所以说其实我们这个地方,就是把问题的难度给降低了啊,啊然后省掉了一部分,就是说啊我们没有做一部分,其实就是啊比如说这个啊。
就是这个相机和这个场景的真实的3D运动,它的它的这样一个decomposition,我们没有做,然后我们只需要去,我们只想要保证,就是说它在这些这些点的运动对吧,它在2D上面的投影是正确的就可以了。
然后其实这也是一个很难的问题,就他大概降低了难度一点点,但是还是很困难,所以一开始效果是非常差的,然后呢,呃然后那段时间我觉得就是每天都在质疑,就是说哎我为什么要做这个事,我做这东西是不是有意义的哦。
然后到底能做出来吗,所以这个状态其实持续了很长时间,我觉得可能有有大半年的时间都在,就是尝试不同的东西,然后啊效果也不好,然后后面就呃就是了解到了这个univeral networks。
然后就是感觉有一点点希望了,然后就是说还是不行,然后还有另外一个很重要的一个technical的啊,一个就是一个一个ingredient,就是说这个connect volume。
这是我们的paper里面一些细节,它必须要是邓词才可以,不然它就优化不出来对,反正就是解决了一些技术的难点之后呢,它还有一些比较基本的效果了,然后有了比较基本效果之后呢,其实这时候就已经有比较有信心了。
就是觉得这这个项目,就是至少它有一个比较清晰的方向了,然后呢就在尝试去改进这个效果,但是呢,就是其实这个改进还是也花了很长的时间,但是其实没有并没有什么明显的提升,就是因为他可能他这个方法。
就是我们这技术路线,他上限就在那里对吧,但我也不知道他上线到底在哪里,所以就花了很大的精力去还是提升他,但是没有明显提升之后,我们其实也就也就投稿了,然后投了之后呢,呃就是去呃呃我们这个问题。
因为它是一个比较新的一种一种输出,所以就是怎么去做好这个生化,怎么做好demo,这个我们也花了很大的精力,就是呃为了做那个那个项目主页,我还我还去这个淘宝上就买了。
就是说就是就是相当于找找人去帮我做这个啊,一个一个就是那个interactive,一个一个呃可就是一个interacted的一个一个demo,对因为我并不是很熟悉啊,就是JAVASCRIPT。
还有这些东西,就反正就是真的是花了啊,很大的精力就在各个环节上,我都想把它做到一个比较好的一个一个效果对,然后我觉得这对其实其实做了很长时间,就是一开始可能是我觉得可能做一年多对。
然后很长一段时间我都每每每天都在这个质疑,就是说做这东西到底到底有没有用,到底有就这个方向到底对不对对,所以说嗯我这之后跟我同学聊,然后他们就说嗯就跟我的合作者聊,他说中间有一段时间就大家都在说。
你要不然换个问题做吧,然后但是我还是一定要做这个,就我自己可能没有感觉啊对嗯,然后我我回头想了一下,我觉得是因为就是就是一种直觉,就是觉得这个问题它不应该这么难,就是说嗯我觉得这个问题。
就是就总觉得这个问题是应该有,可能有有一种方法去解决它的,所以可能就是这样一种这样一种执念,这样一种直觉,让我能够就是没有去去轻易的放弃他,所以也很难说,就是这可能就是嗯对一些比较难以传授的东西,对。
然后还有些别的问题,比如说啊大家要问说啊,在你确定了一个大方向之后,怎么去精准的关注到这个领域的大牛和强组嗯,这个我觉得应该是一个比较简单的,就是应该是比较可行的事情,就是你可以看一下硬指标对吧。
就是说啊你看一下这个这个citation呀,然后一些一些扣的呀,然后或者说你就比较你这个论文的方法对吧,看他那个表格里面哪一个哪一些方法它啊,这就是比好呀对吧,然后你看如果看到很多这样的啊。
这样的这配方本之后,你大概就有感觉,就是说哪一个啊,哪一个组,他在这个领域是比较领先的,然后或者你也可以去看社交媒体,然后通过跟大人交流或者开会,你也可以感受到,其实开会是非常非常容易感受到一件事情。
因为就非常的具象化的,比如说唉大家都在讨论谁谁谁的工作,那这个时候你可能就有很清晰的一个一个感觉,但是呢我还是想就说一下,就是说不要去迷信就是所谓的大牛和强组,因为如果首先。
如果他真的是一个大牛和强组的话,那这个时候你再去跟进,跟进可能就已经比较晚了对吧,那对于一个比较新的领域来说,那这个时候其实大家的起点都是差不多的对吧,就大牛或强度,他的他的工作可能也并不见得。
就比呃一些可能你不知道的做的工作要更好,所以我觉得还是要去啊看这工作本身的质量,就是说你你要对这个工作本身有一定的判断对,然后呢还有一个同学问,就是说怎么能够一直follow新技术,就我觉得每天啊对吧。
而CD有那么多文章出现啊,有这么多新的技术,就是任何人的精力就是都是有限的,你不可能说什么东西我都啊都能follow得住对吧,所以说这是这地方就有一个有针对性的,follow的一个问题。
就是你要有的放矢,就如果最好情况就是说你自己有个长期目标啊,但是这个是你通过做research慢慢就可以建立的啊,一个一个感觉,就是你就慢慢你就有自己的一个目标,或者说你想要解决一些问题。
然后呢你要看一下,就是说这些这些目标,他是不是跟你就就是这个新的技术对吧,是不是跟你的目标相关,如果是跟你的目标相关的话,你可以去进行一些仔细的了解,然后详尽就是想办法去去follow他。
那如果是你英语目标不太相关的话,那我觉得至少要有一个基本的了解,就是你达到一个基本了解之后啊,可能就够了对吧,就是说不需要再花很多时间去去搞清楚,里面的细节。
然后呃另外另外一个就是一直follow新技术的方法,这也是啊前段时间对吧,我跟一个同学聊,因为那个同学他就是嗯一直都能够感觉啊,非常非常非常就是说快的去啊follow1些技术。
然后嗯然后可以有很多有很多就是说工作对吧,在一些很新的甚至不一样的技术上面,然后这个同学就是说啊他的策略是什么呢,他的策略就是说他他就会去,他每次都会找最这个领域最强的人合作,也就是说他从这个领域。
就是或者说他这个新的技术对吧,相关的最强的同学身上去学习啊,那这样的话你肯定的成长速度是很快的对吧,当然这个也是很见仁见智的一件事情,因为如果你每次都找最强的同学去合作的话,那他们的他们这个就对吧。
你可能做出来的工作,他们就会觉得别人就会觉得啊,这是另外那个同学他做出来的对吧,因为他可能有更深刻的积累呀,或者就是或者说你本来就已经啊在这个基础上,或者在这个方向上已经有有名字了啊,或者之类的。
所以一所以我的感觉就是说啊,这个对于这个方法也是非常呃,就是说它也不是说一个啊完全呃没有没有啊,没有就是呃但没有劣势的一个做法,嗯然后这里面还有一些呃其他的问题,我不知道我要继续吗。
还是因为我已经对08:30了,OK我就接着说了,然后这个问题就是说,当时是怎么选定第一篇论文的课题的,嗯对我来说呢,第一篇论文其实就是呃有人带我对吧,他就是我在本科期间。
然后嗯就是做了一个就是多图的一个,匹配的一个问题,所以说我其实在比较幸运的是,就是在第一个论文的时候,就已经嗯就是说我不需要去去不要不需要去,就是担心选题的问题啊,我只需要去执行。
然后熟悉这个科研的流程这样子,所以说啊这个并不是我自己决定的,但是呢在我博士期间的第一篇论文的研究课题,虽然这个大方向是啊老师定的,就是做一个呃图像匹配的问题,但是呢呃具体就是说怎么样一个idea。
还是就是花了很多时间去去打磨的,然后因为那那个时候并没有啊人给我一个id,所以说当时是花了很多时间去了解这个领域,然后去啊试不同的方法,然后去慢慢的想到了一个一个研究的啊,一个课题对,然后第二个问题是。
刚入门的研究生应该选什么样的课题上手啊,这个其实刚刚啊已经提到了,就是说你应该选嗯,就是说你可以,比如说选一个一个比较好的一个论文,或者然后从他出发啊,去研究它的代码,然后去去开始上手啊。
或者说你可以去找呃对吧,呃就是说如果你有比较好的合作者,或者说有人带你的话,我觉得也是啊更容易上手的,嗯然后下面说啊就是在选题的时候,是不是啊一定要按照这样一种方法去嗯,嗯呃呃对这个问题的话。
我觉得是啊不需要的,因为啊你在就是,如果你是在围绕着一个工程问题,在试不同的解决方案,就是我觉得这是完全正常的,就是说不不一定是说,你一定要有一个非常固定的,非常啊就是说规规范的一个时间轴。
就因为你在做研究的过程当中,他各种情况都有可能会出现对吧,所以说呃我觉得这个是不需要担心的,这是一个合理的啊一个情形,然后下一个问题是呃,有没有在实验过程中发现选题做不动,然后调整论目标的情况啊。
这个我刚才其实讲到了,就是说我24C那篇论文的时候,其实就啊因为因为做不动,所以调整了论文的目标,就简化了这个问题,对对我看一下啊,OK那就没有了K哦。