OpenCV中文网站

 找回密码
 立即注册
搜索
热搜: 安装 配置
查看: 8548|回复: 7

关于AdaBoost人脸检测的总结与问题,欢迎讨论

[复制链接]
发表于 2008-8-1 18:20:26 | 显示全部楼层 |阅读模式
大家好,我是新手,最近开始研究视频的 object recognition问题,现在研究的是人手识别,看了一些论文。
人脸识别方面似乎现在已经找到了效率、精度的契合点,就是appearanced based methods,adamboost的方法在人脸识别效果很好。而手势有些不同,目前还在看。有对这方面有兴趣的可以一起讨论,我的QQ:65105087,如果有这方面的讨论群,非常感激大家能告诉我。我把我看OpenCV里面的Adaboost的一些小总结和问题说一下,呵呵,一些方面可能非常弱智,我是初学者希望大家指正。如果大家有好的资源,也恳请大家都来共享。

数据说明:
人脸数据,我是搜了好长时间才找到的,主要分三个部分。
1. <!-- m --><a class="postlink" href="http://opensvn.csie.org/sonots/SciSoftware/haartraining/">http://opensvn.csie.org/sonots/SciSoftw ... rtraining/</a><!-- m -->
Sorry,我忘记是从什么地方找到的这个地址了,这里面有2000多个negatives图片,全是剔出人脸的(有几张是有人手),里面还有一些作者的其他资料,我没有仔细研究
2.CMU测试图片 用来测试人脸的,许多论文都是用这个
<!-- m --><a class="postlink" href="http://vasc.ri.cmu.edu/idb/html/face/frontal_images/">http://vasc.ri.cmu.edu/idb/html/face/frontal_images/</a><!-- m -->
3. 这里面有一个train data:2000多张人脸数据,4000多张negatives数据,全部19*19的pgm格式;还有一个test data:几百张人脸,几千张negatives吧
<!-- m --><a class="postlink" href="http://cbcl.mit.edu/cbcl/software-datasets/FaceData2.html">http://cbcl.mit.edu/cbcl/software-datas ... Data2.html</a><!-- m -->
如果有人有手势图片库的链接,如能共享,感激不尽。

我就是按照How-to build a cascade of boosted classifiers based on Haar-like features这个文档里面的说明进行人脸识别的实验。
(一)
positive的数据格式按照说明写:
图片名 物体个数 位置坐标
最开始碰到一个很白痴的问题,就是我用的都是19*19的标准图片,全部是人脸,所以没注意说明,就只写了图片名,结果createsamples的时候老出错。后来仔细看了说明,每个文件后面都加上了 1 0 0 18 18才可以。
(二)训练,我尝试训练了几次,因为到底10个左右时间太长不得不中止。正好一个哥们回家了,现在正在另一台机器上训练。之前训练过一个小数据量的手势图片,但是识别得一塌糊涂,才决定先试验一下人手的。
这里面的问题比较多,我也看了大家在其他帖子里面的讨论,我的疑问大概有这么几个:
1.训练数据多少个为宜。看大家的讨论,又说 Pos:Neg = 7:3 的,有说 Pos:Neg = 1:5的;然后讨论说 随着样本数目的不同,分类器的性能会有影响,并不是数据越多越好。很迷糊。
2.How-to 那个手册里面提及 Simply replaces0=36, s1=12, s2=18 and s3=24 with s0=s1=s2=s3=0 and rebuild. 但是我到代码里面去看 发现最开始是这么初始化成 36 12 18 24
但紧接着就全部被赋值成1了,那修改还有什么意思?莫非在赋值成1后面改???为什么加上赋值成1那一段呢?
3.对训练过程中的一些数据不是很明白,这是我训练的一个小数据的过程数据,希望高手能给详解一下:
Parent node: 3

*** 1 cluster ***
POS: 41 41 1.000000
NEG: 2183 0.00803504
BACKGROUND PROCESSING TIME: 1.28
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
...............................
Precalculation time: 12.97
+----+----+-+---------+---------+---------+---------+
|  N |%SMP|F|  ST.THR |    HR   |    FA   | EXP. ERR|
+----+----+-+---------+---------+---------+---------+
|   1|100%|-|-0.922624| 1.000000| 1.000000| 0.387590|
+----+----+-+---------+---------+---------+---------+
|   2|100%|+|-1.232955| 1.000000| 1.000000| 0.387590|
+----+----+-+---------+---------+---------+---------+
|   3|100%|-|-0.382619| 1.000000| 0.424187| 0.138040|
+----+----+-+---------+---------+---------+---------+
Stage training time: 7.73
Number of used features: 3

