cv::gpu::HoughCircles return different result than cv::HoughCircles (Bugfix #3447)
Description
I found two differences in algorithm.
First, gpu version doesn't sort centers, so stronger centers are often missed and weaker are found. In my project it causes about 10 times less correct results.
Second issue is the way of calculating votes for each radius.
I'm on a good way to solve it, but I would like to ask some questions before making a pull request.
Should I implement sorting directly or can I use one from #include<algorithm>?
Should I implement code returning the same results as CPU version as a different method (CV_HOUGH_GRADIENT_CPU_COMPATIBLE ?) for the standard funcion?
Associated revisions
Merge pull request #3447 from a-wi:Fill_ellipse_arc
History
Updated by Alexander Shishkov about 11 years ago
- Category set to gpu (cuda)
- Assignee changed from Łukasz Chechliński to Vladislav Vinogradov
Updated by Vladislav Vinogradov about 11 years ago
Hello, Łukasz Chechliński!
We would be very appreciated, if you submit such pull request.
Regarding your questions:
Should I implement sorting directly or can I use one from #include<algorithm>?
Of course, you can use sorting algorithm from other library (STL or Thrust).
Should I implement code returning the same results as CPU version as a different method (CV_HOUGH_GRADIENT_CPU_COMPATIBLE ?) for the standard funcion?
No, since your modification will make GPU implementation more compatible with CPU one.
- Assignee changed from Vladislav Vinogradov to Łukasz Chechliński
Updated by Anna Kogan about 11 years ago
- Affected version changed from 2.4.7 (latest release) to branch '2.4' (2.4-dev)
- Status changed from New to Open
Updated by Łukasz Chechliński about 11 years ago
Hello,
Sorry for delay, but I have had a lot of work.
The bugfix is quite complete now, I will make a pull request about 15th February (I am now away from computer with CUDA and modified code).
Modification will differ in some details from CPU one (radius accumulation method) but on my data it gives about 90% of compatibility.