Algorithmus um Bildausschnitt zu suchen

Von: , Frage gestellt am Di, 26. Jun 2007

Hallo,

angenommen, ich habe zwei ähnliche Bilder und möchte einen _beliebigen_ quadratischen Bildausschnitt, der sich im ersten Bild befindet, im zweiten Bild automatisch suchen lassen.
Kennt jemand ein Algorithmus für eine solche Bewertungsfunktion? Mir sind nur "Grauwertunterschied" und "Kreuzkorrelation" bekannt.

Danke!
MOD: E-Mail-Adresse auf Anfrage geändert

12 Antworten zu dieser Frage

  1. Antwort von nach 14 Minuten 0 hilfreich
    Re: Algorithmus um Bildausschnitt zu suchen

    Moien angenommen, ich habe zwei ähnliche Bilder und möchte einen
    _beliebigen_ quadratischen Bildausschnitt, der sich im ersten
    Bild befindet, im zweiten Bild automatisch suchen lassen.
    Wie sind die Bilder entstanden ? Wenn das normale Fotos sind geht man anders ran als bei künstlich erzeugten Bildern.

    Welche Transformationen können die 2 Bilder durchgemacht haben ? Von unterschiedlichen Stellen aufgenommen oder nur Rauschen oder jpg-Artefakte...? Kennt jemand ein Algorithmus für eine solche
    Bewertungsfunktion?
    Dutzende. Aber um was geht es genau?

    cu

    • Antwort von nach 53 Minuten 0 hilfreich
      Re^2: Algorithmus um Bildausschnitt zu suchen

      Hi Pumpkin, Wie sind die Bilder entstanden ? Wenn das normale Fotos sind
      geht man anders ran als bei künstlich erzeugten Bildern.
      Es handelt sich um zwei ganz normale RGB Bilder, die dasselbe Motiv aus einer leicht unterschiedlichen Perspektive zeigen.
      Wie ich schon Jo geantwort habe, ich brauche nur einige Algorithmen-Namen, keinen konkreten Implementierungen. Sollten diese nicht optimal geeignet sein, wäre das auch nicht weiter tragisch.

      Gruß,
      Mac
      MOD: E-Mail-Adresse auf Anfrage geändert

      • Antwort von nach 4 Stunden 1 hilfreich
        Re^3: Algorithmus um Bildausschnitt zu suchen

        Moien Es handelt sich um zwei ganz normale RGB Bilder, die dasselbe
        Motiv aus einer leicht unterschiedlichen Perspektive zeigen.
        Da würde ich ein 0 order IDM (image distortion model) drauf ansetzten und die Abweichung von der 1:1 Abbildung als Maß für die Übereinstimmung nehmen. Evtl. könnte man was mit 1 order IDM machen wenn die Perspektiven immer nur um eine Achse gedreht sind. 2 order IDMs (genauer 2DW) könnte man nur machen wenn die Bilder sehr klein sind (Laufzeit).

        Dann gibt es Schlüsselpunkte wie SIFT, SURF & Co. Arbeiten von Haus aus aber nicht auf Rechtecken sondern mehr golbal. Kann man aber clever einschränken.

        hab Spass.

        • Antwort von nach 15 Stunden 0 hilfreich
          Re^4: Algorithmus um Bildausschnitt zu suchen

          Huhu, Da würde ich ein 0 order IDM (image distortion model) ...
          Kannst du mir als Laien in einfachen Worten das Prinzip erklären, nach dem die Algorithmen arbeiten?

          Ich finde das faszinierend; so wie ich das verstanden habe, finden die wohl auch (beliebig) verzerrte und gedrehte Ausschnitte?

          LG
          Jochen

          • Antwort von nach 16 Stunden 1 hilfreich
            Re^5: Algorithmus um Bildausschnitt zu suchen

            Moien Da würde ich ein 0 order IDM (image distortion model) ...
            Kannst du mir als Laien in einfachen Worten das Prinzip
            erklären, nach dem die Algorithmen arbeiten?

            Ich finde das faszinierend; so wie ich das verstanden habe,
            finden die wohl auch (beliebig) verzerrte und gedrehte
            Ausschnitte?
            *g* Die Dinger sind wesentlich doofer als man auf den ersten Schlag denkt.

            Eine IDM 0'ter Ordnung baut nur eine Zuordnung Koordinaten Bild 1 <-> Koordinaten Bild 2 auf. Da wird eine grosse Tabelle angelegt mit allen Koordinaten des 2. Bild und ihren Zuordnungen im 1. Bild. Also in Code für Grauwertbilder:

            int bild_1[][];
            int bild_2[][];
            int ZuordnungX[][];
            int ZuordnungY[][];

            Pixel x,y in der IDM:
            bild_1[ZuordnungX[x][y]][ZuordnungY[x][y]];

            Gefüllt werden die Tabellen auch sehr einfach (für jedes Pixel): man nimm den Farbwert des Pixel im Bild 2 und sucht nach einem Pixel gleicher/ähnlicher Farbe im Bild 1. Die Koordianten des Pixel aus Bild 1 trägt man in der Tabelle für Bild 2 ein.

            Irgendwann gehen einem die Pixel mit ähnlicher Farbe aus. Wenn das öfter vorkommt sieht das Resultat der IDM dem Bild 2 unähnlich. Wenn nicht so oft vorkommt sehen sich IDM und Bild 2 sehr ähnlich.

            Das kann man jetzt mit Randbedingungen belegen. Je nach Bedingung kommt man zu 1'ter und 2'ter Ordnung. 2'ter Ordung bedeutet: es werden keine Pixel aus ihrem Kontext geholt. 2 in Bild 1 benachbarte Pixel sind auch im IDM Nachbarn. Nachteil: der Algo ist NP-vollständig.

            Die beste 0.5'ter die ich kenne nimmt nicht den Farbwert von einem Pixel sondern die Ableitung der 8 Pixel rundum nach X und nach Y (16 Werte). Diese Vektoren vergleicht man mit der euklidischen Distanz. Kommt sehr nahe an 2'ter Ordnung ran, ist aber sauschnell zu rechnen.

            IDM ist ein lustiges Thema, aber da braut echt jeder seine eigene Suppe.

            cu

        • Antwort von nach einem Tag 0 hilfreich
          Re^4: Algorithmus um Bildausschnitt zu suchen

          Hallo pumpkin,

          erstmal danke für deine Antwort. Da würde ich ein 0 order IDM (image distortion model) drauf
          ansetzten und die Abweichung von der 1:1 Abbildung als Maß für
          die Übereinstimmung nehmen. Evtl. könnte man was mit 1 order
          IDM machen wenn die Perspektiven immer nur um eine Achse
          gedreht sind. 2 order IDMs (genauer 2DW) könnte man nur machen
          wenn die Bilder sehr klein sind (Laufzeit).

          Dann gibt es Schlüsselpunkte wie SIFT, SURF & Co. Arbeiten von
          Haus aus aber nicht auf Rechtecken sondern mehr golbal. Kann
          man aber clever einschränken.
          Könntest du mir bitte noch ganz kurz sagen, wie sich die Algorithmen IDM, SIFT und SURF bzgl. Performance und und Treffergenauigkeit verhalten? Nur ganz grob (gut, mittel, schlecht) für den Fall zwei relativ ähnlicher Bilder. Haben sie vielleicht sonst noch einen entscheidenden Vor- oder Nachteil?

          Danke,
          Mac
          MOD: E-Mail-Adresse auf Anfrage geändert

          • Antwort von nach einem Tag 0 hilfreich
            Re^5: Algorithmus um Bildausschnitt zu suchen

            Moien Könntest du mir bitte noch ganz kurz sagen, wie sich die
            Algorithmen IDM, SIFT und SURF bzgl. Performance und und
            Treffergenauigkeit verhalten?
            Wann must den Vortrag halten und gehst du immer so ran ?

            cu

            • Antwort von nach einem Tag 0 hilfreich
              Re^6: Algorithmus um Bildausschnitt zu suchen

              Hi, Wann must den Vortrag halten und gehst du immer so ran ?
              Das ist eine 1 Punkt Aufgabe einer Hausaufgabe für die Uni. Für den einen Punkt hänge ich mich nicht voll in dieses Thema rein (zumal die anderen Aufgaben viel schwieriger sind).

              Gruß,
              Mac
              MOD: E-Mail-Adresse auf Anfrage geändert

            • Antwort von nach einem Tag 1 hilfreich
              Re^7: Algorithmus um Bildausschnitt zu suchen

              Moien Für den einen Punkt hänge ich mich nicht voll in dieses Thema
              rein (zumal die anderen Aufgaben viel schwieriger sind).
              SIFT und SURF sind Varianten der gleichen Idee. SIFT ist älter, langsamer und 10-15% genauer. SURF ist 1-2 Grössenordnungen schneller und halt 10% ungenauer.

              IDM 0 order ohne besondere Zusätze ist etwa 50% schneller als SURF. Allerdings sehr viel ungenauer. Mit Zusätzen entspricht die Geschwindigkeit SURF, die Genauigkeit erreicht bei der Anwendung 80% von SURF.

              cu



Keine passende Antwort gefunden? Jetzt eigene Frage stellen!