Hallo zusammen!, Ich habe folgendes Problem: Auf einem Förderband/Sortieranlage sollen zwei Bauteile unterschieden werden. Quadrat und Kreis. Je nachdem was erfasst wird, werden die Teile unterschiedlich einsortiert. Ich weis es gibt auch einfachere Wege, aber ich will damit auch etwas programmieren (C) lernen. Also ich habe mir da zwei Varianten überlegt: 1. Eine Webcam die ein Bild erfasst und mit den zwei Vergleichsbildern abgleicht. 2. Eine Webcam, die ein schwarz/weiß Bild erfasst. Allerdings wird hier die Anzahl schwarzer Pixel ermittelt, und mit den zwei Mustern verglichen. Variante zwei erachte ich persönlich für einfacher...was meint ihr? Optimal wäre eine Anbindung über Ethernet an WinCC. Eine Ausgabe als Binäres Signal über den Com-Port reicht auch bzw über andere Binäre Ausgänge. Als Plattform möchte ich einen Rasberry verwenden, oder einen von diesen Mini-Computern. Nun weis ich aber nicht so recht wo ich anfangen soll. Wäre über ein paar Denkanstöße dankbar. Eine fertige Lösung möchte ich nicht einsetzen...ich wills ja auch verstehen. Keine Sorge, es ist ein privates Projekt. Schönen Abend noch!
Hi, schau dir das mal an: http://www.kickstarter.com/projects/254449872/pixy-cmucam5-a-fast-easy-to-use-vision-sensor Lg.
Ist natürlich perfekt sowas...aber erst ab November lieferbar. Zum programmieren ist da aber eigendlich auch nichtsmehr...
Andreas Z. schrieb: > Ich weis es gibt auch einfachere Wege, aber ich will damit auch etwas > programmieren (C) lernen. Wenn du das Rastpberry PI nehmen willst nimm einfacher Python... (oder etwas ähnliches, C ist da nicht besonders gut geeignet, ausser du hast wirklich Ressourcen Knappheit, klingt aber nicht gerade so...) > > Also ich habe mir da zwei Varianten überlegt: > > 1. Eine Webcam die ein Bild erfasst und mit den zwei Vergleichsbildern > abgleicht. Vergiss es. Was machst du wenn das Rechteck um 45° gedreht ist? Dann noch verschoben etc. > 2. Eine Webcam, die ein schwarz/weiß Bild erfasst. Schon besser, wobei die Webcam warscheinlich eine Farbaufnahme macht, du machst dann eine Schwarzweiss Aufnahme draus. Dazu berechnest du (wenn ich es richtig in Erinnerung habe) ein Histogramm und musst irgendwo einen Schnitt machen, wenn die Beleuchtung einigermassen passt funktioniert das zuverlässig. Allerdings wird hier > die Anzahl schwarzer Pixel ermittelt, und mit den zwei Mustern > verglichen. Finde ich nur teilweise gut. Berechne den Umfang und die Fläche. Der Umfang kann z.B. auch in Anzahl Pixel sein, es muss nicht in mm, cm oder ähnliches sein. Das Verhältnis zwischen Fläche und Umfang ist für Kreis / Rechteck eindeutig, die Erkennung über diese Methode funktioniert zuverlässig, aber nur solange sich Figuren eindeutig unterscheiden. Grundsätzlich für so Erkennungen immer S/W Bilder verwenden (alles andere machts nur komplizierter). Danach ist der Kreativität freien lauf gelassen;-) Es gibt kein richtig / falsch, nur funktioniert oder funktioniert nicht. mfg Andreas
Vergiss Pixy. Nicht daß das was geworben wird nicht funktionieren kann, sondern die HW hat einfach zuwenig Speicher um selbst was einfach zu programmieren, wenn es überhaupt damit realisierbar ist. Weiters brauchst du eine Kamera mit CCD Sensor, bzw global shutter. Ansonsten wird das mit dem Laufband nicht, da du verzerrungen hast. Früher hat man die Philips SPC900NC/00 gerne dafür benutzt, auch wegen der geringen Verzerrung und diversen Einstellmöglichkeiten der Firmware. Derzeit gibt es wenig Alternativen, ich selbst musste 100 Stück bestellen, mit 3 Monaten Wartezeit, dafür aber um ca 7€ das Stück. Und nein, ich gebe die nicht weiter da ich sie selbst für Projekte sowie für das Lager brauche. Vielleicht geht ein CMOS Sensor auch mit genügend Licht, dann könnte es klappen. Ich würde einfach mal eine günstige Webcam nehmen und austesten, bzw eine die du bereits hast. Im OpenCV einfach Threshold machen, vielleicht vorher Hintergrund wegrechnen und dann Blob erkennen und anhand deren Größe/Aussehen/Gewicht kann man die Entscheidung machen. Eventuell kann man noch Hough erkennung machen, sollte ersteres nicht genügen. Sift, Surf usw sind alle Patentiert und somit nicht frei einsetzbar. Beim RPI kann man mittels HDMI/Composite das Videobild in Echtzeit ansehen, und mittels OpenCV mit 5-11 fps die Berechnung machen, mit Hough wird es 2-7 fps. Sowie Overlay auf dem Display zeichnen, recht nett. Wenn du Hilfe brauchst, melde dich, ich möchte aber reale Bilder haben, am besten über Webcam aufgenommen und keinesfalls Jpeg, bmp funktioniert gut. Dies mit Webcam, ansonten wenn Hochauflösend geht auch Jpeg. Ev. Dorgem als Programm um die Schnappschüsse zu machen.
>Ich weis es gibt auch einfachere Wege, aber ich will damit auch etwas >programmieren (C) lernen. Blödsinn, mit solchen feuchten Träumen und gnadenloser Selbstüberschätzung der eigenen Fähigkeiten kannst du das gleich wieder vergessen.
Andreas Z. schrieb: > Ich habe folgendes Problem: Deine Probleme möchte ich haben... > Auf einem Förderband/Sortieranlage sollen zwei Bauteile unterschieden > werden. Quadrat und Kreis. Je nachdem was erfasst wird, werden die Teile > unterschiedlich einsortiert. > > Ich weis es gibt auch einfachere Wege, aber ich will damit auch etwas > programmieren (C) lernen. Zum einen: C ist Dreck. War immer Dreck. Wird immer Dreck bleiben. Und letztlich ist die verwendete Sprache zur Lösung des Problems völlig irrelevant. Es KANN notfalls sogar C sein. Z.B. wenn es nötig ist, weil z.B. der Kameratreiber nur über eine C-Header als Interface verfügt. (dann sollte man den Zulieferer wechseln) > Also ich habe mir da zwei Varianten überlegt: > > 1. Eine Webcam die ein Bild erfasst und mit den zwei Vergleichsbildern > abgleicht. Schwachsinn. Erstens bewegen sich Bänder normalerweise nicht synchronisiert zur Kamera, weswegen ein einfacher Vergleich nicht reicht, sondern zuvor erstmal herauszubekommen ist, welcher Teilbereich der Aufnahme überhaupt mit dem Master zu vergleichen ist. Zweitens genügt danach dann der Vergleich mit einem Vergleichsbild. Wobei natürlich wegen der Rotationssymmetrie der Kreis das Vergleichsbild sein sollte. > 2. Eine Webcam, die ein schwarz/weiß Bild erfasst. Allerdings wird hier > die Anzahl schwarzer Pixel ermittelt, und mit den zwei Mustern > verglichen. Das könnte durchaus funktionieren, wenn man die "edge conditions" ausschließt, also nicht vollständig im Bild erscheinende Objekte. Und natürlich muß gewährleistet sein, daß niemals mehr als ein Objekt im Bild erscheint.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.