Browsed by
Month: April 2019

4/27 – Weekly Update

4/27 – Weekly Update

Harry

I finished up on my modules. I worked with Sam and Christina to tune values and work on integration, but the week was also extremely busy for me with a series of cascading deadlines. I’m looking into other modules to increase stability and reduce variance for the line side of things, but at the same time our priority is metrics gathering. I’m looking into accurate and reproducible methods of testing our CV separately, our GUI and software separately, and our system end to end.

Christina

I finished up on edge detection and implemented speed detection. I’m focusing on integration with Sam and Harry for the rest of the system. I’m working with Sam to tune our GUI size and orientation to match the pool table. It’s taking a significant amount of time to adjust the constants to match parts of the table with our camera feed. I also tuned our cue stick detection algorithm, we attached red tape to the end of the cue stick to have it better recognized, and cropped the frame to reduce conflicting lines. We’re able to have a much more stable image than our earlier demo.

Sam

I finished up the additional bounces, and added the speed to our GUI. I’m focusing more on integration with the rest of our system, and adjusting ball offsets to match our Pygame output to the table. It’s taking a lot of time adding in these offsets, we reason that this is because the projector and camera are curved and detect parts of our table different. In addition, we switched to a more minimalistic GUI to prevent further projector feedback. I’m looking forward to finishing tuning to proceed to metrics gathering.

Team

Our week was divided into pre-demo and post-demo. For pre-demo, we focused on integrating our changes into our complete system. We completed our cue-stick speed detection and GUI representation, but chose not to display it due to the need to tune it further. For our demo day, we found that the brightness from the projector was heavily impacting our edge detection threshold. We discussed with Professor Tamal and Shraddha, and decided to implement transparent images from our projector. Post-demo, our focus now is stabilizing our setup for minimize setup time. We were able to acquire a table and align our table to the corner of our frame. We are getting more accurate results, and are working hard to measure our metrics for our presentation and poster!

4/20 – Weekly Update

4/20 – Weekly Update

Harry

I worked on helping make our CV pipeline more robust. I built an aggregation-tool that helped reduce jitter through our HSV and Edge Detection algorithm outputs. The tool takes statistical averages of the data to exclude outliers, and give the user a smoother output. Perhaps in the future we could use simple machine learning techniques to smooth this out, but currently our statistics techniques are paying off. In addition, I added a calibration mechanism for our HSV input. This should save significant time setting up for various demo environments.

Christina

I worked on using edge detection as an alternative method to detect balls. While before, we found edge detection to be inaccurate, we looking at dramatically changing the threshold. We’re also looking at combining the HSV detection as a method of getting data from two sensor inputs. In addition, I looked into using Logitech Gaming Software as a method of tuning for brightness, color and saturation. Surprisingly enough, the auto-focusing feature of our camera is what was causing our significant jitter – the camera was zooming in and out. With this software, I was able to create a more stable image and tune it manually.

Sam

I worked on extending our ball prediction technique. Using the physics engine I built before, I added functionality for further bank shots (1, 2 and 3 bounces), and predicting other ball bounces. In addition, I’m predicting other ball bounces. I’m also starting on our ball speed detection showing up in the GUI. To start off, I’m showing a predicted end point of the ball to help the user see the result of their shots.

Team

As a team, we finished up implementing our features in anticipation for the next milestone demo. We spent a majority of time improving on our trouble areas, which were specifically jitter on the ball detection. We focused on building redundancy into all our components. This put our original predicted schedule behind by a week as we focused on accuracy, but we are confident we can finalize ball speed detection as our final feature. We’re looking at a strong demo that shows off our accuracy and core features!

4/13 – Weekly Update

4/13 – Weekly Update

TEAM

This short-week (because of Carnival), we all came together to make an alternative image perception algorithm worked. We employed and tested an edge detection algorithm with circle contours to detect the different pool balls. Additionally, we restructured how the camera would be attached to the frame so that the camera position is independent of the projector. We are experimenting with different combinations of pool ball detection to find the method with the most accuracy. Only 3 weeks left — let’s make it count! 😇

4/6 – Weekly Update

4/6 – Weekly Update

Christina

During the week, I spent a lot of time preparing the Computer Vision algorithms for the demo. I got around to testing with the demo camera and demo setup, and I noticed a lot of discrepancies compared to the pictures I originally tested on. We also noticed the lighting conditions really affected the CV, and this meant that conditions in the lab varied at night and during the day. With the help of my colleagues, since nighttime testing did not work well, they accompanied me early in the morning on demo day to help with some final tuning. With the feedback from the demo, we plan on developing a calibration system so that we do not have to always tune for a specific lighting condition and pool table location. Thanks team for all the help and late nights/early mornings!

Harry

This week, I assisted my teammates in their calibration efforts. I worked on helping groom our schedule to keep our tasks up-to-date. In addition, I re-evaluated and prepared the new tasks that we can do in the time between now and the demo. This was necessary since we noticed that testing and tuning was taking significantly longer than expected. I drafted pros and cons of each of the tasks, and hosted a quick session to re-evaluate our goals. In addition, I’m expanding on the CV component by adding simple edge detecting to increase the predictability of the ball detecting. I’m hoping to integrate this edge detection with our HSV and contour detection in order to achieve a high reliability of object detection.

Sam

This week, I mostly spent my time in the lab, providing positive encouragement and reinforcement to the CV developer(s) of our team. They had a relatively long week, sacrificing their health to work on this capstone project! I wish I could have done more to directly help on CV, but all I could do was be supportive. 🥪🍊 I mapped out my future implementation plans — in terms of MVP, I believe I am caught up, but further discussion needs to be done for our team’s plan moving forward.

 

TEAM

We spent a lot of time integrating for our demo. A few areas that needed work before we could demo were synchronizing the normalization between our CV component and our software component. Mainly, adjusting the values in the software backend to match the real life pool table dimensions and matching CV coordinates to software coordinates. In addition, we discussed our plans for the next few weeks. In a nutshell, we decided to implement features that helped streamline our process such as color synchronization and projector-camera registration based on our feedback.