Boj*_*oeb 54 opencv cascade face-detection haar-wavelet viola-jones
我一直在OpenCV(开源计算机视觉库)中进行面部检测实验,发现可以使用Haar级联来检测面部,因为其中有几个提供了OpenCV.但是,我注意到还有几个LBP级联.根据OpenCV人脸检测文档,经过一些研究,我发现LBP代表局部二进制模式,也可以用于人脸检测.
我想知道的是哪个更好?哪一个表现得更快,哪一个更准确?似乎LBP表现得更快,但我也不是100%肯定.谢谢.
Sam*_*Sam 63
LBP更快(快几倍)但不太准确.(比哈尔少10-20%).
如果你想检测嵌入式系统上的面,我认为LBP是选择,因为它以整数进行所有计算.哈尔使用浮动,这是嵌入式/移动的杀手.
NoU*_*ion 25
可以训练LBP级联与Haar级联执行相似(或更好),但是开箱即用,Haar级联速度大约慢3倍,并且根据您的数据,准确检测到位置的大约1-2%更好一张脸.鉴于面部检测可以在95%+精度范围内操作,这种精度的提高非常显着.
以下是使用MUCT数据集时的一些结果.
当在地面实况和OpenCV检测到的坐标之间存在至少50%的重叠时,注意到正确的检测.
Cascade:haarcascade_frontalface_alt2.xml
Datafile:muct.csv
|---------------------------------------------------|
| Hits | Misses | False Detects | Multi-hit |
| 3635 | 55 | 63 | 5 |
|---------------------------------------------------|
Time:4m2.060s
Run Code Online (Sandbox Code Playgroud)
VS:
Cascade:lbpcascade_frontalface.xml
Datafile:muct.csv
|---------------------------------------------------|
| Hits | Misses | False Detects | Multi-hit |
| 3569 | 106 | 77 | 3 |
|---------------------------------------------------|
Time:1m12.511s
Run Code Online (Sandbox Code Playgroud)
sam*_*n13 13
我个人认为,您应该仔细研究LBP的所有检测相关任务,因为LBP培训可能需要几分钟,而HAAR培训可能需要数天才能获得相同的培训数据集和参数.
您提出的问题将具有不同的性能,具体取决于被检测物的类型,训练设置和检测期间使用的参数以及测试级联的标准.
HAAR和LBP级联的准确性取决于用于训练它们的数据集(正样本和负样本)以及训练期间使用的参数.
根据Lienhart等人,2002年,在面部检测的情况下:
-numStages,-maxDepth和-maxWeakCount参数应足够高,以达到预期的-minHitRate和-maxFalseAlarmRate.此外,detectMultiScale()中使用的标志会在给定硬件配置上产生速度和精度的急剧变化.
为了测试级联,你应该确定数据集和k-fold 交叉验证等方法.
| 归档时间: |
|
| 查看次数: |
48951 次 |
| 最近记录: |