- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 91

Thema: Vision-Erkennung bei Bestückungsautomaten

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    37
    Beiträge
    5.095
    Ich lese interresiert mit, kann aber leider nichts dazu beitragen. Ich werde auch in näherer Zukunft keinen Automaten bauen. Habe noch zuviel andere Dinge fertig zu stellen und benötige zurzeit auch keinen.

    Wenn ich weiterhelfen kann werde ich es auch machen, habe aber mit Kameras bzw deren Auswertung noch nichts gemacht, leider.

    MfG Hannes

  2. #2
    Erfahrener Benutzer Begeisterter Techniker Avatar von Slowly
    Registriert seit
    08.05.2004
    Ort
    24558
    Alter
    57
    Beiträge
    271
    Brauchst Du so etwas hier ?
    Klicke auf die Grafik für eine größere Ansicht

Name:	01022015837.jpg
Hits:	15
Größe:	51,8 KB
ID:	29733
    Oder sowas?
    Klicke auf die Grafik für eine größere Ansicht

Name:	01022015838.jpg
Hits:	12
Größe:	65,8 KB
ID:	29734

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    37
    Beiträge
    5.095
    Danke für das Angebot, brauche es aber nicht. So ähnliche IR Module habe ich Zuhause, Kameras habe ich auch, sind aber normale Webcams. Die reichen finden den Anfang. Muss aber wie gesagt noch einiges fertig machen.

    Werde es aber weiterhin interresiert mitverfolgen.

    MfG Hannes

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2007
    Beiträge
    170
    Finde ich wirklich schön, dass da noch Leute mitlesen!

    Zwischenstand heute:

    OpenCV läuft nun mit dem VisualStudio und ich konnte ein paar Tests machen. als Ausgangsbild habe ich die vorhandenen Bilder genutzt. Das Farbbild wird in ein Graustufenbild gewandelt welches dann auf zwei Farben umgesetzt wird. Dazu nutze ich momentan einen festgelegten Threshold der dann im fertigen Programm irgendwann in der Kalibrierung automatisch ermittelt werden soll. auf das Bild wende ich dann die Kantendetektion an, die mir über die Matrix eine halbwegs gerade Linie zieht. Resultat:

    Graustufen: http://placerbot.org/OpenCV_test/L64...front_grey.jpg
    Graustufen mit Sobelfilter (Nicht verwendet, nur zur Anschauung): http://placerbot.org/OpenCV_test/L64...grey_sobel.jpg
    Schwarzweiß mit Threshold 120/255 : http://placerbot.org/OpenCV_test/L64...blackWhite.jpg
    Sobel über SW Bild: http://placerbot.org/OpenCV_test/L64...hite_sobel.jpg

    Wenn man den Chip richtig beleuchtet und das Lineal wegnimmt (ohne das stand der Chip leider nicht - die Nozzle wird schon alleine aufgrund der Schärfentiefe nicht mehr zu sehen sein) dann lässt sich da einiges machen. Ich muss sagen dass ich sehr zufrieden mit dem Ergebnis der Spielerei bin. Hätte mit diesem schlechten Ausgangsbild nicht annähernd so gute Ergebnisse erwartet.

    Für die Erkennung muss man sich dann noch die Region of Interest (ROI) heraussuchen und eine Beschreibungsdatei plus zugehöriger Datenstruktur ausdenken. Dann kann es an die Centroid Detection und den Algorithmus zur Kantendetektion gehen. Vielleicht hat OpenCV da auch etwas in Petto das ganz gut funktioniert. Das würde es um einiges einfacher machen! Später ist erstmal der Blitz dran

    Code (Schlimm, ich weiß - War aber sehr auf Ergebnisse erpicht!):
    Code:
        // Matrices to store the image file    
        Mat original, greyScale, blackWhite, sobelImg, blackWhiteSobel;
    
    
        // Params to save the images as jpeg
        vector<int> jpegParams;
        jpegParams.push_back(IMWRITE_JPEG_QUALITY);
        jpegParams.push_back(100);
        string fileName = "examples/L6470_light_front.jpg";
    
    
        // Read the input file
        original = imread(fileName);
        cvtColor(original, greyScale, COLOR_RGB2GRAY);
    
    
        //Save greyScale image
        imwrite("output_grey.jpg",greyScale,jpegParams);
    
    
        blackWhite = greyScale > THRESHOLD;
        namedWindow("Converted to BW image", WINDOW_AUTOSIZE);
        imshow("Converted to BW image", blackWhite);
        imwrite("output_blackWhite.jpg", blackWhite, jpegParams);
    
    
        Sobel(blackWhite, blackWhiteSobel, blackWhite.depth(), DERIVATIVE, DERIVATIVE, SOBELSIZE, 1, 0);
        namedWindow("Sobel applied to BW image", WINDOW_AUTOSIZE);
        imshow("Sobel applied to BW image", blackWhiteSobel);
        imwrite("output_blackWhite_sobel.jpg", blackWhiteSobel, jpegParams);
    
    
        
        Sobel(greyScale, sobelImg, greyScale.depth(), DERIVATIVE, DERIVATIVE, SOBELSIZE, 1, 0);
        imwrite("output_grey_sobel.jpg", sobelImg,jpegParams);
    
    
    
    
        waitKey(0);
    
    
        return 0;
    Geändert von einballimwas (01.02.2015 um 14:46 Uhr) Grund: Code eingefügt, zusätzliche Erklärungen

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    09.03.2012
    Ort
    AN
    Alter
    52
    Beiträge
    46
    Wow, das kann sich doch sehen lassen. Ich würde gerne mithelfen, aber dazu brauche ich auch eine Kamera, welche dazu geeignet ist. Meine USB-Mikroskop-Kamera wäre von der Qualität her schon recht gut, aber wie triggere ich da das Bild? Die Windows-Software nutzt mir da ja nichts und eine API gibt es dafür anscheinend keine.

    @Slowly
    Was ist da für ein Objektiv drauf? Eignet sich die Kamera zur Bauteil-Erkennung?
    Was hat die für Anschlüsse?
    ...und das wichtigste: Was verlangst du dafür?

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2007
    Beiträge
    170
    Habe meine Bestrebungen jetzt auf Matlab verlegt. Da geht das ganze einiges schneller... Habe ein bisschen mit der Hough Transformation gebastelt um den Winkel des Bauteils auszumachen. Das funktioniert schonmal ganz gut. Jetzt muss noch der Support Code drumrum geschrieben werden und dann geht es an die Boundaries der Bauteile. Wenn das steht, dann kommt noch ein Templatematching davor um zu erkennen ob es sich auch um das richtige Bauteil handelt. Dann ist die Phase abgeschlossen und der Demonstrator kann um Schrittmotoren zur Korrektur erweitert werden!

    Bild hier  

    Stay tuned for more! Das wird noch was

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    09.03.2012
    Ort
    AN
    Alter
    52
    Beiträge
    46
    Erst mal Glückwunsch zur ersten Lagevermessung.
    Du solltest dich allerdings besser auf die Beinenden konzentrieren (Alle Beinenden erkennen, Mittelwert errechnen).
    Das hat mehrere Vorteile:
    1.) Auch Bauteile ohne Wärmeableitfläche können erkannt werden.
    2.) Fehlende oder stark verbogene Beine werden erkannt --> Ausschuss
    3.) Nicht der Gehäusekörper muss exakt ausgerichtet sein, sondern die Anschlüsse. Spätestens wenn du mal offene Spulen bestückst wirst du das zu schätzen wissen, denn da ist der Körper manchmal übest schief, aber wenn die Beine vermessen werden sitzt diese später trotzdem richtig auf den Pads.

    Aber soweit schon mal ein großes Lob. Die Kamera macht gestochen scharfe Bilder, damit lässt sich definitiv eine gute Bauteillage-Erkennung aufbauen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests