opencv极简教程(计算机视觉入门)

经常有人问我计算机视觉怎么入门,OpenCV怎么入门网上也有很多回答我看了部分回答,觉得还是有必要说一下虽然很久不写这类文章了,专业知识方面的文章我也都删了,毕竟只看这类文章对学习帮助不大,反而可能误导学习有时间看这类文章的人,还不如多动手练习,今天小编就来说说关于opencv极简教程?下面更多详细答案一起来看看吧!

opencv极简教程(计算机视觉入门)

opencv极简教程

经常有人问我计算机视觉怎么入门,OpenCV怎么入门。网上也有很多回答。我看了部分回答,觉得还是有必要说一下。虽然很久不写这类文章了,专业知识方面的文章我也都删了,毕竟只看这类文章对学习帮助不大,反而可能误导学习。有时间看这类文章的人,还不如多动手练习。

先简单总结下部分网上的回答,这些回答大部分是推荐看书或视频,比如CV成长指南、深度学习进阶、线性代数、矩阵分析、数据结构、机器学习、统计学习方法、信息论、AI经典论文以及深度学习等等。我想,如果照着这种方式学下去,估计很多人还没开始就要放弃了。还有的说直接看深度学习,然后找几篇论文看下,就算入门了,这种纯粹就是为了写论文,对以后工作帮助不大,当然,如果找到一家以论文为主的单位,可能发展也不错,但是肯定做不了应用。如果你觉得看了书或视频,就认为自己已经入门了,那么,请回答我下面的几个简单的问题:

1、什么是数字图像?

2、什么是灰度图,什么是二值图,什么是彩色图?颜色空间有哪些?

3、什么是图像的位数、什么是图像的通道?主流的图像格式有哪些?有什么特点?

如果连这些最基本的都没有弄清楚,怎么能算入门呢?另外多说一句,很多人将深度学习当成了计算机视觉。

再来一个稍微深一点的问题:

什么是图像特征?图像特征有哪些?目前有哪些提取图像特征的方法?图像特征提取出来后怎么表示?好好思考下,看自己能否回答得出来。

现在很多人做计算机视觉,毕竟视觉算法的岗位待遇不低,但是恐怕在不久的将来就会发生变化,前段时间看新闻说不少大的企业都开始裁员算法岗,我也不知道真假。但是有一点我还是比较清楚,企业需要的是能带来实际效益的人,而不是只会写论文的人。我喜欢把做算法的人分为两类,一类我称为算法设计师,另一类我称为算法研究人员。

对于第一类人员,应该是目前大部分做算法的人都属于此类,主要就是使用算法,进行各种算法组合实现某个目标,调整一下算法的参数,对于企业而言,其实是需要这部分人将某个应用落地,从而带来实际的效益。但是很遗憾,目前这部分人中也有大部分不合格,不能算是合格的算法设计师,很多人连基本的算法都不懂。对于第二类人员,目前能做纯算法研究的人,实际是极少部分人。企业很少需要这类人,主要在高校或研究所,虽然论文数量不少,做得深的却不多。当然,基础研究必须要做。

怎么学习计算机视觉?我想,首先应该搞清楚计算机视觉是什么,能干什么,然后是怎么干。对于OpenCV的学习也是同样的道理。后面我会给出我认为的学习路线,各位可以对照看下自己是否能学下去。

首先应该明确的是计算机视觉不等于深度学习,对于目前很多人都将计算机视觉与深度学习划等号,至少很多人认为学好深度学习就是在搞计算机视觉,这是完全错误的。再说一点,所有的计算机视觉任务,归根结底,就是要提取图像的特征。深度学习只是计算机视觉图像处理中的其中一种算法。

计算机视觉简单来说可以认为就是图像处理,这种图像处理与用PS软件做图像处理是不同的,具体的概念我就不详述了。那么,计算机视觉能干什么呢?当前,计算机视觉主要用于缺陷检测、识别、分类、结合机器人的视觉引导定位、测量。所以不要只是看到识别这一个方向。哪些地方需要用到计算机视觉呢?这个问题就没什么好说的了,几乎每个行业都会用到,或者说都有视觉的需求。这其中又以工业生产为最,毕竟工业生产的体量最大。最后一个,计算机视觉怎么干?这个问题简单,就是使用各种图像处理算法实现某个任务。

我也不想说太多,下面我给出一种入门和提高的路线,不需要你学习那么多听起来就让人闻风丧胆的知识,只要你上过大学,学了点高等数学,线性代数和概率论就可以了,毕竟这几门课程是每个理工科学生都要学的。

一、入门阶段:

1、查阅什么是数字图像,熟悉我前面提到的几个简单的问题,就算是和数字图像认识了。

2、学习OpenCV,结合使用OpenCV,了解并熟练使用以下函数:

(1)直方图

(2)图像平滑:均值滤波、高斯滤波、中值滤波、双边滤波。

(3)图像增强:线性拉伸、对数变换、直方图均衡化

(4)图像锐化与边缘检测:sobel、laplacian、canny

(5)数学形态学:膨胀、腐蚀、开运算、闭运算

(6)图像分割:二值化分割、局部自适应二值化

(7)图像轮廓:查找轮廓、轮廓的长度和面积、最小包围轮廓

(8)模板匹配

3、看我微头条给出的四个例子,把它都实现了。

到这里,如果你都学会了,你会发现其实很多视觉应用好像都可以做了。

二、提高阶段:以下内容只要求会用,不用去看原理

1、图像几何变换

2、图像特征:HOG、SIFT、SURF、ORB

3、相机标定

4、SVM(支持向量机)

5、CNN(卷积神经网络)

到这里,你会发现原来图像变换,图像各种任务也就那么回事儿。

三、研究与写论文阶段

如果上面的内容你没有做,我不建议你去做下面的事情。如果上面的内容你还不满足,可以接着做下面的事情,结合源代码把下面提到的算法原理搞清楚,

1、HOG、SIFT

2、SVM

3、线性回归

4、CNN

好了,就这样吧,上面的内容搞清楚了,你会发现原来看论文也不过如此,同时你会有写论文的冲动。

要做到我上面提到的内容,需要多长时间?这么说吧,前两个阶段找对了方法和工具,一个月有所小成,两个月后会觉得好像自己什么视觉应用都可以做。然后再做一段时间应用案例,会发现自己好像很多应用又做好不了。为什么会这样?哈哈哈哈,自己去思考,其实这时候你的水平已经比很多人都高了。最后阶段需要多长时间,如果你已经做下去了,那可能就是一辈子的事情了。

最后,端午节到了,祝大家端午安康。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页