找回密码
 立即注册
查看: 713|回复: 19

计算机视觉和计算机图形学哪个更难?

[复制链接]
发表于 2021-8-10 15:16 | 显示全部楼层 |阅读模式
感觉现在好多人转CV,很多连数字图像处理等基础都没学过的学几个目标检测识别的网络,学个TensorFlow就面试CV了。唉
发表于 2021-8-10 15:23 | 显示全部楼层
@张心欣 老师提到了CG和CV的美与丑,这一点我在做这两方向时的确都深有体会,通常哪怕仅从代码上来讲CG的确要比CV显得漂亮优雅,但其实我觉得这个现象不一定是学科本质带来的结果。


首先,通常来讲,CG的项目要比CV来得庞大,为此研究人员必须要有比较高的编程水平和软件工程水平,否则开发出的CG系统是很难维护也很难拓展的。例如我在入门SPH流体模拟时曾使用过一套叫做 fluid v3 的代码,初看这套代码惊为天人,后来看心欣哥的老师 Prof. Bridson 的代码和书也有种自成体系的感觉。相比之下,CV的工作虽然有些也是系统性工作,但更多的是为了验证自己观点而做的简单尝试,自然无需很庞大的代码管理体系就可以运行起来。所以,代码的角度来讲,CV项目的优雅性可能不如CG,但如果想要美是可以写得美的。


另外,由于CV近年因为神经网络的应用而变得逐渐 work,资本的目光一落,人为利来,很多鱼龙混珠的从业者的涌入也导致了CV整体平均质量的降低。有些人甚至 python 调一下 MNIST 示例代码知乎看看别人嚼过的论文就觉得自己是CV从业者了。这也是导致近来CV让人越来越觉得不“赏心悦目”的原因之一。


最后,仅从我接触过的CV和CG领域来说,我个人认为这两个行业无所谓谁难谁易。如果说图形学是在模拟大自然,那么视觉就是在模拟人,人是如何理解大自然是个谜,大自然自己如何理解自己也是个谜。流体模拟中不可压缩性解方程很数学很优雅,要知道CV中也不只是简单 CNN 堆叠,传统求光流提边缘同样是很硬核很有意思的事,在这个领域其实还有大量暂时无法落地的研究方向等着大家去啃。况且就算你做图形学,也没人拦着你想到视觉 idea 时候做一做视觉,反之亦然,现在CG和CV各个研究领域都在强调跨学科的启发,我觉得这点很重要,别在一棵树上吊死,说我是CG人就一点CV都不允许自己做。这一点经常出现在CG研究者身上,我觉得图形学社区的维护也需要大家转变思想,多合作多学习多开源。


总体而言,对这个问题不必纠结。做学术而言,不管哪个方向,想要做出 impressive 的工作都是要坐冷板凳的,重要的是兴趣。而对于做工业,还是多培养一下编程习惯和对代码控制力吧,不管做什么这都是基础。(科研弟弟的一点见解,还望大佬们指正)


P.S. 针对题主提到的大家转行风潮,我认为对CV或CG,乃至整个计算机社区的发展都是不利的。不可否认的是“人口红利”会加大CV界优秀作品的涌现,但长远来看,这种趋势会导致进入CV行业的研究者不清楚自己是因为热爱还是因为潮流而进入CV,甚至我还见过因为觉得自己不能随大流,虽然热爱CV但还是留在自己原来方向的研究者。这样不仅切断了其他方向的血液,也导致CV社区的“浮躁”文化,毕竟兴趣爱好才应该是科研的内部驱动力。这也是为什么我很羡慕在少年时期就熟悉计算机各方向的孩子们,他们就可以追寻自己内心做让自己开心的研究。我在今年去 SIGGRAPH 时与很多CG研究者交流过,我觉得他们就对自己的爱好看得很透,这也是为什么他们能做出 epic work。
发表于 2021-8-10 15:31 | 显示全部楼层
补充
最近的一些体会。纯从工程角度来说,只说做research,不考虑公司落地产品,搞vision的可能(注意,是可能,不是全部)写Python,甚至MATLAB就够了。Python的包依赖问题不大,上Anaconda可以解决很多问题,更何况还有venv这种黑科技加成。
搞Graphics的就惨了,你只能写C++,没得选。开发环境自己配,你要么选择几年前几万行的代码库自己重构,要么自己重头撸轮子,工作量是差不多的。
最近看到一篇文章
关于计算机图形学的若干问题         — —对清华《2018年计算机图形学研究报告》的几点注记 何援军
题主抓来看看,就会发现CV跟CG是橘子和苹果的区别,没法比。
TL;DR
文章提出的观点是CG这样一个跨学科不应该算做是计算机科学下的分类,同时CG本身的各个分支也是很不相关的。
发表于 2021-8-10 15:37 | 显示全部楼层
比起计算机图形学中很多问题所蕴含的大道至简、精巧优美、对称守恒等哲学美来说,计算机视觉不过是个工程学。


