Ask Your Question

xsender's profile - activity

2012-08-27 09:07:08 -0600 received badge  Nice Question (source)
2012-08-20 08:04:20 -0600 received badge  Scholar (source)
2012-08-20 07:58:04 -0600 commented answer How to recognize detection fact

Thank you.

Finally I slightly modify algorithm for homography checking - determinant value must be more then 0.1:

dt = abs(determinant(homogramma));

if(dt < 3 && dt > 0.1){

SVD::compute(homogramma, w);

svd_expr = w.at<double>(0,0) / w.at<double>(0,2);

homogramma_is_good = svd_expr < 1700000;

}

afterall I check correspondence by matchTemplate

Mat tmp_mat(homogramma.inv(DECOMP_SVD));

Mat tmp_img;

Mat compare_res;

warpPerspective(tested_img, tmp_img, tmp_mat, Size(etalon.cols, etalon.rows));

matchTemplate(etalon, tmp_img, compare_res, CV_TM_CCOEFF_NORMED);

2012-08-20 07:28:27 -0600 received badge  Supporter (source)
2012-08-17 03:54:53 -0600 commented question How to recognize detection fact

Another problem is to find the limits for SVD and determinant to check the matching. For now I use values, which founded from the set of experiments. Maybe there is some way to get them from object image size/quality or something else?

2012-08-17 03:54:11 -0600 commented question How to recognize detection fact

I think i can`t definitely determine if we found image by counting matches. That's why I didn't test it. If you can link me to the good method how it must be done - it would be great. Or maybe you know some other good methods without using homography?

For testing I use two methods: 1) visual: I draw rectangle around matched object and if it's proportions are the same as of source image rectangle - object is found. For drawing I use homography. 2) programmatically: as I described above by checking SVD and determinant.

But when I tested this on rotated image - visual rectangle is good, but program checking fails: determinant is good, but SVD is bad.

For testing I used different descriptors and detectors. For example, ORB + ORB and ORB + FREAK. Problem is found in both variants.

2012-08-16 04:18:40 -0600 commented question How to recognize detection fact
2012-08-15 03:33:15 -0600 commented question How to recognize detection fact

SVD::compute(homogramma, w, u, vt);

expr = w.at<double>(0,0) / w.at<double>(0,2);

dt = determinant(homogramma);

homogramma_is_good = abs(dt)<2 && expr<600000;

2012-08-14 10:54:36 -0600 received badge  Student (source)
2012-08-14 10:19:57 -0600 asked a question How to recognize detection fact

Hello everyone. I'm new with opencv. I read tutorials and forums, related to opencv, but still have some problem...

My task is to find object on the photo using Keypoint descriptors scheme (Feature Detection/ Descriptor Extraction / Matcher). How can I determine that object is found on the image?

For now, I found method of calculating SVD ratio of singular values of homography. But when the image is rotated close to 180 degrees clockwise it's singular ratio becomes very large. Is there any way to fix this?

Maybe this task has other standard solution?

Thanks in advance!