Kann der Gabor-Filter zur Erkennung von Dellen in Autos verwendet werden?

  • Ich untersuche Gabor-Filter zur Erkennung von Dellen in Autos. Ich weiß, dass Gabor-Filter für die Mustererkennung, Fingerabdruckerkennung usw. weit verbreitet waren.

    Ich habe ein Bild.

    Kann der Gabor-Filter zur Erkennung von Dellen in Autos verwendet werden?

    Verwenden von Code Auf der MathWorks File Exchange-Site erhielt ich die folgende Ausgabe:

    Kann der Gabor-Filter zur Erkennung von Dellen in Autos verwendet werden?

    welche irgendwie nicht die Ausgabe ist würde erwarten. Dies ist kein gutes Ergebnis.

    Das Skript lautet wie folgt:

     I = imread('dent.jpg');
    I = rgb2gray(I);
    [G, gabout] = gaborfilter1(I, 2, 4, 16, pi/2);
    figure
    imshow(uint8(gabout));
     

    BEARBEITEN: Anwenden eines anderen das folgende Bild:

    Kann der Gabor-Filter zur Erkennung von Dellen in Autos verwendet werden?

    Ausgabebild nach unterschiedlichen Ausrichtungen des Gabor-Filters:

    Kann der Gabor-Filter zur Erkennung von Dellen in Autos verwendet werden?

    Wie isoliere ich diese DENT, die richtig erkannt wird?

    13 January 2012
    Nicholas
