机器学习
hongbin_xu
一个苦逼的学生狗,生物特征识别与模式识别
展开
-
个人喜欢的关于模式识别、机器学习、推荐系统、图像特征、深度学习、数值计算、目标跟踪等方面个人主页及博客
>转载自:http://blog.csdn.net/zhangping1987/article/details/29554621目标检测、识别、分类、特征点的提取David Lowe:Sift算法的发明者,天才。Rob Hess:sift的源码OpenSift的作者,个人主页上有openSift的下载链接,OpenCV中sift的实现,也是参考这个。Koen van de Sande:作者给出了s转载 2017-07-27 12:01:12 · 3613 阅读 · 0 评论 -
python dlib学习(八):训练人脸特征点检测器
前言前面的博客(python dlib学习(二):人脸特征点标定)介绍了使用dlib识别68个人脸特征点,但是当时使用的是dlib官方给出的训练好的模型,这次要自己训练一个特征点检测器出来。当然,想要达到state-of-art的效果需要自己调参,这也是一个苦差了。后面会给出训练和测试的程序,完整工程的下载链接我会放在博文的最后。数据集准备这里可以选择自己制作也可以使用dlib源码中提供的测试用的数原创 2017-11-12 15:28:17 · 17323 阅读 · 28 评论 -
机器学习入门学习笔记:(3.2)ID3决策树程序实现
前言之前的博客中介绍了决策树算法的原理并进行了数学推导(机器学习入门学习笔记:(3.1)决策树算法)。决策树的原理相对简单,决策树算法有:ID3,C4.5,CART等算法。接下来将对ID3决策树算法进行程序实现,参考了《机器学习实战》一书。这篇博客也作为自己个人的学习笔记,以便自己以后温习。伪代码以及算法流程伪代码:创建分支的伪代码函数createBranch():检测数据集中每一个子项是否属于统原创 2017-11-13 13:29:23 · 4235 阅读 · 1 评论 -
python dlib学习(三):调用cnn人脸检测
前言调用训练好的卷积神经网络(CNN)模型进行人脸检测。 模型下载链接:http://dlib.net/files/mmod_human_face_detector.dat.bz2 程序注:使用了opencv和dlib,需要自行配置环境。# -*- coding: utf-8 -*-import sysimport dlibimport cv2# 导入cnn模型cnn_face_detec原创 2017-10-26 22:30:44 · 23711 阅读 · 10 评论 -
机器学习入门学习笔记:(4.1)SVM算法
前言支持向量机(Support Vector Machine,简称SVM)可以说是最经典的机器学习算法之一了。这几天再看SVM,参考了一些书籍和博客,这里把自己的笔记记录下来,以便以后复习查看。间隔(margin)分类学习最基本的思想就是:寻找一个超平面把数据集的样本空间划分成不同的样本。 比较直观的一种情况就是二维下的,如下图: (摘自百度百科) 直观上看,我们应该去寻找两类样本正中间的直线原创 2017-11-11 19:54:35 · 2926 阅读 · 0 评论 -
python dlib学习(九):人脸聚类
前言前面的博客介绍过使用dlib进行人脸检测、比对、检测特征点等等操作。 python dlib学习(一):人脸检测 python dlib学习(二):人脸特征点标定 python dlib学习(五):比对人脸 这次再将那些操作综合一下,进行人脸聚类。识别图片中的人脸,并分类。这里使用的是聚类,属于无监督学习。这里对每个人脸的区分与比对人脸中原理相同,将人脸映射到128D的空间中,计算彼此之原创 2017-11-22 14:50:20 · 12658 阅读 · 19 评论 -
机器学习入门笔记:(4.3)SMO算法
前言前面的博客介绍过使用dlib进行人脸检测、比对、检测特征点等等操作。 python dlib学习(一):人脸检测 python dlib学习(二):人脸特征点标定 python dlib学习(五):比对人脸 这次再将那些操作综合一下,进行人脸聚类。识别图片中的人脸,并分类。这里使用的是聚类,属于无监督学习。这里对每个人脸的区分与比对人脸中原理相同,将人脸映射到128D的空间中,计算彼此之原创 2017-11-20 21:17:57 · 1121 阅读 · 1 评论 -
机器学习入门学习笔记:(4.2)SVM的核函数和软间隔
前言之前讲了有关基本的SVM的数学模型(机器学习入门学习笔记:(4.1)SVM算法)。这次主要介绍介绍svm的核函数、软间隔等概念,并进行详细的数学推导。这里仅将自己的笔记记录下来,以便以后复习查看和分享。核函数在此前的讨论中,我们都是默认假设数据集是线性可分的,即存在一个超平面能将给出的样本数据正确分类。然而,有时也许在原始的样本空间中找不到一个能正确分类的超平面。 如上图原创 2017-11-19 22:30:35 · 1059 阅读 · 0 评论 -
使用神经网络拟合曲线(MATLAB/Python)
前言神经网络通常用于分类任务,也可以用于回归任务。使用一个含有隐层的神经网络可以很轻松地拟合出非线性曲线。下面是几个示例,包含matlab的和python的,都很简单。实例1首先,生成正弦曲线,并引入随机噪声。随后,在matlab中使用feedforwardnet函数创建BP神经网络,训练网络,并查看最后的拟合结果。%%clc;clear all;close all;...原创 2018-03-24 09:22:41 · 50974 阅读 · 1 评论 -
OpenFace学习(2):FaceNet+SVM匹配人脸
前言在前面的博客中(OpenFace学习(1):安装配置及人脸比对),介绍了OpenFace的安装配置,以及一个人脸匹配的demo。其中只是匹配了几张图片中人脸,对每个人脸的特征向量很粗略地采用欧氏距离测量,效果也还不错。本文中将使用SVM来对每个人脸的特征向量进行分类,进行人脸比对。demo代码文件有三个:featrure_extract.py:提取人脸信息,每一张人脸提取...原创 2018-05-09 15:20:05 · 7448 阅读 · 2 评论 -
OpenFace学习(1):安装配置及人脸比对
前言前几天在网上看到了openface(链接),觉得挺有趣就下载配置了一下,稍微修改了一下跑了个demo,效果还是很不错的。这里分享下安装配置的过程以及demo。简介openface是一个基于深度神经网络的开源人脸识别系统,由卡耐基梅隆大学的B. Amos主导。代码全部开源在github上了,还提供了一些预训练模型。该系统是参考CVPR2015的:FaceNet: A Unifie...原创 2018-05-07 13:12:07 · 26694 阅读 · 3 评论 -
特征值和特征向量
前言特征值和特征向量是计算机视觉以及机器学习中常常会用到的概念,比如PCA(主成分分析)等算法。这篇文章中会记录一些我自己对矩阵的特征值和特征向量的理解以及学习笔记。从简单实例理解如上图是一个简单的示意图,在两个坐标系中给出了两个向量(黑色),红色表示其沿两个坐标轴方向正交分解得到的向量,数字表示向量的长度。一般来说矩阵可以表示某一种线性变化,比如,在这个例子中,向量都是2维的...原创 2018-05-28 23:04:24 · 4390 阅读 · 0 评论 -
SVD奇异值分解
前言之前的博客:特征值和特征向量,讨论了矩阵的特征分解相关的概念。公式如下所示:A=WΣWT(1)(1)A=WΣWTA = W \Sigma W^T \tag{1}但是特征分解有一个限制条件,即AAA必须是方阵,如果不是方阵则上式就不能使用了。为了在AAA矩阵不是方阵时,即行列数不等时,也能分解矩阵的特征,就要用到SVD了。定义SVD的作用也是对矩阵进行分解,但是与特征...原创 2018-05-29 10:09:27 · 942 阅读 · 0 评论 -
python dlib学习(二):人脸特征点标定
前言上次介绍了人脸检测的程序(python dlib学习(一):人脸检测),这次介绍人脸特征点标定。dlib提供了训练好的模型,可以识别人脸的68个特征点。 下载链接:http://pan.baidu.com/s/1i46vPu1。程序还是直接上代码,注释在程序中。用到了python-opencv、dlib。# -*- coding: utf-8 -*-import sysimport dli原创 2017-10-25 23:17:39 · 24216 阅读 · 48 评论 -
python dlib学习(七):人脸特征点对齐
前言前面的博客介绍过人脸特征点标定:python dlib学习(二):人脸特征点标定。这次试着使用这些人脸特征点来对人脸进行对齐。程序上代码,程序中使用了python-opencv,事先要配置好环境。 我们在程序中会导入识别人脸特征点的模型,官方例程给出的模型的链接: http://dlib.net/files/shape_predictor_5_face_landmarks.dat.bz2(5原创 2017-11-12 13:43:02 · 14752 阅读 · 10 评论 -
机器学习入门学习笔记:(2.1)线性回归理论推导
理论推导 机器学习所针对的问题有两种:一种是回归,一种是分类。回归是解决连续数据的预测问题,而分类是解决离散数据的预测问题。线性回归是一个典型的回归问题。其实我们在中学时期就接触过,叫最小二乘法。 线性回归试图学得一个线性模型以尽可能准确地预测输出结果。 先从简单的模型看起: 首先,我们只考虑单组变量的情况,有: 使得 假设有m个数据,我们希望通过x预测的结果f(x)来估原创 2017-08-11 22:28:07 · 9784 阅读 · 11 评论 -
机器学习入门学习笔记:(1)BP神经网络原理推导及程序实现
机器学习中,神经网络算法可以说是当下使用的最广泛的算法。神经网络的结构模仿自生物神经网络,生物神经网络中的每个神经元与其他神经元相连,当它“兴奋”时,想下一级相连的神经元发送化学物质,改变这些神经元的电位;如果某神经元的电位超过一个阈值,则被激活,否则不被激活。误差逆传播算法(error back propagation)是神经网络中最有代表性的算法,也是使用最多的算法之一。误差逆传播算法理论原创 2017-04-07 16:33:01 · 3134 阅读 · 1 评论 -
机器学习入门学习笔记:(2.2)线性回归python程序实现
上一篇博客中,推导了线性回归的公式,这次试着编程来实现它。(机器学习入门学习笔记:(2.1)线性回归理论推导 ) 我们求解线性回归的思路有两个:一个是直接套用上一篇博客最后推导出来的公式;另一个是使用梯度下降法来求解极值。如果数据量很大不建议采用第一个,采用后者能更有效地减小计算量。这篇博客后面的程序也采用的是后者。 事先声明,这篇博客是我自己的学习笔记,代码参考了《机器学习实战》一书,原创 2017-08-12 11:05:48 · 1605 阅读 · 0 评论 -
基于PYQT编写一个人脸识别软件
前言 9月份时,大四狗都忙着“保研大战”。在等待结果的那几天,我就自己写了一个人脸识别的小软件“打发时间”。软件基于Python语言编写,用了PYQT还有face_recognition库。有关face_recognition库的应用,我在之前的博客中介绍了如何使用。(应用一个基于Python的开源人脸识别库,face_recognition) PYQT是一个创建GUI应用程序的工具包。P原创 2017-10-07 21:37:25 · 16503 阅读 · 41 评论 -
机器学习入门学习笔记:(2.3)对数几率回归推导
理论推导 在以前的博客(机器学习入门学习笔记:(2.1)线性回归理论推导 )中推导了单元线性回归和多元线性回归的模型。 将线性回归模型简写为:y=ωTx+by = \omega^Tx+b; 对数线性回归模型可以写成:ln(y)=ωT+bln(y) = \omega^T + b;本质上仍然是线性回归,只不过拟合的是非线性的ln函数了。 更一般地,考虑单调可微函数g(.)g(.),令原创 2017-10-18 10:59:06 · 9678 阅读 · 13 评论 -
python dlib学习(四):单目标跟踪
前言dlib提供了dlib.correlation_tracker()类用于跟踪目标。 官方文档入口:http://dlib.net/python/index.html#dlib.correlation_tracker 不复杂,就不介绍了,后面会直接给出两个程序。程序1# -*- coding: utf-8 -*-import sysimport dlibimport cv2tracker原创 2017-10-26 22:47:15 · 13208 阅读 · 9 评论 -
机器学习经典论文/survey合集
转载自:http://suanfazu.com/t/ji-qi-xue-xi-jing-dian-lun-wen-slash-surveyhe-ji/14#0-tsina-1-13801-397232819ff9a47a7b7e80a40613cfe1 感谢分享!!! Active LearningTwo Faces of Active Learning, Dasgupta, 20转载 2017-10-20 15:23:55 · 1587 阅读 · 0 评论 -
机器学习入门学习笔记:(2.4)线性判别分析理论推导
LDA线性判别分析(Linear Discriminant Analysis, 简称LDA),最早由Fisher提出,也叫“Fisher判别分析”。 线性判别分析的思想:给定样本数据集,设法将样本投影到某一条直线上,使得同类样本的投影点尽可能接近,异类样本的投影点尽可能远;在对新的点进行分类预测时,将其投影到这条直线上,根据投影点的位置来判断样本的类别。 当x是二维时,我们就要寻找一个方向为ω\原创 2017-10-21 10:53:41 · 1300 阅读 · 2 评论 -
python dlib学习(五):比对人脸
前言在前面的博客中介绍了,如何使用dlib标定人脸(python dlib学习(一):人脸检测),提取68个特征点(python dlib学习(二):人脸特征点标定)。这次要在这两个工作的基础之上,将人脸的信息提取成一个128维的向量空间。在这个向量空间上,同一个人脸的更接近,不同人脸的距离更远。度量采用欧式距离,欧氏距离计算不算复杂。 二维情况下: distance=(x1−x2)2+(y1−原创 2017-10-30 10:55:41 · 34953 阅读 · 32 评论 -
机器学习入门学习笔记:(3.1)决策树算法
前言 决策树是一类常见的机器学习方法,属于监督学习算法。决策树本身不是一种很复杂的算法,只需要简单的数学基础的就可以理解其内容。一些比较典型的决策树算法有:ID3、C4.5、CART等等决策树算法。理论介绍 一般的,一棵决策树包含一个根结点、若干个内部结点、若干个叶结点。叶结点是最后的决策结果,其余结点都对应与某一个属性的测试(决策)。每个结点所包含的样本集合根据对属性的决策,往下划分到其的子结原创 2017-10-30 20:08:00 · 1282 阅读 · 0 评论 -
python dlib学习(六):训练模型
前言前面的博客都是使用dlib官方提供的训练好的模型,进行目标识别。 - python dlib学习(一):人脸检测 - python dlib学习(二):人脸特征点标定 - python dlib学习(三):调用cnn人脸检测 - python dlib学习(四):单目标跟踪 - python dlib学习(五):比对人脸 直接进入主题吧,这次我们要自己训练一个模型原创 2017-11-04 15:09:14 · 30016 阅读 · 29 评论 -
深度学习与计算机视觉 看这一篇就够了
来源:http://www.leiphone.com/news/201605/zZqsZiVpcBBPqcGG.html#rd人工智能是人类一个非常美好的梦想,跟星际漫游和长生不老一样。我们想制造出一种机器,使得它跟人一样具有一定的对外界事物感知能力,比如看见世界。在上世纪50年代,数学家图灵提出判断机器是否具有人工智能的标准:图灵测试。即把机器放在一个房间,人类测试员在另一个房间,人跟机器聊天,测转载 2017-11-11 01:06:12 · 11445 阅读 · 1 评论 -
python dlib学习(一):人脸检测
前言dlib毕竟是一个很有名的库了,有c++、Python的接口。使用dlib可以大大简化开发,比如人脸识别,特征点检测之类的工作都可以很轻松实现。同时也有很多基于dlib开发的应用和开源库,比如face_recogintion库(应用一个基于Python的开源人脸识别库,face_recognition)等等。环境安装不算复杂,我只在Linux和win下跑过。安装配置不算难,直接贴链接了。 Li原创 2017-10-25 22:14:55 · 52182 阅读 · 6 评论 -
迭代最近点(Iterative Closest Point, ICP)算法及matlab实现
前言通常,使用RGB-D相机或是其他方法获取到物体的三维点云后,由于采集设备不同、拍摄视角不同等等因素的影响,即使是同一个物体所得到的点云也会有较大的差异,主要是旋转或者平移的变化。对于一组图像数据集中的两幅图像,需要通过寻找一种空间变换把一幅图像映射到另一幅图像,使得两图中对应于空间同一位置的点一一对应起来,从而达到信息融合的目的。所以,就需要对点云进行配准。 迭代最近点算法(ICP)是一...原创 2018-06-01 20:36:15 · 21866 阅读 · 11 评论