研一上刚结束,想假期看看这几个东西,我刚才看到别人解答,pytorch是框架,为了更好快速的实现算法,比如卷积神经网络?opencv是为了做图像处理然后传到构建的模型中。是这样的吗,
神经网络你可以认为是一个黑箱,可以帮助你做一些你想让他做的事情,比如说对输入的图片图片进行分类,目标检测识别等等。
其本质就是通过一系列的矩阵运算,最终在在某个维度的空间中找到一个或者多个分类的超平面(不一定是一个平面,也有可能是一个球面,马鞍面等等),可以将你要区分的图片或者其他东西给你区分开来。举个最简单的例子,两个点A(1,1,2)和点(1,1,4),在x和y平面就无法将之分类,但是可以在Z平面上,例如z=3平面将这两个点分成两类。
参考这篇文章https://blog.csdn.net/baijinswpu/article/details/81462194
参考一下:
https://zhuanlan.zhihu.com/p/29815081
B站,李沐大神。跟着学深度学习和机器学习。
题主必须先要一个整体的了解:
OpenCV是一个用于图像处理、分析、机器视觉方面的开源函数库.
无论你是做科学研究,还是商业应用,opencv都可以作为你理想的工具库,因为,对于这两者,它完全是免费的。
该库采用C及C++语言编写,可以在windows,linux,macOSX系统上面运行。该库的所有代码都经过优化,计算效率很高,因为,它更专注于设计成为一种用于实时系统的开源库。opencv采用C语言进行优化,而且,在多核机器上面,其运行速度会更快。它的一个目标是提供友好的机器视觉接口函数,从而使得复杂的机器视觉产品可以加速面世。该库包含了横跨工业产品检测、医学图像处理、安防、用户界面、摄像头标定、三维成像、机器视觉等领域的超过500个接口函数。
同时,由于计算机视觉与机器学习密不可分,该库也包含了比较常用的一些机器学习算法。或许,很多人知道,图像识别、机器视觉在安防领域有所应用。但,很少有人知道,在航拍图片、街道图片(例如googlestreetview)中,要严重依赖于机器视觉的摄像头标定、图像融合等技术。
近年来,在入侵检测、特定目标跟踪、目标检测、人脸检测、人脸识别、人脸跟踪等领域,opencv可谓大显身手,而这些,仅仅是其应用的冰山一角。
另外:我们要搞清楚pytorch和TensorFlow的一点区别,那就是pytorch是一个动态的框架,而TensorFlow是一个静态的框架。何为静态的框架呢?我们知道,TensorFlow的尿性是,我们需要先构建一个TensorFlow的计算图,构建好了之后,这样一个计算图是不能够变的了,然后我们再传入不同的数据进去,进行计算。这就带来一个问题,就是固定了计算的流程,势必带来了不灵活性,如果我们要改变计算的逻辑,或者随着时间变化的计算逻辑,这样的动态计算TensorFlow是实现不了的,或者是很麻烦。但是pytorch就是一个动态的框架,这就和python的逻辑是一样的,要对变量做任何操作都是灵活的。
至于深度网络和神经学习,题主可以看下https://www.jianshu.com/p/4f6eb4b7c22f
我不是很懂,但是楼主说的那个opencv模块的确是做图像处理的。想了解opencv这个,可以来看看我的这个专栏,专栏链接为:https://blog.csdn.net/qq_45404396/category_11472570.html
在学习任何一门新的语言或者框架时都应该了解这个行业的背景知识,正所谓工欲善其事,必先利其器!
在说Opencv之前要说一下什么是计算机视觉,计算机视觉是在图像基础上发展起来的一门新兴学科,计算机视觉是研究让机器如何看世界,认识这个五彩缤纷的世界,就是让摄像头代替人眼来对目标进行识别,跟踪和测量,并进一步对捕获的图像数据(视频数据)转换成一种新的表达方式或者一个新的决策的过程!在转换过程中进行的转换都是为了达到某一目标。
目前Opencv应用领域非常广泛,在医疗设备、工厂检验、立体视觉、机器学习、人脸别识别、图像拼接、生物医学分析、无人机、等人工智能领域有广泛应用!
这几个框架理论上都需要学习,相互配合
你把图像看作是一个三维矩阵,里面全是数据,把图片当作一个参数a,神经网络就看成一个函数f(x),这个f非常复杂,里面有N个参数,比如你想做的事情是,a图片是一只狗,然后a带入这个神经网格,他输出就是狗,即f(a) = dog。 这就是神经网格所做的事。
真实情况比我所描述的复杂得多,但是基本原理是这样。
顺带一提,训练模型就是指找出N个最佳的参数让你的f达到你想要的目的