【深度学习】靠OpenCV吃饭的图像算法工程师在深度学习的冲击下还有活路吗?

共 2496字,需浏览 5分钟

 ·

2023-03-11 06:48

其实标题是知乎上看到的一个问题,看到讨论很热烈我就借用了。不知道提问这位有没有了解卷积神经网络这个东西,早在二三十年之前就有手写数字识别了,但是这技术也就是2012年开始火爆了的,所以你看到的当下的热门技术很多都是沉寂了几年、十几年甚至几十年的。

当下对传统的cv技术有些冲击,那是因为你看到的是这些岗位的工资很高,但是呢,很多公司还是在用传统的技术,至少传统行业里面涉及图像处理的很多还是使用的是传统算法的技术。就是互联网公司有团队在做这个,然后能给的工资很高,但是呢,传统方法的这些岗位也没降薪不是,所以应该是心里的冲击吧?

不过我回答的这个日子,dl(深度学习),cv(计算机视觉)也死的七七八八了,半道出家的很多,但是卷麻了,所以现在看是不是还不如你?

如果说图像算法工程师这个岗位,其实不是单纯掌握OpenCV就够的,OpenCV只是一个工具,还有很多的东西需要我们学习,图像处理还有一个出名的库就是Halcon,只是OpenCV相对比较出名而已。我也是半道出家做cv的,但是我是搭上了车之后转自动驾驶了,这一路走来我发现OpenCV的重要性还是很大的,应用还是很多的,所以我也在技术分享的时候还在推学习OpenCV

OpenCV是应用非常广泛的开源视觉处理库,在图像处理、计算机视觉和自动驾驶中有着非常重要的作用。

废话不多说,我就来讲讲OpenCV的使用和学习需要怎么做吧,大家觉得有道理的可以参考一下。

我理解的学习和使用的重点在四个方面:

第一点:需要对OpenCV的版本要有一个清晰的认识

OpenCV目前更新到了4.7.0版本,但是目前OpenCV3.xOpenCV4.x都是比较常用的,但是34的版本差别比较大,所以经常有同学抄代码的时候编译报错,就像我昨天在做目标跟踪的时候,创建跟踪器,在OpenCV3.2之前的版本里面使用的方法是Tracker.create,但是在之后的版本API就变了,对于不同的算法创建的函数还不一样,例如KCF算法就是TrackerKCF_create这样,所以我们在使用OpenCV的时候需要对OpenCV的版本有一个比较清晰的认识。

第二点:需要对OpenCV的源码有一个基本的了解

要知道每个模块是做啥的,这样你才能知道怎么去调用这里面的算法。目前出版的OpenCV的图书基本上只对core模块、imgproc模块和highgui模块进行讲解,所以初学者很难找到一个系统的学习途径。但是去年出版了一本图书《学习OpenCV4:基于Python的算法实战》这本书对OpenCV的所有模块都进行了讲解,虽然里面的案例是以Python语言为主,但是在讲解每个算法的API的时候是将C++Python两种语言都做了讲解,所以函数调用层面应该问题不大,这是国内外第一本系统讲解OpenCV所有模块的书,评价销量都很不错。

第三点:首先学习怎么去用

“学以致用”永远不是一句空话,对于公司来说,最重要的就是需要写出代码,解决实际问题,所以对于初学者来说,首先需要学习OpenCV包装的函数怎么去用,能解决什么实际的问题。

对于初学者来说,最头疼的问题就是环境搭建出错和代码运行出错,解决不了还极大的削减学习的信心,看书和博客经常就是从入门到放弃,没人指点真是很难受。

说到环境搭建的问题,还是要说一下《学习OpenCV4:基于Python的算法实战》这本书,这本书将WindowsLinux上的C++Python开发环境搭建讲的清清楚楚,还有怎么通过源码编译的方式搭建环境都有清楚的讲解,让初学者不会被环境所卡。

还有就是这门课程也做了比较清晰的讲解,课程地址:

https://edu.csdn.net/course/detail/38039

该课程的优势如下:

1C++Python双语教学

Python语言是在计算机视觉中应用最多的一种语言,在工作中,深度学习模型的训练基本上都是使用Python语言编写的训练代码。OpenCV在这个过程中用于图像的预处理(例如图像读取、数据增强)和后处理,还可以用于显示处理的结果,功能强大,使用方便。

但是在功能的部署的时候,不管是部署在服务端还是PC端,开发语言基本上用的是C++,所以如何有效的使用OpenCV进行模型或者功能的部署尤为重要。

C++语言应用的好坏,在面试中可以看出一个面试者的工程实践能力的强弱,两种语言的开发掌握好了可以使工作如虎添翼。

2、全模块讲解

课程讲师也是图书《学习OpenCV4:基于Python的算法实战》作者,课程不仅采用双语教学,更是对C++的每个模块都做讲解,我们知道,很多的书其实只讲imgproc,如果你翻开一本书图像的形态学运算和图像滤波都是作为独立章节讲解的,那么这本书基本上就可以确定是只是讲解了imgproc模块,但是其他的模块在工作中也有很重要的作用。

3、讲解细致

本课程会从环境搭建开始讲解,环境搭建尤为重要。从我多年的授课经验总结来看,如果只是给了代码,很多的入门用户环境问题处理不好的话,后面的学习很难进行下去,甚至会丧失学习的信心。

4、讲义准备充分

讲义准备的充分细致,标识清楚明确,重点和疑难点突出。

 

第四点:其次学习算法原理

这个就不用我多说了,因为如果你上来先啃算法原理的话,大概率会从入门到放弃,即使你啃下来了,不自己动手写代码,还是不知道怎么去用,不知道这些算法怎么解决实际的工程问题。所以建议大家先学会怎么去用,可以选择上面的图书对照着课程学习,里面的案例讲的非常的清晰,相信大家不会觉得学得没有兴趣的。


博主是《学习OpenCV4:基于Python的算法实战》和《深度学习计算机视觉实战》两本图书的作者,目前从事自动驾驶感知融合算法开发,分享内容包括深度学习、计算机视觉、OpenCV、自动驾驶、SLAMC++/Python语言开发等方向的内容。

往期精彩回顾




浏览 26
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报