我正在使用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));
最佳答案
第一步,您应该尝试调整输入参数,因为这些参数对分类器的性能影响很大。
您可以尝试:
scaleFactor
参数(例如0.1
步骤)min_size
和max_size
参数的值。这会极大地影响算法需要执行的操作数量。 其次,您可以发布您的实际参数和分析结果,周围的人肯定可以提供一些进一步改进的提示。
附带说明:如果您想让算法正常运行,我认为注释掉分支条件不会对速度产生明显的影响。