
计算机视觉
文章平均质量分 80
masikkk
北航计算机系研究生
展开
-
SIFT算法与SURF算法特征检测效率对比
SIFT和SURF算法都是特征检测中较常用的算法,SURF是对SIFT的一种改进,尤其在效率上有明显提升。下面的实验给出了SIFT算法和SURF算法在特征检测效率上的对比:原创 2013-07-17 17:11:03 · 12259 阅读 · 5 评论 -
OpenCV读入图片序列进行HOG行人检测并保存为视频
OpenCV读入图片序列进行HOG行人检测并保存为视频原创 2013-11-13 21:42:58 · 7750 阅读 · 21 评论 -
利用TinyXML读取VOC2012数据集的XML标注文件裁剪出所有人体目标保存为文件
PASCAL VOC目标检测数据集(The PASCAL Visual Object Classes)所以如果想用这个数据集做某种目标识别的训练集的话,需要先从中裁出需要的目标。下面这个程序就是这个目的,其中用到了TinyXML这个简单易用的XML解析器原创 2013-11-13 22:04:20 · 5601 阅读 · 9 评论 -
从完全不包含人体的图片中随机剪裁出64*128大小的用于人体检测的负样本
进行行人检测的分类器训练时,负样本是从完全不包含人体的图片中随机剪裁出来的,下面程序的目的就是这个原创 2013-11-13 22:13:59 · 11054 阅读 · 17 评论 -
在Windows下运行Felzenszwalb的star-cascade DPM(Deformable Part Models)目标检测Matlab源码
可变形部件模型Deformable Part Models(DPM)是非常经典的目标检测算法,由Felzenszwalb提出,本文介绍如何在windows下运行Felzenszwalb给出的DPM算法的star-cascade版本voc-release4.01-star-cascade,相比于基本版本voc-release4.01,star-cascade版本增加了PCA降维,检测速度可提高十几倍。原创 2014-03-06 22:18:42 · 14469 阅读 · 38 评论 -
用DPM(Deformable Part Model,voc-release3.1)算法在INRIA数据集上训练自己的人体检测模型
用DPM(Deformable Part Model,voc-release3.1)算法在INRIA数据集上训练自己的人体检测模型原创 2014-05-13 12:10:03 · 15410 阅读 · 59 评论 -
有关可变形部件模型(Deformable Part Model)的一些说明
关于目标检测中的可变形部件模型(Deformable Part Model)的一些说明原创 2013-12-24 18:31:06 · 24848 阅读 · 22 评论 -
OpenCV2.4.4实现Harris角点检测
#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include #include #include using namespace cv;using namespace std;//全局变量Mat src, src_gray;//源图和灰度图int thresh = 20原创 2013-05-28 18:51:19 · 3231 阅读 · 2 评论 -
OpenCV2.4.4实现Shi-Tomasi角点检测(goodFeaturesToTrack)
#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include #include #include using namespace cv;using namespace std;//全局变量Mat src1, src1_gray, src2, src2_gray;原创 2013-05-28 20:13:27 · 10617 阅读 · 0 评论 -
OpenCV2.4.4 图像旋转和缩放
旋转变换公式的推导:如下图, 在2维坐标上,有一点p(x, y) , 直线op的长度为r, 直线op和x轴的正向的夹角为a。 直线op围绕原点做逆时针方向b度的旋转,到达p’ (s,t) 则有s = r cos(a + b) = r cos(a)cos(b) – r sin(a)sin(b) (1.1)t = r sin(a + b) = r sin(a)cos原创 2013-06-03 22:30:39 · 12358 阅读 · 5 评论 -
OpenCV2.4.4 图像仿射变换
#include#include#includeusing namespace std;using namespace cv;int main(){ Mat src = imread("pic3.png"); Mat dst_warp,dst_warpRotateScale; Point2f srcPoints[3];//原图中的三点 Point2f原创 2013-06-04 10:34:08 · 3783 阅读 · 0 评论 -
在windows下运行Felzenszwalb的Deformable Part Model(DPM)源码voc-release3.1来训练自己的模型
我的环境DPM源码版本:voc-release3.1VOC开发包版本:VOC2007_devkit_08-Jun使用的训练数据集:VOC2007Matlab版本:MatlabR2012bc++编译器:VS2010系统:Win732位 (1) 修改globals.m中的一些全局变量cachedir= 'D:\DPMtrain\VOCCache\';% 训练好的原创 2014-04-15 15:02:41 · 20385 阅读 · 188 评论 -
OpenCV2.4.4中调用SIFT特征检测器进行图像匹配
OpenCV中一些相关结构说明:特征点类: class KeyPoint { Point2f pt; //坐标 float size; //特征点邻域直径 float angle; //特征点的方向,值为[0,360),负值表示不使用 flo原创 2013-05-31 03:32:16 · 29876 阅读 · 33 评论 -
OpenCV中Mat类的图像如何设置ROI
Mat类表示的图像进行ROI操作有两种方法(1)使用拷贝构造函数Mat(constMat& m, const Rect& roi ),矩形roi指定了兴趣区例如:Mat src = imread(“xx.jpg”);Mat srcROI( src, Rect(0,0,src.cols/2,src.rows/2));srcROI的数据与源图像src共享存储区,所以此后在srcROI原创 2013-06-03 21:45:57 · 44046 阅读 · 4 评论 -
基于SIFT特征的全景图像拼接
主要分为以下几个步骤:(1) 读入两张图片并分别提取SIFT特征(2) 利用k-d tree和BBF算法进行特征匹配查找(3) 利用RANSAC算法筛选匹配点并计算变换矩阵(3) 图像融合SIFT算法以及RANSAC算法都是利用的RobHess的SIFT源码,前三个步骤RobHess的源码中都有自带的示例。(1) SIFT特征提取直接调用RobHess源原创 2013-07-04 21:43:18 · 48522 阅读 · 103 评论 -
RobHess的SIFT源码分析:xform.h和xform.c文件
SIFT源码分析系列文章的索引在这里:RobHess的SIFT源码分析:综述这两个文件中实现了RANSAC算法(RANdom SAmple Consensus 随机抽样一致)。RANSAC算法可用来筛选两个图像间的SIFT特征匹配并计算变换矩阵。利用RANSAC算法筛选SIFT特征匹配的主要流程是:(1) 从样本集中随机抽选一个R原创 2013-06-30 16:24:14 · 8108 阅读 · 9 评论 -
OpenCV2.4.4实现HOG行人检测
利用OpenCV中默认的SVM参数进行HOG行人检测,默认参数是根据Dalal的方法训练的。原创 2013-11-13 21:09:19 · 5922 阅读 · 0 评论 -
关于DPM(Deformable Part Model)算法中模型可视化的解释
DPM源码(voc-release)中的模型可视化做的还算相当炫酷的,可以让我们直观的看到训练好的模型,甚至我们不用去做模型的评价,直接根据肉眼的观察,就能大致了解一个目标训练的好不好,比如我训练一个人体模型,那他的可视化图当然就是越接近人体越好。原创 2014-05-16 18:58:14 · 10651 阅读 · 7 评论 -
图像处理中的梯度、导数如何求?(Robert算子,Sobel算子,Prewitt算子,Laplace算子)
梯度的求法是多种多样的,根据不同的处理需要选择合适的算子(模版)。Robert算子,Sobel算子,Prewitt算子,Laplace算子原创 2013-07-09 14:51:45 · 13530 阅读 · 1 评论 -
RobHess的SIFT源码分析:kdtree.h和kdtree.c文件
SIFT源码分析系列文章的索引在这里:RobHess的SIFT源码分析:综述kdtree.h和kdtree.c这两个文件中实现了k-d树的建立以及用BBF(Best Bin First)算法搜索匹配点的函数。如果你需要对两个图片中的特征点进行匹配,就要用到这两个文件。关于k-d树的理解,参考这篇文章,写的挺好:http://blog.youkuaiyun.com/ijuli原创 2013-06-29 20:17:42 · 7645 阅读 · 4 评论 -
RobHess的SIFT源码分析:imgfeatures.h和imgfeatures.c文件
SIFT源码分析系列文章的索引在这里:RobHess的SIFT源码分析:综述imgfeatures.h中有SIFT特征点结构struct feature的定义,除此之外还有一些特征点的导入导出以及特征点绘制函数的声明。对应的imgfeatures.c文件中是特征点的导入导出以及特征点绘制函数的实现。特征点的类型有两种,一种是是牛津大学VGG提供的源码中的特征点格式,原创 2013-06-29 20:01:37 · 9975 阅读 · 7 评论 -
OpenCV imshow()之后没有waitKey()无法显示图像
OpenCV imshow()之后没有waitKey()无法显示图像原创 2013-11-10 15:58:18 · 14227 阅读 · 1 评论 -
在Windows下运行Felzenszwalb的Deformable Part Models(voc-release4.01)目标检测matlab源码
可变形部件模型Deformable Part Models是目前最好的目标检测算法,由Felzenszwalb提出,本文介绍如何在Windows下运行Felzenszwalb的Deformable Part Models(voc-release4.01)目标检测matlab源码原创 2013-12-26 09:59:59 · 15619 阅读 · 33 评论 -
Qt Creator中无法使用OpenCV2中新函数的解决办法
按上篇文章《Qt4.8下应用OpenCV2.4.4搭建环境详细步骤(win7系统)》http://blog.youkuaiyun.com/masikkk/article/details/8693793在Qt Creator中配置了OpenCV2.4.X,但是只能使用opencv1.0的函数,opencv2中的函数,例如:imread(),Mat结构等都不能使用。找原因:(1)看头文件有没有问题原创 2013-04-01 22:24:47 · 9326 阅读 · 7 评论 -
Qt中使用OpenCV显示图片时,Mat结构转换为QImage结构的问题
Qt中利用OpenCV显示图片和视频时,需要将OpenCV中的Mat或IplImage结构转换为Qt中QImage结构,转换时需要注意的地方是OpenCV中和Qt中关于三原色的排列的不同:OpenCV中是以BGR的顺序排列,Qt中是以RGB的顺序排列,两种格式在转换时如果没注意到这点,就会出现问题,如下图:上图是读取的美剧《总统一家》中的一集,mkv格式的(OpenCV2中增加原创 2013-04-21 18:43:04 · 6327 阅读 · 1 评论 -
OpenCV2.4.4中利用直方图均衡化增强图像对比度(Mat结构实现)
直方图就是对数据进行统计,将统计值组织到一系列事先定义好的bin(直方图中的柱子)中。bin中的数值是从数据中计算出的特征的统计量,这些数据可以是诸如梯度、方向、色彩或任何其他特征。无论如何,直方图获得的是数据分布的统计图。灰度图像的直方图的性质:(1) 直方图是一幅图像中各像素灰度出现频次的统计结果,它只反映图像中不同灰度值出现的次数,而没反映某一灰度所在的位置。也就是说,它只包原创 2013-05-20 19:44:48 · 11431 阅读 · 0 评论 -
RobHess的SIFT源码分析:综述
最初的目的是想做全景图像拼接,一开始找了OpenCV中自带的全景拼接的样例,用的是Stitcher类,可以很方便的实现全景拼接,而且效果很好,但是不利于做深入研究。Stitcher类使用方法请查OpenCV API:http://docs.opencv.org/2.4.4/modules/refman.html,搜索Stitcher使用OpenCV中自带的Stitcher类的全景图像拼接样原创 2013-06-27 21:58:00 · 40274 阅读 · 12 评论 -
利用RANSAC算法筛选SIFT特征匹配
关于RANSAC算法的基本思想,可从网上搜索找到,这里只是RANSAC用于SIFT特征匹配筛选时的一些说明。RANSAC算法在SIFT特征筛选中的主要流程是:(1) 从样本集中随机抽选一个RANSAC样本,即4个匹配点对(2) 根据这4个匹配点对计算变换矩阵M(3) 根据样本集,变换矩阵M,和误差度量函数计算满足当前变换矩阵的一致集consensus,并返回一致集中元素个数(4原创 2013-06-21 15:10:51 · 69496 阅读 · 54 评论 -
自己训练SVM分类器进行HOG行人检测
正样本来源是INRIA数据集中的96*160大小的人体图片,使用时上下左右都去掉16个像素,截取中间的64*128大小的人体。负样本是从不包含人体的图片中随机裁取的,大小同样是64*128。SVM使用的是OpenCV自带的CvSVM类。首先计算正负样本图像的HOG描述子,组成一个特征向量矩阵,对应的要有一个指定每个特征向量的类别的类标向量,输入SVM中进行训练。训练好的SVM分类器保存为XML文件,然后根据其中的支持向量和参数生成OpenCV中的HOG描述子可用的检测子参数,再调用OpenCV中的多原创 2013-11-13 22:51:37 · 57171 阅读 · 196 评论 -
用初次训练的SVM+HOG分类器在负样本原图上检测HardExample
难例(Hard Example)就是分错类的负样本,将难例加入负样本集合进行二次训练就是告诉分类器:“这些是你上次分错类的,要吸取教训,改正错误”原创 2013-11-14 10:35:26 · 23969 阅读 · 24 评论 -
关于DPM(Deformable Part Model)算法中模型结构的解释
含有n个部件的目标模型可以形式上定义为一个(n+2)元组:(F0,P1,..., Pn, b),F0是根滤波器,Pi是第i个部件的模型,b是表示偏差的实数值。每个部件模型用一个三元组定义:(Fi,vi, di),Fi是第i个部件的滤波器;vi是一个二维向量,指定第i个滤波器的锚点位置(anchor position,即未发生形变时的标准位置) 相对于根的坐标;di是一个四维向量,指定了一个二次函数的参数,此二次函数表示部件的每个可能位置相对于锚点位置的变形花费(deformation cost)。原创 2014-05-16 15:56:14 · 11342 阅读 · 14 评论 -
OpenNI1.5获取华硕XtionProLive深度图和彩色图并用OpenCV显示
华硕XtionPro类似Kinect,都是体感摄像机,可捕捉深度图和彩色图,如图:原创 2014-07-02 11:46:14 · 7147 阅读 · 0 评论 -
OpenNI2获取华硕XtionProLive深度图和彩色图并用OpenCV显示
使用OpenNI2打开XtionProLive时有个问题,彩色图分辨率无论如何设置始终是320*240,深度图倒是可以设成640*480,而OpenNI1.x是可以获取640*480的彩色图的。彩色图配准到彩色图后的深度图1:1融合图代码:#include #include #include #include原创 2014-07-02 15:41:10 · 10565 阅读 · 0 评论 -
RobHess的SIFT源码分析:sift.h和sift.c文件
SIFT源码分析系列文章的索引在这里:RobHess的SIFT源码分析:综述这两个文件是RobHess的SIFT库中最重要的两个文件,里面包括用SIFT算法进行特征点检测的函数。文件中的内容说白了很简单,就是两个特征点检测函数sift_features()和 _sift_features(),sift_features()是用默认参数进行特征点检测, _si原创 2013-06-30 15:42:19 · 9448 阅读 · 9 评论 -
利用RGB-D数据进行人体检测 People detection in RGB-D data
人体检测是机器人和智能系统中的重要问题。之前的研究工作使用摄像机和2D或3D测距器。本文中我们提出一种新的使用RGB-D的人体检测方法。我们从HOG( Histogram of OrientedGradients)描述子获得灵感,设计了一个在稠密深度数据中检测人体的方法,叫做深度方向直方图HOD(Histogram of Oriented Depths)。HOD对局部深度变化的方向进行编码,依靠在预知深度信息的尺度空间的搜索来获得检测过程的3倍加速。随后我们提出了Combo-HOD,一个联合了HOD和HOG翻译 2014-02-21 21:35:20 · 17776 阅读 · 9 评论 -
使用判别训练的部件模型进行目标检测 Object Detection with Discriminatively Trained Part Based Models
本文介绍了一个基于混合多尺度可变形部件模型(mixtures of multiscale deformable part model)的目标检测系统。此系统可以表示各种多变的目标并且在PASCAL目标检测挑战赛上达到了目前最优结果(state-of-the-art)。虽然可变形部件模型现在很流行,但它的价值并没有在类似PASCAL这种较难的测试集上进行展示。此系统依赖于使用未完全标注(partially labeled)的样本进行判别训练的新方法。我们提出了一种间隔敏感(margin-sensitive)的翻译 2014-01-21 15:58:33 · 47044 阅读 · 32 评论 -
BMP文件详解
说到图片,位图(Bitmap)当然是最简单的,它Windows显示图片的基本格式,其文件扩展名为*.BMP。在Windows下,任何各式的图片文件(包括视频播放)都要转化为位图个时候才能显示出来,各种格式的图片文件也都是在位图格式的基础上采用不同的压缩算法生成的(Flash中使用了适量图,是按相同颜色区域存储的)。一、下面我们来看看位图文件(*.BMP)的格式。位图文件主要分为如下3个部分转载 2013-08-06 15:58:48 · 2276 阅读 · 0 评论 -
k-d tree算法
k-d树(k-dimensional树的简称),是一种分割k维数据空间的数据结构。主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。应用背景 SIFT算法中做特征点匹配的时候就会利用到k-d树。而特征点匹配实际上就是一个通过距离函数在高维矢量之间进行相似性检索的问题。针对如何快速而准确地找到查询点的近邻,现在提出了很多高维空间索引结构和近似查询的算法,k-d树就是其中转载 2013-06-13 18:51:24 · 7272 阅读 · 1 评论 -
SIFT算法原理与OpenCV源码分析2:高斯差分DoG尺度空间构造
《SIFT原理与源码分析》系列文章索引:http://blog.youkuaiyun.com/xiaowei_cqu/article/details/8069548尺度空间理论自然界中的物体随着观测尺度不同有不同的表现形态。例如我们形容建筑物用“米”,观测分子、原子等用“纳米”。更形象的例子比如Google地图,滑动鼠标轮可以改变观测地图的尺度,看到的地图绘制也不同;还有电影中的拉转载 2013-05-29 21:38:36 · 8402 阅读 · 0 评论 -
SIFT算法原理与OpenCV源码分析5:关键点描述
《SIFT原理与源码分析》系列文章索引:http://blog.youkuaiyun.com/xiaowei_cqu/article/details/8069548由前一篇《方向赋值》,为找到的关键点即SIFT特征点赋了值,包含位置、尺度和方向的信息。接下来的步骤是关键点描述,即用用一组向量将这个关键点描述出来,这个描述子不但包括关键点,也包括关键点周围对其有贡献的像素点。用来作为目标匹配转载 2013-05-30 12:46:37 · 3061 阅读 · 0 评论