一、OpenCV和深度学习到底是什么关系
基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库)、Caffe(深度学习库)、Dlib(机器学习库)、libfacedetection(人脸检测库)、cudnn(gpu加速库)。
OpenCV是Intel®开源计算机视觉库。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。 opencv 拥有包括 300 多个C函数的跨平台的中、高层 API。它不依赖于其它的外部库——尽管也可以使用某些外部库。
二、Python,PHP,Java开发技术三者之间的区别是?
Python
Python由于具有丰富和强大的库,它又叫做作胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。Python是做服务器开发与物联网开发。信息安全,大数据处理,数据可视化机器学习,物联网开发,各大软件的api,桌面应用,都需要python。
Python主要应用于:动态解释型,开发效率高,开源,灵活,入门门槛低。
PHP
php这三个字你常常会在浏览器地址栏里看到, 所以不意外php是用来开发网站的. 也是web后端的王者语言.无数的网站后端都运行着php代码.
PHP主要应用于:主要是网络前端,用于生成网页。也可以整个web服务器都用php,比如很多论坛引擎。
Java
java常常跟”企业”联系在一起, 因为具备一些很好的语言特性, 以及丰富的框架, 在企业应用中最被青睐, 你总可以听到关于J2EE, JSP, Hibernate之类的东西的讨论. 同时, java在手机领域也有一席之地, 在普遍智能化之前, 很多手机就是以支持java应用作为卖点的, 而智能手机爆发之后, java手机主场变成了android, 作为安卓的标准编程语言而存在.
Java主要应用于:网页, 企业级开发, 普通应用软件, 游戏后台。
三、为什么人工智能用Python
写人工智能的程序不一定非要用python,目前很多的机器学习库例如tensorflow既提供python的api接口,也提供其它语言的api接口。之所以很多书籍,sample,在线课程都是用python是因为python语言本身容易学习,目前非计算机行业的人大量使用,有大量的好用的库,而且适用于科学计算。很多数学公式的库都是用python实现,如numpy,scipy等。
四、如何编写易被复用的,高质量的机器学习算法代码
SVM方面,首选的肯定是LIBSVM这个库,应该是应用最广的机器学习库了。
下面主要推荐一些DeepLearning的GitHub项目吧!
1. convnetjs - Star:2200+
实现了卷积神经网络,可以用来做分类,回归,强化学习等。
2. DeepLearn Toolbox - Star:1000+
Matlab实现中最热的库存,包括了CNN,DBN,SAE,CAE等主流模型。
3. Deep Learning(yusugomo) - Star:800+
实现了深度学习网络,从算法与实现上都比较全,提供了5种语言的实现:Python,C/C++,Java,Scala,实现的模型有DBN/CDBN/RBM/CRBM/dA/SdA/LR等。
4. Neural-Networks-And-Deep-Learning - Star:500+
这是同名书的配套代码,语言是Python。
5. rbm-mnist - Star:200+
这个是hinton matlab代码的C++改写版,还实现了Rasmussen的共轭梯度Conjugate Gradient算法。
五、如何用c++给python机器学习库
建议从阅读优秀开源项目的源码开始,梳理代码结构边阅读边写注释,看看别人是怎么实现的。
推荐mlpack,一个纯C++的机器学习库,同时理论基础要跟进,光靠一本《C++ Primer 5th》就想写机器学习库还远远远远远的很,并且一个前沿领域可用性高的第三方库,往往都是一群老司机智慧的结晶。
六、matlab没有GMM和KNN的源码么?如果要用哪个机器学习的库比较好?matlab和c++都可以
用netlab的toolbox吧,christopher bishop出品必属精品。