Count Go Black Stones
Workflow
- Use the source board photo as input. Do not require or depend on a scoring-app result screenshot.
- Run
scripts/count_go_black_stones.pyon the image to detect the 19x19 grid, classify intersections as black, white, or empty, and compute:black_stones: visible black stones on the board.black_territory: empty intersections surrounded only by black stones.black_area_chinese: black stones plus empty regions bordered only by black stones.black_result_chinese:胜whenblack_area_chinese >= 185on a 19x19 board, otherwise负.area_total_ok: sanity check that black area plus white area equals19*19.
- Generate a clean static board with
--result-imagewhen the user asks for a result image. Actual stones are circles; surrounded territory is marked with small squares; the footer shows the black Chinese-area result, e.g.黑 197 子 胜. - Compare the script output with the image visually. Correct obvious misses before answering.
- State uncertainty when the board is blurry, cropped, obstructed, or has unsettled dead stones. Chinese-area scoring assumes dead stones have already been removed or are visually treated as alive.
Quick Start
Install script dependencies only if they are missing:
python3 -m pip install -r /path/to/count-go-black-stones/scripts/requirements.txt
Run the detector:
python3 /path/to/count-go-black-stones/scripts/count_go_black_stones.py /path/to/board.jpg \
--result-image /tmp/go-result-board.jpg \
--overlay /tmp/go-count-overlay.jpg
For JSON-only output:
python3 /path/to/count-go-black-stones/scripts/count_go_black_stones.py /path/to/board.jpg --json
If automatic board detection is wrong, pass the four board corners in image coordinates, ordered clockwise from top-left:
python3 /path/to/count-go-black-stones/scripts/count_go_black_stones.py board.jpg \
--corners "74,76 1100,53 1118,1031 72,1034" \
--result-image /tmp/go-result-board.jpg \
--overlay /tmp/go-count-overlay.jpg
If the supplied corners are the four outer grid intersections rather than the wooden board corners, add --grid-corners.
Interpretation
- Report
black_stoneswhen the user literally asks how many black stones are visible. - Report
black_area_chinesewhen the user asks for黑多少子,数子, or形势. - Treat
area_total_ok: falseas a sign that classification or life-and-death status needs review before trusting the result. - In the generated result image, circles are actual stones from the source photo; small squares are territory markers computed from surrounded empty intersections; the bottom score label uses
black_area_chinese. - The result image and JSON use Chinese-area judgement for black: 19x19 black wins at
black_area_chinese >= 185, after the standard 3.75子 komi. - In JSON,
board_asciicontains only stones (Xblack,Owhite), whileresult_asciiseparates stones from territory (X/Ostones,x/oterritory). - Treat
black_area_chineseas a rules-based estimate, not an AI life-and-death judgment. If dead groups remain on the board, tell the user manual confirmation is needed. - Use the overlay when available to inspect classification mistakes: black stones are marked
B, white stonesW, black territoryb, and white territoryw.
