diff --git a/docs/major_elective/computer_graphics/index.md b/docs/major_elective/computer_graphics/index.md new file mode 100644 index 00000000..62691bd6 --- /dev/null +++ b/docs/major_elective/computer_graphics/index.md @@ -0,0 +1,60 @@ +# 计算机图形学 +
+CS 专业选修 +AI 专业选修 +
+ +## 课程学习内容 + +主要讲述计算机图形学解决的基本问题,基础原则和方法,基础编程技能,但是不包含具体的编程指导和图像信息处理工具的使用,主要讲述了 + ++ Rasterization ++ Transform, view and Hidden Surface Removal ++ Color, Surface, Materials and Textures ++ Rendering ++ Research(in Graphics and Vision) + +还会介绍 OpenGL 和可编程管线,但是提到的 OpenGL 的实现是比较老的版本,如果这里作业使用老版本那么在后面的任务中可能会遇到一些问题。 + +总体而言讲的是比较 base 的图形学内容,而且吴鸿智老师的讲课偏向于 High-level 而不是细节,听课体验还是不错的。 + +## 任课教师 + +[吴鸿智](http://hongzhiwu.com/) 吴老师讲课比较好,会经常发问,对一些原理的东西也会比较深入地讲解 + +## 课程教材 + ++ Computer Graphics with OpenGL, Fourth Edition, D. Hearn, M. P. Baker(电子工业出版社) ++ Fundamentals of Computer Graphics, Peter Shirley, Steve Marschner, AK Peters ++ 计算机图形学——原理、方法及应用,潘云鹤, 董金祥, 陈德人,2003 ++ OpenGL Programming Guide, Fourth Edition, Addison-Wesley, 2003,(OpenGL编程指南,人民邮电出版社) ++ OpenGL Distilled, Paul Martz , Addison-Wesley, Addison-WesleyProfessional; 1ST edition(OpenGL2.0精髓, 人民邮电出版社) ++ [The NeHetutorials](http://nehe.gamedev.net) + +## 分数构成 + ++ Assignment(30%) + + 课程一共有 9 次小的作业,分别是 opengl 绘制椭圆/绘制旗帜/书面作业1(简单变换)/solar system/书面作业2(简单原理解释)/大作业组队 + proposal/dream car/给太阳系添加光源/给太阳系添加纹理 + + 小作业的设计基本上都是为了最后的课程项目准备的,里面用到的基本方法也都要求在最后的课程项目中体现,这么来看设计还是相对合理的。你需要的是从头开始学习 OpenGL 并理解他的逻辑,课程没有包含这一部分的指导,你需要通过网上的资料自己进行学习。这一部分主要是学习框架需要花费比较多的时间精力。这一部分的给分只要完成了基本要求都是满分,但是需要注意 deadline,有每天减一半的 late penalty。 + ++ Course Project(40%) + + 简单三维建模及真实感绘制(基础90分+高级15分)(以2-3人为一组实现,教师以给平均分的形式打分)。基本上是实现一个游戏,workload 并不小,在大三上众多专业课中也算是名列前茅。一方面要熟悉 OpenGL 的框架,另一方面也需要良好的 C++ 编程能力。 + + 单从最后的给分来说方差并不大,基础的部分中有很多要求是客观的,前面作业中用到的(75分),完成了基础部分并且能让老师觉得你的游戏比较 awesome 就能拿到 88-89 分左右的分数,如果你对细节的设计更好,比如你设计了一个飞行导弹轨迹很好看或者爆炸效果很好,那你也许就能达到 92-93 的分数。当然高级要求中还有移动端和增强现实的加分,但是实现难度很大,很少有人去做。 + + 总而言之,这一部分的分数基本是是与你的投入成正比的,也是需要在最后一次课上进行展示的,你需要把你实现所有的酷炫的都展示给老师看。 + ++ In-class Performance(30) + + 课程会进行几次**不提前通知**的 Quiz,这是可能造成失分最多的地方。Quiz 可能与课程内容没有直接关系,允许携带一张 A4 作为 "Cheating" sheet。这一部分主要由于突击性而且题目也比较灵活,是可能造成失分的“重灾区”。当然吴鸿智老师在 24-25 秋冬降低了这一部分的比例(23%),更多的加到了作业里。 + + 另一部分是课堂的互动,这一部分并没有太多的分数,回答或者提问都是可以算入的,一般 2-3 次即可,每次 1 分 + + 24-25 秋冬的 Quiz 题是如何计算两条直线相交,Bezier 曲线的表示,Bezier 曲线的性质证明,brdf 光照模型反射相关。难度不算太大,但是 Quiz 时间比较有限一般 20分钟就要完成。 + +## 学习建议 + +如果想要入门图形学的研究,或许 Games101 是更好的选择,这一门课更多是了解基本原理。对想要轻松并且获得高分数的同学,不建议选修这门课。这门课的 Workload 是比较大的,中间遇到问题很多也很折磨人,但是最后完成自己的 project 也是很有成就感的。理论的部分是需要好好理解的,Quiz 的扣分还是比较大的,需要重视。对实践的部分建议是从第一次开始就跟着 [LearnOpenGL](https://learnopengl.com/) 的教程配置环境,这样能很大程度的避免后期发现功能不支持带来的问题。而且这个教程相对而言也是比较详细的实践教程。 \ No newline at end of file diff --git a/docs/major_elective/index.md b/docs/major_elective/index.md index e2982e10..0776a458 100644 --- a/docs/major_elective/index.md +++ b/docs/major_elective/index.md @@ -23,6 +23,7 @@ |面向信息安全的信号处理|2.0|三(秋冬)|×|×|✓|| |[量子计算理论基础与软件系统](quantum_computing/)|3.0|三(秋冬)|✓|✓|✓|较完善✅| |[编程语言原理](../major_module/principle_of_programming_languages)|2.0|三(秋冬)||×|✓|较完善✅| +|[计算机图形学](computer_graphics/)|2.5|三(秋冬)|✓|✓|×|较完善✅| |[专题研讨](special_discussion/)|2.0|三(秋冬)|✓|-|✓|较完善✅| |[脑启发人工智能导论](brain_inspired_ai/)|3.0|三(冬)|×|✓|×|| |[计算机视觉](computer_vision/)|2.0|三(冬)|✓|×|×|较完善✅| diff --git a/docs/major_mandatory/computer_vision/index.md b/docs/major_mandatory/computer_vision/index.md index a4db1df8..7e43472d 100644 --- a/docs/major_mandatory/computer_vision/index.md +++ b/docs/major_mandatory/computer_vision/index.md @@ -6,6 +6,7 @@ !!! warning "不要和计算机视觉课程混淆" 计算机视觉是一门两学分课程,不算在 AI 的专业选修课程中,但有很多其他专业方向的同学会去选修。导论课比没有导论两字的课难度和容量都更大应该也是老传统了(笑)。 + 在 24 级的培养方案中没有这门课,大概 23 级是最后一次有图灵同学选修这门课(悲) ## 课程学习内容 @@ -24,31 +25,6 @@ 除此主线内容之外,在最开始会有一个导论和对线性代数的简单回顾,在 2 和 3 之间会有一个对优化方法的介绍,在 6 和 7 之间会有一个对深度学习的介绍。 -这门课的大作业是三维重建 + 位姿估计。一般使用 [Hierachical Localization](https://github.com/cvg/Hierarchical-Localization) 就可以得到一个比较好的结果,稍微微调一下参数做一下预处理也是可以的。虽然是打榜的形式,但是事实上按照笔者的体验分差并不明显,最后会有一个课堂展示 + 验收。 - -但是从23-24秋冬开始,由于大作业打榜的形式造成大家最后都用差不多的方法,而且leaderboard的形式太卷了,因此大作业改成了五选一的形式。今年的五个题目分别是: - -- 光心不一致时的全景图拼接 -- 重建校园某区域,基于图像对自身做定位 -- 从多视角视频还原车辆、行人轨迹 -- 基于多视角图片重建小动物/人 -- 参考一段网络舞蹈视频,合成自己跳舞的视频 - -其中每个任务都分为基础解决方案和额外提升方案。大作业整体的工作量是比较大的,但是课程提供了GPU资源,同时如果遇到困难都可以问助教,助教都是周老师的博士生,水平很高而且人也很好。 - -课程有实验课,实验普遍比较简单,可以不去上课。当然,有一次课会讲怎么使用 COLMAP ,那一次课前周老师也会提醒,也建议稍微去听一下,虽然只看文档也能折腾明白。6 次实验的内容分别是: - -1. matplotlib, OpenCV 和 Open3d 的基本使用方式; -2. 高斯滤波、中值滤波、双边滤波和透视投影的实现; -3. 使用 Gauss-Newton 法求解优化问题; -4. 图片匹配和图片拼接:Harris 角点检测、SIFT 和 RANSAC 来计算单映变换; -5. 使用 COLMAP 完成 SfM 和(可选的)MVS; -6. 使用 mmdetection 完成目标检测, 写一个CNN完成图像分类。 - -期末考试不考后面 7 8 9 10 节的内容,当然,周老师会在复习课上讲明考试范围,这个范围仅供参考,复习课讲的更加细致。20 级的考试大题印象中有一道图像拼接和一道三维重建,考的都比较基础,给分普遍似乎也不错,不用过于担心。 - -23-24秋冬课程所有的内容都有涉及,考察的内容不难但是覆盖面很大,有很多内容比较细节。分为30分的不定项选择题,20分的判断题,20分的填空题,30分的大题。 - ### 先修要求 可以没有。线性代数会用就足够了,也不会在考试要求计算;前几节内容在图像信息处理课程中会讲,但是没上过也没有风险;机器学习当然上过最好,但是周老师会把所有用到的内容讲清楚,甚至可能比隔壁赵洲老师还清楚,所以没上过也无伤大雅;在渲染的讲解中也会涉及计算机图形学的内容,同样会有充分的介绍;除此以外,还有一门计算摄影的课程,也是周老师开的,笔者没有上过不知晓详情。 @@ -69,6 +45,50 @@ 平时作业 30% + 大作业 30% + 期末考试 40%。 +=== "平时作业" + + 课程有实验课,实验普遍比较简单,可以不去上课。当然,有一次课会讲怎么使用 COLMAP ,那一次课前周老师也会提醒,也建议稍微去听一下,虽然只看文档也能折腾明白。6 次实验的内容分别是: + + 1. matplotlib, OpenCV 和 Open3d 的基本使用方式; + 2. 高斯滤波、中值滤波、双边滤波和透视投影的实现; + 3. 使用 Gauss-Newton 法求解优化问题; + 4. 图片匹配和图片拼接:Harris 角点检测、SIFT 和 RANSAC 来计算单映变换; + 5. 使用 COLMAP 完成 SfM 和(可选的)MVS; + 6. 使用 mmdetection 完成目标检测, 写一个CNN完成图像分类。 + +=== "大作业" + + 22-23 秋冬这门课的大作业是三维重建 + 位姿估计。一般使用 [Hierachical Localization](https://github.com/cvg/Hierarchical-Localization) 就可以得到一个比较好的结果,稍微微调一下参数做一下预处理也是可以的。虽然是打榜的形式,但是事实上按照笔者的体验分差并不明显,最后会有一个课堂展示 + 验收。 + + 23-24 秋冬,由于大作业打榜的形式造成大家最后都用差不多的方法,而且 leaderboard 的形式太卷了,因此大作业改成了五选一的形式。今年的五个题目分别是: + + - 光心不一致时的全景图拼接 + - 重建校园某区域,基于图像对自身做定位 + - 从多视角视频还原车辆、行人轨迹 + - 基于多视角图片重建小动物/人 + - 参考一段网络舞蹈视频,合成自己跳舞的视频 + + 其中每个任务都分为基础解决方案和额外提升方案。大作业整体的工作量是比较大的,但是课程提供了GPU资源,同时如果遇到困难都可以问助教,助教都是周老师的博士生,水平很高而且人也很好。 + + 24-25 秋冬,本学期延续了去年的形式,选题减少了,分别是 + + - 视觉定位:重建校园某区域,基于图像对自身做定位 + - 表面重建:基于多视角图片重建物体 + - 数字人:参考一段网络舞蹈视频,合成自己跳舞的视频。 + - 开放选题:自主选择计算机视觉领域方向的选题,例如新视角合成、多模态理解、AIGC等,要求在冬二周前提交立项说明 + + 每个选题包括了基础解决(14分)和进阶探索部分(6分),最后的汇报展示(10分),要求展示自己采集数据完成的 demo + +=== "期末考试" + + 周老师会在复习课上讲明考试范围,复习课讲的更加细致。20 级的考试大题印象中有一道图像拼接和一道三维重建,考的都比较基础,给分普遍似乎也不错,不用过于担心。 + + 23-24 秋冬课程所有的内容都有涉及,考察的内容不难但是覆盖面很大,有很多内容比较细节。分为 30 分的不定项选择题,20 分的判断题,20 分的填空题,30 分的大题。 + + 24-25 秋冬课程的全部章节都有涉及,但是难度并不大,也不要求较难的数学推导,诚如周老师所言“我们这门课希望大家学到一些有用的东西”,考察更注重理解,当然复习课很重要,98 上有一份回忆卷的拟合效果也很好。 + + 今年是 30 分的不定项选择,10 分的判断题,20 分的填空题,40 分的大题。试卷是中文试卷,对于专业词汇都标注英文,可以说非常友好。对于复习课提到的东西都好好掌握基本就没有问题。 + ## 推荐书目 + Richard Hartley 和 Andrew Zisserman 的 [ *Multiple View Geometry in Computer Vision*](https://www.cambridge.org/core/books/multiple-view-geometry-in-computer-vision/0B6F289C78B2B23F596CAA76D3D43F7A) , 从射影几何角度出发, 极其经典, 但较难读。 @@ -80,3 +100,4 @@ - [lhj 的笔记](https://frightenedfoxcn.github.io/notes/qnotes/computer_vision/) - [lhx 的笔记](https://lhxcs.github.io/note/AI/cv/icv/) +- [lt 的笔记](https://626lt.github.io/note/icv/) diff --git a/docs/short_term/index.md b/docs/short_term/index.md index 61bf7d20..87e3a4db 100644 --- a/docs/short_term/index.md +++ b/docs/short_term/index.md @@ -22,7 +22,7 @@ |课程综合实践 Ⅰ|...|一(短)|2.5|| |课程综合实践 Ⅱ|[C++ 项目管理及工程实践](cpp_project/)|二(短)|2.5|较完善✅| |课程综合实践 Ⅱ|[Rust 开发实训](rust/)|二(短)|2.5|较完善✅| -|课程综合实践 Ⅱ|[大模型应用与实践](llm)|二(短)|2.5|较完善✅| +|课程综合实践 Ⅱ|[大模型应用与实践](llm_practice/)|二(短)|2.5|较完善✅| |课程综合实践 Ⅱ|...|二(短)|2.5|| |[人工智能实践](ai_practice/)(仅 AI)||三(短)|3.0|| diff --git a/docs/short_term/llm/index.md b/docs/short_term/llm_practice/index.md similarity index 100% rename from docs/short_term/llm/index.md rename to docs/short_term/llm_practice/index.md diff --git a/mkdocs.yml b/mkdocs.yml index 7cc016d9..926b86cb 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -103,6 +103,7 @@ nav: - 社交网络安全与隐私: major_elective/social_network_security/index.md - 量子计算理论基础与软件系统: major_elective/quantum_computing/index.md - 多媒体安全: major_elective/multimedia_security/index.md + - 计算机图形学: major_elective/computer_graphics/index.md - 短学期课程: - short_term/index.md - 固定课程: @@ -119,7 +120,7 @@ nav: - short_term/index.md - C++ 项目管理及工程实践: short_term/cpp_project/index.md - Rust 开发实训: short_term/rust/index.md - - 大模型应用与实践: short_term/llm/index.md + - 大模型应用与实践: short_term/llm_practice/index.md - 跨专业课程: - others/index.md - 常微分方程: others/ode/index.md