OpenCV in der Industrie

Beiträge
9.191
Reaktionspunkte
2.950
Zuviel Werbung?
-> Hier kostenlos registrieren
Mich würde mal interessieren, ob es Erfahrungen in eigenen Projekten in Anwendungen zur Bilderkennung mit OpenCV gibt. Hat jemand schon einmal selber Anwendungen damit geschrieben? Vorteile, Nachteile?

Ich bin beruflich in einer Branche unterwegs wo ich mit so etwas nichts zu tun habe. Aber OpenCV gibt es ja mittlerweile schon recht lange, und dahinter stehen auch nicht gerade kleine Namen. Und die BSD-Lizenz lässt ja auch relativ einfache Integration in Closed-Source Projekte zu.

Ich habe mich die Tage etwas damit befasst, wegen Lieferschwierigkeiten der Kamera für den RPi wird aktuell mit statischen Bildern experimentiert, aber es ist schon erstaunlich wie schnell man damit zu meiner Meinung nach brauchbaren Ergebnissen kommt.
 
habe vor einigen Jahren mal damit rumexperimentiert. Das Ergebnis war nicht schlecht. Halt alles in C++
Die Herausforderung war aber eigentlich die Objekterkennung selbst. Es waren immer die selben Produkte die die Kamera erkennen sollte, nur eben manchmal nass und manchmal trocken. Die Bilder die dann die Kamera lieferte, waren im Detail dann doch recht unterschiedlich.

Wenn ich heute vor so einer Aufgabe stehen würde, denke ich, dass ich Maschinelles Lernen einsetzen würde. Mittlerweile müsste es ja sogar von Siemens entsprechende Hardware geben

Fazit: Bilderkennung ist umfangreiches Fachgebiet
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es gibt auch ein entsprechendes Python Modul mit dem sich OpenCV aus Python verwenden lässt. Dadurch, dass man nicht immer compilieren musst, kann man damit viel schneller experimentieren und sich in die Funktionen der Bibliothek einarbeiten. Wo es nicht ganz so auf Geschwindigkeit ankommt, kann man es wohl auch in Python belassen. Die eigentliche Bibliothek bleibt ja weiterhin in C++.

Aber dass es auf die möglichst immer gleichen Bedingungen ankommt habe ich auch schon festgestellt. Ich habe mir als kleine Aufgabe gestellt, die Position von 1 Cent Stücken auf einem weißen DIN-A4 Blatt zu erkennen und zu vermessen. Ich habe das Blatt auf ein schwarz lackiertes Brett gelegt, und dann sozusagen im Dunkeln nur mit einer Lampe von oben beleuchtet fotografiert. Dann habe ich mir bei Tageslicht noch einmal ein paar Testbilder nur mir Beleuchtung durch die Sonne gemacht, und da waren solche Reflektionen auf dem schwarzen Lack, dass ich das weiße Blatt schon nicht mehr zuverlässig erkennen konnte.

Aber maschinelles Lernen ist dann doch eher für den Fall "was" und nicht "wo" oder?
 
Aber maschinelles Lernen ist dann doch eher für den Fall "was" und nicht "wo" oder?

Stimmt. Ob ein neuronales Netz Positionen ausgeben kann, weis ich nicht. Aber natürlich muss man die Frage klären, ob man das braucht und ob dass dann ein KO-Kriterium ist.
Aber es ist schon erstaunlich, wie gut beispielweise eine Gesichtserkennung funktioniert. Die findet man mittlerweile auf Spielzeug bis hin zur High-End - Anwendung. Und da werden Reflexionen, oder sagen wir mal "ungünstige Belichtungen" recht gut verarbeitet. Wie das gemacht wird, ist mir schleierhaft

Wir haben in unserer Firma viele professionelle Bildverarbeitungssysteme am laufen. Gekaufte wohlgemerkt. Sonnenlicht legt aber alle lahm.
 
Wir haben in unserer Firma viele professionelle Bildverarbeitungssysteme am laufen. Gekaufte wohlgemerkt. Sonnenlicht legt aber alle lahm.
Was machen die denn größtenteils, Objekterkennung oder auch vermessen? Was ich so bei Produkten gesehen habe die auch vermessen ist, dass auch hier umfangreich vorab kalibriert und eingerichtet werden muss. Also auspacken, hinstellen und geht scheint auch nicht der Fall zu sein.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
vermessen eigentlich weniger bis gar nicht. Also meines Wissens nach haben wir keine Koordinatensysteme
Eher gehts darum, Qualitätsmerkmale zu erkennen. Das dient dann direkt der Qualitätssicherung oder ist Grundlage für ein nachfolgendes Handling

