skydriver_heiko Geschrieben 17. Juli 2007 Teilen Geschrieben 17. Juli 2007 Hallo alle zusammen, hier etwas ausgefallenes, wie ich finde. Und zwar: Ich habe die Aufgabe mit Hilfe einer Webcam (Logitech Quickcam USB) Stream auszulesen. Diese Bilder müssen denn mit Hilfe von irgendwelchen Filtermöglichkeiten auf Objekte/Hindernisse hin untersucht werden. Hat sowas von euch schon jemand gemacht? Achja das ganze sollte in C++ passieren. Mir wär schon sehr geholfen wenn jemand weiß wie ich die Bilder auslesen kann, welche über den usb-port kommen. Vielleicht ne nützliche Angabe, es wird hier Win XP verwendet. Ich hoffe auf eure Kenntnisse. . . bis denne Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 17. Juli 2007 Teilen Geschrieben 17. Juli 2007 Mir wär schon sehr geholfen wenn jemand weiß wie ich die Bilder auslesen kann, welche über den usb-port kommen. Grundsätzlich geht das, indem du dir für dein Gerät einen Treiber schreibst, der passende Schnittstellen bereitstellt. Als Ausgangspunkt sollte das helfen: USB Central Edit, Nachtrag: DDK (Microsoft) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MarkusLe Geschrieben 18. Juli 2007 Teilen Geschrieben 18. Juli 2007 Ich glaube nicht, das dass so eifnach wird, wie willst Du denn anhand eines 2D-Bildes die Entscheidung treffen Hindernis, kein Hindernis? Ein einfacher Schwarz/Weiß Vergleich dürfte dabei wohl ausfallen, insbesondere im Hinblick auf verschiedene Gegenstände oder Lichtverhältnsse. Spontan würde mir dazu nur einfallen ein Neuronales Netz zu basteln und entsprechend zu trainieren, oder eine 2te Webcam dazuzusetzen (Bzw. die eine immer hinundherschwenken) um ein 3D Bild zu errechnen, welches die notwendigen Tiefeninformationen enthält. MfG Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 18. Juli 2007 Teilen Geschrieben 18. Juli 2007 Ich glaube 2D würde das nur gehen wenn der Hintergrund, also das Bild ohne Hindernisse, bekannt ist so das du vergleichen kannst ob und wo etwas im Weg steht... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pointerman Geschrieben 18. Juli 2007 Teilen Geschrieben 18. Juli 2007 Moin! Also um die Kamera auszulesen, könntest Du Dich mal über WIA(Windows Image Acquisition) schlau machen: Windows Image Acquisition - Wikipedia Coding4Funs Wundersames Magazin - SIEH! MICH! AN! Alternativ könntest Du auch die Logitech-API verwenden. Keine Ahnung wo die zu finden ist... Die Hinderniserkennung ist ein ganz anderes Thema... Alleine bestimmte Objekte in einem Bild zu erkennen ist schon kniffelig (Stichwort Segmentierung). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
skydriver_heiko Geschrieben 18. Juli 2007 Autor Teilen Geschrieben 18. Juli 2007 hey danke für das viele interesse an dem thema ich hab noch nicht geschafft alle links weiter durch zuarbeiten aber erst mal vielen dank in hinblick auf den bildinhalt hab ich vergessen zu sagen, dass es sich um ein bild handelt, welches durch ein nachtsichtgerät gefilmt wird hab da schon alles zusammengebaut und so weiter! also darum gehts hier weiter nicht, wichtig ist dass es sich um ein grünstufen bild handelt vielleicht schränkt das weit genug ein: es soll auf ein boot montiert werden, um auch bei nacht fahren zu können (probleme werden dann sicherlich noch die reflexionen auf dem wasser machen ich hab mal nen bild (mit logitech software) aufgenommen habt ihr dazu vielleicht noch weitere ideen? vielleicht kennt jemand ein programm mit dem man verschiedene fitleroperatoren (sobel oder la-place, usw.) mal auf ein solches bild anwenden kann, um zu sehen ob da was brauchbares bei raus kommt bis denne... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bubble Geschrieben 18. Juli 2007 Teilen Geschrieben 18. Juli 2007 um zu sehen ob da was brauchbares bei raus kommt Für erste Versuche eignet sich eine Bildverarbeitung mit dem meist vorhandenen Custom-Filter. Zur Abstandserkennung: Aus einem Bild kannst Du Abstände nicht zuverlässig ermitteln, also ob z.B. ein kleines Objekt nah oder ein großes Objekt weit entfernt ist. Praktikabler als per Kamera wäre eine Abstandsmessung mittels Ultraschall im Nahbereich oder für etwas größere Entfernungen mit Radar. Also so, wie es auch in Autos umgesetzt wird. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
skydriver_heiko Geschrieben 18. Juli 2007 Autor Teilen Geschrieben 18. Juli 2007 die konkreten abstände sind mir eigentlich nicht so wichtig?! die wären doch nur für ein autonomes fahren interessant?! unabhängig von der größe des objektes müsste man doch erkennen können ob das objekt zwischen unterer bildkante (quasi das boot) in der breite des bootes (wohl über ne konfig?!) und horizont (könnte man ja auch über ne konfig einstellen?) beginnt. nur denn ist es ja als mögliches hindernis wirklich interessant oder seh ich das falsch? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 30. Juli 2007 Teilen Geschrieben 30. Juli 2007 Hallo, "Bilderkennung" ist ein sehr komplexes Thema. So ganz grob: Wenn Du eine stationäre Cam hast, dann nimmst Du Dir das Bild ohne Objekt auf und bringst es in einen Definierten Farbraum (z.B. Graustufen). Nun nimmst Du die aktuellen Bilder mit dem Cam auf und filterst sie über Hoch-Tief-Pass entsprechend, so dass Du Vordergrund-Hintergrund-Informationen erhälst. Dein gesuchtes Objekt sollte nun als "Vordergrund" zu finden sein. Natürlich zu erkennen, was auf dem Bild ist, wird dann noch schwieriger. Vor allem solltest Du auch bedenken, dass Bilder immer etwas verrauscht sind, so dass Du sie vorfiltern musst. Falls Du eine bewegliche Cam hast, dann kannst Du diese Technik nicht so anwenden, da sich ja auch Dein Hintergrundbild ständig verändert. Du könntest hier z.B. auf Kanten- und Flächenerkennung zurückgreifen, oder auf Bewegungsänderungen relativ zu Deiner Fahrtrichtung. Das ganze benötigt aber auch eine recht hohe Rechenleistung, bei entsprechender Auflösung. Der Tipp mit einem neuronalen Netz ist durchaus gut, wenn es sich um definierte Muster handelt, die Du "lernen" musst, z.B. bei mir waren es die Ziffern 0 bis 9 aus Handschriften zu erkennen. Wichtig hierbei aber ist die Vorverarbeitung, einfach ein Bild in ein Netz schieben und hoffen, dass es etwas tut, geht nicht. Also wirklich überlegen welche Informationen benötigst Du zur Erkennung, diese Daten normalisieren und dann wenn Du sie klassifizieren musst in eine SVM (2-Klassen) oder VQ (mehrere Klassen) [LVQ, RLVQ, GRLVQ] zu stecken. HTH Phil Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
need-some-blood Geschrieben 30. Juli 2007 Teilen Geschrieben 30. Juli 2007 Hallo, also wenn ich das richtig verstehe möchtest du über eine USB-Webcam ein Boot nachts (voll)automatisch fahren, lassen. Ist das richtig? Hierfür gibt es schon interresante Produkte. Dort ist auch die Hardware wesentlich näher an den Anforderungen gestaltet. Siehe hier. Auch bietet die SDK die Möglichkeit bestimmte Bereiche ständig zu überwachen. @ Algorithmik Eine verhältnissmäßig leichte aber nicht unbedingt empfehlenswerte (da langsam und auch nicht wirklich elegant) Möglichkeit wäre die Bildpunkte über eine Blob-Analyse zu zählen. Dabei könnten Spiegelungen des Wassers über entsprechende Filter und Mindestgrößen kompensiert werden. Wird ein Blob mit einer bestimmten Größe gefunden, wird das entsprechende Bild mit dem nachfolgendem Bild verglichen. Ist der Schwerpunkt des Blob im Folgebild nach links verschoben und der Blob größer, kommt dir das Objekt entgegen und du musst nach rechts ausweichen. Nur so als Idee, wenn es denn bei einer BV-Lösung bleiben soll. Wesentlich empfehlenswerter wäre eine messende Sensorik. Egal ob - Radartechnik (würde ich nicht unbedingt einsetzen wollen, da besonders kleine symmetrische Objekte Schwierigkeiten machen) oder - Ultraschall (hier könnte es Schwierigkeiten bei Tieren geben, da das Fell Ultraschall absorbiert. Auch ist die Entfernung zu gering), bzw. - Lasermesstechnik (Ein entsprechendes Lasermessgerät mit Überwachungs & Schutzfeld sollte es da tun) Die Systeme sind wesentlich besser dafür geeignet und preislich nicht wesentlich teuer, wenn man den hohen Programmieraufwand beachtet der auf dich mit einem BV-System zu kommt. MVG need-some-blood Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
need-some-blood Geschrieben 30. Juli 2007 Teilen Geschrieben 30. Juli 2007 Nachtrag: Solltest du dennoch nicht um eine BV-Lösung herum kommen\wollen, würde ich dir HalCon empfehlen. Siehe hier Das Tool hat schon entsprechend vorgefertigte Algorithmen für die Bildverarbeitung dabei und macht es dir einfach Bilder einer Kamera zu aquirieren. MVG need-some-blood Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DerArne Geschrieben 10. August 2007 Teilen Geschrieben 10. August 2007 Also deine Idee mit der Bildverarbeitung ist schon interessant aber nicht gerade einfach! Das bedeutet, wenn du jetzt schon Probleme hast, wie du das Bild per USB auf den Rechner bekommst, was soll erst noch passieren wenn du die bilder analysieren willst. Gut genug mit Kritik. Als Hilfe sollte dir die freie Grafikbibliothek OpenCV von Intel helfen. Bild nehmen(cvLoadImage)->Graustufen(cvCvtColor)->Treshold bilden->CvCanny->Hough Transformation(cvHoughLines2)->usw. wenn du dir jetzt noch sagst - "ok - da bleib ich dran" - dann zieh es durch :-) Ich persönlich bin grade dabei ein Bild einzuscannen und zu überprüfn, ob es gerade liegt, dann den Barcode ausliest und die Informationen aus dem Barcode herauszufiltern. PS Frage an alle: kennt jemand eine Barcode-Erkennungs-API mit freier Lizenz? Wäre sehr dankbar. Tschau Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
newton1976 Geschrieben 1. September 2007 Teilen Geschrieben 1. September 2007 Hallo, deine Frage ist zwar schon ne weile her aber: was webcams anbelangt hab ich mit der DirectX SDK ganz gute erfahrungen gesammelt. Das war allerdings zu DirectX 7 Zeiten, da gab es auch gute Beispiele etc, z.b. wie man an die einzelnen Frames (bilder) von der webcam rannkommt. Wie es momentan mit der SDK 9 und webcams aussieht weiß ich nicht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.