Manchmal ist es bei Blitzspielen über das Brett oder wenn es nicht zeitgemäß ist, sehr schwierig, sie mit Anmerkungen zu versehen.
Ich habe verschiedene Software / Hardware gesehen, um die Notation zu schreiben, sogar eine, die von der FIDE genehmigt wurde . Dazu müssen Sie die Bewegungen auf dem Gerät wiederholen. Kaum schneller als Stift und Papier, genauso fehleranfällig, und Sie riskieren, den falschen Zug einzugeben und noch mehr Zeit zu verschwenden.
DGT stellt ein Board her , das dies automatisch macht, aber nur mit seinen Teilen funktioniert. Der Preis beginnt bei 400 € und ist doppelt so hoch wie bei Turnierboards . Einige unabhängige Projekte sind verfügbar, wie z. B. USB-Schachbrett 101 oder sprachgesteuerte Schachroboter , Schachbrett-Step-Sequenzer . Zusätzlich sind einige offene Projekte verfügbar , die sogar Teile (oder gigantische Teile ) bewegen .
Ich habe heute Abend ein Playoff und die Turnierregeln schreiben immer kürzere Spiele vor, bis ein Gewinner feststeht. Daher dachte ich darüber nach, einen Film von der Tafel zu drehen, falls wir den Überblick verlieren sollten. Aber dann kam mein Programmierhintergrund und ich dachte "es muss eine Software geben, die einen Film verarbeiten und die PGN schreiben kann".
Ich habe überall gesucht und nichts gefunden.
- Gibt es so etwas (Webcam / Video zu PN Konverter)? Ein Prototyp vielleicht?
- Hat jemand eine solche Leistung versucht und seine Forschungen geteilt?
- Gibt es offensichtliche Einschränkungen, die den Erfolg dieses Projekts unwahrscheinlich machen?
- Würden Sie es kaufen, wenn es existiert?
quelle
Antworten:
Es ist eindeutig interessant und relevant, Schachpartien automatisch aufzuzeichnen (Live-Boards lösen mehr oder weniger das gleiche Problem). Soweit ich weiß, gibt es heute keine Software für diesen Zweck. Um dieses Problem zu lösen, denke ich, dass der "einfache" Fall wie folgt lauten sollte.
Eine schnelle Google-Suche mit dem Suchbegriff
hat diesen interessanten Artikel zurückgegeben
Alles in allem sollte es realistisch sein, diese Art von Software zu implementieren. Es kann jedoch billiger sein, wenn ein Mensch die gleiche Arbeit leistet (Übertragung von einem Videoclip auf einen Computer).
quelle
In Ordnung,
1) Meines Wissens nicht
2) Meines Wissens nicht
3) Es gibt mehrere Dinge, die diese Art von Projekt nicht trivial, sogar schwierig machen. Nicht zuletzt folgt es dem Stück und unterscheidet es beispielsweise von einer Handbewegung. Auch zu bestimmen, wann der Umzug gestoppt wurde, wäre eine interessante Frage, die das Computer-Sehen lösen könnte. Diese Art von Problemen wurde in anderen Situationen gelöst, jedoch nicht mit 100% iger Genauigkeit und schon gar nicht zu Preisen, die der Konkurrenz des DGT-Boards nahe kommen.
Dann stellt sich die Frage, wo die Kamera positioniert werden könnte. Direkt über Kopf bietet sich die beste Sicht auf die Tafel, sodass das Quadrat leichter und präziser bestimmt werden kann. Aber wo immer die Kamera platziert wird, besteht eine deutliche Wahrscheinlichkeit, dass einer der Spieler die Sicht behindert, indem er sich über das Brett beugt, nach der Uhr greift oder einfach gestikuliert.
4) Nicht, wenn es nicht wirklich billig war. Und ich rechne nicht damit. Meine Argumentation ist einfach. Wenn sich die Zeitkontrollen verkürzen, sinkt die Qualität des Spiels bis zu einem Punkt, an dem es für mich nicht mehr interessant ist
quelle
Das wäre eine recht komplexe Aufgabe. Vielleicht ist ein vernünftiger erster Schritt, die FEN-Position anhand eines einzelnen Bildes zu erkennen - für das mehr Ressourcen vorhanden sind, zum Beispiel:
quelle
Ich habe diese Software geschrieben. Es enthält eine Webcam-KI zur Bewegungserkennung, die mit der Arena-GUI verbunden ist.
https://www.youtube.com/watch?v=APkoE1UDKj0
quelle
Ich habe 2013 im Rahmen des Bildverarbeitungskurses bei FING UdelaR am Schach-Tracking-Projekt 8x8cam gearbeitet.
2014 haben dann andere Studenten eine bessere Version für Android namens chesstrack erstellt . Im Internet finden Sie Videos und Links zu dem verwendeten Code.
Ich würde gerne eine fertige App dieser Projektidee sehen, die ich seit Jahren hatte. Wenn es also Neuigkeiten dazu gibt, hinterlasse bitte einen Kommentar.
Beantwortung Ihrer gezielten Fragen:
Gibt es so etwas (Webcam / Video zu PN Konverter? Ein Prototyp vielleicht?
Abgesehen von meinem Projekt 8x8cam und chesstrack habe ich kürzlich ein Projekt namens ChessCam gefunden . Alle diese Projekte sind Open Source und müssen nur dann als Ressource benannt werden, wenn Sie daraus ein neues Projekt erstellen.
Hat jemand eine solche Leistung versucht und seine Forschungen geteilt?
Ja. Sie können dies auf der Antwort der vorherigen Frage sehen.
Gibt es offensichtliche Einschränkungen, die den Erfolg dieses Projekts unwahrscheinlich machen?
Das Schwierigste ist meiner Meinung nach, dass die Software funktioniert, unabhängig davon, wie die Kamera platziert ist und unabhängig von der Beleuchtung. Und auch, um an schnellen Spielen zu arbeiten und mit den Hand-Okklusionen zu arbeiten, wenn das Spiel gespielt wird, um die ausgeführte Bewegung korrekt zu erfassen.
Würden Sie es kaufen, wenn es existiert?
Definitiv Ja.
quelle
Es ist jetzt 2019-12 und 5 Jahre nach der ursprünglichen Frage.
Gibt es so etwas (Webcam / Video zu PN Konverter)? Ein Prototyp vielleicht?
sehen
Hat jemand eine solche Leistung versucht und seine Forschungen geteilt?
Ja, bis jetzt habe ich ungefähr 35 Forschungsarbeiten und ungefähr 10 Open Source-Lösungen und ein kommerzielles Angebot gefunden
2.1 http://wiki.bitplan.com/index.php/PlayChessWithAWebCam/Papers
2.2. http://wiki.bitplan.com/index.php/PlayChessWithAWebCam#Open_Source_Projects
2.3. http://wiki.bitplan.com/index.php/PlayChessWithAWebCam#Commercial
http://wiki.bitplan.com/index.php/PlayChessWithAWebCam ist ein weiteres Projekt, das auf die von Ihnen festgelegten Ziele abzielt. Das Projekt wurde am 15.10.2019 gestartet und in wenigen Stunden habe ich bereits viele Ressourcen gefunden, z. B. diese Frage. Zwei Monate später habe ich meine Antwort aktualisiert (siehe Links oben).
Gibt es offensichtliche Einschränkungen, die den Erfolg dieses Projekts unwahrscheinlich machen? Ich kann nur aus eigener Erfahrung mit einem ähnlichen Projekt antworten, das ich vor 31 Jahren durchgeführt habe, siehe http://wiki.bitplan.com/index.php/MagneticSensorChessBoard1987 . Zu dieser Zeit habe ich versucht, ein Schachbrett zu erstellen, das Bewegungen erkennt. Ich habe Magnete für die Holzteile und Reedkontakte verwendet. Der Schlüssel zum Erfolg war die Verwendung einer Schachengine, die neue "Regeln" einführte, um sich nur auf Bewegungen konzentrieren zu können und keine einzelnen Figuren erkennen zu müssen. Wie in einer Antwort oben dargelegt, sind Werbeaktionen für nicht-königliche Stücke möglicherweise einer der Randnutzungsfälle, die schwierig sind. Das Erkennen der Bewegung von Teilen anhand von Bildunterschieden ist ein bekanntes Problem.
Heutzutage sind auch Schachengines und UCI-kompatible GUIs verfügbar. Das Problem ist heutzutage eher ein Integrationsproblem als die Lösung der einzelnen Detailprobleme.
Ein großes Hindernis ist der Unterschied zwischen einem "Prototyp" und einem Produkt. Siehe z. B. http://www.nandanbanerjee.com/files/ICCVR-08AUG12-011%20paper.pdf
Ein Papier, das noch älter ist als diese Frage, aber weit entfernt von einem Produkt, das Sie zu einem vernünftigen Preis kaufen können.
Würden Sie es kaufen, wenn es existiert?
Ja. Als ich vor ein paar Tagen ein neues Schachbrett kaufte, suchte ich nach einem, das Züge aufnehmen konnte, und es lag immer noch bei 500 EUR. Wie es aussieht, werden die Hardwarekosten in diesen Tagen weit unter 150 EUR liegen, einschließlich eines anständigen Schachbretts und guter Stücke.
Die Software könnte in Kürze Open Source und kostenlos (wie bei Freibier) sein. Ich werde diese Antwort entsprechend aktualisieren.
quelle
Ich werde die Frage nicht beantworten, weil ich nicht weiß, ob es eine Software gibt. Ich sage nur, wie ich denke, dass es so ist, ich weiß es nicht genau, also ...
Okay, zuerst müssen Sie sicherstellen, dass das Video von einer Schachsoftware aufgenommen wurde, nicht von einem Live-Turnier, nur um Ihnen die Arbeit zu erleichtern.
Sie müssen den Film in Bilder konvertieren
ffmpeg -i foo.avi -vsync 0 -vf select="eq(pict_type\,PICT_TYPE_I)" -s WxH -f image2 foo-%03d.jpeg
Das war einfach, jetzt ist es schwierig, mit der Bildbearbeitung zu beginnen. Dafür ist OpenCV am leistungsfähigsten.
Dafür gibt es verschiedene Techniken. Ich gebe Ihnen die Links, damit Sie sie lesen können.
Es ist kompliziert, aber einfacher als Sie denken, denn Sie müssen nur die Ausgangsposition kennen, alle Bilder durchlaufen und den Unterschied sehen. Werfen Sie einen Blick auf OpenCV-Dokumente, in denen Sie jede Menge Materialien zu diesem Thema finden.
Übrigens, was Sie verlangen, ist bereits erledigt, aber soweit ich weiß, wird keine Software verwendet. Es gibt ein altes Projekt, das mit Pascal codiert wurde, Kameras, die über der Tafel platziert wurden, Roboter, die Bildverarbeitung und eine Bewegung ausführen. Heutzutage spielen viele Roboter Schach.
Sie könnten einen Arduino uno kaufen, und sein Lichtsensor erkennt die weißen und schwarzen Teile, einige Codierungen und spielt Schach. :)
quelle
Bearbeiten: Wer zu etwas anderem als Königin befördert, lässt alles explodieren. Es wird auch sehr schwierig sein, dies zu unterstützen (mein Programm für Teil 2 unterstützt Unterpromotion, aber das reine Speichern der Informationen von Teil 1 durch Lesen von Pixeln ist ein Albtraum).
Edit2: Mir ist gerade aufgefallen, dass du echtes für PGN meinst, das ist also alles nutzlos und ich werde höchstwahrscheinlich meine Antwort löschen.
Teil 1: Speichern der Quadrate mit Pixel-Readern
Es ist durchaus möglich, die erforderlichen Schritte wären:
["h1-h8", "e4-e5", ...]
nur die Anfangs- und Endquadrate enthält (Reihenfolge unwichtig ).Hinweis: Von hier können wir nicht wirklich wissen, von welchem Quadrat aus die Anfangs- / Endposition war, aber es gibt nur zwei Möglichkeiten und nur eine davon ist zulässig.
Ich habe einfache pixelbasierte Makros / Bots für RPGs in C # geschrieben. Ich kann garantieren, dass dies nicht so schwierig ist , vorausgesetzt, dass:
Grundsätzlich ist es am besten, wenn das Spiel online gespielt wird und Sie direkt vom Bildschirm aufnehmen.
Teil 2: Exportieren dieser Liste in PGN
Um diese Liste in eine echte PGN zu verwandeln, können Sie ein in JavaScript geschriebenes Programm verwenden , das Züge aufzeichnet und eine der Funktionen, die
moveCaller()
Sie an zwei Quadrate übergeben, und dasfinal_pos
nach den zulässigen Zügen von durchsuchtinitial_pos
und bei Übereinstimmung aufruftmakeMove()
. So können wir es zweimal anrufene5 to e4
unde4 to e5
und ich garantiere , es wird den illegalen einen ignorieren..zip
index.html
Datei folgendermaßen:'
.4. Kopieren Sie die Verschiebungsliste und fügen Sie einige PGN-Header darüber wie
[WhiteElo "2400"]
folgt hinzu.quelle
Ich benutze das Monroi Chess Notation Device für alle meine Schachpartien und es ist im Grunde ein elektronisches Brett.
quelle