Ask Your Question

MarcusCola's profile - activity

2013-09-24 08:39:16 -0600 received badge  Nice Answer (source)
2013-09-24 08:01:16 -0600 received badge  Teacher (source)
2013-09-24 07:53:45 -0600 received badge  Self-Learner (source)
2013-09-24 07:46:21 -0600 answered a question OpenCV Hough on GPU is unstable

Thansk to Vladislav Vinogradov, i think this could be useful:

HoughCircles performs filtration of detected circles according to min_dist parameter. CPU implementation of HoughCircles is single-threaded, it returns circles in the same order for all launches.

GPU implementation is multi-threaded, and the order of detected circles can be different for different launches.

That's why the filtration stage in GPU implementation can remove different circles for different launches. And it can affect to the total number of detected circles. For example, for 3 circles in one line A B C we can remove central circle B or remove A and C.

If you need to have the same results for all launches, you can disable filtration (set min_dist to zero), sort the output array of detected circles and perform your own filtration.

2013-09-20 02:00:33 -0600 commented question OpenCV Hough on GPU is unstable

No response from anyone in code.opencv.org . Suggestions?

2013-09-19 08:21:05 -0600 commented question OpenCV Hough on GPU is unstable

Ok StevenPuttemans, i have done what you have suggested! I'm waiting for responses. It is incredible!

2013-09-19 04:54:46 -0600 received badge  Editor (source)
2013-09-19 04:33:54 -0600 asked a question OpenCV Hough on GPU is unstable

It seems there is a problem with OpenCV Hough implementation on GPU. Application: apply gpu::Hough on a video: it counts 664 objects. Close Application. Restart the same application on the same video: it counts 691 objects. Close Application. Restart the same application on the same video: it counts 667 objects.

Using Opencv Hough on CPU the count is always 662 objects. How is it possible? Thank you

2013-09-17 01:54:19 -0600 answered a question GPU HOUGH in multithreading applications

THE PROBLEM: i have more CPU thread; each thread has to use OpneCV GPU function in real time. So GPU has to create more context and switch from one context to another one, before calling OpenCV function.

SOLUTION: Manually create context (cuCtxCreate) for each thread, pop the previous one from the stack and push the new context. Execute function on GPU. Pop current context.

At the end, delete context. For all this function (create, pop, push and destroy) use CUDA routines.

2013-09-11 04:00:16 -0600 commented answer GPU HOUGH in multithreading applications

Hi Vladislav, thank you for you replay. I have not been too clear, the problem is: i have more CPU thread; each thread has to use GPU in real time. So GPU has to create more context and switch from one context to another one. But it seems that this is not done automatically and the program crashes if more CPU thread use GPU OpenCV function.

2013-09-11 03:55:01 -0600 received badge  Supporter (source)
2013-09-10 04:21:36 -0600 asked a question GPU HOUGH in multithreading applications

Hi guys, well done! OpenCV is fantastic! I say this because i'm working with other image processing library and OpenCV is the top!

But i wonder, why doesn't GPU HoughCircle function support use for GPU Stream?

I'm working on a multithreading Qt project and i need to start more CPU thread on one GPU in order to perform Hough Transformation. But, without stream this is not possible! Is it right!?

Thanks a lot! Have a good job