Kann der Gabor-Filter zum Erkennen von Dellen in Autos verwendet werden?

16

Ich forsche an Gabor-Filtern zur Erkennung von Dellen in Autos. Ich weiß, dass Gabor-Filter häufig zur Mustererkennung, Fingerabdruckerkennung usw. verwendet wurden.

Ich habe ein Bild.

Rohes Bild

Unter Verwendung von Code von der MathWorks File Exchange-Site erhielt ich die folgende Ausgabe.

Verarbeitetes Bild

das ist irgendwie nicht die Ausgabe, die man erwarten würde. Das ist kein gutes Ergebnis.

Das my-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 Codes auf das folgende Bild:

Eingabebild

Ausgabebild nach verschiedenen Ausrichtungen des Gabor-Filters:

Bildbeschreibung hier eingeben

Wie isoliere ich diese DENT, die richtig erkannt wird?

vini
quelle
1
I = imread ('dent.jpg'); I = rgb2gray (I); [G, gabout] = gaborfilter1 (I, 2,4,16, pi / 2); Figur, imshow (uint8 (gabout)); Haben die folgenden Parameter verwendet
vini
Was fragst du?
Andrey Rubshtein
2
Was lässt Sie glauben, dass der Gabor-Filter für dieses Problem gut geeignet ist?
Nzbuu,
Es ist durch Bildverarbeitung möglich, dass der Stil immer einheitlich ist und die Delle nicht einheitlich ist. Es kann eine Musteranalyse der Kante der Delle sein.

Antworten:

21

Dies ist ein äußerst schwieriges Problem. Ich war Teil eines Teams, das mehrere Jahre daran gearbeitet hat, und nachdem ich lange Zeit andere Anwendungen dieser Art entwickelt und unterstützt habe, kann ich sagen, dass die Dellenerkennung ein besonders heikles Problem darstellt und viel schwieriger ist, als es zunächst aussieht.

Es ist eine Sache, einen Algorithmus unter Laborbedingungen oder mit bekannten Bildern arbeiten zu lassen. 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 der Erstellung des Algorithmus gibt es zahlreiche weitere 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 Kantenkarte des Autos mit dem Ding mit einer Kantenkarte eines bekannten guten Autos vergleichen, das aus dem gleichen Winkel mit der gleichen Beleuchtung abgebildet wurde. Die Steuerung der Beleuchtung hilft einiges.

Zu berücksichtigende Probleme umfassen Folgendes:

  1. Beleuchtung (viel schwieriger als es zunächst scheint)
  2. Erwartete 3D-Oberfläche der montierten Außenverkleidung (z. B. aus CAD-Daten)
  3. Kriterien, die eine Delle charakterisieren: Fläche, Tiefe, Profil usw.
  4. Kriterien für falsch negative und falsch positive
  5. Mittel zum Speichern von Beulendaten und / oder Kartenbeulen auf einem Modell des Autos (oder Schmetterlingslayout)
  6. Methode und Gerät zur Messung "echter" Dellenmerkmale: Tiefe, Fläche usw.
  7. Umfangreiche Dellen-Datenbank aus einer zufälligen Auswahl von Fahrzeugen
  8. Umgang mit verschiedenen Lackfarben und Lackierungen

1. Beleuchtung Wie Martin B oben richtig angemerkt hat, ist die richtige Beleuchtung für dieses Problem von entscheidender Bedeutung. Selbst bei einer gut strukturierten Beleuchtung werden Sie große Schwierigkeiten haben, kleine Dellen in der Nähe von Feature-Linien, Lücken zwischen Panels, Griffen usw. zu erkennen.

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

Mit hellen Streifen können Einbeulungen (Dellen) und Ausbeulungen (Pickel) erkannt werden. Um ein Ding zu sehen, benötigen Sie eine relative Bewegung zwischen der Lichtquelle und dem Auto. Entweder bewegt sich die Licht + Kamera relativ zum Auto zusammen oder das Auto bewegt sich an der Licht + Kamera vorbei.