说得详细一点,做计算机图形学和做计算机视觉,追求是不一样的。前者追求的是美,后者追求的是work。


所谓美,包括了结果的美、自然的美、问题的美、解决问题的算法的美。这种美是充满了人文追求的,是充满了对于人之所以为人、对于人的色香声味触的感激以及自然万物生灵所以运转和如此展现的美的原理的探索的。所产生的算法是包含了大道至简、大智若愚、大巧若拙哲学思辨的。计算机图形学的终极目的是再现“美”。


计算机视觉,work就行,快就行。事实上……计算机视觉领域至今最有用的东西,却十分的丑陋。
发表于 2021-8-10 15:45 | 显示全部楼层
葡萄酸没必要。干就完了。
能解决问题的工程师都是公司需要的,不要形而上学。
发表于 2021-8-10 15:47 | 显示全部楼层
计算机图形学(Computer Graphics)
讲的是图形,也就是图形的构造方式,是一种从无到有的概念,从数据得到图像。是给定关于景象结构、表面反射特性、光源配置及相机模型的信息,生成图像。
计算机视觉(Computer Vision)
给定图象,从图象提取信息,包括景象的三维结构,运动检测,识别物体等。
数字图像处理(Digital Image Processing)
对已有的图像进行变换、分析、重构,得到的仍是图像。
模式识别(PR)本质就是分类,根据常识或样本或二者结合进行分类,可以对图像进行分类,从图像得到数据。
Computer Graphics和Computer Vision是同一过程的两个方向。Computer Graphics将抽象的语义信息转化成图像,Computer Vision从图像中提取抽象的语义信息。Image Processing探索的是从一个图像或者一组图像之间的互相转化和关系,与语义信息无关。总之,计算机图形学是计算机视觉的逆问题,两者从最初相互独立的平行发展到最近的融合是一大趋势。图像模式的分类是计算机视觉中的一个重要问题,模式识别中的许多方法可以应用于计算机视觉中。


区别:
Computer Graphics,简称 CG 。输入的是对虚拟场景的描述,通常为多边形数组,而每个多边形由三个顶点组成,每个顶点包括三维坐标、贴图坐标、rgb颜色等。输出的是图像,即二维像素数组。
Computer Vision,简称 CV。输入的是图像或图像序列,通常来自相机或usb摄像头。输出的是对于图像序列对应的真实世界的理解,比如检测人脸、识别车牌。
Digital Image Processing,简称 DIP。输入的是图像,输出的也是图像。Photoshop中对一副图像应用滤镜就是典型的一种图像处理。常见操作有模糊、灰度化、增强对比度等。


联系:
CG 中也会用到 DIP,现今的三维游戏为了增加表现力都会叠加全屏的后期特效,原理就是 DIP,只是将计算量放在了显卡端。
CV 更是大量依赖 DIP 来打杂活,比如对需要识别的照片进行预处理。
最后还要提到近年来的热点——增强现实(AR),它既需要 CG,又需要 CV,当然也不会漏掉 DIP。它用 DIP 进行预处理,用 CV 进行跟踪物体的识别与姿态获取,用 CG 进行虚拟三维物体的叠加。
简单点说:1 计算机视觉,里面人工智能的东西更多一些,不仅仅是图像处理的知识,还涵盖了人工智能,机器学习等领域知识;2,计算机图形学,主要涉及图形成像及游戏类开发,如opengl等,还有就是视频渲染等;3,图像处理,这个主要针对图像图像的基本处理,如图像检索或则图像识别,压缩,复原等等操作。
计算机图形学和数字图像处理是比较老的技术。计算机视觉要迟几十年才提出。
计算机图形学和数字图像处理的区别在于图形和图像。
图形是矢量的、纯数字式的。图像常常由来自现实世界的信号产生,有时也包括图形。
而图像和图形都是数据的简单堆积,图像是像素的叠加,图形则是基本图元的叠加。计算机视觉要从图像中整理出一些信息或统计数据,也就是说要对计算机图像作进一步的分析。计算机图形学的研究成果可以用于产生数字图像处理所需要的素材,计算机视觉需要以数字图像处理作为基础。计算机视觉与数字图像处理的这种关系类似于物理学和数学的关系。
另外,如果不是浙江大学的或者中科院计算所的,不建议做计算机图形学这一方向,难度太大(图形比图像虽然表面上只高一维,但实际上工作量大了好多倍;其次,图像,国内外差距目前已经很小,好发重要期刊;图形,除上面两个单位和微软外,国内外差距很大,不好发重要期刊)
数字图像处理主要是对已有的图像,比如说可见光的图像、红外图像、雷达成像进行噪声滤除、边缘检测、图像恢复等处理,就像用ps 处理照片一样的。人脸识别啊、指纹识别啊、运动物体跟踪啊,都属于图像处理。去噪有各种滤波算法;其他的有各种时频变化算法,如傅里叶变化,小波变换等,有很多这方面的书籍。
图形学主要研究如何生成图形的,像用autoCAD作图,就是图形学中算法的应用。各种动漫软件中图形算法的生成等。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-8-10 15:50 | 显示全部楼层
个人一点浅解,我本身来说是做cv的,计算机视觉和计算机图形学本身都自带非常多的分枝领域,这种哪个更难本的问题身是没有意义的,图形学个人感觉是图形渲染,更好的呈现效果,cv是对图像的理解以及度量,看完冈萨雷斯的数字图像处理也仅仅是对图像的基本操作有了宏观的了解,无论是cv还是计算机图形学来说一个入门的基础,由于对计算机图形不是十分了解,简单讲讲cv吧,在知识方面可能你还需要补充大量的模式识别,机器学习的基础,这几年深度学习可能大家都听过了,如果是cv的话,应该还要深入的了解卷积神经网络,接下来你应该在众多的cv分枝里,比如检测,跟踪,语义分割,或者最近比较火的gan等等方向中,选择一个细分领域深入了解,读一读state of the art的文章,新的idea,在技能方面,一门脚本语言,python,matlab,r里面选一个,强烈建议python,一门编程语言c++(主流的深度学习框架tf, caffe, pytorch源码都是c++,当然如果你会Java更好了,移动端的deploy应该会用到),opencv,pandas,scikit-learn应该要会用,上述深度学习框架至少要会一种。最好是在linux下做开发,对以后工作有帮助。这样算是做视觉的武器已经全了,可以在自己选择的细分领域深入下去了


忘了补充一点,强大的数学功底,微积分,矩阵论,数理统计,信息论,凸优化,这是基础吧,觉得无论这个时代知识更新多快,层出不穷的框架,还是新的开发工具,强大的数学算法功底才是cv或者算法工程师的核心竞争力
发表于 2021-8-10 15:55 | 显示全部楼层
做CV的普遍存在的一个问题,花了一个月时间跑了个SSD, yolo,在开源数据集上run出个结果就说我是做CV的了,其实很多图像的基础一概不知。其实很多传统的图像处理方法还是很有用的,毕竟沉淀了几十年了,现在有很多paper就是在做传统方法和深度学习方法的结合。
发表于 2021-8-10 15:59 | 显示全部楼层
发表一些浅薄的见识。
从难度的上限来说,很难说哪边更难。对结果的追求是无限的,没有限定程度的话,大多数应用问题都不存在“完全解决”。
从数量来说,图形学现在式微了很多,行业规模要小很多。视觉那边可以做的东西特别多,方便灌水,也有大量真正有意义的问题需要解决。
另外现在视觉这么火,主要是因为人工智能带起来的热度,或者具体来说主要贡献来自于深度学习。很多本来做不太动的问题,现在能做了;而且即使做不下去,积累的技术也允许公司、从业者转型到其他可以应用人工智能的行业。相比之下图形学对应的行业还是更加传统一些。
图形学这边,热爱的人会爱得很深,而且目前来说发展状况也不差,还没有劝退的必要。
发表于 2021-8-10 16:06 | 显示全部楼层
这个我觉得看看发在TOG或者SIGGRAPH上的文章的难度跟发在ICCV、ECCV等顶会及相关期刊上的文章难度就大概知道了,见仁见智的事儿,不过CV在深度学习的带动下太火了.....
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-24 04:57 , Processed in 0.071813 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表