I did that a couple of years ago. But there's so much issues related to camera's.
First of all there's the problem to detect the outside border of the board automatically.
I avoided that by using a configuration procedure where the user had to put stones in the corners.
Then using interpolation you can calculate all intersections, right? Not completely.
Webcams have cheap lenses and these bend the perspective around the borders of the screen.
The result is that some intersections will be slightly off.
Then there's the problem of the viewing angle. If you put the camera really low then stones are in front of eachother.
The result is that you have to check the top of the stone, not the middle or the lowest point of the stone.
Of course if there is NO stone at the intersection, but there is one at the intersection behind it, then you'll get a wrong result as well.
So complex algorithms are necessary to do this perfect.
In combination with the previous problem this is very hard, you create a snowball effect when these slight errors are combined.
As an alternative you could setup the camera above the board (looking down to the board). The result of that is that the you annoy the players with the construction of the camera.
Then still there's the problem of lighting. One point of the board can be darker then the other, lightning can change during the course of the game.
What if you move your hand accross the board during play. I have a very white skin. For the camera it's as if a bunch of white stones are thrown on the board. This could be fixed by ignoring big sudden changes. But how can the camera tell the difference with removing big chunks of stones? He can't unless maybe if you get input from an USB connected clock ? (doesn't exist as far as I know, been looking for one).
What if the board or the camera shakes during play. Reconfiguration? When will you notice this, I hope you notice it before the game is over.
There's such so much unpredictable factors in using camera's. You can use artificial intelligence and use game logic to fix some of these problems. But you can't fix all.
On top of that I think if you put all this effort in writing the software for it, it's too bad you can't give feedback to the user. What I mean is, you'll never be able to play against GnuGo on a real board. The computer can't point certain positions on the board. Using a circuit underneat the board you can use LED lighting to show positiosn of stones or moves.
I think it makes more sense to put the detection inside the board. Well, it's still an experiment and there are some issues, but I think overall it's a better principle. But of course, it's a lot more expensive.
