1.计算机视觉算法有哪些?CV算法
2.不会算法如何学习机器学习?
3.这些让人笑哭的码分代码注释,只有程序员能看懂!码分
计算机视觉算法有哪些?CV算法
计算机视觉是码分深度学习领域内备受关注的分支,它汇聚了计算机科学、码分数学、码分工程、码分网页源码空白物理学以及心理学等多个学科的码分知识。关于计算机视觉算法有哪些,码分业内专家给出了以下解答。码分
早期算法包括:
子空间(线性降维)
PCA(主成分分析):旨在最大限度地保留原始数据的码分主要信息,同时降低冗余信息;
LDA(线性判别分析):通过增大类间差距、码分减小类内差距来实现分类;
非线性降维:流形学习、码分加入核函数等方法。码分
ICA(独立成分分析):相较于PCA,码分ICA在处理光照、码分人脸表情、网站源码彩虹授权姿态等方面具有更好的效果,但其泛化能力有限。
HMM(隐马尔可夫):相比其他算法,HMM在处理光照变化、表情和姿态变化等方面更加鲁棒。
后期算法:通过loss函数优化模型结构,从而得到具有区分度的特征。
常用算法总结:
计算机视觉相关算法的源代码;
计算机视觉常用算法博客。
特征提取算法(寻找关键点):
(1) SIFT(尺度不变特征变换):具有尺度不变性,能够在图像中检测到关键点;
(2) SURF(加速稳健特征,SIFT加速版):通过构建Hessian矩阵,判断当前点是否为邻近区域中更亮或更暗的点,从而确定关键点位置;
优:特征稳定;
缺:对于边缘光滑的目标提取能力较弱。
(3) ORB:结合Fast与Brief算法,为Fast特征点增加方向性,vt虚拟化 源码实现旋转不变性,并提出金字塔方法解决尺度不变性问题;
ORB算法速度是SIFT的倍,是SURF的倍。
经观察,ORB算法在特征点标记时数量较少,如图所示。
SIFT、SURF、ORB实现;
(4) FAST角点检测:主要考虑像素点附近的圆形窗口上的个像素,通过比较像素强度,判断是否为角点;
非极大值抑制:在存在多个关键点时,删除角响应度较小的特征点。
(5) HOG(方向梯度直方图);
(6) LBP(局部二值特征):论述了高维特征与验证性能的正相关关系,即人脸维度越高,验证的拼音纠错java源码准确度就越高。
(7) Haar:
不会算法如何学习机器学习?
先看看相关的图书:要有好几本作为参考,最好是角度差异大、深浅程度不同,比如系统的导论式的、深入的有推导的、浅出的手把手的。它要充当不同学习过程中的工具书。
网络教程:比如Andrew Ng的、各种专题的博客,有针对地找相应的教程,相对着看,网络资源比如cto学院的课程跟书的表达方式毕竟是不一样的,也是很有益的信息源。
paper:比如学CNN的时候,就搜一堆论文来,qt 管理 源码下载集中一段时间看一轮,一定要有针对性,带着很明确的问号去看。
开源资源:很多很多东西,其实都有人做出来开源了,直接拿来用,一边用一边理解,甚至可以学习源码。
关注这个领域:关注相关的会议期刊,关注大牛们(Hinton、Bengio、LeCun等)的动向,微博加一堆领域大牛每天看一眼他们分享什么上来。
基础知识:线代、统计、概率、数学分析;信息论方面基本概念要理解,比如要知道相对熵是什么意思和怎么算;凸优化和最优估计相关内容,在各种各样问题中都会遇到,学好了可以帮大忙。
机器学习主要就是找到目标函数并且做参数估计,虽然有很多现成工具,但是不熟悉优化问题的话,会很抓瞎。
熟悉几个模型:神经网络(SAE、RBM、CNN等)、SVM、最大熵、CRF、随机森林、GMM等等。了解不同应用场景下各种模型有什么优劣,挑一些自己以后可能常用到的多练习。
这些让人笑哭的代码注释,只有程序员能看懂!
代码注释,程序员们的自嘲与幽默。
比如,有人写:“写这段代码的时候,只有上帝和我知道它是干嘛的 // 现在只有上帝知道。”
在Quora上,有一个帖子号召程序员分享自己遇到的有趣代码注释。以下是一些摘录:
一位中国工程师分享:“我一周前在社交网站上看到很多人在讨论这个网站,网站的源代码包含了这些注释。有人说,这家公司应该加强对代码的审核机制,有人则怀疑这家公司可能没有足够的人力资源来做代码审核,因为至少需要两个程序员才能完成这项工作。”
Edwin Romero分享:“我不确认有多少人熟悉站点内的Robots.txt这个文件。其实这个文件不是运行必要的代码,但是它声明了爬虫/搜索引擎能爬到/搜到站点的哪些内容。我在Nike网站上发现的Robots.txt文件非常有意思,如下……”
Abhinav Upadhyay分享:“谢尔盖.布林(Google的联合创始人之一)在斯坦福大学念计算机科学博士学位的时候,他的简历里并不含任何‘待遇要求’(Objective)的字眼。但当你去查看他的简历的HTML源代码的时候,你会看到(他在简历HTML源文件里明确写了‘待遇要求’,只是用注释注掉了,在浏览器页面上不显示。)……”
Abhinav Upadhyay继续分享:“这段注释并不是我亲眼所见,但是它在网上传得很厉害。这段注释是出自于贝尔实验室的Unix系统第六发行版,并在《Lions’ Commentary on UNIX 6th Edition, with Source Code》这本书中标注出来的。”
Kalpesh Singh分享:“我有个坏习惯,每当我看到做得不错的网站,我就想去控制台看它的源代码。我想很多前端工程师都喜欢这样做吧。我订购了Box8服务,并在他们的console里看到了如下信息……”
Nikunj Madhogaria分享:“//drunk, fix later //喝大了,一会儿再改……”
Bill Poucher分享:“我见过的最佳注释是以HTML格式写在源代码里的,任何想要阅读的人都能看得见,我管它叫‘Cerny效应’。曾经有一位很有天赋的捷克研究生Tomas Cerny……”
Boris Zamoruev分享:“我曾经做过一个高性能分布式键/值存储的项目。这是一个设计很精巧的软件,API非常简洁。如果你要获取一个数值,那么你就用命令:GETN(get, 数值)即可。如果你要存一个数值,那就用命令:PUTN(put, 数值)即可。其他的命令也很简单,比如MGETN(get multiple, 数值),MPUTN(put multiple, 数值),INCR(增量), MINCR(多个增量),基本上命令都可以自解释。”
Michael Dehmlow分享:“我新入职了一个公司,然后发现了一段三周之前写的注释,这段注释是项目之前的研发团队写的,写的日期就是我来公司面试和正式入职的这段期间。”