Hallo Zusammen, kurz zu mir: ich bin 25 Jahre alt und habe Elektrotechnik gelernt und kann bischen Mikrocontroller, Arduino programmieren. Was ich vorhabe ist eher ein PC Programm glaube ich. Was möchte ich gerne machen (für mich Mount Everest, für euch vielleicht Feldberg): Mit einer Webcam/PixyCam einen kleinen Bereich meines Monitors aufnehmen. Undzwar den Bereich wo im Spiel der Fadenkreuz ist. Und in diesem Bereich soll auch das Ziel gesucht/erkannt werden und dann soll das Programm den Maus so bewegen (nicht Hardwaretechnisch sondern Softwaretechnisch), dass das Ziel mittig im Fadenkreuz ist und dort gehalten werden. Wenn das Ziel nicht erkannt wird, soll der Mensch den Fadenkreuz mit der echten Maus bewegen. Mit der Maus (mit der Hand) richtet man den Fadenkreuz auf das Ziel aus. Fadenkreuz sieht so aus (Fadenkreuz.png). Hintergrung kann hell sein, grell sein, andere Objekte dahinter sein. Und das Ziel kann so aussehen (Ziel.png), also Rund oder Rechteckig sein oder Rauteform sein. Hintergrung kann hell sein, grell sein, andere Objekte dahinter sein. Wie kann man so ein Projekt am einfachsten, schnellsten realisieren, ich meine gibt es schon fertige Komponeneten die man benutzten könnte? Ich hoffe dass ich einiger maßen gut erkären konnte was ich vorhabe. Auf Antwoten freu ich mich sehr. Liebe Grüße
Du willst eine Cheat-Ziel-Hilfe bauen, die man nicht aufspüren kann ? Muss die immer den Kopf treffen ? :-)
Maxy M. schrieb: > für euch vielleicht Feldberg Leider eher Olympus Mons (der 22km Vulkan auf dem Mars). Denn Objekterkennung ist ein nicht-triviales Computer Vision Problem, das man nur mit entsprechender Rechenleistung erschlagen könnte. Eine Titan V oder 2080Ti wäre da nicht unterfordert im Echtzeitbetrieb. Es kommt aber auch darauf an wie stark sich Spielfiguren vom Hintergrund abheben und wie leicht sie erkennbar sind. Da gibt es extreme Unterschiede in verschiedenen Computerspielen.
Wow 22km da guck ich dumm aus der wäsch. Ist die Leistung nicht Abhängig wie groß der Bereich/Bild ist? Ich dachte so ehr an Raspberry Pi. Zur Not habe ich einen zweiten Rechner. Wenn Hintergrund schwarz ist dann kann man es leicht erkenne (siehe bitte Bilder)und die Farbe ist immer grün.
Jim M. schrieb: > Denn Objekterkennung ist ein nicht-triviales Computer Vision Problem, > das man nur mit entsprechender Rechenleistung erschlagen könnte. Eine > Titan V oder 2080Ti wäre da nicht unterfordert im Echtzeitbetrieb. > > Es kommt aber auch darauf an wie stark sich Spielfiguren vom Hintergrund > abheben und wie leicht sie erkennbar sind. Da gibt es extreme > Unterschiede in verschiedenen Computerspielen. Schlussendlich haengt es auch von der "Geschwindigkeit" des Spiels ab. Quake3 ist was anderes als CS:GO ist was anderes als Battlefield. Soll heissen: In Battlefield hab ich potenziell mehr Zeit zum Auswerten, da das Spielgeschenen im grossen langsamer ist als in CS oder Quake. Und es kommt auch noch auf die Aufloesung der Kamera und den betrachteten Bildausschnit an. 300x300 Pixel lassen sich schneller auswerten als 1000x1000. Aber ja, das groesste Problem duerfte sein wie stark sich das Ziel vom Hintergrund unterscheidet. Gerade bei CS:GO koennte das spannend werden, wenn ein CT (dunkle Klamotten) in einer dunklen Ecke sitzt. Oder der helle T in Dust2 vor einer sandfarbenen Wand steht. Ebenso darf nicht vergessen werden, das die Kamera in einem bestimmten Winkel auf den Monitor schaut, wodurch die Farben (die die Kamera sieht) auch noch mal schlechter werden koennen. Das haengt dann an Kamera und Monitor. Der TO sollte sich mal OpenCV anschauen. Das ist mMn die schnellste und effektivste Anlaufstelle um seine Objekterkennung zum laufen zu bekommen. Der Umweg ueber die Kamera ist aber relativ unnoetig, da das eigentliche Tool, was das Zielen und Steuern der Maus uebernimmt ja immernoch auf dem Rechner laufen muss. Da kann man dann auch einfach Screenshots machen und darin suchen. Das abgreifen der Bilddaten ist ja am Ende nicht von einer Streamingsoftware wie OBS zu unterscheiden. Und mit den Screenshots entfaellt dann auch das Problem des Blinkwinkels und der Farbverfaelschung der Kamera. Und die Kamera bringt ja noch zusaetzliche Latenzen (USB) ins spiel. Statt der Kamera koennte man auch eine Capture-Card nutzen (machen viele professionelle Streamer. Auf PC 1 lauft das Spiel, und mit PC 2 wird das Bild ueber die Capture-Card gestream/aufgezeichnet. So gibt es nahezu keinen Leistungsverlust (FPS) im Spiel.). Gibt es sowohl intern als auch extern (USB 3). Maxy M. schrieb: > Wenn Hintergrund schwarz ist dann kann man es leicht erkenne (siehe > bitte Bilder)und die Farbe ist immer grün. Ist das Ziel immer dieser gruene Kreis? Ist der Hintergrund immer schwarz? Wie du aus diesem posting entnehmen kannst, gibt es viele Arten von Spielen und Zielen... Je genauer deine Spezifikation ist, desto eher kann man dir helfen. Beispiel: Du hast einfach nur einen weissen Bildschirm, und da ist irgendwo ein schwarzes Quadrat drauf. Dann kannst du im einfachsten Falle einfach ein referenz Screenshot von dem Quadrat machen. Dann machst du einen Screenshot vom Monitor und solltest die Position des Quadrates mit einem recht einfachen vergleich finden koennen.
Wow so viel geschrieben, vielen dank für eure Hilfe und Infos. Fadenkreuz und Ziel ist immer grün und Form des Ziels kann Kreis, Quadrat oder Raute sein. Hintergrund kann schwarz, weiß, grell hell sein, wobei bei weiß oder grell hell erkennt man das Ziel schlechter, aber das ist nicht so schlimm, weil wenn es nicht erkannt wird, muss ich eine bessere Position annehmen, so dass das Programm das Ziel erkennt und den Fadenkreuz mit Hilfe der Mausbewegung (softwaretechnisch) in Richtung Ziel bewegt und das Ziel mittig im Fadenkreuz hält, bis das Ziel weg huscht oder zerstört ist. Das mit dem Screenshots finde ich sehr gut. Kamera fällt dann weg. Ich würde gerne erstmal alles (Spiel, Bildverarbeitung,...) auf einem Rechner versuchen. Im Anhang habe ich zwei Bilder angehängt mit heller Hintergrund. Ist schon schlechter erkennbar. Das Fadenkreuz ist nicht starr im Mittelpunkt, wenn ich mich bewege, bewegt sich es auch. Also Screenshots macht, Bild umwandelt, nachdem Fadenkreuzmuster und Zielmuster sucht und dann den Fadenkreuz zum Ziel bewegen indem man die Stoftwaremaus bewegt. Habe ich irgend etwas vergessen? Gibt es Tools die teilweise oder als ganzes all diese Teilbereiche kann, ich denke nicht, oder? Wie kann ich, mit meinem bischen MC Wissen, die ganze sache jetzt anpacken? Gruß
> Wie kann ich, mit meinem bischen MC Wissen, die ganze sache jetzt > anpacken? > > Gruß Gar nicht. Das Projekt ist zum scheitern verurteilt, weil du viel zu wenig Knowhow hast, sorry! Fang an dir Bücher zu kaufen und lerne programmieren - richtig. Anschließend fängst du mit kleinen Projekten an und erarbeitest dir über Jahre das Knowhow - ja, JAHRE.
bingo schrieb: > schau Dir mal den Squirrel-Tracker an: > http://thomaspfeifer.net/fpga_dsp_bildverarbeitung.htm viel zu komplex als beispiel ausserdem nicht dokumentiert zum lernen völligj ungeeignet wirddochnix schrieb: > Gar nicht. Das Projekt ist zum scheitern verurteilt, weil du viel zu > wenig Knowhow hast, sorry! sehe ich nicht so ein fadenkreuz ist so ziemlich das einfachste was man detektieren können muss das ist so einfach, dass man es aus gewonnenen bilddaten herausrechnen kann
wirddochnix: Danke für deine ehrlichen Worte. Wegen Burnout kann ich es leider nicht. Das würde bei mir Jahrzehnte dauern. bingo: danke für den Link. Wie "Kaj" geschrieben hat ist besser mit den screenshots zu arbeiten, wodurch die Kamera wegfällt. Es gibt doch bestimmt fertige Open Source Tools, die man dann stück für zusammen bauen könnte, oder? Kennt ihr erfahrere Programmierer in diesem Bereich, die so etwas für "relativ kleines Geld" programmieren würde? Gruß
Alles viel zu kompliziert. stm32f4-disvovery-board mit dcmi und Speicher. -Bild in Speicher -pixel ablaufen, bis Farbe erkannt wird - oberer Rand des Rings -verifizieren, dass dort tatsächlich der Ring ist Vorraussetzung ist im Prinzip nur, dass du dcmi anwenden kannst.
Selbst schrieb: > OpenCV, template matching Nettes Beispiel dazu; https://www.codeproject.com/Articles/196168/Contour-Analysis-for-Image-Recognition-in-C
Hi, hier ist ein gutes Beispiel für Python. Die KI kannst du ignorieren, aber in dem Videotutorial wird beschrieben wie du das Bild analysiert. Falls das ganze auf einem anderen PC (z.b. Intel NUC) laufen soll und dein Betriebssystem Windows 10 ist kannst du Bildmirrorfunktion auf dem Host nehmen und das Bild per TCP an den Client senden. Microsoft bietet dafür fertige VC++ Projekte. Die Bildverarbeitung und Steuerung kannst du dann auf dem Client machen. Ich denke solch ein Bot wird recht schwierig gefunden.
So kompliziert ist das nicht. Wenn man davon ausgehen kann dass sich die Farbe nicht all zu drastisch verändert und immer grünlich bleibt, dann muss man doch nur einen Kreis finden der eine fixe Größe hat. Das ist vollkommen machbar. Ich würde das aber auch besser ohne Webcam machen. Bei einer ganz einfachen Methode haben die das ganz ohne Rand-suchen gemacht. In deinem Fall sucht man Bereiche mit grünen Punkten und legt dann dort das Muster deines Kreises hoch und vergleicht die Anzahl der übereinstimmenden Punkte. Man bewegt dieses Muster dann systematisch über diesen Bereich, vergleicht die Punkte und kann somit die Stelle mit der größten Übereinstimmung finden. Das ist zwar nicht intelligent oder ideal, aber eben einfach. Das könntest du recht schnell hinbekommen.
Maxy M. schrieb: > Wie kann man so ein Projekt am einfachsten, schnellsten realisieren, ich > meine gibt es schon fertige Komponeneten die man benutzten könnte? Kongsberg hat das fertig. Ist im Kongsberg Protector mit drin.
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.