user2074: Sometimes during blitz games over the board, or when in zeitnot, it gets very difficult to annotate them.
I've seen several software / hardware to help in writing the notation, even one that's FIDE approved; these require that you repeat the moves on the device. Hardly faster than pen and paper, just as prone to errors, plus you risk typing the wrong move and wasting even more time.  
DGT makes a board that will do this automatically, but it will only work with its pieces, and starts at 400€, double that for tournament boards.  Some independent projects are available such as usb chessboard 101, or voice controlled chess robots, Chess board step sequencer.  Additionally some open projects are available that even move pieces (or gigantic pieces).
I have a playoff tonight, and the tournament rules dictate shorter and shorter games until there is a winner.  Hence I thought about shooting a movie of the board should we lose track.  But then my programming background kicked in and I thought "there must be some software that can process a movie and write the PGN". 
I searched everywhere, and found nothing. 

Does any such thing exist (webcam/video to pgn converter)? A prototype maybe? 
Has anyone attempted such a feat and shared their research?
Are there obvious limitations that make this project unlikely to succeed?
Would you buy it if it existed?


user1105: I won't be answering the question, because I don't know if there's a software out there. I'm just saying how I think that's how to do it, I don't know for sure, so...

Okay first you need to make sure that the video is recorded from a chess software, not a live tournament, just to make your job easier.
You need to convert the movie to images
ffmpeg -i foo.avi -vsync 0 -vf select="eq(pict_type\,PICT_TYPE_I)" -s WxH -f image2 foo-%03d.jpeg

Source

That was easy, now the hard part, you need to start doing image processioning, for that, the most powerful is OpenCV.
For that, there are several techniques, I'll give you the links so you can read them.

Chessboard picture recognition project
Recommended pattern recognition technique for chess board
How does OpenCV find chessboard corners?
Using Image Processing Techniques to Automate Chess Game
Recording
Automatic Chessboard Detection for Intrinsic and Extrinsic Camera
Parameter Calibration
Camera Calibration and 3D Reconstruction

It is complicated but simpler than you think, because you only need to know what is the starting position, loop through all the images and see the difference. Take a look at OpenCV docs you'll find tons of materials on that subject.

Oh by the way, what you're asking for is done already, but not using software as far as I know, there's an old project that was coded using Pascal, cameras placed over the board, robots do image processing and make a move. Nowadays many robots play chess.
You could buy an Arduino uno,  and its light censor, it will detect the white pieces and the black pieces, some coding and it will play chess. :)

user478: Edit: promoting to anything different than queen will make everything explode. It will also be very hard to support this (my program for Part 2 supports underpromotion, but storing the info of Part 1 purely by reading pixels is a nightmare).
Edit2: I just noticed you mean real board chess to PGN, so this is all useless and I will most likely delete my answer.
Part 1: storing the squares using pixel readers
It is totally possible, the steps needed would be:

change the set up of the board so it highlights the last move (prefereably not just the border)
write a program that reads pixels on given (x,y)
make it read about 5+ pixels on each square (so it is impossible for the cursor/piece to cover all the pixels to be read)
convert the HEX to RBG, then give a range of accepted values of what we deem to be considered close to the "last move" color
save the moves on an array with a format ["h1-h8", "e4-e5", ...]  just the initial and ending squares (order unimportant)

Note: from here we can't really know from which square was the initial/ending position, but there are only 2 posibilities and only 1 of them is legal.
I have written simple pixel-based macros/bots for RPGs games in C#, I can guarantee this is not that difficult, given that:

the cam is static (so the x,y values don't get messed up)
you previously know the background color or you can set it up before playing

Basically, it is best if the game is played online and you are recording directly from the screen.

Sorry, no program avaiable for part #1


Part 2: exporting that list into PGN
To turn this list into a real PGN, you can use a program I wrote in JavaScript that records moves, and one of the functions moveCaller() you pass two squares positions and it searches the final_pos in the legal moves of initial_pos and if there is a match then it calls makeMove(). So we can call it twice e5 to e4 and e4 to e5 and I guarantee it will ignore the illegal one.

download the project (direct link .zip)
uncompress the .zip
change the JavaScript of the index.html file with this:

'
$(function(){
    var i, len, arr, temp, m_board;

    m_board=IsepicChess.initBoard({name : "main"});

    arr=["e4-e2", "e7-e5", "f3-g1"]; //is ok for the initial and final squares to be swapped

    for(i=0, len=arr.length; i<len; i++){
        temp=arr[i].split("-");

        //one of the two following lines will silently fail
        m_board.moveCaller(temp[0], temp[1]);
        m_board.moveCaller(temp[1], temp[0]);
    }

    m_board.refreshBoard();
});

.4. copy the move list and add some PGN headers above it like [WhiteElo "2400"] etc.

user17203: Joey Meyer wrote and built "Raspberry Turk":

The Raspberry Turk is a robot that can play chess—it's entirely open
source, based on Raspberry Pi, and inspired by the 18th century chess
playing machine, the Mechanical Turk.

This goes beyond the OP's question because it also incorporates (a) the engine to calculate responses and (b) a robotic arm to make the engine's moves on the board.
But it answers the OP's question because one component of Raspberry Turk includes an overhead camera and a machine-learning component to learn how to convert what it sees on the board into a PGN representation of the board.

You can see it in action at this YouTube video "Chess Playing Robot Powered by Raspberry Pi - Raspberry Turk". (Note that the video is sped up by about a factor of 12, per personal communication with the creator.)
For an accessible explanation, see Chaim Gartenberg, "The Raspberry Turk is a DIY chess robot with instructions to build your own*," The Verge, March 24, 2017.
The code is available at GitHub » joeymeyer/raspberryturk
The project website is raspberryturk.com/


user33648: Firstly, great post. I have been surveying this issue recently and the answers here are a great source of information.
I have found an excellent free app for Android and iOS called KnightVision. It is relatively new. It was trained on various chess sets. It even managed to properly recognize my hand-crafted pieces which are not identical to the Staunton standard. It works well, although to be on the safe side, it requires a separation of about 3 seconds between each move on the board. So be gentle when swapping pieces, which is something that is usually done quite quickly.
It also has a web page, where after logging in you can see the game PGN that you can copy and export to any chess engine for studying. It also has some analysis on the website itself.
https://www.knightvision.io/

user11215: I worked on the chess tracking project 8x8cam within image processing course in 2013 at FING UdelaR.
Then in 2014 other students created a better version for Android named chesstrack. Under it's web you can find videos and link to the code they used.
I would love to see a finalized app of this project idea I had for years. So if there is some news about this please leave a comment.
Answering your pointed questions:

Does any such thing exist (webcam/video to pgn converter? A prototype maybe?
Apart from my project 8x8cam and chesstrack, I have recently found a project named ChessCam. All of these projects are Open Source and only need to be named as resource if you create a new project from them.

Has anyone attempted such a feat and shared their research?
Yes. You can see such on previous question's answer.

Are there obvious limitations that make this project unlikely to succeed?
 The hardest part I believe is to make the software work no matter how the camera is placed and independently of the illumination. And also to work on fast paced games and work with the hand occlusions when the game is being played, in order to detect correctly the move done.

Would you buy it if it existed?
 Definitely yes.



user7598: I wrote this software. It contains webcam AI for move recognition, connected to Arena GUI.
https://www.youtube.com/watch?v=APkoE1UDKj0

user2194: That would be a rather complex task. Maybe a reasonable first step is to look into recognizing FEN position from a single image - for which more resources exists, for example:

Create a FEN from a chess diagram picture
Recommended pattern recognition technique for chess board


user2001: It is clearly interesting and relevant to automatically record chess games (live boards are more or less tackling the same problem). As far as I know, there is no software for this purpose that exists today. To solve this problem, I think that the "simple" case should be as follows.

The chess board should be filmed from top-down to get a two-dimensional view. (Motivation: filming in a three-dimensional view would cause problems because of a skewed view and pieces that will block the view for other pieces behind them. Also, different 3D-views are possible which would counteract a clean procedure.)
The film should be manually edited to capture "clean board" moments and remove moments when the two players' hands or heads are blocking the view.
The image processing algorithm on the software side should detect changes on the board and record them as moves. It should also auto-rotate and transform the image to detect the board orientation and thereby the coordinates.
The software should use the starting position to "memorize" every piece type and then use these for the image recognition during the game. Probably, some clever tricks can be written to solve the problem of piece recognition in a smart way.

A quick Google search with the search string

chess game image processing

returned this interesting article
All in all, it should be realistic to implement this type of software. Yet it might be cheaper for a human to do the same work (transfer moves from a video clip to a computer).

user657: In order,
1) Not to my knowledge
2) Not to my knowledge
3) There are several things that make this sort of project non-trivial, even difficult. Not the least of which is following the piece, differentiating it from a hand gesture, for example. Also determining when the move stopped would be an interesting question for computer vision to solve. These kinds of problems have been solved in other situations, but not with 100% accuracy, and  certainly not at prices that are even close to being competitive with the DGT board.
Then there's the question of where the camera could be positioned. Directly overhead would offer the best view of the board, making it easier to determine the square with precision. But wherever the camera gets placed, there's a distinct probability its view will be obstructed by one of the players, either leaning over the board, reaching for the clock, or simply gesticulating.
4) Not unless it was really cheap. And I don't expect it would be. My reasoning is simple. As time controls shorten, the quality of the game lessens, to the point where it's no longer interesting to me

user20322: It's 2019-12 now and 5 years after the original question.

Does any such thing exist (webcam/video to pgn converter)? A
prototype maybe?
see 

https://github.com/WolfgangFahl/play-chess-with-a-webcam/issues/19
https://github.com/WolfgangFahl/play-chess-with-a-webcam/issues/22
which are both closed by now. See http://lichess.bitplan.com for a game successfully recorded. Join https://gitter.im/play-chess-with-a-webcam/community to discuss

Has anyone attempted such a feat and shared their research?
Yes - so far I found some 35 research papers and some 10 open source solutions and one commercial offering
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 is another project
aiming at the goals stated by you. The project was started 2019-10-15 and in a few hours I already found a lot of resources e.g. this Question
Some two months later I have updated my answer (see links above)
Are there obvious limitations that make this project unlikely to succeed?
I can only answer from my own experience with a similar project I did 31 years ago see http://wiki.bitplan.com/index.php/MagneticSensorChessBoard1987.
At that time i tried to create a chess board that would detect moves. I used magnets
in the wooden pieces and reed contacts. The key to success was using a chess engine
that new "the rules" to be able to concentrate on movements alone and not having
to detect individual pieces. As outlined in an answer above promotions to non queen
pieces might be one of the edge usecases that are difficult. Detecting the motion of
pieces via picture differences is a well understood problem.
Chess engines and UCI compatible GUIs are also available these days. So the problem
is more an integration problem these days then solving the individual detail issues.
A major obstacle is the difference between a "prototype" and a product. See e.g. 
http://www.nandanbanerjee.com/files/ICCVR-08AUG12-011%20paper.pdf 
a paper that is even older than this question but far from a product that you can buy
at a reasonable price.
Would you buy it if it existed?
Yes. When I bought a new chess board a few days ago I was looking for one that
could record moves and it was still around 500 EUR. As it looks the hardware cost
will be well below 150 EUR these days including a decent chess board and pieces.
The software might well be opensource and free (as in free beer) soon. I'll update
this answer accordingly.


2074: <p>Sometimes during blitz games over the board, or when in zeitnot, it gets very difficult to annotate them.</p>

<p>I've seen several software / hardware to help in writing the notation, even <a href="http://monroi.com/products/personal-chess-manager.html" rel="noreferrer">one that's FIDE approved</a>; these require that you repeat the moves on the device. Hardly faster than pen and paper, just as prone to errors, plus you risk typing the wrong move and wasting even more time.  </p>

<p><a href="http://www.chess.it/soft/dgt.htm" rel="noreferrer">DGT makes a board</a> that will do this automatically, but it will only work with its pieces, and starts at 400€, double that for <a href="http://www.dgt.nl/site/index.php/products/electronic-boards/serial-tournament" rel="noreferrer">tournament boards</a>.  Some independent projects are available such as <a href="http://www.chess.com/forum/view/chess-equipment/usb-chess-board-101" rel="noreferrer">usb chessboard 101</a>, or <a href="http://hackaday.com/2013/05/09/voice-controlled-chess-robot/" rel="noreferrer">voice controlled chess robots</a>, <a href="http://hackaday.com/2012/04/18/chess-board-step-sequencer/" rel="noreferrer">Chess board step sequencer</a>.  Additionally some <a href="http://hackadaycom.files.wordpress.com/2011/05/final_project.pdf" rel="noreferrer">open projects are available</a> that even move pieces (or <a href="http://en.chessbase.com/post/you-built-what-a-giant-robotic-chess-set" rel="noreferrer">gigantic pieces</a>).</p>

<p>I have a playoff tonight, and the tournament rules dictate shorter and shorter games until there is a winner.  Hence I thought about shooting a movie of the board should we lose track.  But then my programming background kicked in and I thought "there must be some software that can process a movie and write the PGN". </p>

<p>I searched everywhere, and found nothing. </p>

<ol>
<li>Does any such thing exist (webcam/video to pgn converter)? A prototype maybe? </li>
<li>Has anyone attempted such a feat and shared their research?</li>
<li>Are there obvious limitations that make this project unlikely to succeed?</li>
<li>Would you buy it if it existed?</li>
</ol>
 1105: <p><em>I won't be answering the question, because I don't know if there's a software out there. I'm just saying how I think that's how to do it, I don't know for sure, so...</em></p>

<hr>

<p>Okay first you need to make sure that the video is recorded from a chess software, not a live tournament, just to make your job easier.</p>

<p>You need to convert the movie to images</p>

<p><code>ffmpeg -i foo.avi -vsync 0 -vf select="eq(pict_type\,PICT_TYPE_I)" -s WxH -f image2 foo-%03d.jpeg</code></p>

<ul>
<li><a href="https://stackoverflow.com/questions/12100072/how-to-extract-slides-from-a-video-using-python">Source</a></li>
</ul>

<p>That was easy, now the hard part, you need to start doing image processioning, for that, the most powerful is OpenCV.</p>

<p>For that, there are several techniques, I'll give you the links so you can read them.</p>

<ul>
<li><a href="http://codebazaar.blogspot.com/2011/08/chess-board-recognition-project-part-1.html" rel="nofollow noreferrer">Chessboard picture recognition project</a></li>
<li><a href="https://stackoverflow.com/questions/11288460/recommended-pattern-recognition-technique-for-chess-board">Recommended pattern recognition technique for chess board</a></li>
<li><a href="https://dsp.stackexchange.com/questions/2805/how-does-opencv-find-chessboard-corners">How does OpenCV find chessboard corners?</a></li>
<li><a href="http://www.google.com/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;cad=rja&amp;ved=0CCgQFjAA&amp;url=http://www.researchgate.net/publication/234491319_Using_Image_Processing_Techniques_to_Automate_Chess_Game_Recording/file/79e4150fe3be5bef54.pdf&amp;ei=s1YCU8KLL-jI0AWQ2YDQCw&amp;usg=AFQjCNHTgvncb4RBq830y9dgXJiN7uCYtg&amp;sig2=2duB1naDe__3OaMIrV40pA" rel="nofollow noreferrer">Using Image Processing Techniques to Automate Chess Game
Recording</a></li>
<li><a href="http://www.google.com/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=15&amp;cad=rja&amp;ved=0CIEBEBYwDg&amp;url=http://www.mdpi.com/1424-8220/10/3/2027/pdf&amp;ei=s1YCU8KLL-jI0AWQ2YDQCw&amp;usg=AFQjCNFYCCakOaa5v52uV7pedsdhAGJpKQ&amp;sig2=syKHZoJRHHQqHPeh4Na4-Q" rel="nofollow noreferrer">Automatic Chessboard Detection for Intrinsic and Extrinsic Camera
Parameter Calibration</a></li>
<li><a href="https://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_calib3d/py_calibration/py_calibration.html" rel="nofollow noreferrer">Camera Calibration and 3D Reconstruction</a></li>
</ul>

<p>It is complicated but simpler than you think, because you only need to know what is the starting position, loop through all the images and see the difference. Take a look at OpenCV docs you'll find tons of materials on that subject.</p>

<hr>

<p><em>Oh by the way, what you're asking for is done already, but not using software as far as I know, there's an old project that was coded using Pascal, cameras placed over the board, robots do image processing and make a move. Nowadays many robots play chess.</em></p>

<p><em>You could buy an Arduino uno,  and its light censor, it will detect the white pieces and the black pieces, some coding and it will play chess. :)</em></p>
 478: <p><strong>Edit:</strong> promoting to anything different than queen will make everything explode. It will also be very hard to support this (my program for Part 2 supports underpromotion, but storing the info of Part 1 purely by reading pixels is a nightmare).</p>

<p><strong>Edit2:</strong> I just noticed you mean real board chess to PGN, so this is all useless and I will most likely delete my answer.</p>

<h2>Part 1: storing the squares using pixel readers</h2>

<p>It is totally possible, the steps needed would be:</p>

<ol>
<li>change the set up of the board so it highlights the last move (prefereably <em>not</em> just the border)</li>
<li>write a program that reads pixels on given (x,y)</li>
<li>make it read about 5+ pixels on each square (so it is impossible for the cursor/piece to cover all the pixels to be read)</li>
<li>convert the HEX to RBG, then give a <strong>range</strong> of accepted values of what we deem to be considered close to the "last move" color</li>
<li>save the moves on an array with a format <code>["h1-h8", "e4-e5", ...]</code>  just the initial and ending squares (order <strong>unimportant</strong>)</li>
</ol>

<p><strong>Note:</strong> from here we can't really know from which square was the initial/ending position, but there are only 2 posibilities and only 1 of them is legal.</p>

<p>I have written simple pixel-based macros/bots for RPGs games in C#, I can guarantee this is not <em>that</em> difficult, given that:</p>

<ol>
<li>the cam is static (so the x,y values don't get messed up)</li>
<li>you previously know the background color or you can set it up before playing</li>
</ol>

<p>Basically, it is best if the game is played online and you are recording directly from the screen.</p>

<blockquote>
  <p>Sorry, no program avaiable for part #1</p>
</blockquote>

<hr>

<h2>Part 2: exporting that list into PGN</h2>

<p>To turn this list into a real PGN, you can use a <a href="https://github.com/ajax333221/Isepic-Chess" rel="nofollow noreferrer">program I wrote in JavaScript</a> that records moves, and one of the functions <code>moveCaller()</code> you pass two squares positions and it searches the <code>final_pos</code> in the legal moves of <code>initial_pos</code> and if there is a match then it calls <code>makeMove()</code>. So we can call it twice <code>e5 to e4</code> and <code>e4 to e5</code> and I guarantee it will ignore the illegal one.</p>

<ol>
<li>download the project (direct link <a href="https://github.com/ajax333221/Isepic-Chess/archive/master.zip" rel="nofollow noreferrer">.zip</a>)</li>
<li>uncompress the <code>.zip</code></li>
<li>change the JavaScript of the <code>index.html</code> file with this:</li>
</ol>

<p>'</p>

<pre><code>$(function(){
    var i, len, arr, temp, m_board;

    m_board=IsepicChess.initBoard({name : "main"});

    arr=["e4-e2", "e7-e5", "f3-g1"]; //is ok for the initial and final squares to be swapped

    for(i=0, len=arr.length; i&lt;len; i++){
        temp=arr[i].split("-");

        //one of the two following lines will silently fail
        m_board.moveCaller(temp[0], temp[1]);
        m_board.moveCaller(temp[1], temp[0]);
    }

    m_board.refreshBoard();
});
</code></pre>

<p>.4. copy the move list and add some PGN headers above it like <code>[WhiteElo "2400"]</code> etc.</p>
 17203: <p>Joey Meyer wrote and built &quot;Raspberry Turk&quot;:</p>
<blockquote>
<p>The Raspberry Turk is a robot that can play chess—it's entirely open
source, based on Raspberry Pi, and inspired by the 18th century chess
playing machine, the Mechanical Turk.</p>
</blockquote>
<p>This goes beyond the OP's question because it also incorporates (a) the engine to calculate responses and (b) a robotic arm to make the engine's moves on the board.</p>
<p>But it answers the OP's question because one component of Raspberry Turk includes an overhead camera and a machine-learning component to learn how to convert what it sees on the board into a PGN representation of the board.</p>
<ul>
<li>You can see it in action at this YouTube video <a href="https://www.youtube.com/watch?v=lpJIBVU_WJE" rel="nofollow noreferrer">&quot;Chess Playing Robot Powered by Raspberry Pi - Raspberry Turk&quot;</a>. (Note that the video is sped up by about a factor of 12, per personal communication with the creator.)</li>
<li>For an accessible explanation, see Chaim Gartenberg, &quot;<a href="https://www.theverge.com/circuitbreaker/2017/3/24/15049154/raspberry-turk-diy-chess-robot-learn-coding-machine-learning-python-robotics" rel="nofollow noreferrer">The Raspberry Turk is a DIY chess robot with instructions to build your own</a>*,&quot; The Verge, March 24, 2017.</li>
<li>The code is available at <a href="https://github.com/joeymeyer/raspberryturk" rel="nofollow noreferrer">GitHub » joeymeyer/raspberryturk</a></li>
<li>The project website is <a href="http://www.raspberryturk.com/" rel="nofollow noreferrer">raspberryturk.com/</a></li>
</ul>
 33648: <p>Firstly, great post. I have been surveying this issue recently and the answers here are a great source of information.
I have found an excellent free app for Android and iOS called KnightVision. It is relatively new. It was trained on various chess sets. It even managed to properly recognize my hand-crafted pieces which are not identical to the Staunton standard. It works well, although to be on the safe side, it requires a separation of about 3 seconds between each move on the board. So be gentle when swapping pieces, which is something that is usually done quite quickly.
It also has a web page, where after logging in you can see the game PGN that you can copy and export to any chess engine for studying. It also has some analysis on the website itself.
<a href="https://www.knightvision.io/" rel="nofollow noreferrer">https://www.knightvision.io/</a></p>
 11215: <p>I worked on the chess tracking project <strong><a href="http://iie.fing.edu.uy/investigacion/grupos/gti/timag/trabajos/2013/ajedrez/index.html" rel="nofollow noreferrer">8x8cam</a></strong> within image processing course in 2013 at FING UdelaR.</p>
<p>Then in 2014 other students created a better version for Android named <strong><a href="http://iie.fing.edu.uy/investigacion/grupos/gti/timag/trabajos/2014/ajedrez/index.html" rel="nofollow noreferrer">chesstrack</a></strong>. Under it's web you can find videos and link to the code they used.</p>
<p>I would love to see a finalized app of this project idea I had for years. So if there is some news about this please leave a comment.</p>
<p>Answering your pointed questions:</p>
<ol>
<li><p>Does any such thing exist (webcam/video to pgn converter? A prototype maybe?</p>
<p><br>Apart from my project <a href="http://iie.fing.edu.uy/investigacion/grupos/gti/timag/trabajos/2013/ajedrez/index.html" rel="nofollow noreferrer">8x8cam</a> and <a href="http://iie.fing.edu.uy/investigacion/grupos/gti/timag/trabajos/2014/ajedrez/index.html" rel="nofollow noreferrer">chesstrack</a>, I have recently found a project named <a href="http://blogdugas.net/blog/2015/05/18/play-chess-with-a-webcam/" rel="nofollow noreferrer">ChessCam</a>. All of these projects are Open Source and only need to be named as resource if you create a new project from them.</p>
</li>
<li><p>Has anyone attempted such a feat and shared their research?</p>
<p><br>Yes. You can see such on previous question's answer.</p>
</li>
<li><p>Are there obvious limitations that make this project unlikely to succeed?</p>
<p><br> The hardest part I believe is to make the software work no matter how the camera is placed and independently of the illumination. And also to work on fast paced games and work with the hand occlusions when the game is being played, in order to detect correctly the move done.</p>
</li>
<li><p>Would you buy it if it existed?</p>
<p><br> Definitely yes.</p>
</li>
</ol>
 7598: <p>I wrote this software. It contains webcam AI for move recognition, connected to Arena GUI.</p>

<p><a href="https://www.youtube.com/watch?v=APkoE1UDKj0" rel="nofollow">https://www.youtube.com/watch?v=APkoE1UDKj0</a></p>
 2194: <p>That would be a rather complex task. Maybe a reasonable first step is to look into recognizing FEN position from a single image - for which more resources exists, for example:</p>

<ul>
<li><a href="http://chessgrabber.nicolaas.net/acknowledgements" rel="nofollow noreferrer">Create a FEN from a chess diagram picture</a></li>
<li><a href="https://stackoverflow.com/questions/11288460/recommended-pattern-recognition-technique-for-chess-board">Recommended pattern recognition technique for chess board</a></li>
</ul>
 2001: <p>It is clearly interesting and relevant to automatically record chess games (live boards are more or less tackling the same problem). As far as I know, there is no software for this purpose that exists today. To solve this problem, I think that the "simple" case should be as follows.</p>

<ol>
<li>The chess board should be filmed from top-down to get a two-dimensional view. (Motivation: filming in a three-dimensional view would cause problems because of a skewed view and pieces that will block the view for other pieces behind them. Also, different 3D-views are possible which would counteract a clean procedure.)</li>
<li>The film should be manually edited to capture "clean board" moments and remove moments when the two players' hands or heads are blocking the view.</li>
<li>The image processing algorithm on the software side should detect changes on the board and record them as moves. It should also auto-rotate and transform the image to detect the board orientation and thereby the coordinates.</li>
<li>The software should use the starting position to "memorize" every piece type and then use these for the image recognition during the game. Probably, some clever tricks can be written to solve the problem of piece recognition in a smart way.</li>
</ol>

<p>A quick Google search with the search string</p>

<blockquote>
  <p>chess game image processing</p>
</blockquote>

<p>returned this <a href="http://www.google.se/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;ved=0CCsQFjAA&amp;url=http://www.researchgate.net/publication/234491319_Using_Image_Processing_Techniques_to_Automate_Chess_Game_Recording/file/79e4150fe3be5bef54.pdf&amp;ei=04P_Up2kFYLf4wS_5oD4BQ&amp;usg=AFQjCNHTgvncb4RBq830y9dgXJiN7uCYtg&amp;sig2=fXQXMBUIwm27M_qMJS4h-Q&amp;bvm=bv.61535280,d.bGE&amp;cad=rja" rel="noreferrer">interesting article</a></p>

<p>All in all, it should be realistic to implement this type of software. Yet it might be cheaper for a human to do the same work (transfer moves from a video clip to a computer).</p>
 657: <p>In order,</p>

<p>1) Not to my knowledge</p>

<p>2) Not to my knowledge</p>

<p>3) There are several things that make this sort of project non-trivial, even difficult. Not the least of which is following the piece, differentiating it from a hand gesture, for example. Also determining when the move stopped would be an interesting question for computer vision to solve. These kinds of problems have been solved in other situations, but not with 100% accuracy, and  certainly not at prices that are even close to being competitive with the DGT board.</p>

<p>Then there's the question of where the camera could be positioned. Directly overhead would offer the best view of the board, making it easier to determine the square with precision. But wherever the camera gets placed, there's a distinct probability its view will be obstructed by one of the players, either leaning over the board, reaching for the clock, or simply gesticulating.</p>

<p>4) Not unless it was really cheap. And I don't expect it would be. My reasoning is simple. As time controls shorten, the quality of the game lessens, to the point where it's no longer interesting to me</p>
 20322: <p>It's 2019-12 now and 5 years after the original question.</p>

<ol>
<li><p>Does any such thing exist (webcam/video to pgn converter)? A
prototype maybe?</p>

<p>see </p>

<ul>
<li><a href="https://github.com/WolfgangFahl/play-chess-with-a-webcam/issues/19" rel="noreferrer">https://github.com/WolfgangFahl/play-chess-with-a-webcam/issues/19</a></li>
<li><a href="https://github.com/WolfgangFahl/play-chess-with-a-webcam/issues/22" rel="noreferrer">https://github.com/WolfgangFahl/play-chess-with-a-webcam/issues/22</a>
which are both closed by now. See <a href="http://lichess.bitplan.com" rel="noreferrer">http://lichess.bitplan.com</a> for a game successfully recorded. Join <a href="https://gitter.im/play-chess-with-a-webcam/community" rel="noreferrer">https://gitter.im/play-chess-with-a-webcam/community</a> to discuss</li>
</ul></li>
<li><p>Has anyone attempted such a feat and shared their research?</p>

<p>Yes - so far I found some 35 research papers and some 10 open source solutions and one commercial offering</p>

<p>2.1  <a href="http://wiki.bitplan.com/index.php/PlayChessWithAWebCam/Papers" rel="noreferrer">http://wiki.bitplan.com/index.php/PlayChessWithAWebCam/Papers</a> </p>

<p>2.2. <a href="http://wiki.bitplan.com/index.php/PlayChessWithAWebCam#Open_Source_Projects" rel="noreferrer">http://wiki.bitplan.com/index.php/PlayChessWithAWebCam#Open_Source_Projects</a></p>

<p>2.3. <a href="http://wiki.bitplan.com/index.php/PlayChessWithAWebCam#Commercial" rel="noreferrer">http://wiki.bitplan.com/index.php/PlayChessWithAWebCam#Commercial</a></p>

<p><a href="http://wiki.bitplan.com/index.php/PlayChessWithAWebCam" rel="noreferrer">http://wiki.bitplan.com/index.php/PlayChessWithAWebCam</a> is another project
aiming at the goals stated by you. The project was started 2019-10-15 and in a few hours I already found a lot of resources e.g. this Question
Some two months later I have updated my answer (see links above)</p></li>
<li><p>Are there obvious limitations that make this project unlikely to succeed?
I can only answer from my own experience with a similar project I did 31 years ago see <a href="http://wiki.bitplan.com/index.php/MagneticSensorChessBoard1987" rel="noreferrer">http://wiki.bitplan.com/index.php/MagneticSensorChessBoard1987</a>.
At that time i tried to create a chess board that would detect moves. I used magnets
in the wooden pieces and reed contacts. The key to success was using a chess engine
that new "the rules" to be able to concentrate on movements alone and not having
to detect individual pieces. As outlined in an answer above promotions to non queen
pieces might be one of the edge usecases that are difficult. Detecting the motion of
pieces via picture differences is a well understood problem.</p>

<p>Chess engines and UCI compatible GUIs are also available these days. So the problem
is more an integration problem these days then solving the individual detail issues.</p>

<p>A major obstacle is the difference between a "prototype" and a product. See e.g. 
<a href="http://www.nandanbanerjee.com/files/ICCVR-08AUG12-011%20paper.pdf" rel="noreferrer">http://www.nandanbanerjee.com/files/ICCVR-08AUG12-011%20paper.pdf</a> </p>

<p>a paper that is even older than this question but far from a product that you can buy
at a reasonable price.</p></li>
<li><p>Would you buy it if it existed?</p>

<p>Yes. When I bought a new chess board a few days ago I was looking for one that
could record moves and it was still around 500 EUR. As it looks the hardware cost
will be well below 150 EUR these days including a decent chess board and pieces.</p>

<p>The software might well be opensource and free (as in free beer) soon. I'll update
this answer accordingly.</p></li>
</ol>
