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! |