OpenCV中文网站

 找回密码
 立即注册
搜索
热搜: 安装 配置
查看: 3084|回复: 5

多线程调用Opencv的CascadeClassifier_GPU分类器进行人脸检测出错

[复制链接]
发表于 2018-6-6 12:25:56 | 显示全部楼层 |阅读模式
本人现在用Opencv的CascadeClassifier_GPU分类器进行人脸识别,用到了GPU进行加速,单线程识别一路视频图像时没有任何错误,但是如果多线程调用分类器去识别多路视频信号,就会出现这种错误:OpenCV Error: Gpu API call (NCV Assertion Failed: NcvStat=28 ...;我根据错误信息去查找,发现提示错误信息是:NCV_WARNING_HAAR_DETECTIONS_VECTOR_OVERFLOW,即Haar向量的溢出错误。现在问题找了许久,还是解决不了,希望各位大佬帮帮忙,小弟不胜感激


回复

使用道具 举报

 楼主| 发表于 2018-6-14 09:43:56 | 显示全部楼层
没人吗。。。。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

发表于 2018-6-14 15:42:20 | 显示全部楼层
我遇到了同样的问题 DetectMultiScale不是线程安全的,你解决了吗楼猪
回复 支持 反对

使用道具 举报

发表于 2018-6-14 16:20:07 | 显示全部楼层
楼猪我暂时解决了这个问题:调用CudaCascadeClassifier类的DetectMultiScale方法时候加锁,当一个线程访问这个方法时候关门,执行完开门,当另一个线程过来就可以了。这样有个弊端:貌似最耗时的DetectMultiScale方法又回到了单线程,速度慢,暂时不报错,先这样了,楼猪有好的办法可以给我说一下,我是在c#下使用的EMGU
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-20 14:27:42 | 显示全部楼层
chaego 发表于 2018-6-14 15:42
我遇到了同样的问题 DetectMultiScale不是线程安全的,你解决了吗楼猪

木有解决,估计只能单线程运行了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-20 14:33:01 | 显示全部楼层
chaego 发表于 2018-6-14 16:20
楼猪我暂时解决了这个问题:调用CudaCascadeClassifier类的DetectMultiScale方法时候加锁,当一个线程访问 ...

我看了opencv3.x的版本,看到DetectMultiScale方法有cuda::stream流的导入,这个参数opencv2.x版本是没有的,3.x版本我估计可以多线程调用,但是现在还没有进行测试,不知道能不能
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|OpenCV中文网站

GMT+8, 2024-4-28 13:12 , Processed in 0.009567 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表