Obwohl Ein- und Ausbeulen am Rand eines Lichtstreifens ein charakteristisches Erscheinungsbild aufweisen, hängt die Erkennbarkeit einer bestimmten Beule von der Größe und Tiefe der Beule 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 immer in einem gleichmäßigen Winkel zur Normalen (der 3D-Senkrechten) des zu inspizierenden Teils der Oberfläche stehen. In der Praxis wäre ein Roboter erforderlich, um die Kamera genau relativ zur Körperoberfläche zu bewegen. Das genaue Bewegen des Roboters erfordert die Kenntnis der Pose (Position und 3D-Winkel) der Fahrzeugkarosserie, was für sich genommen ein unangenehmes Problem darstellt.

Bei jeder Inspektion für Automobilanwendungen müssen Sie die Beleuchtung vollständig steuern. Das bedeutet, dass Sie nicht nur Lichter Ihrer Wahl an bekannten Orten platzieren, sondern auch alles andere Licht blockieren. Dies bedeutet ein ziemlich großes Gehäuse. Da die Paneele des Autos nach außen gebogen sind (fast wie eine sphärische Oberfläche), reflektieren sie das Licht von allen Quellen um sie herum. Um dieses Problem erheblich zu vereinfachen, können Sie einen Hochfrequenz-Leuchtstab in einem mit schwarzem Samt umhüllten Gehäuse verwenden. Sehr oft ist es notwendig, bei Inspektionsanwendungen so extrem vorzugehen.

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

3. Defektcharakterisierung Für akademische Forschungen oder Labortests kann es ausreichend sein, einen Algorithmus zu entwickeln, der eine bestehende Methode verspricht oder verbessert. Um dieses Problem für den gewerblichen oder industriellen Einsatz zu lösen, benötigen Sie eine detaillierte Spezifikation für die Größe der Dellen, die Sie erkennen möchten.

Als wir dieses Problem angegangen sind, gab es keine vernünftigen Branchen- oder nationalen Standards für Dellen (3D-Verformungen). Das heißt, es gab keine vereinbarte Technik, um eine Delle nach Fläche, Tiefe und Form zu charakterisieren. Wir hatten nur Stichproben, denen Branchenexperten zugestimmt hatten, dass sie schlecht, nicht zu schlecht und in Bezug auf den Schweregrad marginal waren. Das Definieren der "Tiefe" eines Dings ist ebenfalls schwierig, da ein Ding eine 3D-Einkerbung in (normalerweise) einer nach außen gekrümmten 3D-Oberfläche ist.

Größere Beulen sind leichter zu erkennen, aber auch seltener. Ein erfahrener Autoarbeiter kann eine Autokarosserie schnell scannen - viel schneller als ein ungeübter Beobachter - und schnell flache Stellen 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 falsch-negative und falsch-positive Ergebnisse festlegen. Selbst wenn Sie dieses Problem nur als F & E-Projekt untersuchen und nicht beabsichtigen, ein Produkt zu entwickeln, sollten Sie versuchen, Ihre Erkennungskriterien zu definieren.

falsch negativ: Delle vorhanden, aber nicht erkannt falsch positiv: makelloser Bereich als Delle identifiziert

Es gibt normalerweise einen Kompromiss: Erhöhen Sie die Empfindlichkeit und Sie werden mehr Dings finden (verringern Sie falsche Negative), aber Sie werden auch mehr Dings finden, die nicht da sind (erhöhen Sie falsche Positive). Es ist ziemlich einfach, sich davon zu überzeugen, dass ein Algorithmus eine bessere Leistung erbringt als er tatsächlich erbringt: Unsere natürliche Tendenz besteht darin, die vom Algorithmus erkannten Fehler zu bemerken und die nicht erkannten zu erklären. Führen Sie blinde, automatisierte Tests durch. Wenn möglich, lassen Sie jemanden die Beulen messen und den Schweregrad festlegen, damit Sie nicht wissen, wie hoch die tatsächlichen Maße sind.