Parent node: 3
Chosen number of splits: 0

Total number of splits: 0

Tree Classifier
Stage
+---+---+---+---+---+
|  0|  1|  2|  3|  4|
+---+---+---+---+---+

   0---1---2---3---4
就是Pos,Neg后面数字代表的是当前要处理的数据么?还有那个rate都是怎么算的?那个表格里面的数值大概都是什么意思呢?还有那个Number of used features。
我看了Adaboost的方法,但是跟那个方法对应不起来,读代码又太麻烦。
4.训练后的结果都是什么意思呢?举例
3
1
2
0 2 4 12 0 -1
2 2 2 12 0 2
haar_x2
-1.601996e-002 0 -1
6.756624e-001 -8.871637e-001
1
3
4 9 20 14 0 -1
14 9 10 7 0 2
4 16 10 7 0 2
haar_x2_y2
1.466157e-001 0 -1
-3.342508e-001 7.576892e-001
1
2
2 0 10 4 0 -1
2 2 10 2 0 2
haar_y2
-2.837038e-002 0 -1
6.231364e-001 -7.046569e-001
-5.982782e-001

2
-1

5.还有,大家平时训练都用多长时间,训练时间跟样本的大致关系? 我的机器是 酷睿2 2.4GHZ, 2G内存,配置不算低,看有个哥们说训练了8天,我崩溃了....

谢谢大家,能讨论以上问题和提供资料,感激不尽感激不尽。
回复

使用道具 举报

发表于 2008-8-5 09:38:50 | 显示全部楼层

关于AdaBoost人脸检测的总结与问题,欢迎讨论

正样本越多越好,负样本一般来说多一些也好吧。
样本多了,训练时间还是很长的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-5 21:02:42 | 显示全部楼层

关于AdaBoost人脸检测的总结与问题,欢迎讨论

谢谢LS,负样本和正样本大小不一样的时候个数应该怎么算呢?

我看说明里面说,只要漏检率在5e-6就会自动停止,可我训练的时候一直训练到1e-8都还在算?...

有什么办法能把文件夹转成xml么?
回复 支持 反对

使用道具 举报

发表于 2008-9-16 10:20:46 | 显示全部楼层

关于AdaBoost人脸检测的总结与问题,欢迎讨论

我做老出问题就是,正样本经过createsamples程序后,如果太大,比如大于3M,在haartraining.exe中,就会弹出错误,不能训练。然后我就减少正样本数一直到2000张,再createsamples.exe后,是1.5M,这样就可以训练了。。
那想增加正样本数,还有什么方法没有呢。。。
回复 支持 反对

使用道具 举报

发表于 2008-9-16 14:33:43 | 显示全部楼层

关于AdaBoost人脸检测的总结与问题,欢迎讨论

问个更傻的问题,如果直接运行OPENCV里BIN的createsample,样本应该放在哪了。。。对样本文件名有没有什么统一的规定呢?

我是个菜鸟,都不知道怎么找到底层代码!!!
回复 支持 反对

使用道具 举报

发表于 2008-9-19 11:04:21 | 显示全部楼层

关于AdaBoost人脸检测的总结与问题,欢迎讨论

How-to build a cascade of boosted classifiers based on Haar-like features

看看这个就知道了。
回复 支持 反对

使用道具 举报

发表于 2008-9-21 16:28:57 | 显示全部楼层

关于AdaBoost人脸检测的总结与问题,欢迎讨论

我也是新手,不会训练呀,有谁可以教教我呀,不胜感激!
回复 支持 反对

使用道具 举报

发表于 2008-11-18 11:02:45 | 显示全部楼层

关于AdaBoost人脸检测的总结与问题,欢迎讨论

刚学一头雾水,能不能把如何训练写详细点啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|OpenCV中文网站

GMT+8, 2024-4-29 22:58 , Processed in 0.010633 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表