在学习过程中,我们一般是选择两条路,一种是学习python+深度学习,或者c++和传统图像处理(不代表基于python的传统的图像处理不学了,最快入门的方式还是python+传统图像处理,我们比赛也大多会用这个)
为什么给这两条路:
这是奔着未来的发展而言的,现在的偏向视觉类的考研方向或者工作方向一般都是python+深度学习,或者c++和传统图像处理,举例:部分视觉岗位的硬性要求就是c++和传统图像处理,而现在视觉类研究生一般是做深度学习,做一些诸如缺陷检测,自动驾驶类的方向。当然,视觉组找工作的要求也是非常高的(详细可自己去了解),所以只有不断学习才能提升自己核心竞争力。
学习路程简介:
建议先python, 在学基于python的opencv(学会这两个就能应付学校绝大多数比赛了),后面根据需求学习c++,或者深度学习。
1.编程语言基础学习
(1)python学习
Python是做算法的标准语言,目前诸如PyTorch、TensorFlow等最流行的深度学习框架都是基于python的。所以在接触算法之前需要有一定的python基础。
对于python的学习,网上有很多推荐的文本资料,差不多都是看书然后敲代码学习的思路。不过个人认为,对于初次接触python编程的学习者而言,看视频教程是最合适的也是最快的。看书很容易陷入局部知识点的纠结之中,而这些知识点可能都不是很重要。但是看视频的话是有人给你过滤了一遍知识点的,所以学习速度会更快。
(这里附链接【黑马程序员python教程,8天python从入门到精通,学python看这套就够了】 https://www.bilibili.com/video/BV1qW4y1a7fU/?share_source=copy_web&vd_source=cf3d6b3f2d522326b95af3786c84fd05
)注:建议看p1-p98,p111-p123,p154-p159
关键点:函数与模块操作,数据类型转换,数据容器使用
(2)c++学习
c++的特点:
高性能需求:C++是一种高性能的编程语言,特别适用于对性能要求严格的计算机视觉应用。它能够提供高效的内存管理、指针操作和多线程支持等功能,这些在处理大规模图像数据时至关重要。
底层实现:许多计算机视觉领域的底层库和工具,如OpenCV、CUDA、cuDNN等,都是用C++编写的。学习C++有助于深入理解这些库的内部工作原理,从而更有效地使用它们。
目前不论计算机视觉还是其他AI领域,在特定硬件上的加速库基本都是用C/C++/ASM来完成的,包括cuda、cudnn/blas库等。
python作为更高级的语言,其特点和优势在于易用以及三方库的移植性。
但不排除python也可以写出鲁棒性能很好的算法。
但是目前来看,python更多的是用在框架侧完成整网的训练推理调参。实际上大部分的底层实现还是调用的C++来实现的。
如果你想入门,建议从python开始,毕竟你不需要上来就写高性能库。先从框架上入手计算机视觉,有个大致的理解,慢慢深入细节。
等到某一天,发现自己的网络性能不符合自己的预期的时候,再考虑C++来手撸某些算法。
一旦你开始考虑某些性能问题,那么恭喜你,你已经打败了95%的人了。
附链接:【黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难】 https://www.bilibili.com/video/BV1et411b73Z/?share_source=copy_web&vd_source=cf3d6b3f2d522326b95af3786c84fd05
2.opencv库学习
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效--由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python, Java and MATLAB/OCTAVE (版本2.5)的接口。
基于python接口:
(附上bilibili博主迪哥带你学cv视频链接-【新手如何快速入门OpenCV?从安装到项目实战,迪哥精讲OpenCV图像处理工具,简直太适合新手入门了!(深度学习/计算机视觉)】 https://www.bilibili.com/video/BV1to4y1u7Js/?p=2&share_source=copy_web&vd_source=cf3d6b3f2d522326b95af3786c84fd05)
(附上bilibili博主python-木子视频链接-【【2022B站最好的OpenCV课程推荐】OpenCV从入门到实战 全套课程(附带课程课件资料+课件笔记)图像处理|深度学习人工智能计算机视觉python+AI】 https://www.bilibili.com/video/BV1PV411774y/?share_source=copy_web&vd_source=cf3d6b3f2d522326b95af3786c84fd05)
注:上述两个教程为互补状态,其中难免有重合,学习过程中请自我甄别,在视频中介绍了最常用的一些库函数和部分神经网络相关的知识(感兴趣可以听听),还有些实用的库函数需要自己转战csdn,菜鸟教程等网站上去寻找,相信到这时,你已经掌握opencv的大多数内容了,希望你能感受到计算机视觉的乐趣。
基于c++接口:
【[opencv_C++] 入门强推!!!【B站最全】】 https://www.bilibili.com/video/BV1Q54y1z7kz/?p=5&share_source=copy_web&vd_source=cf3d6b3f2d522326b95af3786c84fd05
【OpenCV教程合集】一文入门和精通OpenCV(C_C++) - 知乎 (zhihu.com) https://zhuanlan.zhihu.com/p/679249879
3.深度学习
提要:深度学习门槛较高,且需要半年甚至一年以上的理论学习。
深度学习在我们比赛中用的最多的是yolo系列,如果只是为了比赛,请看另一篇yolo训练与部署
下面提供少数教程,深度学习要学的东西非常多,从网上这么多课就可以看出来,这里我们只提供少许帮助,为你的深度学习入门推开大门。
【【深度学习保姆级教学】草履虫都能看懂!理论到实战、入门到起飞!人工智能基础入门必看!【ML机器学习|DL深度学习|CV计算机视觉|NLP自然语言处理】】 https://www.bilibili.com/video/BV15t4y1G7kq/?share_source=copy_web&vd_source=cf3d6b3f2d522326b95af3786c84fd05
【吹爆!B站最完整的【八大目标检测算法从入门到精通】YOLOV1~V5、Mask R-CNN、Faster R-CNN、DeformableDert一口气学完!】 https://www.bilibili.com/video/BV1S14y1J72Z/?share_source=copy_web&vd_source=cf3d6b3f2d522326b95af3786c84fd05
4.学会自己查资料
1.遇事不决先问百度,将错误信息ctrl+c,ctrl+v,enter能找到绝大部分解决方案。
2.在国内知名网站如CSDN,博客园,菜鸟教程,b站上有很多大佬的开源方案或学习教程,自主学习才能越走越远。
3.github作为全球最知名的大佬开源网站,汇聚了国内外顶尖优秀成果,使用需要一定的基础,但学会使用一定对自身帮助巨大。
4.chat_gpt,文心一言等ai软件都是对视觉学习提供极大帮助,但是切记过度使用对自身能力是反向提升,毕竟ai不是万能的。
5.不会再来问学长,学姐,会的基本都会讲。但是还是希望能自己解决问题,后面等到领域细分,都需要独立解决问题。