3 answers
  • Dies ist ein äußerst schwieriges Problem. Ich war Teil eines Teams, das mehrere Jahre daran gearbeitet hat. Da ich andere Anwendungen bereits lange entwickelt und unterstützt habe, kann ich sagen, dass die Erkennung von Beulen ein besonders schwieriges Problem ist und viel schwieriger ist, als es auf den ersten Blick erscheint.

    Einen Algorithmus unter Laborbedingungen oder bekannten Bildern arbeiten zu lassen, ist eine Sache. Die Entwicklung eines Systems, das für "natürliche" Bilder wie Autos auf einem Parkplatz genau und robust ist, würde wahrscheinlich ein Team erfordern, das mehrere Jahre arbeitet. Neben dem Kernproblem bei der Erstellung des Algorithmus gibt es zahlreiche andere technische Schwierigkeiten.

    Der von Ihnen getestete Beispielcode ist kein schlechter Start. Wenn Sie die Kanten um die dunkle rechte Seite der Delle finden könnten, könnten Sie die Randkarte des Autos mit dem Rand mit einer Randkarte eines bekannten, guten Autos vergleichen, das aus demselben Winkel mit derselben Beleuchtung aufgenommen wurde. Die Steuerung der Beleuchtung wird sehr hilfreich sein.

    Zu berücksichtigende Probleme:

    1. Beleuchtung ( viel schwieriger als es zunächst scheint)
    2. Erwartete 3D-Oberfläche der montierten Außenblende (z. B. aus CAD-Daten)
    3. Kriterien für eine Beule: Fläche, Tiefe , Profil, etc.
    4. Kriterien für falsche Negative und falsch positive Ergebnisse
    5. Mittel zum Speichern von Dentdaten und / oder zum Abbilden von Dellen auf einem Modell des Autos (oder Schmetterlingslayout)
    6. Methodik und Gerät zur Messung "echter" Delleigenschaften: Tiefe, Fläche usw.
    7. Umfangreiche Datenbank von Dellen aus einer Zufallsauswahl von Fahrzeugen
    8. Umgang mit verschiedenen Farben und Lacken

    1. Beleuchtung Wie Martin B oben richtig bemerkt hat, ist eine korrekte Beleuchtung für dieses Problem von entscheidender Bedeutung. Selbst bei einer guten strukturierten Beleuchtung können große Dellen in der Nähe von Feature-Linien, Lücken zwischen Paneelen, Griffen usw. nur schwer erkannt werden.

    Der Wikipedia-Eintrag für strukturierte Beleuchtung ist ein Bit dünn, aber es ist ein Anfang, um das Prinzip zu verstehen: http://en.wikipedia.org/wiki/Structured_light

    Lichtstreifen können verwendet werden, um Dellen (Dellen) und Dellen (Pimples) zu erkennen. Um ein Ding zu sehen, benötigen Sie eine relative Bewegung zwischen der Lichtquelle und dem Auto. Entweder bewegen sich Licht + Kamera relativ zum Fahrzeug zusammen, oder das Auto bewegt sich an Licht + Kamera vorbei.

    Auch wenn Dellen und Ausfahrten charakteristische Erscheinungen haben, wenn Sie das sehen Rand eines Lichtstreifens hängt die Erkennbarkeit einer gegebenen Delle von der Größe und Tiefe der Delle im Verhältnis zur Breite des Lichtstreifens ab. Die Krümmung eines Autos ist komplex, daher ist es ziemlich schwierig, einer Kamera einen konsistenten Lichtstreifen zu präsentieren. Wenn sich der Lichtstreifen über die Karosserie bewegt, variieren die Krümmung und sogar die Intensität des Lichtstreifens.

    Eine Teillösung besteht darin, sicherzustellen, dass Kamera und Lichtstreifen stets in einem konsistenten Winkel zur Normalen (3D-Senkrechten) des zu inspizierenden Abschnitts der Oberfläche liegen. In der Praxis wäre ein Roboter erforderlich, um die Kamera relativ zur Körperoberfläche genau zu bewegen. Um den Roboter präzise zu bewegen, müssen Sie die Position (Position und 3D-Winkel) der Karosserie kennen, was an sich schon ein unangenehmes Problem ist.

    Für jede Inspektion in Automobilanwendungen ist dies erforderlich die Beleuchtung vollständig steuern. Das bedeutet, dass Sie nicht nur Lichter Ihrer Wahl an bekannten Orten platzieren, sondern auch alle anderen Lichter blockieren. Dies bedeutet ein ziemlich großes Gehäuse. Da die Paneele des Autos nach außen gekrümmt sind (fast wie eine sphärische Oberfläche), reflektieren sie das Licht der umliegenden Quellen. Um dieses Problem erheblich zu vereinfachen, können Sie eine hochfrequente Fluoreszenzstange in einem mit schwarzem Samt umhüllten Gehäuse verwenden. Für Inspektionsanwendungen ist es oft notwendig, zu Extremen zu gehen.

    2. 3D-Oberfläche ADie Außenfläche des Autos setzt sich aus komplexen Kurven zusammen. Um zu wissen, ob eine verdächtige Stelle ein Ding ist, müssen Sie diese Stelle mit den bekannten Merkmalen des Autos vergleichen. Das bedeutet, dass Sie das 2D-Bild einer Kamera an ein 3D-Modell anpassen müssen, das in einem bestimmten Winkel betrachtet wird. Dies ist kein schnell gelöstes Problem, und es ist schwer genug, dass sich einige Unternehmen darauf spezialisieren.

    3. Defektcharakterisierung Für akademische Forschung oder Labortests kann es ausreichend sein, einen Algorithmus zu entwickeln, der eine bestehende Methode als vielversprechend erweist oder verbessert. Um dieses Problem für den kommerziellen oder industriellen Einsatz richtig zu lösen, benötigen Sie eine sehr detaillierte Spezifikation für die Dellen, die Sie entdecken möchten.

    Als wir dieses Problem angegangen sind, gab es keine vernünftigen industriellen oder nationalen Normen für Beulen (3D-Deformationen). Das heißt, es gab keine vereinbarte Technik, um eine Delle durch ihre Fläche, Tiefe und Form zu charakterisieren. Wir hatten nur Proben, die nach Meinung der Branchenexperten schlecht, nicht zu schlecht und in Bezug auf den Schweregrad gering waren. Das Definieren der "Tiefe" eines Dinges ist auch schwierig, da ein Ding ein 3D-Eindruck in (typischerweise) einer nach außen gekrümmten 3D-Oberfläche ist.

    Größere Punkte sind einfacher zu erkennen, sie sind jedoch auch weniger verbreitet. Ein erfahrener Auto-Arbeiter kann eine Karosserie schnell scannen - viel schneller als ein ungeübter Beobachter - und schnell kleine Dellen von der Größe Ihres kleinen Fingers finden. Um die Kosten eines automatisierten Systems zu rechtfertigen, müssten Sie wahrscheinlich die Fähigkeiten eines erfahrenen Beobachters erfüllen.

    4. Kriterien für Erkennungsfehler Sie sollten frühzeitig Kriterien für akzeptable False Negatives und False Positive festlegen. Auch wenn Sie dieses Problem nur als R & amp; Wenn Sie ein Produkt planen und nicht beabsichtigen, ein Produkt zu entwickeln, versuchen Sie, Ihre Erkennungskriterien zu definieren.

    falsch negativ: Zahn vorhanden, aber nicht erkannt falsch positiv: Es wurde kein makelloser Bereich identifiziert als Beule

    In der Regel gibt es einen Kompromiss: Erhöhen Sie die Empfindlichkeit und Sie finden mehr Dings (verringern Sie falsche Negative), aber Sie werden auch mehr Dings finden, die nicht vorhanden sind (erhöhen Sie falsch positive Ergebnisse). Es ist ziemlich leicht, sich selbst davon zu überzeugen, dass ein Algorithmus bessere Ergebnisse erzielt als er tatsächlich tut: Unsere natürliche Neigung besteht darin, vom Algorithmus entdeckte Fehler zu erkennen und diejenigen zu erklären, die er nicht entdeckt hat. Führen Sie blinde, automatisierte Tests durch. Wenn möglich, lassen Sie die Dellen von jemand anderem messen und den Schweregrad zuweisen, damit Sie nicht wissen, was die wahren Messungen sind.

    5. Daten speichern und / oder kartieren Eine Delle zeichnet sich durch ihre Schwere und ihre Position an der Karosserie aus. Um die Position zu kennen, müssen Sie das oben genannte Problem der 2D-zu-3D-Korrespondenz lösen.

    6. Bestimmen der "wahren" Form von Dellen Dellen sind schwer zu messen. Eine scharfe Delle und eine abgerundete Delle mit derselben Oberfläche und Tiefe werden unterschiedlich aussehen. Das Messen von Beulen mit mechanischen Mitteln führt zu subjektiven Beurteilungen und es ist auch recht langwierig, Tiefenmesser, Lineale usw. zu verwenden, wenn Sie wahrscheinlich Dutzende, wenn nicht mehr messen müssen.

    Dies ist eines der schwieriger zu lösenden Konstruktionsprobleme für jedes Defekterkennungsprojekt für die Fertigung: Wie misst man einen Defekt und charakterisiert ihn? Wenn es einen Standard dafür gibt, korreliert der Standard gut mit etwas, was das Inspektionssystem misst? Wenn das Inspektionssystem keinen Ding findet, den es "hätte finden sollen", wer ist dann schuld?

    Das heißt, wenn ein Inspektionssystem gut genug für eine Probe bekannter Fehler funktioniert Dann können sich die Benutzer schließlich als vertrauenswürdig erweisen, und das System selbst wird zum Standard für die Definition des Schweregrads der Fehler.

    7. Umfangreiche Datenbank mit Dellen Idealerweise haben Sie hunderte, wenn nicht tausende von Beispielbildern von Dellen mit unterschiedlichem Schweregrad an verschiedenen Orten in Fahrzeugen eines schwierigen Herstellers

    15 January 2012
    Lorin Hochstein
  • Ein Gabor-Filter ist nur der erste von mehreren Schritten, die Sie für eine solche Fehlererkennungsaufgabe ausführen würden. Beachten Sie außerdem, dass Sie nur eine bestimmte Ausrichtung und Skala des Gabor-Filters verwendet haben. Normalerweise verwenden Sie eine ganze Reihe von Ausrichtungen und Skalen.

    Eine sehr grobe Umrisslinie von a Ein einfacher Fehlererkennungsansatz mit Gabor-Filtern könnte folgendermaßen aussehen:

    • Anwenden des Gabor-Filters in verschiedenen Ausrichtungen und Maßstäben
    • Anwenden einen Klassifizierer (trainiert mit geeigneten Trainingsdaten), um jedes Pixel als "Defekt" oder "Nicht-Defekt" zu klassifizieren
    • Sammeln Sie Erkennungen aus benachbarten Pixeln, um sicherzustellen, dass jeder Defekt nur einmal erkannt wird und zu beseitigen Falsche Entdeckungen

    Ein Punkt, der nicht in dieser Liste enthalten ist, aber in der Regel sehr wichtig ist, ist die Bilderfassung. Die Art und Weise, wie Sie Ihr Objekt beleuchten und Ihre Kameras platzieren, hat einen großen Einfluss darauf, wie leicht Fehler in den resultierenden Bildern erkannt werden können. Ihr Beispielbild scheint die Umgebungsbeleuchtung zu verwenden, die zu der Zeit vorhanden war - dies ist höchstwahrscheinlich nicht optimal.

    Wie gesagt, das ist nur ein sehr grobe Umrisse. Die automatische Inspektion ist ein weites Feld und erfordert viel Fachwissen, um dies gut zu machen.

    13 January 2012
  • Nein, das geht nicht. Die Bildverarbeitung ist keine Zauberei, Sie müssen mehr Informationen angeben. Ohne eine Vorstellung davon, wie das Auto aussehen soll, wie soll der Computer eine Beule vom beabsichtigten Körperstil unterscheiden?

    14 January 2012
    codemac