我正在使用cvHaarDetectObjects
C函数来检测Android应用程序中的面部,但执行时间不够快,无法每秒处理一定数量的视频帧。所以,我正在考虑评论对我来说不必要的代码,例如我注意到可以注释掉的标志和内存分配语句有很多分支条件。对于从cvHaarDetectObjects
调用的函数,可以执行相同的操作。
之前有没有人尝试过这种优化?非常感谢任何帮助。
代码:
cascadeFile1 = (CvHaarClassifierCascade *) cvLoad(cascadeFace,0,0,0);
CvSeq *face = cvHaarDetectObjects(img1, cascadeFile1, storage,1.1, 3,CV_HAAR_DO_CANNY_PRUNING,cvSize(0,0));
答案 0 :(得分:0)
作为第一步,您应该尝试调整输入参数,因为这些对分类器的性能有很大影响。
您可以尝试:
scaleFactor
参数少量增加(例如0.1
步骤)min_size
和max_size
参数的值。这可以极大地影响算法需要执行的操作数量。其次,你可以发布你的实际参数和你的分析结果,这里的人肯定会提供更多关于改进的提示。
作为旁注:如果您想让算法正常运行,我认为评论分支条件不会对速度产生明显的影响。