ohne den genauen Kameratyp zu kennen und ohne etwas über Belichtungs- oder Scharfstellfunktionen zu wissen, kann man doch überhaupt nichts dazu sagen - wer weiß denn, was die wie und wozu intern verwendet.
ohne den genauen Kameratyp zu kennen und ohne etwas über Belichtungs- oder Scharfstellfunktionen zu wissen, kann man doch überhaupt nichts dazu sagen - wer weiß denn, was die wie und wozu intern verwendet.
So eine Kamera liefert Werte über die erkannten Objekte, wie beschrieben. Wenn Du damit nichts anzufangen weißt, brauchst Du Dir über Belichtung und Schärfe keine Gedanken zu machen.
Holomino hat da schon was Richtiges geschrieben, so würde ich mir das auch etwa vorstellen können. Aber ich weiß immer noch nicht wie genau.
Angenommen, ich bekomme zwei Zahlenpaare, eines über die x/y-Position von einem Punkt und eines vom zweiten Punkt, einer Linie. Sind mehrere Linien erkennbar, bekommt man noch mehr Werte.
Was mache ich mit so einem Wertepaar? Woher weiß die Software, wozu so eine Linie gehört, was da erkannt wird - welches Objekt? Die Linie könnte die eines Türrahmens sein, eines auf dem Boden liegenden Teppichs, die eines Wandvorsprungs oder eines Objektes, das im Raum steht und von dem man nicht weiß, was es ist.
Es gibt auch Beispiele für Arduino, aus denen geht so etwas aber nicht hervor. Oder anders ausgedrückt: ich habe kein Beispiel gefunden, wo diese Linienerkennung sinnvoll eingesetzt würde.
Gesagtes gilt dann auch für erkannte Kreise oder Rechtecke.
Ich weiß wohl, dass solche Sachen zur Objekterkennung eingesetzt werden, aber wie? Wo findet man Beispiele für sinnvolle Anwendung? Also z.B. ein Beispiel, wie aus gefundenen Linien in einem Bild, ein Objekt erkannt wird, wenn die Erkennung der Linien dafür überhaupt gedacht ist (wofür ganz genau ist es gedacht?).
MfG
- - - Aktualisiert - - -
Hier habe ich ein Beispiel zum Template Matching gefunden. Zumindest wird da mal was erklärt. https://www.youtube.com/watch?v=Ke4kOCvo0Yk
darüber kann man nichts aussagen solange man nichts über die Kamera weiß und/oder mit welcher Soft- oder Firmware die läuft.
Warum stellst du dich so stur an? Kannst du nicht einfach mal nur antworten?
Nikon? (welche?) Canon? (welche?) Sony? (welche?) USB cam? (welche? welche Software? welche cpu/Soc?) GoPro? (version?) Smartphone-cam? (welches Smartphone? OS?) Pixy-cam? (Version)?
Weil ich Antworten auf diese Fragen haben möchte, die ich gestellt habe. Nicht Vermutungen oder was Anderes, zu dem, was mich jetzt nicht interessiert.
Hier hast Du ein Datenblatt dazu: https://openmv.io/products/openmv-cam-h7
Version, Aufbau, Maße etc.
Aber es geht nicht nur um diese Kamera, auch um ähnliche, wie die Pixy 2. Inwiefern die sich gleichen, muss ich erst sehen, wenn ich beide habe.
Ich will nichts über Schärfebereich wissen, ich brauche keine Infos zur Ausleuchtung des Bildes. - Das kann ich hier selber sehen.
Informationen zur Kamera selber, Version, Hersteller, Objektiv, Brennweite, Ausleuchtung, Bildgröße, Framerate usw. usw. sollen für meine Fragestellung nicht interessant sein.
Worum es mir geht, ist dies:
Ich möchte wissen, wie man diese Sachen, die so eine Kamera zur Verfügung stellt, einsetzt:
Vielleicht ist es möglich, beim Thema und der dazugehörigen Fragestellung zu bleiben? Ich möchte eben nur wissen, was man aus den Daten macht (und wie man das macht) die aus so einer Bildverarbeitung, zu Linien, Kreise u.a., entstehen (Koordinaten und Richtungsangaben). Insbesondere die Frage nach den Linien interessiert mich hier, als Beispiel. Noch genauere Fragen dazu habe ich schon gestellt.
Gruß
Moppi
Geändert von Moppi (28.10.2020 um 07:19 Uhr)
James Bruton hat erst kürzlich (ich habs gestern gesehen) ein Video veröffentlicht, in dem er die Gesichtserkennung nutzt.
Da war auch ein Ausschnitt drin, wo er nen anderen Roboter Dreiecke, Kreise, Vierecke unterscheiden lässt.
Beides schien ziemlich gut zu funktionieren- ich kann mir z.B. vorstellen, dass ein Roboter z.B. seine Ladestation am entsprechenden Marker erkennt.
Grüssle, Sly
..dem Inschenör ist nix zu schwör..
Die Symbolerkennung funktioniert auch halbwegs, da könnte man sogar etwas damit anfangen, wenn man herausgefunden hat, unter welchen Bedingungen das praktikabel ist.
Leider sind diese Demos immer hübsch anzusehen. Ich kann jetzt auch ein Video davon machen, wenn ich die Kamera auf das fahrbare Chassis montiert habe. Dann schaffe ich halbwegs taugliche Bedingungen (wenn vielleicht auch praxisferne Bedingungen, das weiß ja keiner, der das Video nicht herstellt) und zeige am PC die Auswertung der Kamera. Das ist durchaus eindrucksvoll.
Bloß was macht man mit den Ergebnissen, die für Linien z.B. ausgeworfen werden. Weil Linien können überall erkannt werden: eine offenstehende Tür, ein Mauervorsprung, eine Ecke einer Wand, ein Schrank, Fenster, Teppiche, Stühle ... Um mit einer Linie was anfangen zu können, muss sie doch zuzuordnen sein.
Wenn ich es z.B. schaffe, einwandfrei einen blauen Ball zu verfolgen und weiß, dass es nur ein blaues Objekt im Sichtfeld gibt, dann bekäme ich vermutlich die Position des Objektes (als Koordinate, im zweidimensionalen Bild), vielleicht die Größe (Umfang oder Fläche) und die Richtung (vielleicht relativ zur Bildmitte). Aus diesen Angaben könnte ich ableiten, wie weit der blaue Ball weg ist und in welcher Richtung. Mit etwas Tüftelei könnte ich so einen Tischtennis spielenden Roboterarm steuern, oder einen Arm, der den blauen, fliegenden Ball einfängt.
Aber was tue ich mit Linien?
Mit der Symbolerkennung ist es auch so eine Sache, weil das auf eine bestimmte Entfernung funktioniert. Ein Symbol von der Größe 3*3cm wird auf eine Entfernung von 30 bis 50cm erkannt. Größere Entfernungen sind möglich, dann muss das Symbol größer werden (z.B. Apriltags). Auf 2m Entfernung müsste das Symbol dann vielleicht schon 20*20cm groß sein, um eine einwandfreie Erkennung und eine hohe Erkennungswahrscheinlichkeit zu bekommen.
MfG
Geändert von Moppi (28.10.2020 um 10:12 Uhr)
das ist ja emdlich mal eine Info, mit der man as anfangen kann.
Bei "ich habe hier eine Kamera" habe ich zuerst an eine Canon EOS R etc. gedacht.
Also eine embedded Cam auf einem Breakoutboard mit on-board-Imageprocessing, ähnlich wie Pixy.
Eine Pixy 1 + 2 hatte ich auch mal, aber wieder verkauft, weil die Objekt-Erkennung hundsmiserabel war und extrem gute und konstante Lichtverhältnisse erfordert hatte, und dort wurden auch ständig Bereiche "erkannt", die absolut ohne Sinn waren und der Rest unglaublich verrauscht. Außerdem war der Firmen-Support grottenschlecht. Habe sie beide wieder verkauft.
Daraufhin habe ich eine kleine USB-Cam für 20 EUR gekauft (skalierbar bis Full-HD) und weit bessere Ergebnisse mit meinem Raspi und openCV erzielt. Da kann ich genau selber programmieren, was ich wie erkennen will.
Du triangulierst z.B. über die Eigenbewegung. Fokussierst Du eine vertikale Linie auf den 0° Winkel Deiner Kamera (Mittelpunkt der x-Achse) und fährst vorwärts, hast Du schon eine einfache Winkelkorrektur. Beobachtest Du dabei, dass sich eine zweite Linie zum Bildrand verschiebt, kannst Du mithilfe der gefahrenen Strecke (Odometrie mit nun verringertem Winkelfehler) und etwas Trigonometrie Lage und Abstand der nach außen wandernden Kante relativ zur Roboterposition bestimmen. So lässt sich bei ausreichender Anzahl detektierbarer Kanten ein Netz aufbauen, in dem einzelne Kanten durch Lage-/Abstandsinformationen miteinander verknüpft werden.
Geändert von Holomino (28.10.2020 um 14:23 Uhr)
Lesezeichen