hi…i have been searching and investigating about the possibility of speeding up opencv facedetection.
The main face detection part is done by the cvHaarDetectObjects function.going through that function most of it involved data structures and then at one point there was the use of cvIntegral
It seemed to be one important process that is done in the facedetection.
(is it the haar transform??..
)
Also the cvintegral function din seem clear to me,i tried googling about its working…during this i came across one good developer who has implemented the cvIntegral in a simple manner
hi i timed the cvintegral and cvcanny function together for the facedetect demo in opencv that uses the lena image…both the functions tooks only about 5 to 6 ms of the total avg 200ms detection time…
then i did a count for the cvrunhaardetectobjects for the same example and it is called almost 184254 times for the lena image…
as it iterates over the entire image with the cascades and makes the pattern check for a face it gets so many calls…
this could be made to run in cuda isnt it…multiple processors can do the cascade comparison at different parts of the image simultaneously to have a very good speed up isnt it…
anyone has your suggestions…Is it possible converting the cvRunHaarClassifierCascade to a parallel process…
Integral images are also known as summed-area tables (SATs), and are being used here to quickly sum all the values in a particular rectangle. You can compute SATs efficiently in CUDA using parallel prefix sum, there’s a demo of this in the CUDPP library: