Às vezes, durante jogos de blitz no tabuleiro, ou quando no zeitnot, fica muito difícil anotá-los.
Eu já vi vários softwares / hardwares para ajudar a escrever a notação, mesmo que seja aprovada pela FIDE ; isso exige que você repita os movimentos no dispositivo. Dificilmente mais rápido que a caneta e o papel, tão propenso a erros, quanto mais você corre o risco de digitar o movimento errado e perder ainda mais tempo.
A DGT cria um tabuleiro que fará isso automaticamente, mas ele só funciona com suas peças, e começa a partir de 400 €, o dobro dos tabuleiros de torneios . Alguns projetos independentes estão disponíveis, como o tabuleiro de xadrez usb 101 ou robôs de xadrez controlados por voz , sequenciador de passos do tabuleiro de xadrez . Além disso , estão disponíveis alguns projetos abertos que movem peças (ou peças gigantes ).
Hoje tenho um playoff e as regras do torneio determinam jogos cada vez mais curtos até que haja um vencedor. Por isso, pensei em gravar um filme do tabuleiro, se perdermos a noção. Mas então minha formação em programação entrou em cena e pensei "deve haver algum software que possa processar um filme e escrever o PGN".
Eu procurei em todos os lugares e não encontrei nada.
- Existe algo assim (webcam / vídeo para conversor pgn)? Um protótipo, talvez?
- Alguém tentou tal feito e compartilhou sua pesquisa?
- Existem limitações óbvias que tornam improvável que esse projeto seja bem-sucedido?
- Você compraria se existisse?
fonte
Respostas:
É claramente interessante e relevante registrar automaticamente jogos de xadrez (os tabuleiros ao vivo estão mais ou menos enfrentando o mesmo problema). Até onde eu sei, não existe software para esse fim que exista hoje. Para resolver esse problema, acho que o caso "simples" deve ser o seguinte.
Uma pesquisa rápida no Google com a string de pesquisa
retornou este artigo interessante
Em suma, deve ser realista implementar esse tipo de software. No entanto, pode ser mais barato para um ser humano fazer o mesmo trabalho (a transferência é transferida de um videoclipe para um computador).
fonte
Em ordem,
1) Não é do meu conhecimento
2) Não é do meu conhecimento
3) Existem várias coisas que tornam esse tipo de projeto não trivial e até difícil. Não menos importante é seguir a peça, diferenciando-a de um gesto com a mão, por exemplo. Também determinar quando a mudança foi interrompida seria uma questão interessante para a visão computacional resolver. Esses tipos de problemas foram resolvidos em outras situações, mas não com 100% de precisão, e certamente não a preços que estão perto de serem competitivos com o conselho da DGT.
Depois, há a questão de onde a câmera pode ser posicionada. A sobrecarga direta ofereceria a melhor visualização do quadro, facilitando a determinação do quadrado com precisão. Mas onde quer que a câmera seja colocada, há uma probabilidade distinta de que sua visão seja obstruída por um dos jogadores, inclinando-se sobre o tabuleiro, alcançando o relógio ou simplesmente gesticulando.
4) Não, a menos que fosse muito barato. E não espero que seja. Meu raciocínio é simples. À medida que os controles do tempo diminuem, a qualidade do jogo diminui, a ponto de não ser mais interessante para mim
fonte
Essa seria uma tarefa bastante complexa. Talvez um primeiro passo razoável seja procurar reconhecer a posição FEN a partir de uma única imagem - para a qual existem mais recursos, por exemplo:
fonte
É 2019-12 agora e 5 anos após a pergunta original.
Existe algo assim (webcam / vídeo para conversor pgn)? Um protótipo, talvez?
Vejo
Alguém tentou tal feito e compartilhou sua pesquisa?
Sim - até agora encontrei 35 documentos de pesquisa e 10 soluções de código aberto e uma oferta comercial
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 é outro projeto que visa as metas estabelecidas por você. O projeto foi iniciado em 2019-10-15 e em poucas horas eu já encontrei muitos recursos, por exemplo, esta pergunta Alguns meses depois, atualizei minha resposta (veja os links acima)
Existem limitações óbvias que dificultam a execução desse projeto? Só posso responder de minha própria experiência com um projeto semelhante que fiz 31 anos atrás, http://wiki.bitplan.com/index.php/MagneticSensorChessBoard1987 . Naquela época, tentei criar um tabuleiro de xadrez que detectasse movimentos. Usei ímãs nas peças de madeira e contatos de palheta. A chave para o sucesso era usar um mecanismo de xadrez com novas "regras" para poder se concentrar apenas nos movimentos e não ter que detectar peças individuais. Conforme descrito em uma resposta acima, promoções para peças que não sejam dama podem ser um dos casos de ponta que são difíceis. Detectar o movimento das peças através das diferenças de imagem é um problema bem compreendido.
Os mecanismos de xadrez e as GUIs compatíveis com UCI também estão disponíveis atualmente. Portanto, hoje em dia, o problema é mais um problema de integração do que resolver os problemas de detalhes individuais.
Um grande obstáculo é a diferença entre um "protótipo" e um produto. Veja, por exemplo, http://www.nandanbanerjee.com/files/ICCVR-08AUG12-011%20paper.pdf
um artigo ainda mais antigo que essa pergunta, mas longe de ser um produto que você possa comprar a um preço razoável.
Você compraria se existisse?
Sim. Quando comprei um novo tabuleiro de xadrez, há alguns dias, estava procurando por um que pudesse registrar jogadas e ele ainda estivesse em torno de 500 euros. Parece que o custo do hardware estará bem abaixo de 150 euros atualmente, incluindo um tabuleiro de xadrez decente e peças.
O software pode muito bem ser de código aberto e gratuito (como em cerveja grátis) em breve. Vou atualizar esta resposta de acordo.
fonte
Eu escrevi este software. Ele contém a AI da webcam para reconhecimento de movimento, conectada à Arena GUI.
https://www.youtube.com/watch?v=APkoE1UDKj0
fonte
Trabalhei no projeto de rastreamento de xadrez 8x8cam no curso de processamento de imagens em 2013 na FING UdelaR.
Então, em 2014, outros alunos criaram uma versão melhor para o Android chamada chesstrack . Na web, você encontra vídeos e links para o código que eles usaram.
Eu adoraria ver um aplicativo finalizado dessa ideia de projeto que tive durante anos. Portanto, se houver alguma notícia sobre isso, deixe um comentário.
Respondendo às suas perguntas pontuais:
Existe alguma coisa assim (webcam / vídeo para conversor pgn? Um protótipo, talvez?
Além do meu projeto 8x8cam e chesstrack , encontrei recentemente um projeto chamado ChessCam . Todos esses projetos são de código aberto e só precisam ser nomeados como recurso se você criar um novo projeto a partir deles.
Alguém tentou tal feito e compartilhou sua pesquisa?
Sim. Você pode ver isso na resposta da pergunta anterior.
Existem limitações óbvias que tornam improvável que esse projeto seja bem-sucedido?
A parte mais difícil, acredito, é fazer com que o software funcione, independentemente da posição da câmera e independentemente da iluminação. E também para trabalhar em jogos rápidos e trabalhar com as oclusões das mãos quando o jogo está sendo jogado, a fim de detectar corretamente o movimento realizado.
Você compraria se existisse?
Definitivamente sim.
fonte
Não responderei à pergunta, porque não sei se existe algum software por aí. Só estou dizendo como acho que é assim, não sei ao certo, então ...
Ok, primeiro você precisa garantir que o vídeo seja gravado em um software de xadrez, não em um torneio ao vivo, apenas para facilitar seu trabalho.
Você precisa converter o filme em imagens
ffmpeg -i foo.avi -vsync 0 -vf select="eq(pict_type\,PICT_TYPE_I)" -s WxH -f image2 foo-%03d.jpeg
Isso foi fácil, agora a parte difícil, você precisa começar a processar imagens, para isso, o mais poderoso é o OpenCV.
Para isso, existem várias técnicas, darei os links para que você possa lê-los.
É complicado, mas mais simples do que você pensa, porque você só precisa saber qual é a posição inicial, percorrer todas as imagens e ver a diferença. Dê uma olhada nos documentos do OpenCV e você encontrará toneladas de materiais sobre esse assunto.
Ah, a propósito, o que você está pedindo já está feito, mas não usando software, até onde eu sei, há um projeto antigo que foi codificado usando Pascal, câmeras colocadas sobre a mesa, robôs executam o processamento de imagens e agem. Atualmente, muitos robôs jogam xadrez.
Você pode comprar um Arduino uno e seu censor de luz, ele detectará as peças brancas e as pretas, algumas codificadas e jogará xadrez. :)
fonte
Edit: promover a algo diferente de rainha fará tudo explodir. Também será muito difícil apoiar isso (meu programa para a Parte 2 suporta subpromoção, mas armazenar as informações da Parte 1 apenas pela leitura de pixels é um pesadelo).
Edit2: Acabei de perceber que você quer dizer xadrez de tabuleiro real para o PGN, então tudo isso é inútil e provavelmente vou excluir minha resposta.
Parte 1: armazenando os quadrados usando leitores de pixel
É totalmente possível, as etapas necessárias seriam:
["h1-h8", "e4-e5", ...]
apenas os quadrados inicial e final (ordem sem importância )Nota: a partir daqui, não podemos realmente saber de qual quadrado era a posição inicial / final, mas existem apenas 2 possibilidades e apenas 1 delas é legal.
Eu escrevi simples baseadas em pixel macros / bots para jogos de RPGs em C #, posso garantir isso não é que difícil, dado que:
Basicamente, é melhor se o jogo for jogado online e você estiver gravando diretamente na tela.
Parte 2: exportando essa lista para PGN
Para transformar essa lista em um PGN real, você pode usar um programa que escrevi em JavaScript que registra movimentos, e uma das funções em que
moveCaller()
você passa por duas posições de quadrados e pesquisafinal_pos
nos movimentos legais deinitial_pos
e, se houver uma correspondência, ele chamamakeMove()
. Então, podemos chamá-lo duas vezese5 to e4
ee4 to e5
garanto que ele ignorará o ilegal..zip
index.html
arquivo com este:"
.4. copie a lista de movimentação e adicione alguns cabeçalhos PGN acima, como
[WhiteElo "2400"]
etc.fonte
Eu uso o Monroi Chess Notation Device para todos os meus jogos de xadrez e é basicamente um tabuleiro eletrônico.
fonte