iphone - 使用 OpenCV 和 LBP 在 iPhone 上进行人脸检测

标签 iphone xcode optimization opencv face-detection

我已经成功地使用 OpenCV-2.1.0 (cvHaarDetectObjects) 中的 Haar 算法检测 iOS 4.2 的 Objective-C 项目中的图片和视频帧中的人脸。但是,在大多数情况下,iPhone 4 上视频帧的处理时间仍然需要大约 1-2 秒。下面给出了我正在使用的代码示例:

    NSString *path = [[NSBundle mainBundle] pathForResource:@"haarcascade_frontalface_alt" ofType:@"xml"];

    CvHaarClassifierCascade* cascade = 
            (CvHaarClassifierCascade*)cvLoad([path cStringUsingEncoding:NSASCIIStringEncoding], 
                                             NULL, NULL, NULL);
    CvMemStorage* storage = cvCreateMemStorage(0);

    CvSeq* faces = cvHaarDetectObjects(small_image, cascade, storage, 1.2, 0, 
                                       0 |CV_HAAR_DO_ROUGH_SEARCH |CV_HAAR_FIND_BIGGEST_OBJECT, cvSize(30, 30));

我尝试了多种优化技术,包括 ROI 的智能应用,以及使用整数而不是 float 。然而,这些更改花费了大量时间,但收效甚微。

有人向我建议使用 LBP 可以显着减少人脸检测时间。我一直在试验和寻找实现 LBP 的方法,但无济于事。在 opencv 中,有一个级联文件 (lbpcascade_frontalface.xml),但我找不到任何关于如何使用它的建议。

任何帮助,包括其他优化技术和我在搜索中可能遗漏的 Google 链接,我们将不胜感激。检测的准确性并不重要,只要它合理有效即可。

谢谢!

最佳答案

尝试使用 Instruments以确定应用程序中的性能瓶颈所在。它们很可能与您想象的不同。

另外,查看 this性能指南。

关于iphone - 使用 OpenCV 和 LBP 在 iPhone 上进行人脸检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4921260/

相关文章:

iphone - 使用 IB 将分段控件添加到导航栏

iphone - sqlite 插入在 xcode 模拟器上工作但不在 iphone 上工作

ios - 从 NIB 动态创建 UIView 的多个实例

ios - 捕捉操作系统警报的符号断点

algorithm - 最小化分发糖果的步骤

ios - iPhone 如何在按下音量键时隐藏音量覆盖

iphone:界面更改时搜索栏删除背景

ios - 显示使用 Cocoapods 的 Xcode 项目的所有原生 iOS 依赖项/框架

c# - 编译器优化在循环期间保持静态的属性

c++ - 在 VS2015 中发布 x64 配置时的不同结果