我正在尝试使用OpenCV进行实时手部检测和跟踪。我原本认为Haar级联分类器会产生不错的结果。在分别使用10,000和20,000张正负样本进行训练后,我获得了一个分类器XML文件。不幸的是,它只能在某些特定姿势下检测到手,这证明它只对刚性物体效果最佳。因此,我现在正在考虑采用另一种算法,在通过Haar分类器检测到手后进行跟踪。
我的问题是,如果我确保Haar分类器在某个帧、某个位置检测到手,有什么方法可以实现手部的稳健跟踪?
我在网上搜索了一番,了解到可以使用检测到的手部的光流、卡尔曼滤波或粒子滤波,但也发现了它们各自的缺点。
另外,如果我引入立体视觉,是否会有所帮助,因为我可能可以重建手部的3D模型。
回答:
你对Haar特征的结论是正确的——它们在处理非刚性物体时用处不大。
请查看以下使用肤色检测手部的论文。
以及这篇使用KLT特征在首次检测后跟踪手部的论文:
我认为立体摄像头对你的目标帮助不大,因为非刚性物体的3D重建并不简单,需要大量的创新和开发。然而,如果你想继续进行3D跟踪,可以查看此页面的手部姿态估计部分的论文。
编辑:还请查看这篇最新论文,它似乎取得了不错的结果。