随笔 - 252  文章 - 0  评论 - 2269  阅读 - 542万
11 2012 档案
opencv源码解析之(7):CvAdaptiveSkinDetectorl类
摘要:前言 在前面的博文皮肤检测类CvAdaptiveSkinDetector的使用中,已经介绍过了这个皮肤检测类的使用方法,因为本人对算法比较好奇,又继续阅读了下该算法的源码,所以这篇文章是对该源码做的一个简单分析。 基础 本算法内容是来自论文An adaptive real-time skin detector based on Hue thresholding: A comparison on two motion tracking methods。一般的皮肤检测都是统计大量不同光照不同环境下的皮肤特性,然后利用皮肤的这些统计信息来分割。当然了本算法的前面也是利用这些统计信息来预处理... 阅读全文
posted @ 2012-11-28 22:45 tornadomeet 阅读(5133) 评论(4) 推荐(1) 编辑
Reading papers_14(关于depth image on hand segmentaion,ing...)
摘要:Real-time fingertip tricking and detection using Kinect depth sensor for a new writing-in-the air system 本文是基于kinect的空中手写字的识别,即用一个手指在空中写字,写完后系统会自动判断出所写的字是哪一个。本人比较感兴趣的不是怎么识别出字体,而是怎样不断的很好的跟踪手指。读过文章发现,作者并不是完全从深度数据或颜色数据开始做的,而是利用OpenNI很多工作,比如OpenNI提供的身体分割图。并且该文章提出的分割和跟踪算法其使用条件也是相当的严格的,即人的手必须在伸出在身体前才能跟... 阅读全文
posted @ 2012-11-27 11:13 tornadomeet 阅读(2088) 评论(0) 推荐(1) 编辑
基础学习笔记之opencv(18):kmeans函数使用实例
摘要:前言 一提到聚类算法,必然首先会想到的是kmeans聚类,因为它的名气实在太大了。既然这样,OpenCV中这个函数也自然必不可少了。这节内容主要是讲讲OpenCV中kmeans函数的使用方法。 开发环境:OpenCV2.4.3+QtCreator2.5.1 实验基础 在使用kmeans之前,必须先了解kmeans算法的2个缺点:第一是必须人为指定所聚的类的个数k;第二是如果使用欧式距离来衡量相似度的话,可能会得到错误的结果,因为没有考虑到属性的重要性和相关性。为了减少这种错误,在使用kmeans距离时,一定要使样本的每一维数据归一化,不然的话由于样本的属性范围不同会导致错误的结果。... 阅读全文
posted @ 2012-11-23 00:21 tornadomeet 阅读(35697) 评论(7) 推荐(4) 编辑
基础学习笔记之opencv(17):皮肤检测类CvAdaptiveSkinDetector的使用
摘要:前言 皮肤检测是利用皮肤的颜色信息的阈值来进行检测的,不过这些阈值一般不是使用rgb空间,而是用HSV或者YCrCb等空间。皮肤检测是使用统计的方法统计出大量人的皮肤信息,然后就可以得到色彩空间某一分量的阈值了,利用该阈值就可以初步对皮肤进行分割。当然了,OpenCV中也自带了皮肤检测算子,包含在类CvAdaptiveSkinDetector中。本节内容就是来试试OpenCV自带的皮肤检测算法的性能。 开发环境:OpenCV2.4.3+QtCreator2.5.1 实验基础 OpenCV自带是算法的参考文献有网友说是An adaptive real-time skin detect... 阅读全文
posted @ 2012-11-20 11:37 tornadomeet 阅读(11250) 评论(13) 推荐(1) 编辑
Kinect+OpenNI学习笔记之14(关于Kinect的深度信息)
摘要:前言 由于最近要研究kinect采集到的深度信息的一些统计特征,所以必须先对kinect深度信息做进一步的了解。这些了解包括kinect的深度值精度,深度值的具体代表的距离是指哪个距离以及kinect深度和颜色扫描范围等。经过查找资料可以解决这些问题,并且后面通过实验也验证了这些问题的答案。 ... 阅读全文
posted @ 2012-11-16 09:57 tornadomeet 阅读(22089) 评论(28) 推荐(1) 编辑
Kinect+OpenNI学习笔记之13(Kinect驱动类,OpenCV显示类和手部预分割类的设计)
摘要:前言 为了减小以后项目的开发效率,本次实验将OpenNI底层驱动Kinect,OpenCV初步处理OpenNI获得的原始数据,以及手势识别中的分割(因为本系统最后是开发手势识别的)这3个部分的功能单独做成类,以便以后移植和扩展。其实在前面已经有不少文章涉及到了这3部分的设计,比如说:Kinect+OpenNI学习笔记之3(获取kinect的数据并在Qt中显示的类的设计),Kinect+OpenNI学习笔记之11(OpenNI驱动kinect手势相关的类的设计),Kinect+OpenNI学习笔记之12(简单手势所表示的数字的识别)。这次是综合前面几次的设计,优化了下这几个类。 开发环境... 阅读全文
posted @ 2012-11-13 15:11 tornadomeet 阅读(5435) 评论(9) 推荐(0) 编辑
龙星计划机器学习笔记
摘要:前言 最近几周花了点时间学习了下今年暑假龙星计划的机器学习课程,具体的课程资料参考见附录。本课程选讲了写ML中的基本模型,同时还介绍了最近几年比较热门,比较新的算法,另外也将ML理论和实际问题结合了起来,比如将其应用在视觉上,web上的等。总之,虽然课程内容讲得不是特别细(毕竟只有那么几节课),但是内容还算比较新和比较全的。学完这些课后,收获还算不少的,至少了解到了自己哪方面的知识比较弱,下面是课程中做的一些简单笔记。 第1课 绪论课 机器学习中3个比不可少的元素,数据,模型和算法。现在数据来源比较广泛,每天都可以产生T级以上的数据。模型的话就是机器学习课程中需要研究的各种模型,算法... 阅读全文
posted @ 2012-11-12 15:51 tornadomeet 阅读(26773) 评论(6) 推荐(6) 编辑
基础学习笔记之opencv(16):grabcut使用例程
摘要:前言 grabcut是在graph cut基础上改进的一种图像分割算法,它同样是基于图割理论的,关于图割的简单介绍可以参考本人前面的博文:一些知识点的初步理解_8(Graph Cuts,ing...) 。稍微看了下grabcut方面的论文,论文中一般都是在graph cut上作改进,比如说引入了GMM模型等。同graph cut一样,在使用grabcut是也是需要人机交互的,即人工先给定一定区域的目标或者背景,然后送给grabcut算法来分割。通过实验发现,其分割效果一般般,且分割速度比较慢,一张普通大小的图片差不多需要1s左右的时间, 实验说明 因为在使用该算法的过程中需要人机交互... 阅读全文
posted @ 2012-11-09 21:14 tornadomeet 阅读(49786) 评论(9) 推荐(4) 编辑
总结系列_14(OpenCV2.4.3的新特征以及安装方法)
摘要:OpenCV2.4.3的新特征: 在经过4个月的等待后,OpenCV又发布了新版本了,此时的最新版本为OpenCV2.4.3,下载地址为:OpenCV-2.4.3.exe。 下面来看看opencv2.4.3有了哪些新变化,主要是参考网页http://code.opencv.org/projects/opencv/wiki/ChangeLog上面介绍的,稍加翻译了一些,因为对有些专有名词不熟,所以可能翻译得不妥。这次版本的变化内容有不少是来源于google summer code(GSoC),那个项目贡献了不少code。 多线程方面,后台增加许多通用的多线程并行处理算法,比如说基于... 阅读全文
posted @ 2012-11-07 21:35 tornadomeet 阅读(18087) 评论(7) 推荐(3) 编辑
算法设计和数据结构学习_1(一道堆排序作业题)
摘要:前言 这时上次学妹课程的一道作业题,我花了点时间做了下,其题目内容为: 试写一程序,可以对一二元树(binary)进行堆积排序(heap sort) (a)使用者可自己决定输入二元树的节点个数 (i)node数不超过50 (b)节点值由随机方式产生,并印出随机设值结果 (i)以时间复杂度O(n)的方式设值 (ii)假设值不可重复 (iii)最大值不可大于node数 (例如node数为9,因此最大值为9) (c)使用者可决定使用MAX-HEAP或者是MIN-HEAP来排序 (d)须将重建堆积得过程印出,以及最后输出排序结果 Sample Output: 后面在网上查了下... 阅读全文
posted @ 2012-11-07 16:11 tornadomeet 阅读(3407) 评论(0) 推荐(1) 编辑
一些知识点的初步理解_8(Graph Cuts,ing...)
摘要:Graph cuts是一种十分有用和流行的能量优化算法,在计算机视觉领域普遍应用于前背景分割(Image segmentation)、立体视觉(stereo vision)、抠图(Image matting)等。Graph Cuts理论最早是出现在流网络优化领域的,比如说水管网络,通信传输网络,城市车流网络等。此时的Graph Cuts算法是用来确定网络流的最小分割,即寻找一个容量最小的边的集合,去掉这个集合中的所有边就可以阻挡这个网络了。需要注意的是,通常所说的Graph Cuts算法是指的采用最大流-最小分割来优化的模型,其它的Graph Cutting算法一般用graph par... 阅读全文
posted @ 2012-11-06 18:48 tornadomeet 阅读(17710) 评论(5) 推荐(2) 编辑
一些知识点的初步理解_7(随机森林,ing...)
摘要:在机器学习中,随机森林由许多的决策树组成,因为这些决策树的形成采用了随机的方法,因此也叫做随机决策树。随机森林中的树之间是没有关联的。当测试数据进入随机森林时,其实就是让每一颗决策树进行分类,最后取所有决策树中分类结果最多的那类为最终的结果。因此随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。随机森林可以既可以处理属性为离散值的量,比如ID3算法,也可以处理属性为连续值的量,比如C4.5算法。另外,随机森林还可以用来进行无监督学习聚类和异常点检测。 随机森林由决策树组成,决策树实际上是将空间用超平面进行划分的一种方法,每次分割的时候,都将当前的空间一... 阅读全文
posted @ 2012-11-06 09:33 tornadomeet 阅读(32943) 评论(2) 推荐(2) 编辑
Kinect+OpenNI学习笔记之12(简单手势所表示的数字的识别)
摘要:前言 这篇文章是本人玩kinect时做的一个小实验,即不采用机器学习等类似AI的方法来做简单的手势数字识别,当然了,该识别的前提是基于本人前面已提取出手部的博文Robert Walter手部提取代码的分析的基础上进行的。由于是纯数学形状上来判别手势,所以只是做了个简单的0~5的数字识别系统,其手势的分割部分效果还不错(因为其核心代码是由OpenNI提供的),手势数字识别时容易受干扰,效果一般般,毕竟这只是个简单的实验。 实验基础 首先来看下本系统的流程图,如下所示: 其中轮廓的提取,多边形拟合曲线的求法,凸包集和凹陷集的求法都是采用opencv中自带的函数。手势数字的识别是利用... 阅读全文
posted @ 2012-11-04 00:18 tornadomeet 阅读(16700) 评论(58) 推荐(8) 编辑
Kinect+OpenNI学习笔记之11(OpenNI驱动kinect手势相关的类的设计)
摘要:前言 本文所设计的类主要是和人体的手部打交道的,与人体的检测,姿势校正,骨架跟踪没有关系,所以本次类的设计中是在前面的OpenNI+Kinect系列博文基础上去掉那些与手势无关的驱动,较小代码量负担。类中保留下来有手势识别,手部跟踪,以及手部跟踪的轨迹和多个手部的位置坐标等信息。本类的设计也开始慢慢遵循一些C/C++编程规范,这里采用的是google的编程规范。 本文测试设计出的类的功能是与博文不需要骨骼跟踪的人体多个手部分割一样,进行人体多个手部跟踪和分割。 开发环境:开发环境:QtCreator2.5.1+OpenNI1.5.4.0+Qt4.8.2+OpenCV2.4.2 Go... 阅读全文
posted @ 2012-11-01 22:48 tornadomeet 阅读(3364) 评论(0) 推荐(0) 编辑
Kinect+OpenNI学习笔记之10(不需要骨骼跟踪的人体多个手部分割)
摘要:前言 这篇文章主要是介绍多个手部的分割,是在前面的博文:不需要骨骼跟踪的人体手部分割的基础上稍加改进的。因为识别有的一个应用场合就是手势语言识别,而手势一般都需要人的2只手相配合完成,因此很有必要对人体的多个手部来进行分割。 实验说明 其实本文中使用的还是OpenNI自带的一些算法实现的,因为OpenNI中自己本身就对每个手部有一个UserID的标志,所以我们每当检测到一只手时就可以把手的位置连同他的ID一起存下来,后面进行手势分割时按照检测到的不同手势分别进行分割即可。其程序流程图如下所示: 下面是本次实验特别需要注意的一些细节。 OpenNI知识点总结: 一般情况下Open... 阅读全文
posted @ 2012-11-01 00:29 tornadomeet 阅读(6042) 评论(2) 推荐(1) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

阿萨德发斯蒂芬
点击右上角即可分享
微信分享提示