Raspberry Pi 3B+ [PS4 Capture]

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Morgen Leute,

Und zwar habe ich nun Jahre lang Cheats geschrieben, dessen "Programmiersprache", aber nicht viel Möglichkeiten bietet.
Habe dies auch geschäftlich gemacht gehabt, hatte auch Geschäft registrieren lassen, aber nun möchte ich mich einfach an die richtigen Dinge herranwagen.

Somit würde ich gerne Mal ein Projekt starten.
Mein Vorhaben ist, dass das Video-Signal von PS4 zu RasPi geht, beim RasPi die Daten verarbeitet werden, daraus sich z. B die Position eines Spielers ermittelt und dabei das Fadenkreuz auf diese Position auch setzt (wenn ich L2 halte) und zu gleich die Daten vom RasPi zum TV weiterleitet.

Ich hatte bereits geguckt, wie ich dies tun könnte, ohne eine Capture-Card von ~150€ zu kaufen. Aber da ich selbst nicht die Ingenieurskenntnisse/Techniker(?)Kenntnisse habe, bin ich da recht ratlos und frage deshalb Mal nun die Leute, die bissel mehr vom Ingenieurswesen wissen als ich. ^^
Oder gibt's ein Hdmi Kabel, was 1 input hat und 2 outputs, allerdings beide Ausgänge gleichzeitig genutzt werden können? So könnte die PS4 normal mit TV verbunden sein und der RasPi3 allerdings bekommt zu gleich das Video-Signal und brauch dies nur verarbeiten, statt auch noch weiter zu leiten...

Während ich auf eine Antwort warte, schaue ich selbst weiter nochmals nach.

Danke im Voraus und frohe Ostern! :)
LG, xXSkyWalkerXx1
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Der raspberry pi.... für die einen eine kleine Box voller Wunder und quasi unbegrenzter Möglichkeiten. Für die anderen ein 15 Jahre alter settop-Box Chip mit aufgebohrter CPU ohne dazu passenden IO-Durchsatz.

Ein paar Hinweise: nur weil der PI einen HDMI input hat, heißt das nicht, das man in den einen HDMI Strom rein kippen kann. Wenn du Videos IN den PI kriegen willst, dann musst du einen Fame grabber nutzen. Schau dir die ganzen ambient light/hyperion setups an. Die machen das. Auch HDMI “splitten”. So heißt das. Allerdings können (und brauchen) die auch keine volle Auflösung. Dazu reicht die Leistung des Pi bei weitem nicht.

Womit wir beim nächsten Problem sind: für dein Vorhaben brauchst du Computer Vision auf einem Niveau, das mit moderne Hardware und mehren GPUs von NVIDIA *vielleich* zu schaffen ist. Ganz vielleicht. Mit einem PI? Eher nicht so.
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Gibts dafür PCs die dazu taugen?
Also im Sinne von Mini-PCs, weil eigentlich wöllte ich mir halt selber ein kleines Cheat-Gerät bauen & programmieren.

Hab einfach Lust sowas Mal zu machen...
Türlich wird's Zeit kosten, da ich mich darin erst informieren muss und etc.

EDIT:
hab gesehen, dass da der Nvidia Jetson geeignet sein soll, gibt's auch 'ne billigere Alternative? :D
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Deine Algorithmen entwickeln und CNNs trainieren kannst du auch bei Amazon. Da gibt's spezielle AWS-Instanzen AFAIK. Echtzeit wird das natuerlich nicht, aber ohne das es ueberhaupt geht bringt's ja nix. Und ich denke nicht, dass du da substantiell billiger weg kommst.
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Hm, muss ich mir überlegen, mit dem AWS.

Und das Programmieren kann man mit dem "cv2" Modul für Python machen, oder gibt's da ein besseres?

Mal 'ne andere Frage:
In manch Beispielen sehe ich "var1, var2 =" whatever"" (in diesen Format).
Was bedeutet dies bzw wie ist das zu deuten?
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

OpenCv ist das Mittel der Wahl, ja. Und was du da siehst nennt sich tuple unpacking. Schlag das mal nach.
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Ahh, okay... Danke - hab's!

Dennoch verstehe ich nicht warum die Variable "ret" im folgendem Code erzeugt wird:

Code: Alles auswählen

import cv2
 
# initialisiere WebCam
cam = cv2.VideoCapture(0)
 
# lese ein Bild von der WebCam
ret, image = cam.read()
 
# konvertiere das Bild in Graustufen
image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
 
# zeige das Bild an
cv2.imshow("Bild modifiziert", image)
 
# warte auf Tastendruck (wichtig, sonst sieht man das Fenster nicht)
cv2.waitKey(0)
Denn diese Variable wird nicht verwendet, wozu wird diese dann also erzeugt?
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

`cam.read` liefert ein Tuple zurück, das man auch als solches verwenden muß, und dass `ret` nicht verwendet wird, ist ein Programmierfehler, weil man das Ergebnis weiterverwendet, ohne zu prüfen, ob es auch sinnvoll ist.
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Mal 'ne andere Frage:

