Was ist mit Orb-Feature-Matches zu tun?

Ich arbeite in der Anwendung zur Logoerkennung inOpenCV aufAndroid. Ich habe viele Suchanfragen und finde, dass zu diesem Zweck die meiste Zeit die Feature-Erkennung verwendet wird.

Also habe ich verschiedene Detektoren und Matcher gesucht und ausprobiert und schließlich einen Code geschrieben, der gut funktioniertORBFeatureDetector undBruteForce-Matcher :

private DescriptorMatcher BruteMatcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE_HAMMING);

Ich habe die Anzahl der Übereinstimmungen und die Mindestentfernung sowie die Anzahl der guten Übereinstimmungen wie folgt gefunden:

 List<DMatch> matches = mat_of_matches.toList();
        double max_dist =0, min_dist= 100;
        int row_count = matches.size();
        for(int i=0;i<row_count;i++)
        {
            double dist = matches.get(i).distance;
            //System.out.println("dist="+dist);
            if(dist<min_dist)min_dist = dist;
            if(dist>max_dist)max_dist = dist;


        }


       // Log.e("Max_dist,Min_dist", "Max="+max_dist+", Min="+min_dist);
        List<DMatch> good_matches = new ArrayList<DMatch>();

        double good_dist = 3*min_dist;

        for(int i =0;i<row_count; i++)
        {

            if(matches.get(i).distance<good_dist)
            {

                good_matches.add(matches.get(i));
                //Log.e("good_matches", "good_match_id="+matches.get(i).trainIdx);

            }

        }

, und schließlich habe ich eine Schwelle wie diese erstellt:

if(row_count>490&&good_matches.size()<60&&min_dist<12)logo_detected=true;
else logo_detected=false;

Das Problem ist, dass bei vielen anderen Dingen, auf die ebenfalls im Schwellenwert zugegriffen wird, die Anwendung immer wieder sagt, dass das Logo erkannt wird.

Ich möchte wissen, was ich mit erkannten übereinstimmenden Funktionen tun soll. Ist es das Richtige (Schwellenwert)? Oder muss ich etwas anderes tun, um das Logo zu erkennen?

Bitte helfen Sie, danke.

Antworten auf die Frage(0)

Ihre Antwort auf die Frage