CV Chess
This is the page for the CV Chess project.
Contents
Project Overview
This project aims to use a camera, a raspberry pi, and computer vision software to recognize the movements of chess pieces in a game of chess. The final product will be able to recognize individual pieces, as well as determine the change in positions (squares) they occupy. This will ultimately yield a project that can verify valid moves, transcribe games, and perhaps implement an AI to act as an opponent of a lone player.
Powerpoint: https://drive.google.com/open?id=1YedAReM6O2aCmyuhbexrzyZo2OzDirnc
Demo day powerpoint(rough draft): https://drive.google.com/file/d/1Bia1HT9QYs1-1q9sQBzvP3-1uzONgBiM/view?usp=sharing
Team Members
Robert Goodloe
Nhut Dang
TA: Ethan Shry
Instructor: Prof. Jim Feher
Objectives
- Use OpenCV software to recognize chess board.
- Use OpenCV software to recognize the chess pieces.
- Use OpenCV software to recognize the movement of the pieces.
- Transcribe game of chess and present in user-friendly fashion.
- Add an AI component that responds to a users movements. It would display a move which the user must execute on behalf of the AI.
Challenges
- Limited knowledge of Raspberry Pi
- Zero knowledge using OpenCV or any computer vision software
- Have been told that nobody has gotten OpenCV compiled and running in ESE 205 despite several attempts
- Using object recognition to differentiate between similar pieces i.e. bishop versus pawn
- testing
Gantt Chart
Budget
Item needed | Unit | Price | Total(max) | Description | Link |
---|---|---|---|---|---|
Chessboard | 1 | 9.76 | 9.76 | wood | https://www.amazon.com/Yellow-Mountain-Imports-Magnetic-Travel/dp/B0019FATKG/ref=sr_1_10?s=toys-and-games&ie=UTF8&qid=1538161920&sr=1-10&keywords=chess+set |
color dot(optional) | 1 | 9.99 | 9.99 | may needed if we are going to color code the chessboard's pieces. | https://www.amazon.com/gp/aw/d/B06X6LT9G9/ref=sspa_mw_detail_4?ie=UTF8&psc=1 |
Pi touchscreen (optional) | 1 | 79.95+tax+ship | 79.95+tax+ship | may needed if we are going to color code the chessboard's pieces. | https://www.amazon.com/gp/aw/d/B06X6LT9G9/ref=sspa_mw_detail_4?ie=UTF8&psc=1 |
tripod | 1 | free | free | for mounting | https://www.thingiverse.com/thing:2348881 |
Plexiglass(optional) | 1 | 12 | 12 | clear board | https://www.amazon.com/MIFFLIN-Plexiglass-Transparent-Acrylic-Plastic/dp/B076VR7D9C/ref=sr_1_28?s=office-products&ie=UTF8&qid=1538162741&sr=1-28&keywords=clear%2Bglass&th=1 |
111.7 |
References
https://www.pyimagesearch.com/2018/04/09/how-to-quickly-build-a-deep-learning-image-dataset/
https://web.stanford.edu/class/cs231a/prev_projects_2016/CS_231A_Final_Report.pdf
https://www.pyimagesearch.com/2018/04/16/keras-and-convolutional-neural-networks-cnns/
https://www.pyimagesearch.com/2017/10/02/deep-learning-on-the-raspberry-pi-with-opencv/
https://www.pyimagesearch.com/2017/06/19/image-difference-with-opencv-and-python/
Tkinter Tutorials: https://www.youtube.com/watch?v=HjNHATw6XgY&list=PLQVvvaa0QuDclKx-QpC9wntnURXVJqLyk
Similar Projects: https://github.com/jayhack/CVChess
Open CV: https://docs.opencv.org/3.1.0/d4/d13/tutorial_py_filtering.html
https://docs.opencv.org/3.4.0/d9/db0/tutorial_hough_lines.html
https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_houghlines/py_houghlines.html
Corner
(Fast) https://www.edwardrosten.com/work/fast.html
Lines
https://stackoverflow.com/questions/45322630/how-to-detect-lines-in-opencv