Ich weiß von Tiefenkameras welche Roboter steuern. Haben wir uns mal im Detail angesehen. Respekt. Das programmiert man nicht mal so nebenbei. Hier spielt die Kalibrierung vom Kamerasystem in Verbindung mit dem Roboter eine entscheidende Rolle
 
Was ich so bei Produkten gesehen habe die auch vermessen ist, dass auch hier umfangreich vorab kalibriert und eingerichtet werden muss. Also auspacken, hinstellen und geht scheint auch nicht der Fall zu sein.
Dein Ansatz, Thomas, ...
... die Position von 1 Cent Stücken auf einem weißen DIN-A4 Blatt zu erkennen und zu vermessen.
... ist doch schon eine tolle Anregung, wie man das "vorab Kalibrieren und Einrichten" eigentlich recht gut automatisieren können müsste.
Klar definierte bzw. zu definierende Gegenstände erfassen, von denen man die Eigenschaften kennt.
Ob nun ein 1 Cent Stück schon für viele Zwecke ausreichen würde, sei mal dahingestellt. Aber denkbar und plausibel finde ich es schon, solch weitverbreitete Gegenstände für KalibrierZwecke zu missbrauchen.
 
... ist doch schon eine tolle Anregung, wie man das "vorab Kalibrieren und Einrichten" eigentlich recht gut automatisieren können müsste.
Klar definierte bzw. zu definierende Gegenstände erfassen, von denen man die Eigenschaften kennt.
Ob nun ein 1 Cent Stück schon für viele Zwecke ausreichen würde, sei mal dahingestellt. Aber denkbar und plausibel finde ich es schon, solch weitverbreitete Gegenstände für KalibrierZwecke zu missbrauchen.
Da gibt es sicher viele Wege die zum Ziel führen. Ich habe mir jetzt die Abmessungen des DIN-A4 Blattes genommen. Den Umriss versuche ich als erstes zu erkennen, dann das Blatt mit den bekannten Abmessungen perspektivisch aufzurichten (weil meine Kamera irgendwie immer schräg steht), und dann die Kreise zu suchen und in mm pro Pixel umzurechnen. Meine Durchmesserberechnung passt nicht ganz mit den 16,25 mm überein, aber ich habe wegen meiner Beleuchtung auch leichte Schatten an einer Seite. Wenn ich direkt von oben beleuchte dann spiegeln die Cent-Stücke extrem. Ich weiß nicht ob man da mit einem Polarisationsfilter etwas gegen solche Reflektionen entgegen wirken kann. Aber Beleuchtung ist auf jeden Fall sehr wichtig.
 

Anhänge

  • 03_Bemassung-klein.jpg
    03_Bemassung-klein.jpg
    293,1 KB · Aufrufe: 38
Zuviel Werbung?
-> Hier kostenlos registrieren
Beleuchtung ist das A und O bei Vermessungen. Hierbei würde ich dir, wenn du nur Durchmesser prüfen willst, einem Durchlichtaufbau empfehlen. Ansonsten wie du schon angesprochen hast, wird dir einen Pol-Filter etwas besseres Ergebnis bringen.
Wie hast du Kalibriert? Benutze ein Schachbrettmuster oder Punkmuster für die Kalibrierung. Nur 4 Punkte eines Din-A4 Blatts ist "sehr ungenau". Wie Kalibrierung mit OpenCV funktioniert, kann ich dir nicht sagen. Damit habe ich keine Erfahrung.
Schau dir mal die Seite Vision Doctor an, dort werden div. Beleuchtungsmethoden gut erklärt.
 
Wie hast du Kalibriert? Benutze ein Schachbrettmuster oder Punkmuster für die Kalibrierung. Nur 4 Punkte eines Din-A4 Blatts ist "sehr ungenau". Wie Kalibrierung mit OpenCV funktioniert, kann ich dir nicht sagen. Damit habe ich keine Erfahrung.
Schau dir mal die Seite Vision Doctor an, dort werden div. Beleuchtungsmethoden gut erklärt.
OpenCV bringt dafür fertige Funktionen mit, um die Kameraparameter anhand von ein paar Fotos mit einem Schachbrettmuster erkennen zu können. Aktuelle probiere ich das nur mit der Handy-Kamera, mit der habe ich zwei Sets gemacht und daran die Kalibrierung ausgeführt, aber ich kam damit zu keinen sinnvollen Ergebnissen. Ich habe aber auch keine starken Abbildungsfehler wie Wölbung oder Verzeichnung. Mit der Kalibrierungsfunktion erhält man aber noch nicht direkt einen Maßstab, es werden nur die Kamerafehler kompensiert (um von 3D auf 2D umrechnen zu können, meinem Verständnis nach).
 
Zurück
Oben