opencv detectMultiScale haarcascade_eye 在第一张图像上需要几秒钟

Posted

技术标签:

【中文标题】opencv detectMultiScale haarcascade_eye 在第一张图像上需要几秒钟【英文标题】:opencv detectMultiScale haarcascade_eye takes a couple of seconds on first image 【发布时间】:2020-09-14 12:24:08 【问题描述】:
eyes_cascade.detectMultiScale(cropedImg, eyes_, 1.2, 3);

在 detectMultiScale 上运行裁剪的面部图像以检测眼睛时,第一张图像至少需要 1-2 秒,下一张传入图像每张需要约 30 毫秒。 裁剪后的图像的大小总是不同的,一个可能的情况是 352x528。

延迟的原因是什么,是否有办法在一开始就对其进行初始化以克服初始延迟?

使用 OpenCV 3.4.5

【问题讨论】:

可以更好的分享剩下的代码 可能与第一次调用共享库的加载时间有关吗?这类库会发生一些事情 【参考方案1】:

回答我自己的问题

detectMultiScale(cropedImg, eyes_, 1.2, 2, 0 | cv::CASCADE_FIND_BIGGEST_OBJECT | cv::CASCADE_DO_ROUGH_SEARCH | cv::CASCADE_DO_CANNY_PRUNING | cv::CASCADE_SCALE_IMAGE);

传递标志减少了延迟并提高了应用程序的性能。

【讨论】:

以上是关于opencv detectMultiScale haarcascade_eye 在第一张图像上需要几秒钟的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 错误:调用 detectMultiScale 时断言失败

OpenCV predict() 与 detectMultiScale()

OpenCV:如何将 HOGDescriptor::detectMultiScale() 与自定义 SVM 一起使用?

opencv detectMultiScale()

opencv:foundWeights 在虚拟 void detectMultiScale(..) 中是啥意思

cv::CascadeClassifier::detectMultiScale 中的断言失败 (!empty())