This week, our group met together to fix the communication with the FPGA. I fixed some minor bugs in the chessboard detection. Now we are good to go. We just need to finish the demo and the final paper. We are on schedule to finish the course. Next week, we are going to finish our final paper.
Joseph’s Status Report for 05/01/2021
This week, Jee Woong and I worked together to fix the flipped board issue. I was also able to improve the accuracy of the detection of the chess pieces by tuning the parameters.
We are a little behind the schedule. We are not finished with the integration of FPGA.
Next week, we are going to finish integrating with the FPGA and be ready for the demo.
Team Status Report for 04/24/2021
This week, our team got together to integrate everything. We were able to integrate the UI with the computer vision, so we only need to integrate the FPGA with our system, to recommend moves. We are on our track in the gantt chart. Michael is mostly done with the stockfish code to connect it to the system. Joseph and Jee Woong worked together to fix any bugs that the system had and to show everything successfully on the UI. Next week, we are planning to finish integrating everything and finalize our product. All the team members are on track with the gantt chart.
Joseph’s Status Report for 04/24/2021
This week, we were able to fix most of our problems. The system is now able to detect all chess moves and is ready to be demonstrated. One awkward problem we have is that the chessboard is flipped visually, but all the pieces actually move like they do. Another problem that we mentioned in Slack is that the Raspberry Pi cannot handle the workload of pygame, as shown in our pictures, so we think we cannot use it for our final demo.
We are on schedule with the Gantt chart. We were supposed to finish the integration of UI with the CV this week, and we were able to do it.
Next week, we are going to finish integrating with the FPGA and hopefully only worry about presenting our product.
Below are some successful background subtraction and blob detection that our system can do now.
Updated Gantt Chart
Joseph’s Status Report for 04/10/2021
This week, I was able to fix most of the problems. Now, the board detection works fine. The piece detections also work fine as well, with some constraints. Now that the board is distinctively black and white, the pieces blend too well with the board. As a result, the blob detection is not able to detect the pieces very well. To mitigate this, we have bought pieces that are red and blue so that we can distinguish the pieces from the board. I have tested that this works by coloring checker pieces red. Here is an example of blob detection when a black piece moves from a black square.
The top case where the knight moves from a black square, it cannot detect the knight properly.
As for the schedule, I am on schedule with the Gantt chart. Now it is time for integration after the interim demo.
Next week, I am going to get started on the Raspberry Pi to see how Jee Woong’s coordination with the UI plays out and just hopefully make the whole process as smooth as possible.
Team Status Report for 04/03/2021
This week, we each worked on finalizing our individual components of the project. We are on our track to integrate next week. Michael was able to get most of his System Verilog written. Joseph was able to work on the background subtraction on new frames and is working on getting the chessboard detection to work. Jee Woong made progress on the UI and is now has a model to show. Next week, everyone is going to finalize on their individual components to bring each component together. All the team members are on track with the gantt chart.
Joseph’s Status Report for 04/03/2021
This week I worked on putting the detecting chessboard corners and background subtraction together. Unfortunately, I did not make much progress. It seems like the environment I am in is different from Jee Woong’s which is causing the problem. To mitigate this, I requested a white picture paper and a new black and white chess board, but I am not sure what is happening since I did not get any update from a TA. Here are some of the results I am getting.
The first one is with glare, the second one is without glare, the third one is without glare, but a light from a specific angle. None of them were able to detect the corners. Thankfully, the background subtraction seems to work with or without glare, since they are subtracted anyways.
As for the schedule, I am still on track with the schedule.
Next week, I plan to get this problem fixed and hopefully get a somewhat working system of the chessboard detection.
Team Status Report for 03/27/2021
This week, we have almost finalized all of our project. We are on our track to integrate two weeks later. Michael was able to almost finalize his hardware code to generate all the valid moves. Joseph was able to work on the background subtraction algorithm and will integrate next week. Jee Woong made progress on the board detection, and now we are able to find the coordinates of the pieces. Next week, Joseph is going to coordinate with what Jee Woong wrote to build a chess system that represents the board state as well as detect moves.
All the team members are on track with the gantt chart. We are on schedule, and with this progress, we might have something to show for next week to be ready for the interim demo.
Joseph’s Status Report for 03/27/2021
This week I was able to figure out the background subtraction algorithm. Now, I am able to detect the two pieces that were on board. With the feedback to use blob detection, I am also able to find the coordinates of them to later map them to appropriate square that they belong to. That would be the next step, coordinating the pieces to its appropriate squares by creating a chessboard class to map the pieces to. On the pictures, you can see the two pieces that were identified from the background subtraction and also the circles around them that the blob detection was able to find the pieces successfully. I had to change the background to a white background because blob detection only works on a white background.
As for the schedule, I am a little ahead of the initial schedule, but since the integration might take much more time than expected, I might not really be ahead.
Next week, I will be coordinating everything together to make a chessboard system. I will be making chessboard squares, the enumeration for each pieces, and anything else I need to represent the board and the moves.