5. Daten speichern und / oder zuordnen Eine Delle ist durch ihren Schweregrad und ihre Position auf der Karosserie gekennzeichnet. Um die Position zu kennen, müssen Sie das oben erwähnte 2D-zu-3D-Korrespondenzproblem lösen.

6. Bestimmen der "wahren" Form von Dellen Dellen sind schwer zu messen. Eine scharfe Delle und eine abgerundete Delle mit der gleichen Oberfläche und Tiefe erscheinen unterschiedlich. Das Messen von Dellen mit mechanischen Mitteln führt zu subjektiven Beurteilungen, und es ist auch ziemlich mühsam, Tiefenmesser, Lineale usw. zu verwenden, wenn Sie wahrscheinlich Dutzende oder sogar mehr messen müssen.

Dies ist eines der schwierigeren technischen Probleme, die bei einem Fehlererkennungsprojekt für die Fertigung zu lösen sind: Wie misst man einen Fehler und charakterisiert ihn? Wenn es eine Norm dafür gibt, korreliert die Norm gut mit etwas, das das Inspektionssystem misst? Wenn das Inspektionssystem kein Ding findet, das es "hätte finden sollen", wer ist schuld?

Das heißt, wenn ein Inspektionssystem für eine Stichprobe bekannter Fehler gut genug funktioniert, können die Benutzer möglicherweise darauf vertrauen, und das System selbst wird zum Standard für die Definition der Fehlerschwere.

7. Umfangreiche Dellen-Datenbank Idealerweise verfügen Sie über Hunderte, wenn nicht Tausende Musterbilder von Dellen mit unterschiedlichem Schweregrad an verschiedenen Stellen auf Fahrzeugen schwieriger Hersteller. Wenn Sie Dellen finden möchten, die durch Unfälle während des Montageprozesses verursacht wurden, kann die Erfassung dieser Daten sehr lange dauern. Beulen, die beim Zusammenbau entstehen, sind nicht häufig.

Wenn Sie nur Dellen finden möchten, die durch Unfälle oder Umweltschäden verursacht wurden, ist das eine andere Sache. Die Arten von Dellen unterscheiden sich von denen, die durch versehentliche Stöße in einem automatischen Montagewerk verursacht werden.

8. Umgang mit unterschiedlichen Lackfarben Es ist richtig, dass Kantendetektoren bei der Erkennung von Kanten in Bildern mit unterschiedlichem Kontrast relativ robust sein können, aber es kann ziemlich entmutigend sein, zu sehen, was "unterschiedliche Kontrastniveaus" für unterschiedliche Fahrzeuglacke und -lackierungen wirklich bedeuten . Ein heller Streifen, der auf einem glänzenden schwarzen Auto gut aussieht, ist auf einem weißen Auto mit altem Lack kaum zu erkennen.

Die meisten Kameras haben einen relativ eingeschränkten Dynamikbereich. Daher ist es schwierig, einen guten Kontrast sowohl für schwarz glänzende als auch für weiß matte Oberflächen zu erzielen. Es ist sehr wahrscheinlich, dass Sie die Beleuchtungsstärke automatisch steuern müssen. Das ist auch schwer.

