计算机视觉(Computer Vision, CV)是人工智能领域的一个重要分支,它的目标是使计算机能够像人类一样理解和处理图像和视频数据。
面向想要从事该方向的大学生,笔者这里给出以下是关于计算机视觉的学习路径建议:
- 简要了解计算机视觉的发展历史:
- 早期计算机视觉(1960年代-1980年代):主要关注图像信息提取,使用边缘检测、二值化等技术。这一阶段是形态学研究为主,尤其是各种模板算子的设计和创新为主。
- 特征提取与匹配(1980年代-1990年代):研究重点转向特征提取和匹配,如Harris角点检测和SIFT特征提取算法。这一阶段兴趣点提取相关技术研究为主,带动视觉开始走向民用及工业应用。
- 深度学习时代(2000年代至今):深度学习技术的兴起,如卷积神经网络(CNN),推动了计算机视觉的快速发展。这一阶段直接跳过之前以特征设计和兴趣点提取为基础的计算机视觉常态化研究模式,开启各种深度模型网络和特征自学习的新方向。
- 当前与未来(2020年代)大语言多模态技术:计算机视觉正处于高速发展期,未来将涉及更广泛的应用领域,如智能对话,智能机器人,医学影像分析、环境监测等。深度学习相关技术,尤其是NLP相关研究,比如大语言模型,开始进行大语言多模态技术的快速发展应用。
- 主要涉及的学科知识点:
- 图像处理:包括图像预处理、特征提取、图像分割等传统图像处理技术。
- 机器学习:涉及算法如支持向量机(SVM)、随机森林,子空间,分类,聚类,回归等算法。
- 深度学习:包括卷积神经网络(CNN)、循环神经网络(RNN), LSTM, Attention, Seq等。
- 机器人相关: 包含机器运动控制,人机交互等知识。
- 主要使用的算法模型:
- RCNN系列:包括RCNN、Fast R-CNN、Faster R-CNN等,用于目标检测。
- YOLO系列:如YOLOv1、YOLOv2、YOLOv3等,用于实时目标检测。
- Transformer模型:如DETR,用于目标检测和分割。
- 常用的开发工具和开发环境:
- 操作系统:推荐使用Linux,因为许多开源库和工具都是基于Linux开发的。MAC, WINDOWS实际开发次之。
- 开发工具:如Visual Studio Code、PyCharm等。
- 编程语言:Python是最常用的编程语言之一,具有丰富的库和工具支持。 C++是性能最优化选择,Cuda则是GPU计算无法绕开的一门语言。
- 库和框架:如OpenCV、TensorFlow、PyTorch, CUDA库等。
- 典型的应用案例:
- 智能安防:人脸识别、行为分析等。
- 自动驾驶:车辆检测、行人识别、道路分割等。
- 医疗影像分析:肿瘤检测、细胞分类等。
- 未来3~5年的发展展望:
- 深度学习与计算机视觉结合的可解释性、安全性、鲁棒性、透明性。
- 小样本训练、自监督学习、知识图谱、模型压缩。
- 数据高效、软硬结合。
- 2024年计算机视觉热点研究
- 3D高斯散射(3D Gaussian Splatting):这是一种新型三维场景表示和渲染方法,它比传统的神经辐射场(NeRF)具有更快的渲染速度和更好的细节表现。例如,Scaffold-GS、GPS-Gaussian 和 GaussianAvatar 等研究工作都在这个方向上取得了进展 。
- 扩散模型(Diffusion Models):扩散模型是生成模型领域的研究热点,尤其在图像生成和编辑方面表现出色。DistriFusion、DiffAssemble、DEADiff 和 Face2Diffusion 等研究展示了扩散模型在这些任务上的应用 。
- 文本引导的图像生成:这个方向的研究致力于通过文本描述生成相应的图像内容,如 RealCustom、NoiseCollage 和 Text2QR 等研究,它们提升了文本到图像生成的质量和灵活性 。
- 多模态学习:多模态学习通过融合不同模态的信息来提升模型性能,MP5、Polos 和 MADTP 等研究探索了多模态信息的融合与利用 。
- 目标检测和语义分割:作为计算机视觉的基础任务,目标检测和语义分割的研究持续深入。UniMODE、CN-RMA、Salience DETR、PEM、DDFP 等研究在这些方向上取得了新的进展 。
- 基于图神经网络和图Transformers的方法:图神经网络(GNN)和图Transformers 在处理不规则拓扑的视觉信息方面展现出了显著的性能优势,被广泛应用于目标检测、点云处理等领域 。
- 跨学科融合方法:随着计算机视觉研究的成熟,跨学科的方法成为趋势,例如结合认知科学和多模态机器学习的研究 。
- 推荐的学习资源:
- 书籍:《Computer Vision: A Modern Approach》、《Computer Vision: Algorithms and Applications》、《Multiple View Geometry in Computer Vision》等。
- 在线课程:Coursera、edX、Udacity等平台提供的计算机视觉相关课程。
- 开发环境搭建指南:可以参考百度开发者中心的《计算机视觉开发环境搭建指南》 。
- 专业论坛和社区:
- 中国计算机学会计算机视觉专委会(CCF-CV) :提供学术交流和最新动态。
- GitHub:参与开源项目,学习实战经验。无需多言,这是每个计算机人最应该常去的地方。
- OpenCV 官方论坛:OpenCV 是计算机视觉领域广泛使用的开源库,其官方论坛是讨论 OpenCV 相关问题和分享项目经验的好地方
- NVIDIA Developer Forums:NVIDIA 的开发者论坛中有一个专门的计算机视觉与图像处理板块,可以讨论与 NVIDIA 相关的计算机视觉技术和应用。
- Huggingface: Hugging Face (github.com) 深度学习模型社区
- ModelScope: 魔搭社区 (modelscope.cn) 阿里推出的AI开源生态
通过上述相关书籍, 工具和社区,相信广大有志从事计算机视觉的大学生可以系统地学习相关知识,并为未来的研究或职业生涯打下坚实的基础。