Um einen Gegner (beim Spiel wie z. B Call of Duty) zu tracken, was ist dafür sinnvoller - Motiontracking oder Pixeltracking?
Halte Pixeltracking für geeigneter, nur frage ich mich, nach welchen Pixeln das Programm suchen soll, da es ja heut zu Tage in den meisten Spielen zig verschiedene Charaktere gibt, die unterschiedlich aussehen.
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich kenne den Begriff Pixeltracking nicht. Und fuer CV gilt: das entsteht nicht am gruenen Tisch, sondern du musst dir Testdaten erstellen, die sogar ggf. von Hand klassifizieren (also zB jeden Frame eine mehrsekuendigen Sequenz von Hand annotieren, dazu schreibe ich mir eigene Tools) und dann eben deine Algorithmen dagegen testen.
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Pixeltracking ist ,wie es der Name eigentlich schon sagt, die Suche nach bestimmten, auffälligen Farbpixeln, die nur ein bestimmtes Objekt besitzt.
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das sagt der Name ueberhaupt nicht. Der Oberbegriff ist object tracking, und das was du beschreibst wuerde man color-tracking nennen. Und das das keine sinnvolle Idee ist, sollte klar sein - ausser du zwingst deine Gegner, in Neon-Klamotten rumzurennen. Wie dem auch sei, es gilt, was ich schon sagte: bau dir testvideos von Szenen, in denen du deinen Tracker einsetzen willst. Und dann lass die durch deinen Object-Tracker laufen.
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Nochmal zur Hardware.

Es kommt demnächst der Nvidia Nano raus, der geeignet ist für meine Situation und mehr, mein Onkel verwies mich dabei auf die Architektur: der Nano verwendet ARM, welches unterschiedlich zu x86 ist.
Nun stellt sich die Frage, wie sich die Programmierung bei dieser Architektur verhält - also kann ich alles wie gewohnt von Windows und Linux machen oder gibt es was zu beachten /etc.? (PS. gewisse Unterschiede beim Code in Bezug auf die Bibliotheken sind mit bekannt)
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@xXSkyWalkerXx1: Du weisst das der Raspi auch einen ARM-Prozessor verwendet‽
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Oar na klar! Bin so ein Schussel...
Das hab ich extra heute früh noch nach gelesen. :facepalm:

Dann hat sich die Frage erübrigt, danke! ^^
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Nun, da ich damit anfangen möchte, habe ich ein paar Fragen zur Umsetzung:

1) Ich brauche einen Object-Tracker - Welchen Typ könnt ihr mir empfehlen, der 30-40 FPS an den TV ausgibt und auch eine präzise Verfolgung bietet?
2) Damit der Tracker weiß was er verfolgen soll brauch sowas wie "Haar Cascade" oder? Und wie '__deets__' schon sagte, den Tracker dann in verschiedenen Szenarien durchlaufen lassen, um ihn zu testen?
3) Allgemeine Tips für's Herangehen? (einfach Mal dahin gestellt - ohne spezifischen Hintergrund)
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich halte das Projekt fuer massiv ueberambitioniert. Die Aufgabe selbst ist mit viel Hintergrundwissen schon eine Herausforderung. Ich habe schon ein paar CV Projekte hinter mir, aber ob ich sowas erfolgreich fertig stellen koennte, wuesste ich nicht zu sagen. Und dann auch noch auf etwas so popeligem wie dem PI, mit 30-40FPS? Schon auf Desktophardware laufen Dinge wie zB Posenet mit deutlichem Lag. https://www.youtube.com/watch?v=Lb5nrhGTc9g

Wenn dich das motiviert dich mit Themen wie machine learning und Bildverarbeitung auseinander zu setzen - schoen fuer dich. Gibt's viel online, fang an dich durch Youtube und github zu graben. Wenn du glaubst, du kommst da mit einem beschraenkten Zeithorizont zu einem Produkt, frag die vielen Leute, die vor 5 Jahren gesagt haben, das wir heute schon selbstfahrende Autos haetten, wo die geblieben sind. Denn das ist eine vergleichbare Aufgabe.
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Zum Thema RasPi: hätte erwähnen sollen, dass ich das mit meinem PC versuche... Deshalb würde ich eigentlich vorerst auch mit einem nicht so anspruchsvollen Spiel beginnen: Minecraft.

Ja, dass interessiert mich schon sehr.
Worauf willst du hinaus? Dass es zu viel Zeit kosten würde bis ich die Kenntnisse dazu hätte oder einfach das zu schwer ist?
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

ICH wuerde sagen es ist zu schwer, vor allem bei dem von dir ja im Grunde angepeilten Grad von "hier, gib mir 200 Euro & du wirst der geilste Sniper in Spiel X" Level. Minecraft ist im Verhaeltnis noch recht einfach, weil es durch seine grafische Niederkomplexitaet wenig Probleme wie zB Schatten und stark strukturierte Umgebungen hat. Aber auch da waere ich mir laengst nicht sicher, wie weit ich kommen wuerde.
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Haha, ja... passender Spruch! :D
Und ja, deswegen wollte ich eigentlich auch mit Minecraft anfangen: einfacher zu erfassen (tracken) & die Leistung meines PC's sollte sogar dafür reichen.

Weiß nicht... Aber wenn DU schon sagst, dass es (zu) schwer ist, und du hast ja schon vieel mehr Wissen als ich, dann würde ich (sollte ich es schaffen) auch vieel Zeit brauchen und eigentlich dachte ich, ich könnte das Projekt vllt in meinen Sommerferien schaffen.
Ein anderes Projekt wäre auch eine AI-Drohne.
Antworten