Difference between revisions of "CV Chess"

From ESE205 Wiki
Jump to navigation Jump to search
Line 100: Line 100:
 
https://www.pyimagesearch.com/2017/06/19/image-difference-with-opencv-and-python/
 
https://www.pyimagesearch.com/2017/06/19/image-difference-with-opencv-and-python/
  
Open CV
+
Tkinter Tutorials:
 +
https://www.youtube.com/watch?v=HjNHATw6XgY&list=PLQVvvaa0QuDclKx-QpC9wntnURXVJqLyk
 +
 
 +
Similar Projects:
 +
https://github.com/jayhack/CVChess
 +
 
 +
https://de3-rob1-chess.readthedocs.io/en/latest/_modules/perception/mainDetect.html#Perception.makeBoard
 +
 
 +
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''' <br />
 
'''Corner''' <br />
Line 112: Line 126:
 
https://stackoverflow.com/questions/45322630/how-to-detect-lines-in-opencv
 
https://stackoverflow.com/questions/45322630/how-to-detect-lines-in-opencv
  
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
 
  
  

Revision as of 05:08, 3 December 2018

Link to weekly log

This is the page for the CV Chess project.

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

  1. Use OpenCV software to recognize chess board.
  2. Use OpenCV software to recognize the chess pieces.
  3. Use OpenCV software to recognize the movement of the pieces.
  4. Transcribe game of chess and present in user-friendly fashion.
  5. 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

  1. Limited knowledge of Raspberry Pi
  2. Zero knowledge using OpenCV or any computer vision software
  3. Have been told that nobody has gotten OpenCV compiled and running in ESE 205 despite several attempts
  4. Using object recognition to differentiate between similar pieces i.e. bishop versus pawn
  5. testing

Gantt Chart

GanttCVChessFinal.PNG

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/2017/09/04/raspbian-stretch-install-opencv-3-python-on-your-raspberry-pi

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

https://de3-rob1-chess.readthedocs.io/en/latest/_modules/perception/mainDetect.html#Perception.makeBoard

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

https://www.meccanismocomplesso.org/en/opencv-python-harris-corner-detection-un-metodo-per-rilevare-i-vertici-in-unimmagine/


Lines
https://stackoverflow.com/questions/45322630/how-to-detect-lines-in-opencv