Team Status Report for 03/06/2021

As the professor and the TA recommended, we decided to use Raspberry Pi and FPGA instead of using a computer. We believe the computer vision part of our project and the user interface can be run through RPI and FPGA can take care of every move generation and chess AI. It makes sense that RPI can handle image processing, so it is unnecessary to use a computer for image processing.

Since we decided to use RPI, we had to do some research on how FPGA and RPI will be communicating. We figured out that we can still use the UART connection from FPGA to RPI for the communication between two hardware and use the ARM core processor for running an AI on FPGA. Once we are finished with board detection on the computer vision side of the project, we are planning to try out the aforementioned communication between RPI and FPGA so that we can confirm this design works well.

Joseph and Jee Woong made some progress on board-detection, and Michael is testing the ARM core processor based on the setup he created last week. It is good that all our team members are following the schedule we planned.

Jee Woong’s Status Report for 03/06/2021

This week I started working on board-detection. Since our team agreed to first work on images of the board, I took a photo of our chessboard and tested the detection algorithm. As you can see from the picture below, it can detect the corners of the board and find the coordinates of the corners. The printed arrays are the x and y coordinates of each corner.

    

However, the issue is when chess pieces are on the board. I have figured out that the computer vision algorithm that I wrote no longer works when there are pieces on the board. So, I need to figure out how I should be finding the square tiles and their corners of the board when pieces are placed.

Furthermore, Joseph and I are working together on this part, and we are planning to test board-detection with photos that I took and move on to real-time detection of the board using a webcam. We already wrote some code on real-time detection, so I hope we can work more on board-detection with images next week and hopefully move on to real-time detection.

Jee Woong’s Status Report for 02/27/2021

This week, we had a proposal presentation. Since I was the first presenter of the team, I prepared my presentation with my teammates and discussed some of the important aspects of our project. After I finished my presentation, I ordered a chessboard, webcam, and webcam stand for each one of us. The chessboard and webcam stand arrived on time, so I could check if the chessboard was the right chessboard we could detect through the webcam.

Furthermore, I set up a git repository so that all of our team can work. Most importantly, I read documents about OpenCV and how our program should read the chessboard through a webcam. After reading the documents, I tried reading images through my own webcam, and this testing worked out well. I have also found a useful function we can use for recognizing the 8×8 board. The image below is an example of detecting the chessboard, and I am also planning to try it by myself.

Calibration Pattern

I am looking forward to testing with my own images first and use the webcam to frame images and do similar testing. For next week, I hope I could write I report that I successfully tested board detection through the webcam.

Jee Woong’s Status Report for 02/20/2021

As our team is in the planning and researching process of our team project, I looked at some of the documents that are relevant to the duty that I am given. My first main role is to use computer vision algorithms to detect the 8×8 Chessboard. Although I have taken many computer science courses, I don’t have any background in computer vision. So, I got familiar with the basic concepts and modules that are frequently used in computer vision.

For the planning process, based on my team’s list of duties, I have finalized our team’s Gantt Chart. We had several meetings to come up with all the possible works we need to do, and I believe we have done a good job in communicating the ideas that we need in our project. As I am the first presenter of the Proposal Presentation, I have contributed to creating slides and practiced for the upcoming presentation.

This week, I am planning to write my own code and play with some of the computer vision modules that might be useful. And, I would like to start working on the Chessboard detection and write an update on my next weekly report.