我正在使用cvHaarDetectObjects C函数来检测我的安卓应用程序中的人脸,但是执行时间不够快,无法处理每秒一定数量的视频帧。因此,我正在考虑注释掉对我来说不必要的代码,例如,我注意到了许多可以注释掉的标志和内存分配语句的分支条件。对于从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));发布于 2012-07-16 23:15:16
作为第一步,您应该尝试调整输入参数,因为这些参数对分类器的性能有很大影响。
您可以尝试:
将源图像的分辨率降低到一个合理的值,并以较小的幅度增加scaleFactor参数(例如,请根据您的分辨率、摄像机视野和面部距离定义min_size和max_size参数的值)。这会极大地影响算法需要执行的操作数。
其次,你可以发布你的实际参数和分析结果,周围的人肯定会给出更多关于需要改进的提示。
作为附注:如果你想让算法继续工作,我不认为注释掉分支条件会在速度上产生显着的差异。
https://stackoverflow.com/questions/11469688
复制相似问题