Computer Vision
文章平均质量分 60
eternity1118_
不积跬步无以至千里,不积小流无以成江海
展开
-
模式识别(Pattern Recognition)学习笔记(十一)--SVM支持向量机(狭义):大间隔
1.最优分类超平面对于感知器,我们知道了在梯度下降迭代过程中,只要选择的权向量初始值和不同的步长,就会产生不同的解,想象一下,只要样本集是线性可分的(不考虑线性不可分的情况),就会有无数个决策面可以将它们分开,不同的只是距离超平远近的问题,因此对于这种问题就会存在多解性,如图1,但是我们要想办法找到这多解中的最优的一个解,即最优分类超平面。接下来,再想象一下,如果让你来对上图中的两原创 2016-05-23 10:39:47 · 3549 阅读 · 0 评论 -
卡尔曼(Kalman)滤波(四)--深入浅出Kalman滤波算法
Kalman滤波是一种递归过程,主要有两个更新过程:时间更新和观测更新,其中时间更新主要包括状态预测和协方差预测,主要是对系统的预测,而观测更新主要包括计算卡尔曼增益、状态更新和协方差更新,因此整个递归过程主要包括五个方面的计算:1)状态预测;2)协方差预测;3)卡尔曼增益;4)状态更新;5)协方差更新; 用数学公式表示,如下:状态预测: (1)其中,X(原创 2016-06-04 16:11:40 · 19473 阅读 · 0 评论 -
模式识别(Pattern Recognition)学习笔记(三十三)-- Boosting方法之AdaBoost
Boosting最早被用在电力电子技术学科中的升压(Boost)变换器中,原本是想通过升压来提高功率,现在将这一提高功率的思想引入到模式识别方法中,它的含义就变成通过融合多个分类器,从而大大提高分类器的性能。Boosting方法和随机森林的思想很类似,当采用基于简单模型的单个分类器对样本进行分类的效果不理想时,我们希望能够通过构建并整合多个分类器来提高最终的分类性能,我们通常将这种不太理想的单原创 2016-06-20 15:09:45 · 1742 阅读 · 0 评论 -
模式识别(Pattern Recognition)学习笔记(三十四)-- 主成分分析(PCA)
一个模式识别系统设计的好坏,首要取决于所选用的特征是否较好的反映了正在研究的问题。模式识别问题的第一步是获取特征,获取来的特征被称作原始特征,其中可能有很多特征与我们研究的问题没多大关系,甚至它们在后续的分类中还有可能影响分类性能;另外,就算这些特征都是与研究问题有联系的,但是太多的特征会导致计算量大、推广能力差,所以原始特征要进一步清洗得到二次特征,即在保证分类器效果的前提下应该使特征数尽可能的原创 2016-06-20 21:40:01 · 8318 阅读 · 0 评论 -
算法面试题(一)-- 统计学习与模式识别面试题
题目:答案解析:第一部分:1.统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科,又称为统计机器学习;特点:以计算机为平台;以数据为对象;以方法为中心;以概率论、统计学、信息论以及最优化理论等为理论依托;目的是实现对数据的预测和分析;三要素:模型、策略、算法;2.3.特征选择:基于两个问题:1如何评价一组特征是否有效;2寻优算法原创 2016-06-21 12:46:58 · 4001 阅读 · 1 评论 -
限制对比度的自适应直方图均衡化(CLAHE)在opencv中的使用
1.CLAHE简介 HE直方图增强,大家都不陌生,是一种比较古老的对比度增强算法,它有两种变体:AHE和CLAHE;两者都是自适应的增强算法,功能差不多,但是前者有一个很大的缺陷,就是有时候会过度方法图像中相同区域的噪声问,为了解决这一问题,出现了HE的另一种改进算法,就是CLAHE;CLAHE是另外一种直方图均衡算法,能有效的增强或改善图像(局部)对比度,从而获取更多图像相关细节原创 2016-05-24 13:50:01 · 14776 阅读 · 0 评论 -
自适应直方图均衡(AHE)和限制对比度的自适应直方图均衡(CLAHE)
本文翻译自https://en.wikipedia.org/wiki/Adaptive_histogram_equalization,如有错误还望海涵。。自适应的直方图均衡(Adaptive Histogram Equalization)1.算法简介 AHE是一种用来改善图像对比度的图像处理技术,它与传统的(普通)直方图均衡相比,不同点主要在于,AHE通过计算图像每一个显翻译 2016-05-24 17:37:02 · 22559 阅读 · 4 评论 -
模式识别(Pattern Recognition)学习笔记(二十三)-- SVM的两大思想:大间隔与核函数
0.引言上节讲到广义线性判别函数,它是从任意阶非线性判别函数到线性判别函数的一种有效变换,但是这种变换是以牺牲特征空间维数为代价的,如果能很好地处理这种维数灾难,那么上述变换也是极好的,有没有可能在特征空间上作变换呢,从而将原空间中的非线性问题转化为新空间中的线性问题,答案是肯定的,今天我们来学习如何构造这种非线性的支持向量机,因为它就是采用引入特征变化这一思路来实现的,但是值得注意的是,支持原创 2016-06-13 22:31:33 · 9497 阅读 · 0 评论 -
模式识别(Pattern Recognition)学习笔记(三十五)-- K-L变换与PCA
K-L变换的理论知识K-L变换是除了PCA外的另一种常用的特征提取方法,它有很多种形式,最基本的形式跟PCA类似,它跟PCA的不同在于,PCA是一种无监督的特征变换,而K-L变换能够考虑到不同的分类信息,实现有监督的特征提取。根据随机过程中的KL展开理论,将随机过程描述为无数个正交函数的线性组合,而在模式识别问题中,通常可以将一个样本看成是随机向量的某一次实现结果,所以假设有一d维随机向量原创 2016-06-23 17:20:16 · 9584 阅读 · 0 评论 -
Python计算机视觉Learning(二)-- Matplotlib类库
Matplotlib类库具有比PIL更强大的绘图功能,其中的PyLab接口包含了很多方便用户创建图像的函数。Matplotlib同样是个开源库,下载链接绘制图像,点和线from PIL import Imageform pylab import *#绘制图像#读取图像到数组img = array(Image.open('lena.jpg'))imshow(img)#绘制点原创 2016-07-26 14:19:56 · 483 阅读 · 0 评论 -
模式识别(Pattern Recognition)学习笔记(三十二)-- 逻辑回归
在有些模式识别问题中,如癌症病人的诊断,一个细胞是否是癌细胞,这种问题不能简单的用线性回归来研究特征与分类之间的关系。大多数情况中,某一特征对一个对象事物的影响是这样:在某一段范围内,可能属于一个类别,但是在下一个范围内又可能属于另一个类别,然后在下下一个范围可能又不同类,像这种比例渐进式的影响关系很难用一个模型假设来表达,该如何下手呢?要知道虽然类别与特征之间没有一个明确可建立的关系表达,但是归原创 2016-06-17 17:56:04 · 2554 阅读 · 0 评论 -
模式识别(Pattern Recognition)学习笔记(二十四)--总结:SVM学习资源
本篇文章对不同阶段的SVM进行严格梳理和总结,不管是初级版的SVM,还是升级版的SVM,你都会发现其实在SVM中一直是有两个核心在贯穿其中的,相信看完本篇的学习,你就会对SVM这个重要级的分类器有个全面的了解,或者有自己的体会,好吧,开始吧,Good luck。。1.核心思想 对于任何非线性方法,如果对特征进行适当的变换,那么久总可以得到相应的线性方法,但是这种变换有时会带来两原创 2016-06-14 11:02:14 · 2521 阅读 · 0 评论 -
模式识别(Pattern Recognition)学习笔记(二十五)--最近邻法
1.简介 本篇文章开始,会陆续学习一些其它的常用的非线性分类方法,虽然它们同属于非线性方法,但是它们与前面介绍的稍有不同,原理上具有特殊性,这篇就来学习近邻法中的最近邻法。最近邻法是基于这样一个基本思想的:把一个新样本逐一与已知分好类的样本进行比较,然后把与其距离最近的样本类别作为它的类别,这种思想是不是很好理解,有点类似于我们学英语中的就近原则。2.原理 已知原创 2016-06-14 14:48:17 · 3533 阅读 · 0 评论 -
模式识别(Pattern Recognition)学习笔记(二十六)--k近邻
1.简介 在样本有限的情况,样本分布不规律且含有噪声的情况下,用最近邻来做决策难免有一定风险,因此对其引入打分机制,对未知样本的决策,不仅仅只依赖于最近的那一个已知样本,更可靠的做法是选择k个距离未知样本最近的已知样本,然后在这k个类别中进行打分来决定最后应该决策给谁。显然,最近邻就是1近邻。 另外,回顾下前面在讲概率密度函数的非参数估计时,是不是也提到了k近邻,没错原创 2016-06-14 16:08:19 · 1661 阅读 · 0 评论 -
模式识别(Pattern Recognition)学习笔记(二十七)-- 基于树搜索算法的快速近邻法
近邻法中计算距离需要遍历,带来很大的计算量和存储量,为了改善这两方面的性能,有人提出采用分枝界定算法(Branch-Bound Algorithm)来改进近邻法,主要分为两个阶段:1)利用人工划分或K-means聚类算法或其他动态聚类算法将样本集X划分成层级形式,形成一个树结构;2)利用树搜索算法找出与未知样本的k个近邻。1.层级划分1)将样本集X划分成l个子集,每个子集再分成l个子集,原创 2016-06-15 11:33:03 · 4483 阅读 · 2 评论 -
模式识别(Pattern Recognition)学习笔记(二十八)-- 决策树
1.数值特征与非数值特征学习分类这么久,不知道大家有没有注意一个问题,那就是我们的输入样本数据都是基于数值计算的,因此在近邻法中才可以计算距离这一说,这种可以用数值来描述的对象特征,我们称之为数值特征,但是在我们生活中所涉及的分类问题并非都是用数值特征来描述某个研究对象的,因此与数值特征对应的就是非数值特征,比如男生和女生比较喜欢什么样的颜色等等。关于非数值特征,主要有以下几种:1)名原创 2016-06-16 12:19:23 · 7705 阅读 · 2 评论 -
模式识别(Pattern Recognition)学习笔记(二十九)--决策树的剪枝
在有限的样本下,如果决策树生长得很大,树枝很多,那么就有可能导致有限样本中对采样的偶然性或噪声比较敏感,导致过学习,从而范化能力差。 首先来看一幅图,如图:上图是一次测试中用ID3算法得到的有关决策树的大小与在训练数据和测试数据上的正确率的关系,不难看出,出现了过学习,如果样本不足够多,随着决策树达到一定规模大小,训练数据上的正确率会不断增加,而在测试数据上的正确率不增原创 2016-06-16 15:19:47 · 2414 阅读 · 1 评论 -
模式识别(Pattern Recognition)学习笔记(三十)--随机森林(Random Forest)
引言 模式识别是一门基于数据的学科,因此所有的模式识别问题都会面临的同一个问题就是数据的随机性问题。模式识别中每个方法的实现都是基于一个特定的数据样本集的,但是这个样本集只是所有可能的样本中的一次随机抽样,毕竟在我们的生活实际中存在着万物众生,多到我们数也数不清,甚至计算机都无法统计的清,而我们搜集到的充其量只是其中很小很小的一部分,这也是为什么机器学习中缺少的只是数据,只要有足够原创 2016-06-16 17:11:23 · 5469 阅读 · 1 评论 -
Python计算机视觉Learning(一)-- Python图像处理类库--PIL
1.简介PIL(Python Image Library)是一个Python库,它提供了通用的图像处理功能,以及大量有用的基本图像操作,如图像缩放、旋转等,该类库中最重要的模块为Image;PIL库是开源的,点击下载下载链接。2.基本图像操作2.1 图像读取from PIL import Imageimg = Image.open('xxx.jpg');PIL的open()函数可原创 2016-07-25 19:58:20 · 920 阅读 · 0 评论 -
K-Means聚类算法
本文系翻译(原文),必要时揉入了自己的理解,各位看官,如有错误还望多多包涵。1.引言 前面说过,机器学习是一门处理数据的学科,计算机发展至今,也诞生了数不胜数的跟数据有关的智能算法,正因为这些算法才让那些从事数据分析和处理的人们得以发挥自己的聪明才智。这些算法表面上看似极其复杂无比,但是如果你有心将它们一一整理并且深入的理解,那么在你需要时,你会发现找到一个适合的算法应用到你的翻译 2016-05-27 12:59:06 · 4641 阅读 · 0 评论 -
模式识别(Pattern Recognition)学习笔记(三十六)-- 动态聚类算法
如果不估计样本的概率分布,就无法从概率分布的角度来定义聚类,这时我们就需要有一种新的对聚类的定义,一般的,根据样本间的某种距离或某种相似性度量来定义聚类,即把相似的或距离近的样本聚为一类,而把不相似或距离远的样本聚在其他类,这种基于相似性度量的聚类方法在实际应用中非常常用,主要可以分为动态聚类法和分层聚类法,本篇博客我们主要来介绍常用动态聚类的方法。动态聚类方法是一中普遍被采用的方法,具有以下原创 2016-07-21 15:16:04 · 8190 阅读 · 3 评论 -
基于DL的计算机视觉(9)--神经网络之动手实践
1.引言前面8小节,算从神经网络的结构、简单原理、数据准备与处理、神经元选择、损失函数选择等方面把神经网络过了一遍。这个部分我们打算把知识点串一串,动手实现一个简单的2维平面神经网络分类器,去分割平面上的不同类别样本点。为了循序渐进,我们打算先实现一个简单的线性分类器,然后再拓展到非线性的2层神经网络。我们可以看到简单的浅层神经网络,在这个例子上就能够有分割程度远高于线性分类器的效果。转载 2016-08-11 11:52:10 · 797 阅读 · 0 评论 -
安装Scikit-learn:ValueError: numpy.dtype has the wrong size, try recompiling解决
今天在尝试使用scikit-learn的AdaBoost模型时一直报错,Traceback (most recent call last):File "", line 1, in File "/Library/Python/2.7/site-packages/sklearn/__init__.py", line 57, in from .base import cloneFile "/转载 2016-08-24 17:22:12 · 4261 阅读 · 0 评论 -
OpenCV+Tesseract进行OCR学习(一)文字提取
使用Tesseract进行OCR学习(一)文字提取使用Tesseract进行OCR学习一文字提取OCR简介文字提取codeOCR简介熟悉OCR的人都了解,OCR大致分为两个部分:-文字提取text extractor -文字识别text recognition其中,第一部分是属于图像处理部分,涉及到图像分割的知识,而第二部分则大多数利用谷歌的Tesseract来进行字符的识别,设计到的东西不多原创 2016-09-18 16:14:22 · 25371 阅读 · 24 评论 -
OpenCV+Tesseract进行OCR学习(二)文字识别
OpenCV的Tesseract使用OpenCV的Tesseract使用Mac端的Tesseract使用iOS端的Tesseract使用Mac端的Tesseract使用Tesseract的安装 Mac上的Tesseract安装很方便,直接利用brew来安装:brew updatebrew install tesseract或者下载源码进行编译安装: Github地址Tesseract的使用原创 2016-09-18 16:57:27 · 14274 阅读 · 0 评论 -
几句话梳理Linear Regression、Logistics Regression、Softmax Regression之间的共性与区别
先来说说Linear Regression与正态分布高斯分布的关系Linear Regression的基本步骤如何从Linear Regression引出Logistics RegressionLogistics Regression与Softmax Regression总结指数族分布先来说说Linear Regression与正态分布(高斯分布)的关系上过吴恩达老师的机器学习课程的都熟悉原创 2016-11-03 13:33:06 · 4603 阅读 · 3 评论 -
图片序列与视频之间的转换
视频转成图片序列图片序列转成视频调用测试视频的读取图片序列的读取视频转成图片序列//将视频转化问AVI格式 int VideoToImage(char* videoName, char* outDir, char* imgExt, int maxFrameCount) { VideoCapture cap(videoName); if (!ca原创 2017-04-27 14:03:03 · 1849 阅读 · 0 评论 -
手把手教你Dlib+VS2013+Win7配置(详细)
下载文件Dlib下载官网 http://dlib.net/ 只push了最新版本;且最新版本要求vs2015github https://github.com/davisking/dlib 在分支里可以找到各种版本其它 http://dlib.net/files/ 这里有很多版本,还有人脸数据,以及模型文件等cmake下载版本数:需要2.8原创 2018-01-17 16:42:04 · 1709 阅读 · 1 评论 -
利用OpenCV计算图像二维熵
直接上代码:void calc_2D_entropy(cv::Mat &input, cv::Mat &output){ int height = input.rows; int width = input.cols; cv::Mat out = cv::Mat::zeros(height, width, CV_32FC1); //tem...原创 2018-03-23 15:17:38 · 4001 阅读 · 5 评论 -
常见传统目标检测算法
一 概览首先,我们先来看下目标检测的发展历程:1.2001年,V-J检测器诞生,主要用于人脸的检测;2.2006年,HOG + SVM的方法出现,主要用于行人的检测;3.2008年,rgb大神(记住这个人,后面的R-CNN系列检测算法也是出自他之手)研究出了著名的DPM算法,在深度学习方法成熟之前的很长一段时间里,就是这个算法一直在目标检测中发挥作用;以上算法是属于传统目标检测的算法...原创 2019-03-29 18:15:57 · 20351 阅读 · 2 评论 -
基于DL的计算机视觉(8)-- 神经网络是如何训练的
1.训练在前一节当中我们讨论了神经网络静态的部分:包括神经网络结构、神经元类型、数据部分、损失函数部分等。这个部分我们集中讲讲动态的部分,主要是训练的事情,集中在实际工程实践训练过程中要注意的一些点,如何找到最合适的参数。1.1 关于梯度检验之前的博文我们提到过,我们需要比对数值梯度和解析法求得的梯度,实际工程中这个过程非常容易出错,下面提一些小技巧和注意点:使用中心化转载 2016-08-11 11:48:32 · 1045 阅读 · 0 评论 -
基于DL的计算机视觉(7)-- 数据的预处理、正则化
1. 引言上一节我们讲完了各种激励函数的优缺点和选择,以及网络的大小以及正则化对神经网络的影响。这一节我们讲一讲输入数据预处理、正则化以及损失函数设定的一些事情。2. 数据与网络的设定前一节提到前向计算涉及到的组件(主要是神经元)设定。神经网络结构和参数设定完毕之后,我们就得到得分函数/score function(忘记的同学们可以翻看一下之前的博文),总体说来,一个完整的神经转载 2016-08-11 11:34:29 · 1549 阅读 · 0 评论 -
基于DL的计算机视觉(10)-- 详谈CNN
1. 前言前面九讲对神经网络的结构,组件,训练方法,原理等做了介绍。现在我们回到本系列的核心:计算机视觉,神经网络中的一种特殊版本在计算机视觉中使用最为广泛,这就是大家都知道的卷积神经网络。卷积神经网络和普通的神经网络一样,由『神经元』按层级结构组成,其间的权重和偏移量都是可训练得到的。同样是输入的数据和权重做运算,输出结果输入激励神经元,输出结果。从整体上看来,整个神经网络做的事情,依旧转载 2016-08-11 11:54:37 · 1080 阅读 · 2 评论 -
基于DL的计算机视觉(11)-- 基于DL的快速图像检索系统
1.引言本系统是基于CVPR2015的论文《Deep Learning of Binary Hash Codes for Fast Image Retrieval》实现的海量数据下的基于内容图片检索系统,250w图片下,对于给定图片,检索top 1000相似时间约为1s,其基本背景和原理会在下文提到。2.基本问题与技术大家都知道,基于内容的图像检索系统是根据图像的内容,在已转载 2016-08-11 11:59:19 · 1093 阅读 · 0 评论 -
基于DL的计算机视觉(1)-- Python基础介绍
1.背景计算机视觉/computer vision是一个火了N年的topic。持续化升温的原因也非常简单:在搜索/影像内容理解/医学应用/地图识别等等领域应用太多,大转载 2016-08-11 11:18:50 · 1085 阅读 · 0 评论 -
基于DL的计算机视觉(2)--实现图像分类最简单的方法:KNN
1. 图像分类问题这是人每天自然而然会做的事情,普通到大部分时候,我们都感知不到我们在完成一个个这样的任务。早晨起床洗漱,你要看看洗漱台一堆东西中哪个是杯子,哪个是你的牙刷;转载 2016-08-11 11:21:05 · 2753 阅读 · 0 评论 -
基于DL的计算机视觉(3)-- SVM和Softmax分类器
1. 线性分类器在深度学习与计算机视觉系列(2)我们提到了图像识别的问题,同时提出了一种简单的解决方法——KNN。然后我们也看到了KNN在解决这个问题的时候,虽然实现起来非转载 2016-08-11 11:23:19 · 1674 阅读 · 0 评论 -
基于DL的计算机视觉(4)-- SGD
1. 引言上一节深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器中提到两个对图像识别至关重要的概念:用于把原始像素信息映射到不同类别得分的得分函数/转载 2016-08-11 11:25:39 · 934 阅读 · 0 评论 -
基于DL的计算机视觉(5)--理解反向传播
1. 引言其实一开始要讲这部分内容,我是拒绝的,原因是我觉得有一种写高数课总结的感觉。而一般直观上理解反向传播算法就是求导的一个链式法则而已。但是偏偏理解这部分和其中的转载 2016-08-11 11:29:21 · 971 阅读 · 0 评论 -
基于DL的计算机视觉(6)-- 神经网络
1.神经元与含义大家都知道最开始深度学习与神经网络,是受人脑的神经元启发设计出来的。所以我们按照惯例也交代一下背景,从生物学的角度开始介绍,当然也是对神经网络研究的先驱们致一转载 2016-08-11 11:31:26 · 834 阅读 · 0 评论