Überdenken
quelle
Gibt es keine Datenbank mit Bildern, die ich auf Dellen bekommen könnte? und brillante Antwort, ich wusste nie so viel ...
Vini
2
Ich bin nicht sicher, ob es eine solche Datenbank gibt, da ein Großteil der Informationen urheberrechtlich geschützt ist. Autohersteller möchten nicht unbedingt die Größe und Art der Mängel, die sie bei der Herstellung feststellen, an die Welt senden. Ohne ein robustes Messsystem kann die Statistik jedoch auf einer visuellen Inspektion durch den Menschen in der Anlage basieren, die auf Stichproben oder auf Schadensmeldungen von Autohändlern basieren kann. Ein Auto, das vor dem Eintreffen bei einem Händler verbeult war, kann unverkauft bleiben, was Geldverlust und Verschwendung von Ressourcen bedeutet.
Rethunk
1
Dellenreparaturwerkstätten verwenden helle Streifen, obwohl ihre Einrichtung eher für die Inspektion durch Menschen als für die automatisierte Inspektion geeignet ist: exceldent.wordpress.com/tag/door-ding-repair ncfixadent.com/services/paintless-dent-repair-pdr Für ein automatisiertes System möchten Sie jegliches Fremdlicht, einschließlich der Reflexionen am Leuchtengehäuse selbst, ausschließen. Außerdem muss der Kamerafokus so eingestellt werden, dass ein Gleichgewicht zwischen dem Scharfstellen der Lichtquelle auf scharfe Kanten und dem Scharfstellen der Fahrzeugoberfläche zur Anzeige von Fahrzeugmerkmalen hergestellt wird.
Rethunk
Hey, rethunk, ich formuliere gerade eine Lösung für dasselbe. Gibt es sowieso ein paar Bilder von Autodellen und Kratzern usw., die mir bei meinen Nachforschungen helfen würden? Bitte helfen Sie!
Vini
1
Das Aufnehmen von Bildern mit Dellen und Kratzern kann schwierig sein. Es ist wahrscheinlich etwas Beinarbeit zu nehmen. Es sind nicht so viele passende Bilder online. Sie können eine Autowerkstatt anrufen und fragen, ob Sie Fotos von Fahrzeugen machen können, die sie haben. im Gegenzug könntest du den Shop in deine Berichte aufnehmen. Fragen Sie Freunde und Kollegen, ob Sie Fotos von ihren Autos machen können - bringen Sie ein fluoreszierendes Handlicht zur Beleuchtung mit. Ein Kamera-Telefon wäre in Ordnung. Am besten wäre es, verbeulte und nicht verbeulte Platten von einem Schrottplatz zu bekommen. Es ist am besten, von Anfang an eigene Samples zu haben, damit Sie die Beleuchtung usw. optimieren können.
Rethunk,
9

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 Skalierung des Gabor-Filters verwendet haben. In der Regel verwenden Sie eine ganze Reihe von Ausrichtungen und Skalierungen.

Eine sehr grobe Darstellung eines einfachen Ansatzes zur Fehlererkennung unter Verwendung von Gabor-Filtern könnte wie folgt aussehen:

  • Wenden Sie den Gabor-Filter in verschiedenen Ausrichtungen und Maßstäben an
  • Wenden Sie einen Klassifikator an (anhand geeigneter Trainingsdaten trainiert), um jedes Pixel als "fehlerhaft" oder "nicht fehlerhaft" zu klassifizieren.
  • Sammeln Sie Erkennungen von benachbarten Pixeln, um sicherzustellen, dass jeder Fehler nur einmal erkannt wird, und um fehlerhafte Erkennungen zu beseitigen

Ein Punkt, der nicht auf dieser Liste steht, aber normalerweise 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 einfach es ist, Fehler in den resultierenden Bildern zu erkennen. Ihr Beispielbild scheint die Umgebungsbeleuchtung zu verwenden, die zu diesem Zeitpunkt vorhanden war - dies ist höchstwahrscheinlich nicht optimal.

Wie gesagt, dies ist nur eine sehr grobe Darstellung. Automatische Inspektion ist ein weites Feld und erfordert viel Fachwissen, um es gut zu machen.


quelle
0

Nein, das kann es nicht. Bildverarbeitung ist keine Zauberei, Sie müssen mehr Informationen bereitstellen. Ohne eine Vorstellung davon, wie das Auto aussehen soll, wie soll der Computer eine Delle vom beabsichtigten Karosserie-Styling unterscheiden?

so12311
quelle
1
Ich weiß , es ist nicht Magie und die Bilder , die ich von google..that bekommen haben ist , warum ich eine Eingabe als wollte , wie ich dieses Problem Ansatz würde ..simply diese Filter sind nicht ausreichend ...
vini
Ich möchte dies abstimmen, aber es ist keine echte Antwort. Es sollte ein Kommentar sein.
Endolith